Hoe plan je al onze treinen in heel Nederland? Met vierhonderd planners en een complexe plannings- en toewijzingsapplicatie, Donna. Van personeel tot materieel, planning op knooppunten en natuurlijk het spoor zelf. Donna is onmisbaar.
Ruim honderd collega’s werken aan de applicatie. Een van die teams is Conflictsignalering. Hun software berekent waar elke trein zal zijn en koppelt direct terug naar de planner of een spoor dubbel bezet gaat zijn. De developers in het team herschrijven de applicatie zodat de planners straks op tienden van minuten eventuele conflicten tussen treinen kunnen zien.
Want met een verwachte reizigersgroei van dertig procent in de komende jaren innoveert NS op alle vlakken. Meer sporen leggen gaat niet, en de perrons verlengen kan maar beperkt. De oplossing? Meer treinen over hetzelfde spoornetwerk laten rijden.
De nieuwe applicatie berekent vijftigduizend treinbewegingen over zevenduizend kilometer spoor, opgedeeld in zestienduizend secties. Bij elkaar zijn dat miljoenen bezettingen van secties waarvoor de software beoordeelt of ze onderling overlappen en dus mogelijk conflicteren. Al die resultaten komen visueel samen op het scherm van de planners. ‘Het zijn best complexe puzzels die opgelost moeten worden qua software’, vertelt één van de developers.
Om dat op te vangen zet het team veel nieuwe technieken in. Zo werken ze met een container platform en een in-memory database die de snelle berekeningen kan realiseren. ‘Dat is stoer, want je zit met je team met nieuwe technieken te worstelen en je voelt dat je on top of things bent. Vooral omdat we van best een oude applicatie komen en nu heel erg aan het vernieuwen zijn.’
Dat ‘best oud’ klopt, want Donna is al vijftien jaar oud. De van oudsher monoliet ontwikkelt zich nu steeds verder in deelapplicaties en microservices, zodat de teams sneller nieuwe versies van de applicatie kunnen releasen. ‘Je kijkt je ogen uit als je de oude code ziet. Maar er is zoveel enthousiasme om te vernieuwen, daar krijg ik energie van. Het gaat om een miljoen regels code, dat kan je niet even in een week herschrijven.’
Net als steeds meer teams bij NS, werkt ook Conflictsignalering in een DevOps team. ‘Wij zijn als team helemaal verantwoordelijk voor dit deel van de applicatie, van development tot deployment. ‘We zijn veel aan het pionieren, dus kijken we vaak met elkaar mee. Wat kan er nog beter, elkaars code reviewen. Iedereen heeft zijn eigen specialiteit en is ook bereid elkaar te helpen.
Die teamspirit was ook de basis van het succes van het project: ‘We hebben eerst een half jaar samen hard gewerkt aan alle berekeningen van de deelapplicatie, los van de hoofdapplicatie. Toen het tijd was om te kijken of onze applicatie ook echt integreerde met de monoliet was dat wel even spannend! Als je dan met je team de resultaten van al die berekeningen functioneel op het scherm van de planner ziet verschijnen, dat is een geweldig gevoel. Toen hebben we wel even met zijn allen staan juichen.’
Cindy
Hoe is het om te werken als developer bij NS? Zijn het eenzame nerds in een kelder of is dit beroep toch socialer dan je eerst zou denken? In deze aflevering duiken we achter de computer met Cindy.
Inge
Inge Mugge is Product Owner bij NS. Hier werkt ze al 5 jaar aan verschillende apps voor NS: denk aan de Ticketer app en de Wissel app. “Ik vind het echt heel gaaf wat wij doen. Je moet dingen kunnen versnellen, verbeteren of makkelijker maken” vertelt Inge. Samen met haar team zet Inge ontzettend toffe projecten neer. Dit is dan ook de reden dat ze samen met 5 andere teams de NS Digital Award 2023 heeft gewonnen voor de Wissel app!
Colin
Colin (30) werkt als Android Developer aan de NS app. Hij vertelt: “Ik werk aan het domein kaartjes verkoop binnen de app, zodat reizigers eenvoudig een treinkaartje kunnen kopen.” Drie jaar geleden maakte hij de overstap van een zorgverzekeraar naar NS. En dat pakte voor hem goed uit. “Ik dacht dat ik al veel wist, maar bij NS dacht ik: I need to step my game up.”
Wij, en derde partijen, maken op onze website gebruik van cookies. Wij gebruiken cookies om ervoor te zorgen dat onze website goed functioneert, om jouw voorkeuren op te slaan, om inzicht te verkrijgen in bezoekersgedrag, maar ook voor marketing en social media doeleinden (laten zien van gepersonaliseerde advertenties). Door op ‘Accepteren’ te klikken, ga je akkoord met het gebruik van alle cookies. In onze Cookieverklaring kun je meer lezen over de cookies die wij gebruiken en kun je jouw voorkeuren opslaan of wijzigen. Door ‘Weigeren’ te klikken ga je alleen akkoord met het gebruik van functionele cookies.