Iets nieuws vanaf nul ontwikkelen is zoveel makkelijker dan bestaande systemen aanpassen. Je hoeft nog nergens rekening mee te houden. Geen legacy code of ongedocumenteerde beslissingen uit het verleden, geen verouderde protocollen, geen kabelbomen waar niemand meer aan durft te komen. Je kiest gewoon de beste componenten van dit moment en bouwt het op zoals het hoort.
Die luxe heb je niet als je een bestaand systeem moet moderniseren. Stel je hebt een systeem of installatie dat al jaren goed draait. Onderdelen worden moeilijker leverbaar of zijn end-of-life. De software draait op een besturingssysteem dat niet meer ondersteund wordt. Klanten vragen om remote monitoring, dashboards en koppelingen met hun eigen systemen. De markt verwacht functionaliteit die er tien, twintig jaar geleden simpelweg niet was.
Maar nu moet je deze bestaande systemen gaan upgraden terwijl alles gewoon blijft werken. Misschien wel zonder dat de gebruikers het doorhebben. Hoe pak je dat aan? Doe je het stap voor stap, of big bang in een keer? Weet je uberhaupt nog hoe alle subsystemen werken en met elkaar communiceren? Is er documentatie, of zit de kennis bij die ene collega die er al twintig jaar werkt? Kun je het nieuwe naast het oude laten draaien, of moet je op een zondagnacht de stekker omzetten en hopen dat alles werkt? En hoe test je dat eigenlijk?
Herken je dit? Ik ga komende weken dieper in op dit onderwerp. Maar ik ben ook benieuwd hoe jullie dit aanpakken. Stapsgewijs, big bang, of gewoon zo lang mogelijk uitstellen?