WebSupport blog

Ako pracujú vývojári vo WebSupporte

Článok bude o nazretí do zákulisia jednej z časti WebSupportu. Akým spôsobom pracuje náš development. Vo svojej práci najčastejšie využíva agilný spôsob vývoja s metodikou SCRUM. Konkrétne tomuto procesu sa budeme ďalej v článku venovať

Celý kalendárny rok je rozdelený na iterácie – 2 týždňovky. Zároveň sú developeri rozdelení do vývojových teamov. Každý projekt, update, bugfix je na tieto iterácie naplánovaný a priradený teamu. Jednotlivé teamy majú svoju kapacitu, kapacita vyplýva zo súčtu úväzkov jednotlivých developerov. Zloženie teamov sa pravidelne mení.

Každá iterácia má taktiež svoje etapy a rozdelenie. Najdôležitejšie sú: plánovací meeting, denné meetingy, demo meeting a freeday. Tu je znázornený priebeh vývoja jednej iterácie:

Klient dodá kompletnú špecifikáciu prípadne ju s ním vypracujeme. Následne rozdelíme celý projekt na backlogy.

Backlog je logický celok, ktorý vyplýva zo špecifikácie. Napr. pri vytváraní blogovacieho portálu, by bol jeden z backlogov pridávanie a manažovanie článkov, druhý by mohol byť pridávanie a manažovanie komentárov.

Jednotlivým backlogom sa určí odhadovaný čas vývoja, priorita a priradia sa do iterácií. Súčet odhadovaných časov pre backlogy nemôže presahovať kapacitu teamu. Na začiatku každej iterácie je plánovací meeting.

Plánovací meeting

Pozostáva z predstavenia a oboznámenia teamu, rozplánovania celej iterácie. Zúčastňujú sa ho všetci programátori, ktorí budú na danej iterácii pracovať.

Spoločnými silami sa každý backlog určený pre iteráciu rozdelí na menšie úlohy (tasky). Tieto tasky už interpretujú prácu developera. Čas strávený na splnení daného tasku by nemal presiahnuť 16 hodín. Pokiaľ je daný task náročnejší je potrebné ho rozdeliť na viac taskov. Tak isto je potrebné dohodnúť sa, kedy budú denné meetingy počas danej iterácie.

Pri rozdelovaní backlogu na menšie tasky má každý priestor vyjadriť sa a je to priam žiadúce. Každý task sa zapisuje spolu so všetkými pripomienkami a dodatočnými informáciami. Po spísaní všetkých taskov sa určí postupnosť, resp. priorita.

Po tom, ako sú spísané všetky úlohy nasleduje časové ohodnotenie daného tasku. Každý task zahrňuje aj dokumentáciu k danej funkcionalite a otestovanie. Členovia teamu májú kartičky, ktoré obsahujú číslo v hodinách. Tento postup sa nazýva plánovací poker.

Každý člen teamu si premyslí, koľko bude trvať vypracovanie daného tasku a vyberie príslušnú hodnotu na kartičke, avšak neukazuje ju ostatným kolegom. Po tom ako sú všetci rozhodnutí pre správnu hodnotu sú vyzvaní, aby ukázali svoje kartičky.

Každý musí následne vysvetliť prečo zvolil danú hodnotu. Všetky dôvody sa zapisujú do poznámky k danému tasku. Ohodnocovanie tasku prebieha dovtedy, pokiaľ sa všetci nezhodnú na jednej časovej hodnote. Výsledná časová hodnota sa zapíše k danému tasku. Postup ohodnocovania úlohy prebieha identicky pre každý task.

Denný meeting

Každý člen teamu je povinný zúčastniť sa ho. Prípadnú neprítomnosť musí riešiť dostatočne včas. Každý z členov teamu musí odpovedať na otázky:

Problémy sa však neriešia. Denný meeting nie je priestor pre riešenie problémov a zdržovanie celého tímu. Na daily meetingu sa môže dohodnúť prípadný termín, kedy bude meeting, na ktorom sa vyrieši problém.

Demo meeting

Stretnutie s klientom a predstavenie celej práce za 2 týždne. Klient sa pýta a upresňuje svoju špecifikáciu. Prípadné zmeny sa zapisujú.

Freeday

Slúži ako rezerva pre prípadné predĺženie iterácie. Team by sa počas tohto dňa mal vzdelávať, urobiť si poriadok v kódoch, dokumentácii, retrospektívne zhodnotiť iteráciu a urobiť prípadne vylepšenia do ďalšej. V ideálnom prípade sa neriešia tasky.

Matúš Kosa
http://twitter.com/fetket

Komentáre