Jak dlouho trvá vývoj aplikace

Jak vhodně odhadnout a naplánovat čas potřebný k vývoji aplikace.
Většina běžných aplikací se již „nepíše“ pomocí příkazů s celou řadou mnohdy obtížně zapamatovatelných parametrů, ale stále více se používají vizuální nástroje pro rychlý vývoj aplikací. Všechny dostupné metody však mají několik věcí společného. Jednou z nich je – pro některé skoro neřešitelná – otázka: „Jak dlouho to bude trvat?“

Ve velké většině případů je jakýkoli program vyvíjen za účelem zisku z jeho prodeje, respektive poskytnutí práv k jeho užívání, případně šíření. A staré známé pravidlo říká, že čas jsou peníze. Je tedy jasné, že budete chtít mít program dokončen v co možná nejkratším čase. Ke splnění tohoto požadavku, či mnohdy spíše zbožného přání, vám může pomoci časový odhad délky trvání jednotlivých etap – od analýzy přes návrh a implementaci až po testování a případné nasazení a údržbu. Máte-li k dispozici přesný časový harmonogram, vždy víte, kde přidat a kde vám naopak ještě trocha drahocenného času zbývá.

Důležité pro vaše rozhodování určitě také bude, jaké ekonomické důsledky může mít nedodržení termínů jednotlivých etap, nebo rovnou celého projektu. Možná jsem právě odradil programátory vyvíjející pro své potěšení. Zbytečně, i amatérům (chápáno z hlediska příjmu peněz, nikoli kvalit) mohou být informace obsažené v tomto článku velmi užitečné.

Někdy stačí selský rozum
Než se podíváme na některé možné metody odhadu (ano, odhadu – i ten „nejlepší“ časový harmonogram bývá podle nezávislých studií prováděných například analytickou organizací Gartner Group dodržen jen v několika málo procentech případů), připomeňme si, že ne vždy musí být přesné vědecké postupy tou nejlepší variantou. Nebude mít jistě význam vypracovávat rozsáhlé časové analýzy v případě jednoduchých projektů, jako je evidence kuchařských receptů či sázení Sportky. V tom případě postačí, rozvážíte-li si podrobně vše, co od výsledku své práce očekáváte a na základě obtížnosti si stanovíte termíny jednotlivých etap tak, abyste měli pocit, že „to stihnete“. Pokud pak v průběhu zjistíte, že váš názor byl příliš optimistický, odhad poopravíte. Ale pozor – nemám tím na mysli benevolentní posouvání stanovených termínů. Snažte se jednotlivé úkoly plnit včas, jinak se vám může stát, že budete termíny posouvat a posouvat, až časem začnete pracovat na jiném (a na první pohled zpravidla zábavnějším) projektu a k tomu původnímu se již nikdy nevrátíte.

… ale jde to i vědecky!
Pro stanovení časového harmonogramu můžete využít hned několika metod. Mezi nejznámější pak patří Metoda analogie, Metoda funkčních bodů či Metoda delfské věštírny.

První z nich, Metoda analogie, je použitelná v případech, kdy již nějaký ten úspěch máte za sebou. Další podmínkou je co nejpřesnější zaznamenání průběhu předchozích projektů (tedy popis jednotlivých kroků, atypické problémy …). Odhad se pak provádí na základě podobnosti, kterou lze vyjádřit například pomocí tzv. indexu shodnosti prvků (CCI – Component Commonality Index). Ten může nabývat hodnot z intervalu <0,10>, kde spodní hranice znamená naprostou rozdílnost a každý krok směrem výše zlepšení o 10 %. Nevýhodou této metody je právě sama její podstata – výsledek je ovlivněn zejména vlastnostmi, které se v původních projektech nevyskytovaly.

Metoda funkčních bodů patří sice mezi ty složitější, ale poskytuje poměrně správné hodnoty. Princip vymyslel Allan Albrecht a spočívá v rozdělení cílového systému do kategorizovaných prvků (těmi jsou například externí vstupy či výstupy). Následně se každému prvku přiřadí složitost, která se vynásobí tzv. váhovým faktorem (ke stanovení složitosti jsou k dispozici tabulky zohledňující vlastnosti prvků; stejně tak jsou pevně stanoveny váhové faktory). Součet takto získaných hodnot pak určuje tzv. neupravený počet funkčních bodů. Dalším krokem je přechod k upravenému počtu funkčních bodů (zahrne se vliv dalších faktorů, které nejsou obsaženy v kategorizovaných prvcích). A konečně se stanoví celková doba trvání realizace projektu v tzv. člověkodnech (opět jsou k dispozici převodní tabulky dle použitých vývojových nástrojů a dalších prostředků). Hlavní nevýhodou této metody je nutnost mít co možná nejpřesnější představu o výsledku vašeho snažení.

Metoda delfské věštírny je jakousi sázkou do loterie. Externím specialistům specifikujete co nejpřesněji váš cíl a požádáte je o jejich názor na časovou náročnost. Získané odhady se dále zpracovávají běžnými statistickými metodami. Na první pohled se může jednat o metodu v praxi nepoužitelnou, avšak v některých případech (zejména nejste-li schopni splnit podmínky u prvních dvou metod) může posloužit pro alespoň částečně podložený odhad.

Přesný plán nemá význam, když …
I ten nejlepší časový harmonogram bude k ničemu, jestliže se nebudete jej snažit dodržovat nebo budete podceňovat. Důležité jsou průběžné kontroly plnění jednotlivých dílčích úkolů a v případě jejich nesplnění nalezení skutečného důvodu, proč se tak stalo (zdržení může být i opodstatněné – například při rozšíření projektu o další funkčnost; nesmíte však zapomenout na přepracování harmonogramu). I v případě nejhoršího scénáře, kdy se nakonec projekt nepovede dovést do úspěšného konce, budou získané zkušenosti velmi cenné při dalších projektech. Zapamatujte si, že nepoučení se z chyb při vývoji programového vybavení může být bolestnější, než si dovedete představit – je vysoce nepravděpodobné, že se vám podaří realizovat zakázku za milióny, když jste nebyli schopni včas realizovat předchozí, méně lákavé projekty.

Co vás zpoždění vlastně stojí?
Nedodržení časového harmonogramu s sebou přináší dodatečné náklady, tedy takové, které na začátku projektu nezapočítáte. Zjednodušeně řečeno (ekonomové prominou, ale pro ilustraci toto hrubé členění postačí) mohou mít dodatečné náklady následující charakter:

1) přímé náklady, například:

  • vlastní vývoj (cena tvůrčího výkonu programátorů atd.),
  • odložení dodání zákazníkovi (jeho náklady na provizorní řešení).
2) nepřímé náklady/ztráty, například:
  • nedostupnost výhod plynoucích z nového systému,
  • případné pokuty za nedodržení termínů,
  • ztráta prestiže.
Zatímco první případ je poměrně snadno vyčíslitelný, u nepřímých nákladů/ztrát je situace podstatně složitější. Jejich výše mimo jiné závisí také na nezbytnosti včasného dodání hotového systému a na podmínkách uzavřených s vašimi odběrateli. Názorným příkladem může být firma, která se zabývá velkodistribucí spotřebního materiálu a neobejde se bez kvalitního skladového systému. Pokud tato firma již provozuje nějaký systém pro skladové hospodářství a nasazení vašeho nového systému, je důsledkem rostoucích požadavků, měsíční zpoždění při zahájení provozu sice nebude zanedbatelné, ale bude méně bolestné než v případě, kdy firma žádný obdobný systém nemá a zahájení obchodní činnosti je podmíněno stoprocentní funkčností systému.

Plánování – desetina úspěchu
Účelem tohoto článku v žádném případě nemělo být nahnat vám strach. Měl vás upozornit na to, že bezhlavě se nedá ani programovat – pokud budete přemýšlet i nad časem, který daný projekt zabere, potom máte – ne-li z poloviny, tak určitě z desetiny – vyhráno. Nedodržení časových termínů je v praxi jednou z nejčastějších příčin růstu nákladů – jak vašich na straně vývojáře, tak uživatelů na straně zákazníka. A když už nic jiného, tak žádné zpoždění není dobrou vizitkou. Nezapomínejte na to.

Zdroj: Computer

Váš názor Další článek: Týden v Doupěti

Témata článku: Software, Programování, Cílové nasazení, První krok, Plán, Přesná hodnota, Důležitý krok, Etapa, Celá etapa, Dodatečné vybavení, Jednotlivé prvky, Optimistický odhad, Případ šíření, Jednoduchý projekt, Dílčí úkol, Stanovený termín, Naprostý základ, Nejhorší scénář, Původní materiál, První případ, Přesný plán, Vývoj


Určitě si přečtěte

HTTPS byl pouze první krok. Chrome zavádí DoH, tedy šifrované DNS. Dopady mohou být obrovské

HTTPS byl pouze první krok. Chrome zavádí DoH, tedy šifrované DNS. Dopady mohou být obrovské

** Šifrovaný web je dnes už samozřejmost ** Jeden díl skládačky ale ještě chybí – DNS ** Firefox už začal a teď se na šifrované DNS chystá i Chrome

Jakub Čížek | 94

Windows 10 podle našich čtenářů: Poslali jste nám skoro 300 nápadů, jak je vylepšit

Windows 10 podle našich čtenářů: Poslali jste nám skoro 300 nápadů, jak je vylepšit

** Microsoft aktualizuje Windows 10 dvakrát ročně ** Jenže praktických novinek už není tolik jako dříve ** Poslali jste nám skoro 300 tipů, co by se měly Desítky ještě naučit

Jakub Čížek | 139

20 tipů a triků pro Gmail: Užitečné maličkosti, které zefektivní práci s e-maily

20 tipů a triků pro Gmail: Užitečné maličkosti, které zefektivní práci s e-maily

** V Gmailu je řada užitečných funkcí, které možná všechny neznáte ** Odeslání mailu můžete například pozdržet či naplánovat na později ** Nad Gmailem můžete mít s několika triky daleko lepší kontrolu

Karel Kilián | 25

Co všechno se spouští se startem Windows a proč by vás to mělo zajímat

Co všechno se spouští se startem Windows a proč by vás to mělo zajímat

** Společně s operačním systémem se spouští řada aplikací a služeb ** Mohou mít negativní dopad na celkovou dobu startu Windows ** Jak získat kontrolu nad automaticky spouštěnými programy?

Karel Kilián | 56

Antivir zdarma: 8 bezplatných řešení, která zatočí s havětí v počítači

Antivir zdarma: 8 bezplatných řešení, která zatočí s havětí v počítači

** Součástí Windows 10 je integrovaný antivirový program. Stačí to? ** Představíme vám sedm aplikací na boj proti virům a malwaru ** Všechny jsou k dispozici zdarma a některé ani nemusíte instalovat

Karel Kilián | 30

Google Coral: Raspberry Pi s čipem, který zpracuje 4 biliony operací za sekundu

Google Coral: Raspberry Pi s čipem, který zpracuje 4 biliony operací za sekundu

** Je to velké jako Raspberry Pi ** Ale je to až o několik řádů rychlejší ** Dorazil nám exotický Google Coral s akcelerátorem Edge TPU

Jakub Čížek | 18



Aktuální číslo časopisu Computer

Megatest 20 procesorů

Srovnání 15 True Wireless sluchátek

Vyplatí se tisknout fotografie doma?

Vybíráme nejlepší základní desky