Víc lidí udělá více práce, není-liž pravda? Není, respektive nemusí být! Stejně jako devět žen neporodí dítě za jeden měsíc. Brooksův zákon je postaven na pozorování z oboru řízení softwarových projektů, a tvrdí, že přidání dalších pracovníků do zpožděného projektu povede k jeho ještě většímu zpoždění. Ekonomové znají obdobu tohoto jevu z hospodářského zákona klesajících výkonů.
Přidání dalších pracovníků do zpožděného projektu povede k jeho ještě většímu zpoždění.
Projekty v IT branži se občas zpožďují. Někdy víc než občas. To pak stojí hodně peněz, nervů, ztráty důvěry – a dalších věcí, s nimiž se většinou nechlubíme. Vymlouvat se na stavebnictví, oproti němuž je IT z pohledu své existence ještě v prenatálním stádiu, a kde se děje to samé už tisíce let – není taktéž úplně košer.
S pravidlem přišel Fred Brooks v r. 1975 ve své knize The Mythical Man-Month: Úvahy o softwarovém inženýrství, která je již klasikou a rozhodně stojí za přečtení i dnes. Autor zde sám říká, že jde o velmi velké zjednodušení, ale přesto uvádí:
- Mnoho úkolů je dále nedělitelných. Nedělitelný úkol nelze efektivně rozdělit mezi více jednotlivců. Zabere tedy přibližně stejně či víc času, i když bude k mání větší počet pracovníků.
- Čím víc lidí na projektu pracuje, tím víc času tráví každý z nich – za účelem organizace práce – dorozumíváním s ostatními. Suma komunikační režie roste úměrně druhé mocnině počtu pracovníků, kteří pracují na příbuzných úkolech. (Cha! Opačné vyznění Metcalfeho zákona!)
- Softwarové projekty bývají často hodně sofistikované a zejména v cílových rovinkách vyžadují od jednotlivců kromě oborových znalostí i komplexní porozumění projektu. Nový pracovník musí být členy původního týmu dlouze seznamován s podstatou, místo toho, aby tým efektivně pracoval na finalizaci projektu. Je také pravděpodobné, že během zaškolování novic do projektu zanese z neznalosti další programátorské chyby, jejichž vyhledávání a opravy zase uberou ze vzácného času zkušenějších kolegů.
Zapojení nových pracovníků do projektu s sebou tedy může přinést další výzvy:
- vygeneruje další zpoždění
- snižuje produktivitu stávajícího týmu – seznámení s procesem vývoje, celková architektura řešení, objasnění vývojového prostředí a pravidel psaní kódu, nové sociální vazby, atd.
- zvyšuje nároky na dorozumívání – více komunikačních kanálů
- způsobuje demotivaci původního týmu
Rozloučíme se s 90 % stávajících vývojářů – a celý projekt dokončíme se zbylými 10 % členů týmu.
Jednou z možností úspěšného dokončení projektu je vyhnout se obloukem Brooksovu pravidlu. Například pomocí tzv. plánu Bermudy, kdy se v projektu místo rekrutování nových, naopak rozloučíme s 90 procenty stávajících vývojářů – a celý projekt dokončíme se zbylými deseti procenty členů týmu. A proč se tento plán jmenuje Bermudy? Prostě podle hlášky: Pošlete je na Bermudy! Myšleno oněch 90 procent. Stále se vám to vyplatí, projekt výrazně zeštíhlíte a zvýšíte pravděpodobnost jeho úspěšného dokončení.
Všimněme si, že nárůst nároků na dorozumění v rámci týmu funguje na principu Metcalfeho zvyšování hodnoty komunikační sítě – hodnota sítě je přímo úměrná druhé mocnině počtu připojených zařízení. Jenomže zde s opačným znaménkem. Čím více členů v týmu, tím větší Babylon, viz obrázek.
Dobří programátoři jsou obvykle 5 až 10krát produktivnější než ti průměrní.
Brooks též říká, že na rozdíl od různých technologií a technických nástrojů, jsou pro každý úspěšný projekt nejdůležitější právě lidé. Jejich zkušenosti, znalosti, organizace, pravomoci a řízení. Vždyť je to právě Brooks, jenž na docela jiném místě tvrdí: Dobří programátoři jsou obvykle 5 až 10krát produktivnější než ti průměrní.
Brooksovy zkušenosti inspirovaly k novým agilním přístupům pro vývoj software, jež obecně konvertují od fixních robustních specifikací projektů k odlehčeným a pružnějším přístupům založených na iteracích s kratšími, pevně stanovenými časovými intervaly a zapojením menších týmů. Ty bývají z důvodu zjednodušení týmové komunikace a spolupráce obvykle tvořeny 5-9 pracovníky.
Frederick Phillips Brooks, dnes už téměř devadesátiletý americký informatik je známý jako šéf vývoje IBM operačního systému OS/360, o jehož genezi napsal výše citovanou knihu. Zabýval se rovněž virtuální realitou a molekulární grafikou. V r. 1999 obdržel Turingovu cenu za významné příspěvky v oblasti architektury počítačů, operačních systémů a softwarového inženýrství.
Seriál Zákony informatiky:
- Úvod a Moorův zákon (1)
- Zákon zrychlujících se změn (2)
- Finanční deriváty Mooreova zákona (3)
- Bellův zákon počítačové evoluce (4)
- Jak Kryder odsunul Moora do vedlejší role (5)
- Jonathan Koomey a spotřeba počítačů (6)
- Metcalfe, Gilder a sítě (7)
- Sarnoffův rozhlasový zákon (8)
- Reedův zákon a sítě v sítích (9)
- Beckstromův zákon a ekonomická hodnota sítě (10)
- Robertsův zákon zvyšování přenosové rychlosti (11)
- Nielsenův zákon o internetové šířce pásma (12)
- Software je plyn. Nathanovy softwarové zákony (13)
- Jak rychle se zpomaluje software (14)
- Trh volí bloatware (Gatesův zákon) (15)
- Kolik třešní, tolik višní? Brooksův zákon (16)
- Když Brooksův zákon neplatí (17)
- Návštěva u Annie DeCaprio s Hofstadterem a Cheopsem (18)
- Organizace, její struktura a IT architektura podle Mela Conwaye (19)