Naarmate de wereld verandert, moeten bedrijven mee veranderen. Dat geldt ook voor hun it-landschappen. Deadlines, veranderende wet- en regelgeving en de toenemende vraag vanuit de business eisen hun tol. De constante druk van deze veranderingen belast een it-landschap, aangezien het erop lijkt dat er nooit genoeg tijd, geld of mensen beschikbaar zijn om een steeds groter wordende hoeveelheid ‘technical debt’ aan te pakken. Hierdoor komt het vaak voor dat kritieke problemen worden gepatcht, waardoor de complexiteit toe- en de flexibiliteit afneemt.
De tijd die it nodig heeft om problemen aan te pakken neemt toe en het implementeren van nieuwe functies wordt steeds tijdrovender en duurder. Bedrijven beginnen zich beperkt te voelen door hun it-systemen. In plaats van het enablen van business, houdt it de business tegen, waardoor deze bedrijven niet verder kunnen ontwikkelen.
Als een bedrijf zich eenmaal in zo’n situatie bevindt is het vaak moeilijk en kostbaar om eruit te komen. Het kan verleidelijk zijn om bestaande software te schrappen en volledig opnieuw te beginnen. De resultaten van deze aanpak kunnen echter variëren en gaan vaak gepaard met kostenoverschrijdingen, het missen van deadlines of bedreigingen van de operationele continuïteit .
Software modernisering is een manier om verouderde it-problemen aan te pakken. De term wordt gedefinieerd als het wijzigen, porten, herschrijven of vervangen van legacy-software volgens moderne standaarden. Om te zorgen dat je hierin de juiste keuzes maakt, heb ik een lijst met zeven overwegingen opgesteld. De juiste analyses, een goede modernisering strategie en een kosteninschatting zijn cruciaal voordat je start met moderniseren van je applicatie(s).
Hier volgen mijn zeven overwegingen voor het moderniseren van softwareapplicaties:
Start met ‘waarom’
Software modernisering is geen doel, eerder een manier om een bepaald doel te bereiken. Zoek uit waarom je het overweegt en wat je doelen zijn. Vaak komt de wens voor modernisering voort uit drie categorieën businessproblemen: technische beperkingen, operationele uitdagingen of uitdagingen op het gebied van digitalisering. Vragen die je jezelf kan stellen zijn: Wat is het effect van onze it-systemen op de ’time to market’? Hoeveel tijd besteedt it aan het draaiend houden van systemen? En hoeveel aan het ontwikkelen van nieuwe dingen? Hoe geïntegreerd is je it-landschap met dat van je stakeholders?
Geen recept zonder diagnose
De volgende stap is om uit te zoeken wat de onderliggende oorzaken zijn. Oftewel een (technische) diagnose van de huidige staat. Als deze diagnose voltooid is, kan het resultaat vergeleken worden met de gewenste staat van je software (het gedefinieerde doel van de modernisering). Hieruit komen alle gaps naar voren die moeten worden opgevuld. Je weet nu precies wat er moet gebeuren en welke it-problemen dit veroorzaken.
Gooi de waardevolle legacy systemen niet zomaar weg
Een belangrijke principe van software-modernisering is dat de waarde van oudere systemen niet genegeerd moet worden. Vaak zijn er ook opties om deze legacy-systemen te behouden en te optimaliseren. Gedurende de levensduur van een verouderd systeem zullen er waarschijnlijk veel grote en kleine wijzigingen in zijn aangebracht om de omgeving waarin het opereerde te weerspiegelen. Mensen weten hoe het systeem werkt en zijn eraan gewend om hun werk ermee gedaan te krijgen. We zien vaak dat een ‘rip-and-replace’-aanpak in deze gevallen meer verborgen kosten met zich meebrengt dan het ontsluiten van legacy middels api’s.
Kies de juiste software modernisering strategie
Er zijn meerdere manieren om een it-systeem te moderniseren, variërend van het inkapselen van een systeem in api’s tot refactoren of volledig vervangen. Bepaal per te moderniseren element welke strategie het beste past. Alles vervangen en opnieuw bouwen, gaat je meer kosten en zorgen opleveren dan een gevarieerde aanpak. De volgende factoren kunnen invloed hebben op de keuze: afhankelijkheden (hardware, support, et cetera), interoperabiliteit, mogelijkheden en capaciteit van de it-afdeling(en), de mogelijkheid om te upgraden, tijd en kosten.
Ga voor een agile-aanpak
Elke grote verandering in een it-landschap heeft een architectuur-overzicht of blauwdruk en een uitvoeringsplan nodig. Gewapend met kennis van het bestaande landschap, een lijst met tekortkomingen, problemen en nieuwe vereisten, zijn keuzes te maken over wat waar te veranderen en hoe deze veranderingen door te voeren. Maar houd er rekening mee dat het moderniseren van software een lang proces kan zijn. Vereisten van het bedrijfsleven en externe factoren veranderen voortdurend. Het is daarom belangrijk om snel te kunnen reageren, zonder de bedrijfscontinuïteit in gevaar te brengen. Kortom, een agile-aanpak met kleine iteraties is een must voor softwaremodernisering.
Krijg inzicht
Softwaremodernisering is vaak niet eenmalig, maar een continu proces. Om erachter te komen waar in de toekomst modernisering nodig is en dit proactief te benaderen, is het aan te raden om technische en functionele monitoring op te nemen in alle gemoderniseerde software.
Bereid je voor op culturele verandering
Om te voorkomen dat verandering gepaard gaat met weerstand moet je zorgen dat je niet alleen je software moderniseert, maar ook de mensen die ermee moeten gaan werken. Betrek deze werknemers vanaf het begin bij het proces, zet trainingen en workshops op en stimuleer een positieve houding ten opzichte van verandering, zowel bottom-up als top-down.
Jasper Baljeu, software engineering consultant bij Devoteam