Skupina D

Využitie podporných nástrojov pri vývoji softvéru v tíme

Autor:Martin Nágl
Abstrakt:Dobre fungujúca kooperácia viacčlenného softvérového tímu nie je možná bez využitia nástrojov pre sledovanie úloh, odpracovaného času, konfigurácií, či verzií zdrojového kódu. Tieto nástroje poskytujú manažérovi tímu prehľad o stave projektu a informácie potrebné pre plánovanie prác. Vytvárajú tiež prostredie pre efektívnu spoluprácu vývojárov. V tejto eseji bližšie opíšem požiadavky na rôzne druhy podporných prostriedkov využívaných pri vývoji softvéru a ich použitie vysvetlím na príklade. Sprostredkujem skúsenosti s niektorými riešeniami získané z viacerých zdrojov a doplním vlastné skúsenosti s používaním rôznych nástrojov pri práci na softvérových projektoch v komerčnej spoločnosti.

Snaha o tvorbu kvalitného softvérového produktu

Autor:Jozef Slezák
Abstrakt:Jednou zo základných požiadaviek na softvér je jeho kvalita. Ako docieliť požadovanú kvalitu softvérového produktu? Základnou ideou môže byť podpora vývoja tvorbou testov a použitím metrík kvality softvéru. V tomto článku sa zaoberám niektorými zo súčasných trendoch, akými sú unit testy, TDD (Test Driven Developement), IoC (Inversion Of Control). Vyjadrím sa k výhodám a nevýhodám daných prístupov.

Projekt je spustený, a čo teraz

Autor:Ján Šarmír
Abstrakt:Projekt je perfektne naplánovaný, máme najlepších manažérov, ktorí dohliadajú na celý projekt podľa plánu. Vznikajú však problémy mimo plánu a tie prinášajú určitý sklz projektu. V akom sme stave? Ohrozí to dokončenie projektu? Na to, aby sme boli schopní odpovedať, je potrebné definovať postupy, ktorými budeme projekt sledovať. Tí lepší si z nich vedia vybrať vhodné metriky na to, aby vedeli odhadnúť doposiaľ vykonanú prácu, čo ostáva a následne preplánovať a prispôsobiť tomu manažérov pre riadenie ako aj samotný plán. Budeme teda projekt priebežne sledovať alebo mu necháme voľný priebeh?

Riziká softvérových projektov

Autor:Peter Šimno
Abstrakt:Softvérový priemysel je pomerne mladé, ale dynamicky sa rozvíjajúce odvetvie. Podobne, ako manažment riadiaci ostatné odbory ľudskej činnosti, aj manažment v softvérovom inžinierstve sa musí potýkať s rizikami počas celého procesu vývoja produktu. Každý manažér by ich mal vedieť v rámci svojho projektu identifikovať, predchádzať im a pokiaľ predsa len nastanú, vedieť minimalizovať škody. V opačnom prípade hrozia firme straty, či už peňažné alebo morálne v očiach zákazníkov. Táto esej si kladie za cieľ poukázať, čo to vlastne riziko je, aké druhy rizík v procese tvorby softvéru nastávajú a aké majú dopady na projekt. Ďalej je spomenutý prehľad najčastejších príčin vzniku rizík a ich kategorizácia.

Plán sa robí pre ľudí

Autor:Lukáš Šimon
Abstrakt:Dobrý plán je základom úspechu každého softvérového projektu. Esej začína úvahou o význame a potrebe vytvárania plánu všeobecne. Prechádza plánovaním dňa človeka a postupne sa dostáva k plánu softvérového projektu. Diskutuje 9 smrteľných chýb projektového plánovania. Ďalej sa práca zaoberá myšlienkou univerzálnosti postupu pri plánovaní a vysvetľuje krok za krokom postup vytvárania plánu, ktorý ma veľmi zaujal. Záveru patrí zamyslenie sa nad otázkou pre koho sa vlastne plán softvérového projektu vytvára.

Osobnosti v tíme

Autor:Jakub Vaňo
Abstrakt:Každý človek je individuálny a má svoje špecifické kvality a nedostatky. Jednou z najdôležitejších úloh pri zostavovaní kvalitného tímu je analyzovať potenciál ukrývajúci sa v jednotlivých členoch tímu. Každý softvérový tím potrebuje základné elementy v podobe ľudských zdrojov so špecifickými rolami a kompetenciami. Nie každý sa však hodí na ľubovoľnú rolu. Správny odhad ideálnej zostavy tímu môže vo veľkej miere odstrániť mnoho problémov a vytvoriť optimálny tím. Jednoznačný recept na dobrý tím však neexistuje. Zorientovanie sa v problematike a pomoc pri výbere vhodného postupu pri hľadaní ideálneho tímu je hlavným cieľom tohto dokumentu.

Legenda o dokonalom pláne

Autor:Martin Cichý
Abstrakt:Je prirodzené, že sa človek, ak musí čeliť zložitejšiemu problému, snaží vytvoriť si plán, ktorý by ho úspešne doviedol až k riešeniu daného problému. Keďže riešenie softvérových projektov je tiež formou riešenia problémov, je zrejmé, že si plánovanie v oblasti vývoja softvéru nájde široké uplatnenie. Esej čitateľa uvedie do problematiky plánovania softvérových projektov. Čitateľ sa dozvie v čom mu môže dobrý plán pomôcť, ako mu môže zlý plán uškodiť a čo všetko by mal dokonalý plán obsahovať, aby nezmenil manažment softvérového projektu na kolotoč byrokratických úkonov, ale aby pritom obsahoval všetko dôležité. V závere sa čitateľ oboznámi s faktom, že aj na prvý pohľad dokonalý plán sa môže zmeniť na nočnú moru každého manažéra, ak sa nevenuje dostatok pozornosti jeho napĺňaniu a aktualizácii.

Testovanie objektovo orientovaného softvéru

Autor:Rudolf Fáber
Abstrakt:Testovanie je dôležitou etapou vývoja každého softvérového produktu, objektovo orientovaný vývoj softvéru nevynímajúc. Napriek tomu, má testovanie objektovo orientovaných programov určité zvláštnosti voči testovaniu iného typu softvéru. Táto esej sa zaoberá významom testovania, rôznymi technikami testovania objektovo orientovaného softvéru a ich možnými výhodami a nevýhodami. Porovnávajú sa rôzne stratégie testovania a prístupy, ktoré tieto stratégie využívajú. Detailnejšie sa esej zaoberá aj testovaním samotných tried na základe ich formálnej špecifikácie. V ďalšej časti sa zaoberá regresným testovaním, jeho významom pri údržbe softvéru a predpokladov potrebných pre efektívne vykonávanie regresných testov.

Ako si zvoliť vhodný podporný prostriedok pre riadenie softvérového projektu

Autor:Peter Ivanka
Abstrakt:Súčasný svet informačných technológií poskytuje široké spektrum produktov a podporných nástrojov využiteľných v procese riadenia softvérového projektu. Vybrať z nich taký, ktorý tento proces čo najviac zjednoduší a zefektívni, môže byť kľúčovou a zároveň netriviálnou úlohu. Cieľom tejto eseje je diskutovať vlastnosti, ktoré by dobrým podporným nástrojom určite nemali chýbať a poskytnúť tak návod pre uľahčenie ich výberu. V tejto súvislosti esej sleduje procesy súvisiace s riadením projektu, pričom sa zameriava najmä na využitie ľudských zdrojov, sledovanie úloh jednotlivých členov tímu a ich časovú následnosť, potreby efektívnej komunikácie, výmenu výstupov, vizualizáciu stavu projektu a iné. Snaží sa zdôrazniť potrebu a význam využitia podporných prostriedkov pre riadenie softvérového projektu.

Potreba monitorovania softvérových projektov

Autor:Peter Janičkovič
Abstrakt:Základom pre úspešný projekt je jeho dôkladná príprava ako aj monitorovanie jeho samotného priebehu. Predkladaná esej preto venuje pozornosť monitorovaniu softvérového projektu v jeho rôznych aspektoch. Neštandardné riešenia v návrhu spôsobené zmenenými požiadavkami zadávateľa v pokročilom štádiu projektu, komplikované a nečitateľné prvky v implementácii znižujú kvalitu výsledného produktu, čo následne spôsobuje veľké problémy pri údržbe. Pri precíznom sledovaní projektu, jeho atribútov kvality a správnou a najmä pružnou reakciou na vzniknuté problémy, je možné vyhnúť sa komplikáciám alebo predčasnému a neúspešnému ukončeniu projektu.

Ako sa nebáť?

Autor:Igor Jánoš
Abstrakt:Minimalizácia šance neúspechu je jedným z najdôležitejších cieľov každého manažéra nie len softvérového projektu. Je nutné si uvedomiť hrozby, ktoré projektu hrozia v každej jeho fáze a určiť kroky, ktorými je možné sa hrozbám vyhnúť, alebo aspoň minimalizovať ich negatívne dopady na úspech projektu. Mnoho projektov končí neúspechom, čo je znakom toho, že manažmentu rizík sa v dnešnej dobe stále nevenuje dostatočnej pozornosti v mnohých firmách.
V tejto práci skúsim priblížiť postupy, ktoré sa dnes v praxi používajú na analýzu, plánovanie a minimalizáciu rizík hroziacich pri vývoji softvéru a skúsim ich konfrontovať s mojími skúsenosťami s prácou na menších projektoch v malom tíme.

Osobnosť v tíme SW projektu ako v špecifickej pracovnej skupine

Autor:Peter Tomek
Abstrakt:SW projekt, či už menšieho alebo väčšieho rozsahu, sa spravidla rieši v tíme, teda v skupine osôb, ktorá je spolu spätá a prepojená určitými väzbami. Skupiny s takýmito charakteristikami sa nazývajú pracovné skupiny. Pracovná skupina je jednou z mnohých skupín, do ktorých sa človek počas svojho života začleňuje. Prostredníctvom členstva v nich človek uspokojuje značné množstvo vlastných potrieb a každá skupina má pre neho vlastný význam. Sú to práve skupiny, kde sa človek do bezprostredných kontaktov - vzťahov. Takéto skupiny, zvlášť pracovné, kde patrí aj tím riešiaci SW projekt, vo veľkej miere napomáhajú osobnostnému rastu človeka. Tento rast osobnosti je podmienený okrem iného aj vzájomnou interakciou a konfrontáciou s ostatnými typmi osobností v skupine. Je preto veľmi dôležité, pokiaľ to okolnosti umožňujú, myslieť na zloženie skupiny - tímu ešte pred jej vytvorením aby sa maximalizovala miera úspechu a predišlo sa neželaným javom či dokonca celkovému neúspechu pracovnej skupiny.

Softvér ako skladačka a kvalita komponentov

Autor:Michal Dobiš
Abstrakt:Vývoj v oblasti Softvérového inžinierstva bezpochyby smeruje k tvorbe systémov skladaním z relatívne samostatných komponentov. V dnešnej dobe už nie je problém na internete nájsť voľne dostupné triedy a knižnice tried, ktorých použitie môže značne urýchliť a tým zlacniť vývoj softvéru. Práca poukazuje, že tento zdanlivý liek na mnoho každodenných problémov môže v konečnom dôsledku vyústiť do nepredvídateľných problémov. Definuje vhodnosť komponentu z hľadiska jeho kvality, pričom do popredia kladie testovanie ako základný a najpoužívanejší spôsob jej overovania. Dokument upozorňuje na potrebu zaisťovania kvality každej súčiastky systému už v procese jej návrhu a implementácie. Pre znovupoužiteľný softvér je typickou objektovo orientovaná paradigma. Preto esej upriamuje pozornosť najmä na testovanie tried a na možnosti zlepšovania pokrytia kódu testami s využitím automatizovanej softvérovej podpory.

Podporné nástroje v manažmente malého projektu

Autor:Vladimír Hlaváček
Abstrakt:Manažment softvérového projektu je komplexná činnosť, ktorá si vyžaduje veľké množstvo pozornosti počas jeho celého životného cyklu. Pri tejto činnosti sa používajú rôzne druhy podporných nástrojov, pokrývajúce rozličné aspekty manažmentu. Táto práca sa zaoberá využitím podporných nástrojov v malých projektoch a ich vplyvom na niektoré vlastnosti projektu. Autor sa venuje najmä nástrojom umožňujúcim vytváranie plánov, sledovanie plnenia týchto plánov pomocou sledovania úloh a manažment ľudských zdrojov. Pri týchto nástrojoch si autor všíma ich vplyv na produktivitu v projekte a jeho viditeľnosť. Okrem toho sa venuje nástrojom pre podporu spolupráce a komunikácie v projekte, kde sa snaží identifikovať vhodné podporné funkcie pre využitie v malých projektoch. Záver práce sa zaoberá potrebami integrácie týchto nástrojov a tiež možnými rizikami a celkovým vplyvom na úspech alebo neúspech projektu.

Analýza a plánovanie rizík v softvérovom projekte

Autor:Linh Hoang Xuan
Abstrakt:Ministerstvo obrany US (DoD) pripustí, že manažment rizík je nevyhnutný proces úspešného projektu [2]. Cieľom manažmentu rizík je minimalizovať možnosť zhmotnenia rizika alebo minimalizovať účinok jeho skutočného zhmotnenia. Táto esej nepredstavuje celý proces manažmentu rizík, ale dáva ucelený pohľad dvoch dôležitých jeho fáz, t.j. fáza analýzy a plánovania. Analýza je druhá a najdôležitejšia fáza manažmentu rizík s cieľom odpovedať na otázku "Aké veľké je riziko?". Nielen analyzujeme riziká a ich efekty, ale aj faktory, ktoré môžu byť dôvodmi rizika. Pokiaľ plánovanie je nasledujúca fáza analýzy s cieľom odpovedať na otázku "Čo je perspektíva projektu na adresovanie toho nepriateľského následku?". Cieľ tejto eseje umožňuje čitateľovi efektívne riadiť riziká počas fáz analýzy a plánovanie rizík projektu. Esej tiež poskytuje prehľad a klasifikáciu bežných rizikových faktorov identifikovaných skúsenými projektovými manažérmi.

Dekompozícia projektu ako cesta k vytváraniu plánov

Autor:Michal Jajcaj
Abstrakt:Esej sa zaoberá plánovaním v softvérových projektoch. Tak ako aj v iných projektoch, tak aj v oblasti softvérových projektov vznikajú problémy rôzneho druhu. Práca na ich odstránení by v optimálnom prípade mala začať už pred samotným samotným zahájením projektu vytvorením jednej z najzákladnejších častí - plánu projektu. Ten dopĺňajú procesy, ktoré definujú postupy a metódy ako plán dosiahnuť. Práca rozoberá rozloženie projektu na menšie časti, ktoré sa dajú jednoduchšie a prehľadnejšie sledovať. Vytvorený plán umožňuje sledovať postup pri riešení cieľov projektu a zároveň napomáha pri rozdeľovaní zdrojov potrebných na dosiahnutie jeho cieľov. Tieto zdroje môžu byť na jednej strane finančné alebo materiálne a na druhej stranke zdroje ľudské, medzi ktoré je potrebné naplánované úlohy rozdeliť.

Monitorovanie vývojového procesu softvérového produktu, jeho prínos a analýza možných prístupov

Autor:Dušan Lamoš
Abstrakt:Prevažná väčšina súčasného softvéru je výsledkom koordinovanej práce veľkého počtu ľudí, pričom hovoríme o tzv. softvérových projektoch. Nie každý softvérový projekt však musí nutne viesť k vzniku hotového softvérového produktu. V ceste tejto snahe stoja jednak problémy s dodržiavaním stanoveného časového harmonogramu projektu, ako aj problémy spojené s kvalitou kódu a obmedzeným rozpočtom.
Vzhľadom na rozsah súčasných projektov a s tým súvisiace nemalé finančné náklady, je viac než žiadúce zabezpečiť úspešný koniec vývojového procesu. Aby bol daný softvérový projekt úspešne realizovateľný, je nutné sledovať priebežný stav spomínaných faktorov, čiže monitorovať proces vývoja. Na základe zistených skutočností sa následne vykonajú vhodné opatrenia, čím sa zasahuje do procesu plánovania vývoja. Priebežné monitorovanie je nevyhnutné hlavne z dôvodu neustále sa meniacich podmienok procesu vývoja, či už sa jedná o zdroje vo vnútri spoločnosti, alebo vonkajšie podmienky trhu atď.
Spôsob monitorovania závisí od sledovanej veličiny. V praxi hovoríme často o tzv. metrikách (či už kvantitatívnych, alebo kvalitatívnych), pričom od ich vhodnej voľby závisí efektivita a prínos samotného monitorovania. Proces získavania údajov pre jednotlivé metriky je závislý od monitorovanej veličiny. Môže sa jednať napríklad o rôzne dotazníky, ale aj o štatistické výstupy z vývojových prostredí atď. Táto problematika je bližšie analyzovaná v hlavnom texte.