/ janturon.cz / Od kodéra k analytikovi / Metodiky vývoje

Metodiky vývoje

Při vývoji větší aplikace je nutné krom technického řešení (programátoři a grafik) zvládnout ještě byrokracii odpovídající rozsahu. Ta když je:

Aby nenastal průšvih, musí se se zákazníkem dojednat, co se vyplatí udělat, kdy to bude, jak se budou řešit změny, údržba, dodělávky. Pokud to nedělají sami tvůrci aplikace, vzniká mezi nimi a zákazníkem mezičlánek. Každý mezičlánek komplikuje komunikaci (protože při každém sdělení se ztrácí část informace), zvyšuje náklady (někdo ten mezičlánek musí zaplatit) a vytváří se tak jakási hierarchie, kdy jednatelé jsou "nad" tvůrci. To má za následek častý antivzor:

Antivzor padajícího hovna

Firma si pak zřídí kastu fluktuantů (agentů a kodérů), jejichž propouštěním se kryje neschopnost členů. Jsou-li v nějaké firmě fluktuanti, pak je většinou celá tato firma jeden velký antivzor.

Účast zákazníka na projektu

Osobně se mi velmi osvědčilo, když se zákazník aspoň občas tak na hodinu denně staví. Ne vždy má čas a chuť, ale vyplatí se mu to nabídnout - nese to následující výhody:

Vodopád (Waterfall)

Tato metodika je uplatnitelná ve velkých projektech. Nezbytnou podmínkou pro její použití je přesné definování požadavků zákazníkem. Pokud si zákazník není jist či ho při úvodním rozhovoru napadají další věci, co by aplikace měla umět, nelze tuto metodiku použít. Vodopád definuje následující fáze vývoje:

Jakmile voda opustí horní kaskádu, už se do ní nevrací. Jakmile se dohodne analýza, nemůže už zákazník doplnit své požadavky (což je vhodné podchytit smluvně), jinak by se musel změnit návrh a hodiny už provedené práce by přišly vniveč. Na druhou stranu toto omezení eliminuje byrokracii u velkých týmů.

Iterativní / Agilní

Spočívá v tom, že požadavek na aplikaci se rozdělí na několik jednoduchých kroků. Každý krok (iterace) obsahuje všechny body zmíněné ve vodopádové metodice. Po každém kroku zákazník zaplatí, dostane plně funkční aplikaci a zamyslí se, zda a jak v dalším vývoji pokračovat (což je analýza dalšího kroku).

Většinou se začíná nultou iterací, ve které se vytvoří pouze vzhled a případně nějaká triviální funkčnost. To bývá velmi rychlé (a proto levné), zákazník si lépe představí, jak bude aplikace fungovat a většinou sdělí požadavky na úpravy, které tak ušetří spoustu zbytečné práce.

Extrémní programování

Spočívá ve slpynutí všech fází: zákazník si sedne vedle programátora, povídá, co si přeje provést a programátor poslouchá, rovnou to zapisuje a testuje. Lze tak efektivně vyřešit triviální části vývoje jako úprava formuláře či vzhledu.