Development

Software-ontwikkeling
De klok tikt

Als we zo doorgaan, loopt het spaak

Een softwarekrach dreigt, constateert Tobias Kuipers. Maar het is nog mogelijk om te voorkomen dat de softwarerevolutie zichzelf verstikt.

© CC BY 2.0 - Flickr.com,  cea +
24 augustus 2016

Een softwarekrach dreigt, constateert Tobias Kuipers. Maar het is nog mogelijk om te voorkomen dat de softwarerevolutie zichzelf verstikt.

We maken meer software dan we weggooien. Elk jaar 10 procent meer programmacode betekent ook elk jaar 10 procent meer inzet op code-onderhoud. Dat is op den duur alleen vol te houden als er een minstens even grote groei in van software engineering resources is. En dat is niet het geval, constateerde Tobias Kuipers van de Software Improvement Group (SIG) enkele maanden geleden in een column op Oreilly.com. We vroegen hem als eerste in deze korte serie over de dreigende softwarekrach wat er volgens hem moet gebeuren om te voorkomen dat de software-revolutie zichzelf verstikt.

Kuipers schetst desgevraagd 3 ontwikkelingen die het onderhoudprobleem tijdelijk zullen verzachten: 

  • Krapte leidt tot tariefverhoging en tariefverhoging leidt tot toenemend aanbod. Zo zal straks fors worden geïnvesteerd in stoomcursussen om hobby-developers tot professionals om te scholen.
  • Onderhoud wordt teruggebracht tot het hoogstnoodzakelijke, dat wil zeggen het quick and dirty patchen van fouten.
  • Bedrijven zetten hun innovatie op een laag pitje. Sommige organisaties geven nu al aan dat 90 procent van hun IT-budget opgaat aan 'keeping the lights on'. 

Voor een meer structurele oplossing vestigt Kuipers zijn hoop op technologie die onderhoud minder arbeidsintensief maakt. Daarbij doelt hij op aanpasbaar – in programmeurs jargon 'onderhoudbaar' – programmeren. Toepassing van een stuk of tien betrekkelijk simpele regels op het gebied van onderhoudbaar programmeren, resulteert al gauw in een efficiëntiewinst van 33 procent of meer. Niet alleen bij onderhoud, maar feitelijk ook al in de ontwikkelfase. Kuipers: "Onderhoud begint na de lunchpauze van dag 1 van het ontwikkelproject". 

Is de mondiale softwarekrach
nog af te wenden?

Alle aandacht voor software als aanjager van economische groei en vernieuwing doet gemakkelijk vergeten dat de meeste software op de wereld oud is. En oude software remt vernieuwing af, doordat het geregeld aanpassing behoeft, maar tegelijkertijd moeilijk aanpasbaar is. Nu al zijn er achter de schermen meer software-engineers met oude code in de weer dan met nieuwbouw. En die verhouding zal steeds schever worden. Totdat ergens in de jaren-20 van deze eeuw de software-revolutie verzandt doordat alle software-engineers nodig zijn voor onderhoud. Of toch niet?

Maandag: Hoe groot is het probleem eigenlijk?

Dinsdag: De analyse Tobias Kuipers

Woensdag: De analyse van Rini van Solingen

Donderdag: De analyse van Guido van Rossum

'Functionaliteitloze' groei

Maar beter onderhoudbaar programmeren draagt behalve door efficiëntiewinst ook nog op een andere manier bij aan het temmen van het onderhoudmonster. Zolang bestaande code nog zo ondoorgrondelijk in elkaar steekt als vandaag de dag doorgaans het geval is, gaan onderhoudsengineers er wijselijk niet in zitten veranderen. Want je kunt de gevolgen van een ingreep niet overzien. In plaats van code aan te passen maken ze er code bij. Bijvoorbeeld om een exploit af te schermen. Door niet in de code zelf te gaan veranderen, wordt vermeden dat er onopgemerkte neveneffecten optreden (of excessieve kosten moeten worden gemaakt om controle daarover te borgen). Daar tegenover staat echter wel het een zinloze (eigenlijk 'functionaliteitloze') groei van de code base veroorzaakt. Met zo'n 15 procent per jaar, weet Kuipers. Als beter onderhoudbaar programmeren dat voorkomt, dan draagt het dus dubbel bij aan het afwenden – of op z'n minst voor ons uitschuiven – van de softwarekrach. 

Tobias Kuipers is een van de oprichters van de Software Improvement Group, een bedrijf dat zich bezighoudt met metrieken op het gebied van softwarekwaliteit. Hij is momenteel bezig met het oprichten van Utilus, een bedrijf dat zich toelegt op het maken van gegarandeerd werkende software.
Lees meer over Development OP AG Intelligence
3
Reacties
J. Konstapel 25 september 2016 19:09

Als software eindeloos kan worden onderhouden hoef je geen nieuwe software te maken die weer snel oude software (legacy) wordt. Het is een enorm misverstand om te denken dat innovatie en het onderhouden van oude software niet samengaan. Het probleem heeft niets te maken met de ouderdom maar met de kwaliteit van de software en de snelheid waarmee een bedrijf achter een hype gaat aanhollen die dan weer moet worden teruggedraaid.

pim 25 augustus 2016 23:01

@Marc: Wat je punt 3 betreft: staan 'waarheid' en 'verkoop-argumentatie' per definie op gespannen voet? 'Alle verkopers liegen'?
U werkt waarschijnlijk bij de overheid... of in het onderwijs wellicht?

Marc 25 augustus 2016 06:52

(1) Er is geen natuurwet die zegt dat software met 10% groeit. Zonder die aanname is deze discussie zinloos.

(2) Ik zou wel eens willen weten hoe die 10% gemeten is. In mijn eigen loopbaan heb ik (sinds 1987) veel meer software in de prullenbak zien belanden dan dat ik heb zien ontwikkelen. Hele systemen gebouwd met ASP werden vervangen door systemen gebouwd met ASP.NET en toen opnieuw met MVC, en die system worden nu vervangen door nieuwbouw met Angular. Deze nieuwste systemen, gebouwd met de nieuwste frameworks, bieden meer functionaliteit met (veel) minder code. Deze ervaring sluit niet uit dat de groei toch 10% is. Maar het maakt me wel een beetje sceptisch.

(3) Het artikel dat deze discussie deed ontstaan was geplaatst door O'Reilly. O'Reilly verkoopt boeken. Naast het originele artikel staat een advertentie van een boek over het onderhouden van software. Toevallig?
Wat is waarheid, en wat is een verkooppraatje?

Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.