Legacy

Oude software. Eerst begrepen, dan vernieuwd.

Je systeem draait al jaren en doet zijn werk. Maar niemand weet nog precies hoe, en elke wijziging voelt als een gok. We brengen eerst in kaart wat je software echt doet. Daarna moderniseren we stap voor stap, met bewijs dat er niets verandert wat niet mag veranderen.

01 · Waarom het misgaat

De meeste legacyprojecten gaan niet mis op techniek. Ze gaan mis op de volgorde.

Men begint met herschrijven voordat duidelijk is wat het oude systeem doet. Of er is geen vangnet dat laat zien wanneer het nieuwe systeem anders rekent. Twintig jaar systemen van anderen overnemen leerde ons één volgorde die standhoudt: eerst begrijpen, dan besluiten, dan pas bouwen, altijd met een test die bewijst dat het gedrag niet veranderde.

Daarom verkopen we het plan vóór de bouw. Het plan is één opdracht met vijf stappen. Bouwen begint pas als jij ervoor getekend hebt.

02 · Zo pakken we het aan

Vijf stappen. Elke stap levert iets op dat je houdt.

Eén opdracht, een vaste scope, en na elke stap een resultaat waarbij je kunt stoppen, bijsturen of doorgaan. De oude code wordt nooit aangeraakt: analyse en nieuwe code staan apart.

  1. STAP 1Wat ligt er? We beginnen met vijf vragen die de code zelf niet beantwoordt: wat valt binnen de scope, kan het systeem bij ons gebouwd en getest worden, is er een eigen build-straat, zijn er eerdere pogingen geweest en wat mag niet worden aangeraakt. Daarna controleren we of alles compleet is. Je weet vooraf wat ontbreekt.Readiness-rapport
  2. STAP 2Wat doet het? We brengen omvang, complexiteit, technische schuld en beveiliging in beeld. Je krijgt een interactieve kaart van je systeem: welke onderdelen elkaar aanroepen, waar data vandaan komt en hoe een gebruiker door de belangrijkste processen loopt.Kaart van het systeem
  3. STAP 3Welke regels zitten erin? De kennis over tarieven, voorwaarden en berekeningen zit vaak alleen nog in de code. We halen die regels eruit en schrijven ze op in gewone taal, met een verwijzing naar de exacte plek in de code. Jouw mensen toetsen ze. Daarmee heb je documentatie die klopt, ook als je nooit migreert.Regels, met bron
  4. STAP 4Wat is het plan? Op basis daarvan maken we het moderniseringsplan: doelarchitectuur, fasering en een gedragscontract dat vastlegt wat het nieuwe systeem moet blijven doen. Een plan dat je stuurgroep kan goedkeuren. Er wordt pas gebouwd als jij tekent.Plan om te tekenen
  5. STAP 5Bouwen met bewijs Voor we iets veranderen, leggen we het huidige gedrag vast in tests. Het nieuwe systeem moet daarlangs. Zo zie je zwart op wit dat het hetzelfde rekent. Welke van de drie routes hieronder we nemen, bepaalt het plan.Zelfde gedrag, bewezen
03 · Drie routes

Het plan bepaalt de route. Niet onze voorkeur.

Upgraden.

Dezelfde techniek, een nieuwe versie, zoals .NET Framework naar het huidige .NET. Je code blijft, we lossen alleen op wat tussen de versies breekt. We migreren eerst één onderdeel volledig en gebruiken die lessen voor de rest.

Stap voor stap vervangen.

Eén onderdeel tegelijk, terwijl het oude systeem gewoon blijft draaien. Geen big bang, geen nacht waarin alles tegelijk over moet. Eerst de tests die het huidige gedrag vastleggen, dan het nieuwe onderdeel, dan het bewijs dat beide hetzelfde doen.

Opnieuw bouwen.

Een nieuwe architectuur, gebouwd vanuit de regels die we uit je oude systeem haalden, op een fundament dat van jou blijft. Met acceptatietests die vanaf dag één laten zien of het klopt, en twee momenten waarop jij akkoord geeft.

Blijkt een upgrade toch het grootste deel van de code te raken, dan zeggen we dat en kiezen we samen een andere route.

04 · Twee ingangen

Eén opdracht voor het plan. Of eerst overnemen.

Vijf stappen Eén opdracht · vaste scope · een voorstel met een vaste prijs

Het moderniseringsplan. Van “wat doet het” naar een plan dat je directie kan tekenen.

De vijf stappen hierboven voor één systeem: gereedheid, kaart, regels, plan, en de tests die het huidige gedrag vastleggen. Je krijgt een voorstel met een vaste prijs voor de vijf stappen. Het bouwen daarna krijgt zijn eigen voorstel, per route.

Vraag het plan aan
Overnemen Beheer en doorontwikkeling · in de lucht houden · veiliger maken

Beheer en doorontwikkeling. We nemen het systeem over van je leverancier of van de ontwikkelaar die vertrok.

Stap 1 tot en met 3 als overdrachtsdossier: architectuur, afhankelijkheden, regels met bron, securitybevindingen. Op die basis houden we het systeem stabiel en veilig, maken we het veiliger terwijl het draait, en ontwikkelen we het door, voor een vast beheertarief in het voorstel. We zijn zelf de inkomende én de vertrekkende partij geweest.

Beheer en doorontwikkeling
05 · Veilig, ook tijdens de overgang

Je oude systeem blijft onaangeroerd. Je data blijft waar ze is.

ONAANGEROERDJe bestaande systeem wordt tijdens de analyse nooit aangepast. Analyse en nieuwe code staan apart.
WACHTWOORDENWachtwoorden of sleutels die we in de code tegenkomen, maskeren we en houden we buiten rapporten.
GEEN PRODUCTIEDATAOnze ontwikkelaars werken niet met productiedata. Ontwikkeling, test, acceptatie en productie zijn bij ons al jaren strikt gescheiden.
GECONTROLEERDCode van buiten geldt als onbetrouwbare invoer. Elke regel en elke bevinding wordt opnieuw gecontroleerd tegen de code waar hij naar verwijst.
VERHARDTerwijl de migratie loopt, maken we het oude systeem veiliger. Jij beoordeelt elke aanpassing voordat die wordt doorgevoerd.
ISO 27001We zijn ISO 27001-gecertificeerd. De securitypagina zegt waar je code verwerkt wordt en wat we er wel en niet mee mogen.
06 · Wat we van je nodig hebben

De analyse is zo goed als wat er in de code staat.

De volledige lijst krijg je bij de intake. Dit is de korte versie, zodat je weet waar je naar moet zoeken vóór het eerste gesprek. Nooit productiedata.

BRONCODEDe volledige broncode, ook gedeelde libraries en includes. Zonder is de kaart onvolledig en zijn de regels dat ook.
BUILDDe build-definitie en pipelines, en als het kan een werkende build-omgeving voor de oude versie. Daarmee draaien we oud en nieuw naast elkaar, het sterkste bewijs.
DEPLOYMENTDeploymentconfiguratie: routes, jobs, serverconfiguratie, geplande taken. Anders missen we processen buiten de code.
DATABASEDatabaseschema’s, stored procedures en views. Regels die in SQL leven, blijven zonder onzichtbaar.
SCOPEWat binnen de scope valt, wat niet aangeraakt mag worden, en welke eerdere pogingen er waren en waarom ze stopten.
EEN MENSIemand aan jouw kant die de regels kan toetsen die we vinden. Zonder blijven de regels onzeker.
07 · Wanneer is het tijd?

Zes signalen die je herkent.

SUPPORTJe platform of framework loopt uit support, of de hosting wordt er duur door.
MENSENDe mensen die het systeem bouwden zijn vertrokken, of staan op het punt.
WIJZIGINGENElke wijziging duurt langer en breekt iets anders.
AUDITEen audit, een security-vragenlijst of een NIS2-toets komt eraan.
CLOUDJe wilt naar de cloud, maar het systeem is daar niet op gebouwd.
OVERNAMEJe neemt beheer over van een andere partij en wilt weten wat je krijgt.
09 · Vragen die we krijgen

Vier vragen die altijd eerst komen.

Moeten we alles vervangen?

Zelden. Begrijp het eerst en vervang dan het deel dat het meeste pijn doet. Een systeem dat stabiel en begrepen is kan nog jaren mee. Het doel is dat je het weer kunt veranderen, niet dat je nieuwe software hebt.

Wat als de broncode weg is?

Dan is het draaiende systeem de specificatie. We leggen het gedrag van buitenaf vast (schermen, database, koppelingen) en bouwen daartegen. Dat duurt langer, en we zijn open over de delen die van buitenaf niet te zien zijn.

Hoe gaan we om met de huidige leverancier?

We schuiven aan bij de gesprekken met je leverancier, of nemen ze over. De meeste overdrachten gaan beter zodra er aan jouw kant iemand met verstand van techniek aan tafel zit. Werkt de leverancier niet mee, dan beginnen we met wat jij zelf in handen hebt: een export van de database en de draaiende applicatie. Broncode helpt, maar is geen voorwaarde.

Wat kost het om erachter te komen?

Het plan is één opdracht met een vaste scope en een voorstel met een vaste prijs voor de vijf stappen. Het bouwen daarna krijgt zijn eigen voorstel, per route, en aan het eind van elke fase beslis jij of we doorgaan.

Begin met één systeem

Laat ons het systeem zien waar iedereen omheen werkt.

Vertel waarop het draait, hoe oud het is en wie het nog begrijpt. We kijken samen wat er ligt, wat het doet en welke route past. Daarna beslis je over de volgende stap.

Van oud systeem naar nieuw, sinds 2006