Een van de grootste misvattingen van onze tijd is dat software inderdaad "zacht" is. De laatste dertig jaar heb ik voortdurend gehoord dat het hardware is die geld kost, dat het hardware is die waarde toevoegt, dat het hardware is die de klant koopt. Ik heb ooit in een ontwikkelingsgroep gewerkt met 30 mensen die aan hardware werkten en 120 mensen die aan software werkten en toch was de hele houding van de organisatie dat ze hardware ontwikkelden en verkochten. Ze hebben hun product geprijsd op basis van de hardwarefuncties en -opties die ze boden. En toch was het overgrote deel van hun ontwikkelingskosten software.

class="img-responsive

Na een jaar of wat werken voor deze jongens had ik een late avond discussie met de Boss waar ik hem probeerde te overtuigen dat hij de prijs van zijn product moest bepalen op basis van de software functies/waarde, dat hij de hardware gewoon gratis moest weggeven, althans metaforisch gezien. Hij vertelde me dat, hoewel hij het punt waardeerde, de Big Issue was dat de hardwarekosten op zijn Bill of Materials verschenen en de softwareontwikkelingskosten werden gekapitaliseerd en afgeschreven, en dus nooit direct in verband werden gebracht met de kosten van de verkoop. De kostprijs werd bijgevolg enkel bepaald door de hardware en daarom werd het product geprijsd op basis van zijn hardwarekenmerken/waarde.

Deze houding is endemisch in de hele hightech systeemindustrie. Het resultaat is dat zeer weinig bedrijven zich bewust zijn van wat hun software hen in de loop van de tijd heeft gekost om te ontwikkelen en hoeveel waarde de software werkelijk vertegenwoordigt. Verschillende studies tonen aan dat de kosten voor het ontwikkelen van een lijn van industriële software in de westerse wereld in de orde van grootte van EUR 20,- tot EUR 40,- per geleverde lijn van code vallen. Een typisch modern medisch röntgensysteem kan 15 miljoen codelijnen hebben, de ontwikkelingskosten bedragen EUR 300M - EUR 600M. De ontwikkelingsinspanning ligt rond 3125 manjaar. Dit is zo'n enorme investering dat de meeste organisaties zich slechts 1% - 5% van hun codebasis per jaar kunnen veroorloven. Met andere woorden, in de loop van de tijd is hun software veranderd in een afschuwelijk "vast" goed.

class="img-responsive

De technische schuld in software draagt verder bij aan dit probleem. Technische schulden hebben betrekking op de lange termijn technische problemen die zich voordoen in software als gevolg van korte termijn bedrijfsbeslissingen. Het leidt tot het 'rotten' van software in de tijd, waardoor het moeilijker wordt om software te onderhouden, te updaten of te re-engineeren. Technische schulden staan gelijk aan werk dat moet worden gedaan op basis van softwarecode om stil te staan en vertegenwoordigen dus kosten die moeten worden gemaakt en die niet leiden tot een hogere waarde van het eindproduct. Technische schulden zijn de vijand van softwaregedreven innovatie, omdat ze het potentieel hebben om de vooruitgang te vertragen tot een crawl.

class="img-responsive

Kortom, er is niets zacht of goedaardigs aan software. Conventioneel ontwikkeld, is het extreem moeilijk en duur om snel te veranderen. De combinatie van een grote legacy codebasis en geaccumuleerde technische schulden levert concrete problemen op voor bedrijven die afhankelijk zijn van innovatie. Succesvolle software gestuurde innovatie vereist de adoptie van een strategische lange termijn, leiderschapsgedreven aanpak van software engineering die zich richt op het voorkomen van het veranderen van software in beton.