Erik_Philippus_02

Erik Philippus 

28 May 2008

Nogal wat bedrijven worstelen met legacyproblematiek. De moeilijkheid is niet zozeer het ontwerpen van een verbeterde architectuur, maar eerder de combinatie van de lopende projecten met de renovatiewerkzaamheden, vaak omschreven als ’verbouwen met de winkel open‘. Hoe doe je dat op een effectieve manier?

Laatst sprak ik bij ASML met Durk van der Ploeg over dit heikele onderwerp. Op een gegeven moment keek hij naar buiten, naar het voortkrioelende verkeer op de A2 en maakte een rake vergelijking tussen de renovatie van de randweg Eindhoven en re-engineering van complexe softwaresystemen. Elke dag vindt een eindeloze stroom auto‘s zijn weg over zes banen en tegelijkertijd wordt de hele zaak ingrijpend verbouwd. Hoeveel sneller zou het gaan als je de hele randweg voor een tijdje gewoon dicht kon gooien en ongestoord kon doorwerken zonder al die tijdelijke omleidingen.

Durks metafoor van de Rijkswaterstaatarchitectuur geeft goed weer waar je mee te maken krijgt als je eens goed de bezem door het softwarebouwwerk wilt halen en tegelijkertijd de hete adem in je nek voelt van de eerstvolgende release.

De kern van de problematiek ligt in het conflict tussen korte en lange termijn. De oplevering van de randweg Eindhoven staat op de borden voor medio 2010. Zo‘n megaproject vereist een deugdelijke voorbereiding en professionele uitvoering, gebaseerd op een langetermijnvisie. Doet de overheid niets, dan is een verkeersinfarct in de nabije toekomst onvermijdelijk en dat zal dan nog slechts op te lossen tegen gigantisch hogere kosten.

De vergelijking gaat onverkort op voor het moderniseren van verouderde softwaresystemen, alleen gaan we in ons vakgebied gebukt onder het juk van de korte termijn. Wij zijn gewend het dak pas te gaan repareren als het regent en we rondlopen in plassen lekwater. Iedereen is het er wel over eens dat dit eigenlijk niet zo slim is, want onder de streep kost het uiteindelijk sloten met geld. Zoals de Engelsen zo treffend zeggen: penny wise, pound foolish.

De relatieve kosten voor onderhoud van softwaresystemen stijgen de pan uit. Soms belopen ze meer dan 90 procent van de totale kosten. Iedereen voelt op z‘n klompen aan dat als zo‘n groot deel van het budget nodig is om de zaak draaiende te houden, er wel erg weinig overblijft voor nieuwe ontwikkeling – laat staan voor een structurele verbouwing. Iedereen die met z‘n laarzen in de modder van een omvangrijk renovatieproject heeft gestaan, kent het gevecht om de resources.

Zeker als het gaat om renovatie, vervult de architect een opbouwende rol. Architectuurbeslissingen liggen aan de basis voor een haalbaar en kosteneffectief migratiepad. En als er gesloopt moet worden, dan dient dat op zodanige wijze te gebeuren dat de omgeving er zo weinig mogelijk last van heeft – net zoals het verkeer op de A2.

Een big-bangbenadering is zelden de juiste optie. Succesvolle renovaties kenmerken zich door een incrementele aanpak, waarbij de correcte werking van het totale systeem voortdurend wordt aangetoond. Collega-architect Eric Kreuwels van Fei beschreef deze aanpak met een andere trefzekere infrastructurele metafoor, namelijk als het vernieuwen van een spoorlijn, waarbij je steeds een stuk spoorrails vervangt tussen twee treinen in. De uitdaging is natuurlijk wel om op tijd klaar te zijn voordat de volgende trein aan komt denderen.

Het belangrijkste kenmerk van legacysystemen is tekortschietende kwaliteit. Ik ben nog nooit een legacyprobleem tegengekomen met een puur technische oorzaak. De erosie van softwarearchitecturen heeft eerder te maken met onvoldoende sturing op de kwaliteit van zowel product als proces gedurende het gehele ontwikkeltraject. In de hectiek van de kortetermijndoelstellingen is kwaliteit al snel het kind van de rekening.

Het bieden van een evenwichtig tegenspel aan het management om de architecturele uitgangspunten – en daarmee kwaliteit – te handhaven, zie ik dan ook als belangrijke taak voor het architectengilde. Om dit spel goed te kunnen spelen, zal de architect ervan doordrongen moeten zijn dat de juistheid van architecturele keuzes niet wordt afgemeten aan de ’schoonheid‘ van de architectuur, maar op de allereerste plaats aan de concrete businessvalue die ze tot stand brengen.