Delphi-applicatie vervangen of moderniseren?

Er draait in Nederland verrassend veel bedrijfskritische software op Delphi. Kassasystemen, planningstools, administratiepakketten: gebouwd in de jaren negentig of nul, en ze doen het nog steeds. Dat is geen schande, het is juist het bewijs dat de software zijn werk doet. Maar de zorgen eromheen groeien elk jaar: ervaren Delphi-ontwikkelaars worden schaars, nieuwe vind je er nauwelijks voor, en moderne eisen (webtoegang, koppelingen, mobiel) passen steeds slechter op een desktopapplicatie uit een ander tijdperk.

Ik heb dit traject in de praktijk gedaan: voor een platform voor winkelautomatisering heb ik een Delphi-applicatie volledig vervangen door een Go-backend met een Svelte-frontend. Dit stuk is wat ik daarvan kan doorgeven.

De drie opties voor een oude Delphi-applicatie

In leven houden. Delphi bestaat nog en er zijn nog specialisten. Als het systeem doet wat het moet doen en er de komende jaren weinig verandert, is dit legitiem. De risico’s zijn personeel (wie onderhoudt het over vijf jaar?) en de groeiende kloof met wat je klanten en koppelingen verwachten.

Stapsgewijs migreren. Nieuwe functionaliteit naast het oude systeem bouwen en het Delphi-deel langzaam uithollen. Dit werkt goed als het systeem uit losjes gekoppelde delen bestaat, en minder goed als alles aan alles hangt, wat bij oudere Delphi-applicaties helaas vaak zo is.

Volledig vervangen. Het systeem opnieuw bouwen op een moderne stack en overstappen. Het meest ingrijpend, maar soms de eerlijkste route: als de architectuur van het oude systeem de eigenlijke rem is, dan verlengt stapsgewijs migreren vooral de pijn.

De gebruikelijke migratieroute in de Delphi-wereld is richting .NET. Dat doe ik zelf niet. Mijn route is naar het web: een Go-backend met een moderne webfrontend, in mijn geval Svelte. Voor software die op meerdere plekken, door meerdere mensen tegelijk en op verschillende apparaten gebruikt wordt, is het web simpelweg het logischere platform dan een nieuwe generatie desktopapplicatie.

Wat het echte werk is

De code overzetten is niet het moeilijke deel. Het moeilijke deel is dat een applicatie van twintig jaar oud vol impliciete kennis zit: bedrijfsregels die nergens gedocumenteerd staan, randgevallen die ooit voor één klant zijn toegevoegd, gedrag waar mensen onbewust omheen werken. Vervangen betekent die kennis boven water krijgen voordat je hem per ongeluk wegmoderniseert.

Daarom is de eerste stap bij mij vastleggen, nog voordat er iets gebouwd wordt: hoe gedraagt het huidige systeem zich werkelijk, wat daarvan is bedoeld gedrag, en wat is een bug waar iedereen aan gewend is geraakt. Pas daarna wordt er vervangen, in mijlpalen, zodat je onderweg kunt zien dat het nieuwe systeem het oude echt afdekt.

Is jouw situatie er zo een?

Draait er bij jou een Delphi-applicatie (of iets van dezelfde generatie) waar het bedrijf op leunt, en wil je weten welke van de drie routes past? Neem contact op voor een vrijblijvend gesprek. Soms is het eerlijke antwoord dat in leven houden voorlopig prima is; dat hoor je dan ook.

Werk je aan iets vergelijkbaars?

Vertel me wat je wilt bouwen. Ik laat eerlijk weten of ik een goede match ben.

Neem contact op
Begin een gesprek