The mythical man-month, 40 jaar later

door: Carlo Kuip op: 22 maart 2016

The mythical man-month, 40 jaar later
The mythical man-month

In moderne software ontwikkeling wordt met Scrum of agile teams gewerkt aan het leveren van hoge kwaliteit software. De kern van Scrum is een multidisciplinair en zelfsturend team, met als doel om zo veel mogelijk klantwaarde te leveren. Een belangrijke noot in deze is dat het scrum/agile proces is gestoeld op een korte feedback cyclus. Dit geeft een team de gelegenheid te leren van de problemen die het heeft ondervonden en daaruit snel verbeteringen te definiëren en toe te passen. De voorgestelde verbeteringen missen, door het kijken naar de voorafgaande sprint, nog wel eens de essentie van een probleem. Daarbij wordt de oorzaak soms verwisseld met het symptoom. Om daaraan te ontsnappen is het gezond even wat meer afstand te nemen en vanuit een breder tijdsbesef te kijken naar mogelijke verbeteringen. Bronnen daarvoor zijn bijvoorbeeld observaties uit de oudere generatie software ontwikkeling.

De observaties van Brooks

In 1975 schreef Fredrick P. Brooks een verzameling essay's waarin hij de processen voor software en systeemontwikkeling onder de loupe nam. In een zestiental perspectieven heeft hij zijn observaties in heldere bewoordingen opgeschreven en gepubliceerd in het boek: "The mythical man-month".

Het lezen van dit boek is voor iedere software ontwikkelaar een feest der herkenning. Veel van de benoemde knelpunten die hij observeert en statements om die knelpunten te verbeteren passeren nog dagelijks de revue. Zowel waar het gaat om het schrijven van code als ook het managen van projecten. Een treffende observatie: "Good cooking takes time: not every task can be hurried without spoiling the result". Een klinkende analogie over de consequenties van het opofferen van kwaliteit voor doorlooptijd.

Tijdloze toepassing

Twintig jaar later, in 1995, heeft Brooks zijn boek nogmaals doorgenomen. Zijn kennis van dat moment gebruikte hij om te beschouwen of de essentie van zijn observaties vandaag de dag nog steeds geldt. Met verbazingwekkende trefzekerheid zijn veel van zijn, dan 20 jaar oude, observaties nog steeds van toepassing op de software ontwikkeling van dat moment. Dit terwijl we verwacht hadden dat, mede door alle technische innovaties en de intrede van de PC, er veel veranderd zou zijn op dit gebied.

Het is interessant om te zien hoe, nog eens 20 jaar later, de in 1975 gemaakte observaties nog steeds van toepassing zijn. In software ontwikkeling hebben we het tegenwoordig vaak over revolutionaire zaken zoals scrum/agile, innovatie, continue verbetering etc. Hierin hebben we sinds de eeuwwisseling natuurlijk grote verschuivingen gezien met de adoptie van Agile, waarbij we van eenmalige opleveringen naar continuous delivery zijn gegaan.

Kijkend naar vandaag de dag

Het opmerkelijke is dat een groot aantal zaken al door Brooks in 1975 zijn benoemd, maar dat we nu pas kunnen zien wat de essentie daarvan is. Als we het voorbeeld van continuous delivery nemen, dan schrijft Brooks dat systemen incrementeel moeten worden opgeleverd zodat deze altijd blijven werken. Tegenwoordig kunnen we zeggen: "Dat doen we!", maar 5 jaar geleden was dat heel anders.

Waar Brooks schrijft over het ‘chirurgisch team’ heeft hij het eigenlijk over een scrum (multidisciplinair) team dat zelfstandig hoge kwaliteit levert en in grote autonomie kan opereren. Dat is vandaag de dag voor veel ontwikkelaars de geëigende manier van werken. Echter, om deze manier van werken tot de norm te verheffen heeft heel wat tijd gekost.

Het grootste verschil dat ik zie is de afname van hiërarchie in teams. Brooks beschrijft de noodzaak voor hiërarchie om de juiste abstracties te kunnen maken, concept van implementatie te scheiden en werk te kunnen verdelen. Dit onderscheid is er nog steeds, maar wordt nu op een andere manier ingevuld door teamleden. De hiërarchie is opgeheven om communicatie, en daarmee ook kennisdeling, eenvoudiger te maken.

Leren van het verleden

Door terug te kijken naar het verleden kunnen we ook in 2016 nog steeds leren van de valkuilen waar onze voorgangers in terecht zijn gekomen. Brooks beschrijft dit proces als 'opklimmen uit de teer put'. Een moeizaam en stroperig proces met mooie perspectieven op de toekomst. De drive voor het continue verbeteren is daarin een hele gezonde manier om los te komen uit de 'teer put' van Brooks en onze complexe wereld te voorzien van steeds betere software.

Bedankt Frederick P. Brooks!


Carlo Kuip

Door Carlo Kuip

Carlo is enterprise architect bij SnelStart. Carlo is altijd bezig met vernieuwingen op het gebied van technologie. Daarnaast is hij continu op zoek naar verbeteringen in het proces. Zijn credo: "The only way to go fast is to go well."

Wat vond u van dit artikel?
Goed verhaal! of Geef een tip of stel een vraag aan Carlo Kuip.


Volg Carlo Kuip op social media: