Waarom meer teamleden een vertraagd softwareproject nog verder kunnen vertragen

Wanneer een softwareproject achterloopt, lijkt de oplossing logisch: zet meer mensen in. Meer mensen betekent immers meer capaciteit en dus een snellere oplevering. In de praktijk kan precies het tegenovergestelde gebeuren.

Fred Brooks formuleerde dit in The Mythical Man-Month als Brooks’ Wet:

“Adding manpower to a late software project makes it later.”

Ofwel: het toevoegen van mensen aan een vertraagd softwareproject kan het project juist verder vertragen.

Daarvoor zijn vier belangrijke oorzaken.

1. Inwerktijd kost capaciteit

Een nieuwe ontwikkelaar is niet direct productief. Deze moet kennis opdoen over de architectuur, broncode, requirements, technische keuzes en werkwijze. Die kennis moet meestal worden overgedragen door bestaande teamleden. Juist de mensen die al productief waren, besteden daardoor tijdelijk minder tijd aan ontwikkeling.

Er ontstaat dus eerst productiviteitsverlies voordat extra capaciteit beschikbaar komt.

2. Communicatie neemt sterk toe

Naarmate een team groter wordt, neemt ook het aantal mogelijke communicatierelaties snel toe. Bij vijf teamleden bestaan maximaal 10 onderlinge relaties. Bij tien temdleden zijn dat er al 45.

Niet iedereen hoeft voortdurend met iedereen te communiceren, maar het principe is duidelijk: verdubbeling van het team betekent niet alleen meer ontwikkelcapaciteit, maar ook aanzienlijk meer mogelijke afstemming.

3. Meer mensen betekent meer coördinatie

Extra mensen moeten werkzaamheden verdelen, technische keuzes afstemmen en wijzigingen integreren. Wie doet wat? Welke wijziging heeft gevolgen voor andere onderdelen? Welke versie is leidend? Wie beslist bij conflicterende oplossingen?

Een deel van de gewonnen capaciteit gaat hierdoor verloren aan overleg, planning, coördinatie, reviews en integratie.

4. De technische samenhang kan afnemen

Software bestaat niet uit volledig onafhankelijke onderdelen. Architectuur, interfaces, gegevensstructuren en broncode hangen met elkaar samen. Wanneer onder tijdsdruk steeds meer mensen aan het projectteam worden toegevoegd, neemt het risico toe dat verschillende oplossingen niet goed op elkaar aansluiten. Dat kan extra fouten en integratieproblemen veroorzaken.

Meer geproduceerde code betekent dan niet automatisch meer voortgang.

Brooks’ Wet is geen natuurwet

De wet betekent niet dat het toevoegen van ontwikkelaars altijd verkeerd is. Extra capaciteit kan wel degelijk helpen wanneer werkzaamheden goed kunnen worden verdeeld, nieuwe ontwikkelaars snel productief zijn en er voldoende tijd resteert om hun bijdrage terug te verdienen.

De relevante vraag is daarom:

Is de extra productiviteit groter dan de extra kosten van inwerken, communicatie, coördinatie en integratie?

Relevant bij ICT-geschillen

Ook bij juridische geschillen over vertraagde softwareprojecten is dit onderscheid belangrijk.

De redenering “het project liep achter, dus de leverancier had meer ontwikkelaars moeten inzetten” is technisch te eenvoudig. Onderzocht moet worden waarom het project achterliep. Waren werkzaamheden parallel uitvoerbaar? Welke technische afhankelijkheden bestonden? Hoeveel kennisoverdracht was noodzakelijk? En op welk moment zou extra capaciteit zijn toegevoegd?