Dobře, rychle a levně:

Doba čtení: 5 minut

Ve vývoji softwaru je obtížné dosáhnout předpokladu dobrého, rychlého a levného. Můžeme dosáhnout všech tří? Je možné dosáhnout rovnováhy? O tom si povíme zde.

Mnozí z nás, kteří pracujeme v softwarovém průmyslu, jsme se při zahájení práce na nabídkách, konzultacích nebo odhadech projektů setkali s téměř nevyhnutelnou nutností trhu: vyvinout dobrý, rychlý a levný software. Je možné mít tyto tři proměnné současně? Je tato myšlenka utopická?“

Abychom mohli odpovědět na tuto otázku a zjistit proveditelnost tohoto postulátu, je důležité, abychom si nejprve zopakovali dvě klíčové myšlenky.

Jakou cenu přisuzujete nehmotné entitě?“

Software je nehmotný produkt; nemůžeme ho vidět ani poznat jeho kvalitu, dokud není hotový. Stanovit cenu za vývoj softwaru je něco složitého (pokud nekupujete balený software místo vývoje na zakázku), a to nejen kvůli existující subjektivitě jeho hodnoty (na základě mnoha kritérií), ale také kvůli existujícím rozdílům v tom, zda je projekt jednodušší nebo složitější na realizaci.

Odhady, pilíř úspěchu

Vzhledem k tomu, že se jedná o nehmotný majetek, je provedení správného odhadu – a co nejpřesnějšího, vzhledem k tomu, že se jedná o odhad přibližný – velmi důležité, aby nedošlo k překročení rozpočtu a ztrátě času.

Souvisí s obsahem:

Máme-li na paměti, že správný odhad je základem úspěchu vývojového projektu, nemůžeme ignorovat skutečnost, že každý odhad se promítá do člověkohodin. Odborná kvalita členů týmu a jejich zkušenosti jsou přímo úměrné nákladům na vývoj.

Zkrátka, když víme, že odhad, plánování a realizaci projektu provádějí lidé, můžeme odvodit, že kvalita a odbornost profesionálů ovlivňuje náklady na projekt.

Dobrý, rychlý a levný

Pokud jsme pochopili, že software je nehmotná entita, jejíž cenu je obtížné definovat, zejména pokud není jasný odhad, pokračujme ve vysvětlování atributů dobrého, rychlého a levného a toho, jak je možné je kombinovat, ale ne mít všechny tři současně.

Dobrý a rychlý

Je možné udělat něco dobrého s rychlostí. K tomu je nutné provést dobrý odhad a následně mít dobrý plán realizace projektu tak, aby rychlost neovlivnila kvalitu výsledku.

Klíč k dosažení kvality a rychlosti spočívá v lidech, kteří na projektu pracují a kteří musí být dostatečně kvalifikovaní, aby projekt zvládli. Nezapomeňte, že kvalita odborníků je určujícím faktorem nákladů.

Vezměte v úvahu, že rychlost může být kontraproduktivní pro produktivitu: Teoreticky tým (a jeho členové) dosáhne v daném čase vrcholu produkce a udrží si ho až do konce projektu. Čím vyšší je rychlost, tím kratší dobu bude tým na vrcholu produktivity.

Podobně bude jedním z faktorů, které je třeba analyzovat, také koordinace: Čím více lidí pracuje souběžně, tím větší koordinace je nutná (možná by se mělo přidat více lidí jako koordinátorů).

Dobrá a rychlá platí zejména pro kritické nebo klíčové projekty, kde musí být zaručena kvalita produktu za každou cenu. V těchto případech je nutné mít týmy s velkými zkušenostmi. V takovém případě bude řešení dobré a rychlé, ale také drahé.

Rychlé a levné

Tady je druhá z našich kombinací tří proměnných: Nejjednodušší způsob, jak udělat něco rychle a levně, je udělat to bez kvality nebo si alespoň uvědomit, že může být horší než požadovaná. Kvalitu můžeme obětovat až do určité míry, pokud software nezpracovává kritické informace nebo nezávisí na nějaké citlivé části organizace.

Pro efekt rychlosti -protože v budoucnu lze kvalitu aplikace zlepšit- je možné jít do výroby s klíčovými funkcemi, aby produkt fungoval. V těchto případech lze postupovat takto:

  • Minimalizovat kvalitu kódu
  • Zjednodušit jeho použitelnost
  • Odložit revize kódu
  • Omezit kontroly kvality a testování.

Tímto postupem s největší pravděpodobností získáme nástroj se základní funkčností, ale nezískáme 100% vyhovující produkt. Jeho použitelnost nemusí být nejlepší, stejně jako kvalita kódu, problematická může být i jeho rozšiřitelnost (možnost změny nebo rozšíření) a znovupoužitelnost.

To se týká demo aplikací, testování konceptů, nekritického softwaru nebo jakékoli aplikace, která je škálovatelná nebo rozšiřitelná v čase.

Dobře a levně

Dávám vám poslední z našich rovnic: Pokud chce klient dobré a levné řešení, nemůže očekávat rychlé dodání.

Něco dobrého a za přijatelnou cenu lze udělat, ale na úkor času. V zásadě platí, že pokud je čas, je snazší plánovat -protože není tolik paralelních úkolů a není potřeba tolik koordinace- a špička produktivity zúčastněných lidí bude na vrcholu déle.

Dostat něco dobrého a levného je vhodné pro projekty, kde čas není kritickou proměnnou, a také pro inkrementální projekty nebo s týmy s dílčími časy (které mají interní projekty nebo iniciativy).

Nepřehlédněte to: Kvalita softwaru nebo cena:

Shrnutí

Ve vývoji softwaru je postulát vývoje softwaru dobře, rychle a levně velmi obtížně splnitelný. Vždy budeme schopni dosáhnout dvou z nich, ale zbývajícího se budeme muset vzdát. Takto je možné dosáhnout kvality ve stanovených časech a za rozumnou cenu, jen je třeba umět najít rovnováhu mezi těmito třemi veličinami, znát důsledky a jejich vzájemné vztahy, abychom této rovnováhy dosáhli.

Dosáhnout této rovnováhy bude možné, pokud budou odhady, koordinace, výběr týmu, metodika práce a použití nástrojů a technologií správné.

Dosáhli jste v nějakém projektu rovnováhy mezi těmito proměnnými? Jak se vám to podařilo?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.