Ak mnitrvať sftvérvý prjekt BC. JAROSLAV TEŠLÁR Slvenská technická univerzita Fakulta infrmatiky a infrmačných technlógií Ilkvičva 3, 842 16 Bratislava jarslav.teslar@gmail.cm Abstrakt. Na priemerných sftvérvých prjektch pracujú desiatky ľudí niekľk mesiacv. Pri takejt deľbe práce je prakticky nemžné uknčiť prjekt časv úspešne tak, aby navyše spĺňal všetky pžiadavky zákaznika. Pret prirdzene vznikl mechanizmus, ktrý sa snaží č najväčšu mieru zabezpečiť, aby sa stav prjektu vyvíjal pdľa plánu. T je umžnené zaznamenávaním vyknaných činnstí na prjekte, ich dôkladnu analýzu a vyhdntením dknčenej a zstávajúcej práce na prjekte. Na základe určenia aktuálneh stavu prjektu a jeh prvnaním s prjektvým plánm sa tak dkážu v dbe trvania prjektu nasadzvať zmeny vedúce k jeh úspešnému uknčeniu. Tát esej pjednáva práve prblematike mnitrvania sftvér-véh prjektu, zaberá sa zaužívanými metódami a technikami mnitrvania. Úvd Určiť, či niekt pracuje, je veľmi jednduché. Ale ak môžem pvedať, že je niekt pri svjej práci prduktívny, či zaznamenáva prgres? Pri krátkych autmatických prcesch ak umývanie auta aleb maľvanie bytu je prgres na práci viditeľný už p malej časvej jedntke. T však pri prjektch takých rzmerv, akým je vývj sftvéru, neplatí. Každý sftvér má svj živtný cyklus, ktrý zahŕňa špecifikáciu pžiadaviek zákazníka, analýzu prblematiky, návrh, implementáciu, testvanie, nasadenie d prevádzky a údržbu. Jeh frma je viditeľná až d fázy implementácie. V každej fáze môžu vznikať úskalia, ktrých riešenia je ptrebné hľadať celé dni. Tímy pracujúce na sftvérvých prjektch pzstávajú z desiatk ľudí, ktrých práca na seba nadväzuje, závisí d seba a pret je veľmi dôležitá ich vzájmná kmunikácia a synchrnizácia. Aj tiet aspekty vedú k tmu, že vrámci takéht kmplexnéh tímvéh prjektu je prakticky nemžné zistiť, ak efektívne sa pracuje a či vkladané úsilie prispieva k prgresu. Mnitrvanie stvérvéh prjektu je úlha pre manažérv. Neexisuje pre nich jedntná idea prgresu a pret je na nich, aby psúdili, či idú veci k lepšiemu Manažment v sftvérvm inžinierstve, któber 27, s. 1-7.
2 Jarslav Tešlár aleb nie. V nasledujúcich častiach načrtnem spôsby, ktrými sa manažéri môžu uberať, aby zabezpečili prgres celéh tímu a úspech prjektu. Prgres prjektu Slv prgres pukazuje na pstupný vývj p vzstupnej línii. Znamená t, že ak má mať sftvérvý prjekt prgres, musia byť priebežne viditeľné výsledky aleb aspň musí byť zrejmé, že prjekt pstupuje dpredu. Pdľa autra článku [2] existujú dva pužívané spôsby, ak sa v prcese sftvérvéh prjektu definuje prgres. Prvý spôsb je zalžený na tm, že sa naplánuje práca na prjekte, s tým, že sa zvýraznia ciele, ktré má prjekt splniť. Úlhu prjektvéh manažéra je zabezpečiť, aby každý člen tímu vedel, č je jeh úlhu, t.j. aký presný výstup má vzniknúť z jeh úsilia na prjekte. Ptm každý člen tímu pravidelne sleduje svju prácu a prvnáva ju s výsledkm, ku ktrému speje, určuje si svj prgres. Odhad termínu dknčenia prjektu sa môže meniť, ale musí sa meniť splčne pre všetkých a je ptrebné h stanvvať. Synchrnizáciu dhahu dknčenia prjektu zariadi manažér. Druhý spôsb definície prgresu je denné vedenie tímu. Prjektvý manažér je v pzícii, kedy má najviac infrmácii celm prjekte a jeh úlhách a cieľch. Priebežne sa pzerá na už vyknanú prácu jedntlivých členv tímu a sleduje, ak ich práca plní stanvené ciele. Na základe svjich mnitrvaní ptm zvláva stretnutia a diskusie, píše e-maily, v ktrých infrmuje, pripmína a mtivuje každéh tak, aby nikt nevyknával zbytčné aktivity. Je teda akýmsi krdinátrm prjektu a tímvéh prgresu. Sledvanie prgresu prjektu Prjektví manažéri sledujú prgres tímu na prjekte, pdávajú priebežné správy, vytvárajú štatistiky. Pri efektívnm meraní prgresu sa pdľa zdrja [1] dprúča pužiť metrika s aspň nasledujúcimi vlastnsťami: 1. bjektivita: metrika by mala byť zalžená na takých kritériách, ktré sú pzrvateľné a vervateľné 2. reálny čas: metrika by mala pukazvať na t, v akm stave je prjekt teraz a nie na t, č sa stal pred mesiacm 3. viac úrvní: viac úrvní údajv prjekte umžní manažérvi sledvať nižšie úrvne a izlvať prblémvé blasti 4. predikcia: metrika by mala bsahvať dhad budúceh prgresu Ten istý zdrj uvádza dva spôsby na meranie prgresu: 1. uknčené aktivity tent spôsb prvnáva aktuálny prgres vči plánvanému pmcu stupňa uknčenia aktivít v prjekte
Ak mnitrvať sftvérvý prjekt 3 2. uknčené jedntky práce tent spôsb prvnáva aktuálny prgres vči plánvanému pmcu uknčených jedntiek práce na prjekte Obe metriky majú samzrejme svje silné a slabé stránky, na ktré sa zameriam v nasledujúich častiach. Meranie prgresu zalžené na aktivitách Prgres prjektu je mžné merať v percentách ak pdiel aktuálneh stavu aktivít a všetkých naplánvaných aktivít. Prjekt má v pláne zadefinvané činnsti a k nim pridelené dátumy začiatku a knca činnstí. Pre každé časvé bdbie je vytvrená schéma prgresu, ktrá znázrňuje činnsti a údaje ich stave uknčenia. Stav uknčenia činnsti je udávaný v percentách, ktré dhaduje prjektvý manažér. Výhdu tejt metriky je, že pri dbrých dhadch je zrejmé, ktré činnsti sú pzadu vzhľadm na plán a ptrebujú viac pzrnsti. Odhady sú ale dôsledkm subjektívnych úsudkv a nemusia sa vždy zhdvať s skutčnu situáciu. Vylepšiť ich mžn skrátením intervalv, v ktrm sa percentuálne schémy vytvárajú a dekmpzíciu činnstí na menšie časti. Tak má manažér väčšiu šancu vidieť, ak sa jedntlivé malé činnsti blížia k úspešnému uknčeniu. Grafické znázrnenie prgresu prjektu Zakládná schéma prgresu pdľa metriky zalženej na aktivitách pzstáva z plánvej tabuľky aktivít, aktuálnej tabuľky aktivít a grafu prgresu prjektu. Plánvá tabuľka znázrňuje v každm riadku činnsť a percentuálne hdntenie, ktré vyjadruje predpkladaný stav ukknčenia činnsti v jedntlivých časvých bdbiach. Aktuálna tabuľka zbrazuje dhadvané dsiahnuté percentá činnstí pdľa skutčnéh stavu prjektu v určitm časvm bdbí a v všetkých bdbiach predtým. Každá činnsť v prjekte je naplánvaná na určitý čas a teda jej trvanie má určitú váhu v sftvérvm prjekte. Ak prenásbíme každú percentuálnu hdntu v tabuľke plánu činnstí jej váhu, získame váhy každej činnsti v každm časvm bdbí sftvérvéh prjektu. Súčet váh všetkých činnstí vrámci jednéh časvéh bdbia nám tak určuje predpkladaný stav celéh prjektu v tmt časvm bdbí. Ak tiet hdnty zakreslíme d časvéh diagramu, získame graf predpkladanéh prgresu prjektu. Analgicky sa dá pstupvať s využitím aktuálnej tabuľky aj pre graf aktuálneh prgresu. V prípade, že graf aktuálneh prgresu bude v jednej sústave pd grafm plánvanéh prgresu, prjekt je v časvm sklze a napak. Príklad plánvej tabuľky činnstí sftvérvéh prjektu je zbrazený v tabuľke č. 1. Prjekt je naplánvaný na mesiace apríl-któber a dekmpnvaný na šesť činnstí: špecifikáciu pžiadaviek, analýzu, návrh, implementáciu, testvanie a nasadenie. Číselné údaje v tabuľke znázrňujú uknčené percentá každej aktivity a v zátvrke sú súčasne uvedené príslušné váhy uknčenej časti činnsti vzhľadm na celý prjekt. Predpkladaný prgres celéh prjektu je znázrnený na brázku č. 1.
4 Jarslav Tešlár Špecifikácia pžiadaviek (12%) Analýza (18%) Návrh (18%) Implementácia (24%) Testvanie (18%) Nasadenie (9%) Apr Máj Jún Júl Aug Sep Okt 5 (6) 1 (2) () () () () 1 6 (11) () () () () 1 1 55 (1) () () () 1 1 1 3 (7) () () 1 1 1 6 (14) 2 (4) () 1 1 1 1 (24) 6 (11) () 1 1 1 1 (24) 1 Celkv (8) (25) (4) (55) (66) (83) (1) Tab.1. Plánvané uknčené percentá pre každú aktivitu a ich váhy za mesiac 1 (9) Obr.1. Predpkladaný prgres prjektu
Ak mnitrvať sftvérvý prjekt 5 Meranie prgresu zalžené na jedntkách práce Druhá metrika prgresu v prjekte je viac zameraná na prgres z perspektívy rzsahu prjektu. Namiest pčítania percent uknčenia aktivít, sa pčítajú uknčené jedntky práce na prjekte. Na začiatku sa teda určí predpkladaný celkvý pčet jedntiek práce, predpkladané dátumy začiatku a uknčenia prjektu, a súčasne plánvá línia reprezentujúca pčet jedntiek uknčených v rôznych časvých intervalch. Typická plánvá línia pre väčšinu sftvérvých prjektv má tvar zakrútenéh písmena S. Prgres je najprv pmalý, ale ptm viditeľne rastie, aby napkn zastal pri finálnych a najťažších jedntkách. Typickými jedntkami práce pre sfvérvé prjekty sú riadky kódu a funkčné blky. Riadky kódu Riadky kódu je sftvérvá metrika, ktrá meria veľksť sftvéru, teda výstupu sftvérvéh prjektu, ak pčet riadkv v texte zdrjvéh kódu prgramu. Pznáme dva hlavné typy riadkv kódu: fyzické a lgické. Fyzické riadky kódu pčítajú riadky zdrjvéh kódu prgramu vrátane kmentárv a prázdnych riadkv, zatiaľč lgické riadky kódu sa snažia merať iba príkazy. Riadky kódu pskytujú veľmi rýchly a autmatický phľad na veľksť sftvéru. Slúžia na intuitívne meranie vďaka faktu, že sú viditeľné a ich efekt je ľahk ukázateľný. Tát sftvérvá metrika vznikla v dbe, keď bli pužívané riadkv-rientvané prgramvacie jazyky, ak napr. assembler a FORTRAN. Dnešné bežne pužívané jazyky pvľujú rôzne zápisy a frmátvania kódu a jeden riadk textu nemusí autmaticky zdpvedať jednému riadku kódu. Ďaľšie kmplikácie pri pužití tejt metriky vznikajú pre dlišné schpnsti prgramátrv. Skúsení prgramátri sú schpní napísať prgram s taku istu funkcinalitu s menším pčtm riadkv, pret jeden prgram môže mať viac funkcií ak pdbný rvnak dlhý prgram. Riadky kódu sú tiež neefektívne pri prvnávaní prgramv napísaných v rôznych prgramvacích jazykch. Prgramvacie jazyky pskytujú rôzne mžnsti na vyknanie tých istých výpčtv. Extrémnym prípadm môže byť prvnanie zdrjvéh kódu nižšieh prgramvacieh jazyka (napr. assembler) s vyšším bjektvým-rientvaným prgramvacím jazykm (napr. Java). Na vyrvnanie rzdielv medzi prgramvacími jazykmi už ale slúžia nrmalizvacie úpravy. Najpdstatnejšu nevýhdu z hľadiska mnitrvania celéh sftvérvéh prjektu je t, že riadky kódu dkážu určiť prduktivitu prjektu pskytnutím výsledkv len fázy implementácie, ktrá znamená asi 3 35 % celéh úsilia na prjekte. Pret pre statné fázy je ptrebné určiť iné jedntky práce. Funkčné blky Funkčné blky vyjadrujú rzsah sftvérvéh prjektu na základe funkcinality, ktrá je vnímaná pužívateľm sftvéru. Veľkým kladm tejt metriky je implementačná nezávislsť, teda nezávislsť d prgramvacieh jazyka.
6 Jarslav Tešlár Funkčné blky pčítajú s nasledujúcimi funkcinalitami sftvéru: - Dátvá funkcinalita Interné lgické súbry Externé rzhrania - Operačná funkcinalita Externé vstupy Externé výstupy Externé dpyty Funkčné blky nie sú abslútne presné. Čast nie sú dbre aplikvateľné na prvnanie viacerých rganizácii. Ale ak sú pužívané vrámci prjektv jednej rganizácie, pskytujú veľmi dbrý spôsb merania veľksti prgresu na prjekte a ich presnsť sa vtedy dhaduje d 5%. Pret sa stali najpužívanejšu metriku a svetvým štandardm na výpčet rzsahu sftvéru a určenia prduktivity práce na prjekte. Prvnanie a výber metriky Hlavnu výhdu percentuálnej metriky na meranie prgresu na sftvérvm prjekte je, že môže pridať percentá činnstiam, ktré sú ešte len čiastčne vyknané. Naprti tmu, výhda metriky zalženej na jedntkách práce je, že ukazuje prgres aktuálneh stavu prjektu, ak sa lineárne phybuje ku splneniu cieľv. Nevýhdu merania prgresu zalženéh na činnstiach je skresklensť výsledných infrmácií, pretže prjekt môže mať percentá znázrňujúce vyknanú prácu, hci žiadne jedntky práce nebli úplne dknčené. Meranie jedntiek času však nemá žiadne výsledky, pkiaľ jedntky práce nie sú uknčené. Najlepší spôsb mnitrvania sftvérvéh prjektu je ideálne zvliť na základe štyrch spmínaných kriterií: bjektivita, reálny čas, viac úrvní, predikcia. Mal by byť určený celým prjektvým tímm na wrkshpe pred začatím samtných prác na prjekte. Najskôr sa vhdne definujú činnsti aj jedntky práce pre samtný prjekt a na základe nich a kritérii sa vyberie jedna metrika, ktrá sa pužije na sledvanie prgresu prjektu. Výber vhdnej metriky však stále nezaručuje, že mnitrvanie prjektu zabezpečí svju funkciu a bude nazaj pukazvať na nedstatky a sklzy v sftvérm prjekte aleb na jeh správny chd. Každá metrika ttiž stjí a padá na subjektívnych dhadch prjektvéh manažéra, teda vedúceh tímu, a menšu mieru aj na dhadch jedntlivých členv. Pdľa môjh názru je pret v tmt aspekte dôležitá súdržnsť, kmunikácia a synchrnizácia tímu, manažérske a krdinačné schpnsti prjektvéh manažéra ak vedúceh tímu. Tím prechádza pri plnení jedntlivých prjektv vývjm, nadbúda skúsensti s spluprácu v tíme, zaúča sa práci s viacerými prblematikami. Vedúci tímu vníma každú sbnsť, vidí kvality a zamerania jedntlivcv, pstupne zisťuje, č d nich
Ak mnitrvať sftvérvý prjekt 7 môže čakávať. Prideľuje jedntlivé úlhy vhdným riešiteľm a vie lepšie určiť dbu riešenia úlh. Jeh subjektívne dhady sa čraz viac blížia bjektivite. Ak niektrí členvia tímu nestíhajú nasledvať časvý harmngram svjej úlhy, dôležité je ich neustále mtivvanie a zdravá pracvná atmsféra. Ukážkvu mtiváciu by mala byť precízna práca vedúceh tímu, pchvaly za správne rzhdnutia. V takmt tíme by mal mnitrvanie nie len sledvať, ale aj zabezpečiť neustály prgres prjektu, dstatčnú prduktivitu práce a efektívne priblížiť úspešné uknčenie prjektu pdľa prjektvéh plánu. Záver Hlavnu úlhu mnitrvania sftvérvéh prjektu je zaznamenávať a sledvať vývj prjektu a jeh stavu vzhľadm na plán prjektu, t.j. prgres prjektu. Ak pukazuje tát esej, prgres kmplexných sftvérvých prjektv je ťažk merateľný a existujú len približné metriky zalžené na subjektívnych dhadch prjektvých manažérv a jedntlivých členv tímu. Dve základné metriky prgresu rzdeľujú prácu na prjekte na činnsti aleb na jedntky práce, ak napr. riadky kódu či funkčné blky. Výber a pužitie niektrej techniky nemusí ešte znamenať, že sledvanie prgresu prjektu bude úspešne infrmvať aktuálnm stave prjektu. Je ale jedným úspešným predpkladm, ktrý v kmbinácii s dbrými skúsensťami jedntlivých členv tímu, zdravej tímvej splupráce a krdinačných zručnstí vedúceh tímu, vedie k reálnym výsledkm mnitrvacieh prcesu. Pužitá literatúra 1. IFPUG: Hw t effectively track sftware prgress. [nline]. 28. januára 22. Dstupné na: <http://www.infrmit.cm/articles/article.aspx?p=27356> 2. Sctt Berkun: Wrk vs. Prgress [nline]. 15. augusta 22. Dstupné na: <http://www.scttberkun.cm/essays/45-wrk-vs-prgress/> Anntatin Hw t mnitr a sftware prject Nwadays dzens f peple wrk tgether many mnths n average sftware prjects. Smetimes it is impssible t crdinate team wrk effectively and finish the prject in time in the way it satisfies all the custmer's requirements. That is why a mechanism has uprised, which has tried t prvide a cnstant prgress f the prject. This mechanism includes recrding finished activities in the prject, analysing them and evaluating finished and ntfinished wrk. Then the current state f the prject can be set and it is cmpared t the prject plan. Fllwing that managers can make sme changes t the prject leading it t a successful finish. This essay deals with the tpic f mnitring sftware prjects and its standard methds.