Proč by neměla být ignorována zpoždění softwarových projektů

( 23. října 2020)

Pohled na nejvýznamnější výzvy, kterým týmy při poskytování softwaru čelí – a návrhy, jak mohou tyto problémy zvládat, aby udržovaly projekty na správné cestě.

Vzhledem k tomu, že dnešní podniky závodí v digitalizaci, týmy vývoje softwaru jsou pod rostoucím tlakem na poskytování nových funkcí vysokou rychlostí . Výsledkem je, že se zpoždění softwarového projektu stanou nevyhnutelnými. Problémem se stává, když jsou tato zpoždění považována za „běžnou“ součást životního cyklu vývoje softwaru. Ačkoli jediné zpoždění nemusí nutně působit větší obavy, zpoždění, která se opakují znovu a znovu, je třeba brát vážně, protože jsou často příznakem větší a nebezpečnější hlavní příčiny.

Softwarový produkt vývoj je komplexní, dynamický systém. V dobře vyváženém systému, když jsou nové požadavky přidávány do nevyřízeného produktu, stejným tempem, jsou stávající požadavky proměněny na funkce dostupné pro zákazníka. Když je tempo příchozích požadavků vyšší než tempo odchozích funkcí, systém se dostane z rovnováhy. Pokud to budeme ignorovat, bude tato nerovnováha dále postupovat a nakonec povede k selhání systému.

Zde jsou některé běžné příčiny, které v praxi často vidím:

Plánování, které je příliš optimistické

Obvykle jsme příliš optimističtí a přeceňujeme, kolik toho můžeme v určitém časovém období udělat. To nemusí být nutně špatná věc. Pokud se to však stává často, ukazuje to, že dodržování termínů není bráno vážně. Důležitým agilním principem je, že za odhad úsilí jsou odpovědní a odpovědní pouze vývojáři softwaru. Navíc je dobrým zvykem každého agilního týmu sledovat rozdíl mezi prací, která má být provedena ve sprintu, a skutečnou prací po sprintu. Cílem je sledovat pokrok v tom, jak přesně tým v průběhu času předpovídá.

S ohledem na složitost implementace

Při plánování nových funkcí sprintu je snadné přehlédnout složitosti, které vznikají během implementace. Přehlížená složitost je však často přímým důsledkem složitého softwarového designu. Pokud má software složitou strukturu a neexistují žádné jasné vzorce toho, jak softwarové moduly na sobě závisí, je nemožné mít dobrý mentální přehled o tom, jak software funguje. To znemožňuje realistické plánování. Bohužel to často není snadné vyřešit; to však určitě vyžaduje prozkoumání životaschopných způsobů renovace a vylepšení softwaru.

Neočekávané závady s vysokou prioritou

Vada produkce (chyba funkce, výkon nebo problém se zabezpečením) má určitě vysokou prioritu a je třeba ji okamžitě řešit. Ale když tyto druhy problémů příliš často brání vytváření nových funkcí, je to alarmující signál, že je třeba něco zlepšit. Toto je příznak významného technického dluhu (tj. Problémů s kvalitou kódu), který se časem nahromadil. Snížení tohoto technického dluhu by mělo mít vysokou prioritu; jinak je vysoce pravděpodobné, že se chování systému a produktivita vývoje dále vážně zhorší.

Čekání na vstup od jiného týmu

Softwarové produkty obvykle vyrábí více týmů, přičemž jeden tým produkuje vstup vyžadovaný druhým. Práce by měla být rozdělena mezi týmy způsobem, který umožňuje stabilní tok informací v systému. Zpoždění způsobená čekáním na jiné týmy naznačují, že je nutná lepší organizace týmu, aby se minimalizovaly závislosti mezi nimi. Klíčem je mít dobrého vedoucího produktu, někoho, kdo dohlíží na pokrok celého produktu a určuje efektivně priority.

Tento seznam rozhodně není vyčerpávající a může existovat mnoho dalších důvodů pro zpoždění v dodávce softwaru. Častá zpoždění jsou nicméně znamením, abyste trochu zpomalili, našli hlavní příčinu problému a vrátili systém zpět do rovnováhy.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *