Refactoring van legacy code

We zijn ervaren in het moderniseren en refactoren van rekenprogrammatuur. Onze klanten hebben vaak legacy software die al decennia lang in ontwikkeling is. Om ook in de toekomst van waarde te blijven moet daar soms een verbeterslag op gedaan worden.

Essentieel maar verouderd

Voor veel van onze klanten is hun rekenprogrammatuur essentieel. Het speelt een belangrijke rol in de bedrijfsprocessen en bevat een wereld aan kennis en ervaring. Daarom kan deze programmatuur niet makkelijk vervangen worden.

Maar veel van deze programmatuur is al lang geleden ontstaan. Soms al in de jaren tachtig van de vorige eeuw. Door die ouderdom is de kwaliteit van de programmatuur vaak relatief slecht. Er was er destijds nog veel minder kennis over het goed opzetten van programmatuur. En de verschillende generaties ontwikkelaar, ieder met eigen opvattingen en vaardigheden, hebben de kwaliteit er meestal niet beter op gemaakt. Dit soort programmatuur staat bekend als legacy code. Dat klinkt misschien mooi als ‘erfenis’, maar ontwikkelaars hebben daar toch vaak een negatief beeld bij.

Zolang de software alleen maar gebruikt wordt, is er niet veel aan de hand. Maar zodra er iets moet wijzigen aan de programmatuur wordt de kwaliteit een probleem. Dan kan het nodig zijn om de software geheel of gedeeltelijk te moderniseren of de kwaliteit ervan te verbeteren door refactoring.

Moderniseren en refactoren

De ontwikkelaars van VORtech hebben dagelijks te maken met legacy code. Daardoor hebben ze werkwijzen ontwikkeld om daar goed en efficiënt mee om te gaan. Enkele voorbeelden van het soort ingrepen dat we soms doen:

  • Opdelen van grote stukken programmatuur in kleinere delen die zich beter laten begrijpen en testen,
  • Vervangen van achterhaalde taalconstructies door modernere varianten,
  • Verwijderen van taalconstructies waarvan nu bekend is dat ze tot grote problemen leiden, zoals COMMON block in Fortran,
  • Commentaar in de code voegen en aanpassen van de namen van variabelen, zodat de programmatuur toegankelijke wordt,
  • Reorganiseren van datastructuren in classes zodat de data die bij elkaar hoort ook bij elkaar staat.

Voordat we een ingreep doen, proberen we met de klant een zo goed mogelijke testset te maken, zodat we kunnen vaststellen dat onze aanpassingen niet tot fouten leiden. Overigens gebeurt het regelmatig dat onze aanpassingen juist fouten naar boven halen die al die tijd verborgen waren.

Het is lang niet altijd nodig om de hele programmatuur aan te passen. Grote delen van de programmatuur kunnen vaak ongewijzigd blijven omdat er (voorlopig) niets aan hoeft te gebeuren.

Heeft u een probleem met legacy code?

Als u problemen heeft met legacy code, neem dan vooral contact met ons op om te bespreken wat we voor u kunnen doen.  Als u meer wilt weten over onze aanpak van legacy code dan is de blogreeks van Koos Huijssen wellicht ook interessant voor u.