Omlouvám se, že píší o takové trivialitě, kterou všichni znají. Občas mi ale připadá, že se na ni často zapomíná. Proto bude dnešní zápis krátký a budou v něm chybět odkazy na použité zdroje, protože to co budu psát, se snad každý dočte už ve slabikáři.
Vývoj software určují a omezují čtyři základní proměnné
- Čas – kolik času na vývoj máme
- Zdroje – kolik peněz, jaké nástroje, prostředky a hlavně lidi máme k dispozici
- Rozsah – kolik toho má výsledný produkt umět
- Kvalita – v jaké kvalitě to bude
Mezi těmito proměnnými platí následující exaktní vztah (vyjádřeno graficky)
Čas a zdroje se snažíme tlačit k nižším hodnotám, rozsah a kvalitu naopak k hodnotám vyšším. Bohužel jsou mezi nimi ta ošklivá pérka, která nám znemožňují volný pohyb. Je důležité si uvědomit jednu důležitou věc. NENÍ MOŽNÉ ZVOLIT HODNOTU VŠECH ČTYŘECH PROMĚNNÝCH NAJEDNOU. Mohu zafixovat nejvýše tři z nich, čtvrtá je jimi plně určena. A ne, opravdu si nemůžete určit všechny čtyři. Ani když pěkně poprosíte. Když se pokusíte stanovit všechny čtyři, ona vám nakonec stejně alespoň jedna uteče.
Dokonce vám můžu říci která. Přeci ta kterou si budete nejméně hlídat. Často to bývá čas. To pak mluvíme o zpoždění projektu (slyšeli už jste někdy ten termín?). Ale obvykle to odnese popelka kvalita. Te se velmi těžko definuje a měří, tím pádem i hlídá.
Otázka na závěr, abych zjistil jestli jste dávali pozor: Co se stane s projektem, který má pevně ve smlouvě určenu cenu, rozsah a termín dodání? (Pozor, odpověď není tak evidentní jak se může zdát).
Odpověď:
Mohlo by se zdát, že nám nezbyde než přijmout kvalitu, která vyjde z proměnných zadaných ve smlouvě. Ale pozor, hodnoty dané smlouvou nejsou totožné s těmi o kterých jsem mluvil. Pokud nám zákazník určí termín dodání a rozsah, cenu obvykle určujeme my (a trh). Když ji určíme klasickým pravidlem „nejlepší odhad nákladů plus zisk vynásob dvěma a přičti půlku“otevřeme si manévrovací prostor v oblasti zdrojů. Můžeme se pak pokusit kvalitu vytáhnout nahoru přidáním zdrojů. Samozřejmě, za cenu toho, že zákazník zaplatí přemrštěnou cenu.
Já to znám jako počet funkcí – čas – peníze, přičemž libovolné dvě proměnné určuje zákazník.
Ano, na chudinku kvalitu se často zapomíná. A ano, v teorii zákazník určuje jenom dvě proměnné, v praxi tomu tak bohužel často nebývá.
Mno myslim ze ono zakladni pravidlo SW vyvoje je:
SW muze byt vyroben rychle, muze byt kvalitni a muze byt levny. Vyberte dve moznosti.
Svatá pravda, každý z nás – vývojářů – to odkývá. Ale praxe? Zkuste být na straně zákazníka a požadujte všechny 3 atributy (cena, čas, rozsah). Když nebudete úplně mimo mísu, věřím, že dodavatele najdete. Možná to bude ten, kdo provede nejhorší interní odhad a na konci dojde k velké hádanici, když nebude moci splnit své závazky, které jste si jako objednatel představoval. Možná nakonec ani nedostanete to co jste chtěli – ale dodavatele, který smlouvu podepíše a “něco” dodá, seženete.
Řada obchodníků klidně může uvažovat i směrem, že když smlouva nebude příliš konkrétní, tak se to nakonec nějak uválí (a ono se tak velmi často i stane – jinak by to byla moc krátkozraká politika).
Skoro bych řekl, že to je docela věrný obrázek našeho českého tržního prostředí v IT. Co si o tom myslíte? Jak hodně potom platí matematická rovnice o čtyřech proměnných?!
Pingback: Jirka bianco Vágner » Základní pravidlo vývoje SW
Blbě jsem to napsal – rovnice nakonec platit bude. Nicméně, aktéři na ni obvykle v těch důležitých momentech nehledí. Možná je to i chyba zadavatele, který není schopen ohodnotit nereálnost svých požadavků a nezodpovědného dodavatele, který mu je slíbí (podle hesla Nikdo vám nedá to, co my vám můžeme slíbit).