Software ontwikkeling is geen engineering en zal het ook nooit worden

Software Engineering Institute

Image via Wikipedia

Sinds 1968 is de term Software Engineering in gebruik. Met de term wordt de verwachting uitgesproken dat software ontwikkeling een engineering discipline moet worden, net zoals bijvoorbeeld civil engineering of hardware engineering. Het Software Engineering Institute (SEI) is opgericht om deze doelstelling te bereiken. Maar wie beter kijkt naar de betekenis die aan het begrip gegeven is de NAVO conferentie waar het begrip werd gelanceerd, of naar de betekenis die het SEI eraan geeft, zal merken dat geen engineering bedoeld wordt maar manufacturing. De inspiratie komt uit de wereld van hardware productie, niet uit de wereld van hardware ontwikkeling. In het CMMI wordt dit met name duidelijk in maturity levels 4 en 5, waar productietechnieken als statistical process control gebruikt worden binnen de software.

Alistair Cockburn beschrijft dit op uitstekende wijze in zijn boek Agile Software Development. Hij stelt voor dat we de metafoor van engineering achter ons laten en die vervangen door de metafoor van de game. Nauwkeuriger gezegd: a cooperative game of invention and communication.

Software ontwikkeling lijkt veel meer op een spel zoals schaken, waar elke zet van de ene partij en tegenzet van de ander uitlokt zodat de vervolgstrategie steeds opnieuw doordacht moet worden. In de metafoor van engineering (productie) zou je het gehele spel van te voren kunnen doorzien en voorspellen. Maar zo zit de wereld niet in elkaar. De context verandert steeds, klanten hebben voortschrijdend inzicht in de requirements aan het product, ontwikkelaars hebben voortschrijdend inzicht in de oplossingen voor die requirements. En zo reageren we op elkaars zetten.

De metafoor van de game past veel beter bij software ontwikkeling dan de metafoor van engineering. Binnen de Agile beweging wordt dat uitstekend onderkend. Daarnaast zijn sterke parallellen te zien met het Rijnlandse denken en met Cynefin als model voor sensemaking. Binnen Cynefin valt een groot deel van software ontwikkeling binnen de complicated en vooral de complexe domeinen. Ook hier past de metafoor van de game veel beter dan die van de voorspelbare engineering.

Deze blog is een vervolg op de boekbespreking van Agile Software Development. Deel 1 ging over de filosofie van agile software development.

Advertisements

About André Heijstek

Rijnlands / Agile verbeteren van software ontwikkeling
This entry was posted in Agile, boekbespreking, CMMI, software engineering. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s