gmgtech@prod~/kennisbankcat legacy-software-vervangen.md
Legacy software vervangen of moderniseren?
Elk bedrijf heeft er één: het systeem dat al vijftien jaar draait, waar de helft van de omzet doorheen loopt, en waar niemand meer aan durft te komen. De vraag is zelden óf er iets moet gebeuren, maar wat, en vooral in welke volgorde.
Waarom oude systemen gevaarlijk worden
Niet omdat oude code slecht is. Code die vijftien jaar draait heeft bewezen dat hij werkt, en dat is meer dan een nieuw systeem kan zeggen. Het gevaar zit ernaast: de kennis vertrekt met de mensen, de taal of het platform wordt niet meer ondersteund, beveiligingsupdates stoppen, en elke wijziging duurt langer omdat niemand het geheel nog overziet.
Het omslagpunt is meetbaar. Als een kleine wijziging weken kost, als er nog één persoon is die het systeem echt kent, of als een auditor of verzekeraar over de techniek begint, dan is wachten duurder dan handelen.
De drie routes
Er zijn grofweg drie manieren om van een verouderd systeem af te komen.
- Renoveren: het systeem blijft staan, maar krijgt actuele versies, tests en documentatie. De goedkoopste route als de kern nog gezond is
- Uithollen: nieuwe onderdelen bouwen naast het oude systeem en er verkeer naartoe verleggen, tot het oude systeem alleen nog een lege schil is
- Vervangen: opnieuw bouwen en overstappen. De duurste route, en de enige die soms echt nodig is, bijvoorbeeld als het platform verdwijnt
Waarom de big bang bijna altijd mislukt
De verleiding is groot om het in één keer goed te doen: twee jaar bouwen, één weekend overzetten, klaar. In de praktijk is dat de riskantste vorm die er bestaat. Het oude systeem bevat vijftien jaar aan uitzonderingen en randgevallen die nergens beschreven staan, en die ontdekt u pas in productie, allemaal tegelijk.
De veilige weg is saai: per stuk vervangen, per stuk live, en het oude stuk pas uitzetten als het nieuwe zich bewezen heeft. Dat lijkt langzamer, maar het is de enige route waarop u onderweg kunt bijsturen en waarbij het bedrijf gewoon doordraait.
Waar u morgen mee kunt beginnen
Wat de route ook wordt, drie stappen zijn altijd raak.
- Leg vast wat het systeem nú doet: welke processen erdoorheen lopen, welke koppelingen eraan hangen, en wie het gebruikt
- Zet er tests omheen voordat er iets verandert, zodat u weet wanneer er iets breekt
- Kies het kleinste stuk met het grootste risico en begin daar, niet bij het makkelijkste stuk
gmgtech@prod~/kennisbanktail -n 1 samenvatting.txt
Vervang in stukken, nooit in één klap. En begin niet met bouwen maar met vastleggen wat er staat, want dat is de kennis die op dit moment elke dag schaarser wordt.
gmgtech@prod~/kennisbankls ../kennisbank
gmgtech@prod~/kennisbank./offerte.sh
