Tien uur eerder weten welke bussen morgen rijden

Tom is senior software developer bij PSG technauts en werkt sinds zijn eerste werkdag op opdracht bij een ov-vervoerder die in meerdere provincies bussen laat rijden. Daar herschreef zijn team de software achter de ritregistratie, en automatiseerde het de vraag wie opdraait voor de kosten als een bus stilstaat.

een astronaut die stapt in de bus

De software die bepaalt welke bus jij kan nemen

Elke ochtend moeten er bussen rijden. Niet ongeveer, maar precies: bij de halte waar iemand staat te wachten, op het tijdstip dat in de app stond. Achter die belofte zit software, en die software is het werk van Tom en zijn team.

Bij deze vervoerder lopen twee planningen los van elkaar: één voor de bussen en één voor de chauffeurs. Een bus moet doorrijden, een chauffeur wisselt en houdt pauze. Die planningen komen uit een ander systeem — niet uit dat van Tom.

Wat zijn team eromheen bouwt heet ritregistratie. Elke dag wordt de planning ingeladen, en daar bovenop legt de software vast wat er werkelijk gaat gebeuren: welke haltes komen te vervallen en om welke reden, en welke ritten nog geen chauffeur hebben. Een reisregisseur ziet dat en kan iemand inplannen die klaarstaat.

“Voorheen werden alle geplande ritten om vier uur in de ochtend geladen. Nu kunnen we dat om zes uur ’s avonds doen, de dag ervoor.”

Dat is het soort verandering waar je op maandag aan begint en waarvan je een paar maanden later ziet dat de operatie er anders van werkt. Geen ticket dat je afvinkt, maar een proces dat je opnieuw mag ontwerpen.

Het knelpunt

Tien uur naar voren, in drie stappen

Het probleem zat niet in de techniek. Het zat in het moment waarop alles vast moest staan.

Stap 1

Voorheen: laden om vier uur ’s nachts

De definitieve ritten voor de volgende dag kwamen pas om 04:00 in het systeem. Wie de planning wilde bijwerken, moest daarvoor midden in de nacht aan het werk.

Stap 2

De software opnieuw geschreven

Het team herschreef de software achter de ritregistratie, zodat de planning niet langer aan dat ene moment vastzat. Geen los ticket, maar een proces dat opnieuw ontworpen werd.

Stap 3

Nu: beheren vanaf zes uur ’s avonds

Tien uur eerder. De reisregie werkt op een normaal tijdstip, verstoringen kunnen eerder worden opgelost, en wie ’s avonds zijn reis plant weet dan al waar hij de volgende ochtend rekening mee moet houden.

Vakmanschap

Software design is hier een onderwerp van gesprek

Tom heeft een uitgesproken interesse in softwareontwerp en gebruikt die om zijn eigen werk scherper te krijgen. Wie daar ook mee bezig is, vindt hier iemand om mee te sparren.

Test-driven development

Eerst het gedrag vastleggen, dan bouwen. Niet omdat het zo hoort, maar omdat je in een domein als dit anders niets durft aan te raken.

SOLID

Waar verantwoordelijkheden liggen is hier een discussie, geen aanname. Daar wordt over gepraat en soms om gevochten.

Beheerbaarheid van code

In een domein dat continu verandert wint code die over twee jaar nog te volgen is van code die vandaag snel klaar was. Dat is hier een keuze die je mag maken.

Specialisten die op elkaar leunen

De een kent softwareontwerp, de ander hardware, cloud en containers. Je vraagt kennis uit in plaats van hem aan te nemen — en dat werkt beide kanten op.

Wie betaalt als de bus stilstaat?

Valt een rit uit of raakt hij vertraagd, dan moet iemand de kosten dragen. Verwijtbaarheid heet dat. Staat de bus stil omdat hij kapot is of omdat een chauffeur zich heeft verslapen, dan is het aan de vervoerder. Ligt de straat open omdat er een waterleiding is gesprongen, dan draait de gemeente of de concessiebeheerder ervoor op.

Die afweging werd bijgehouden in een Excel-bestand. Foutgevoelig en tijdrovend — en er hing geld aan elke beslissing.

Tom was van begin tot eind betrokken bij de software die dat overnam. Incidenten worden vastgelegd, kunnen met terugwerkende kracht worden aangepast als er later informatie bijkomt, en gaan door naar de rapportages waarop een andere afdeling actie onderneemt. Die koppeling bestond niet eerder.

“Het werd allemaal bijgehouden in een Excel-bestand. We hebben dat geautomatiseerd. Ik was betrokken bij dit traject van begin tot eind.”

Het is precies het soort vraagstuk dat er simpel uitziet tot je erin zit: de regels zijn niet altijd eenduidig, de gegevens komen uit verschillende hoeken, en de uitkomst moet uit te leggen zijn aan iemand die de rekening krijgt.

Van complexe vraagstukken naar oplossingen die werken.

Wil jij ook impact maken?

Wil jij je verder ontwikkelen als tech professional en werken aan uitdagende projecten? Bij PSG technauts krijg je de ruimte om je kennis te verdiepen, nieuwe technologieën te ontdekken en samen te werken met ervaren professionals die hun vak verstaan.

Vragen

Veelgestelde vragen over dit werk

Wat het werk inhoudt, hoe groot het domein is, en wat er gebeurt als een opdracht afloopt.

Waar werk je aan als Java developer bij PSG technauts?

Aan bedrijfskritische software bij organisaties waar systemen niet mogen uitvallen, onder andere in overheid en energie. Bij een grote ov-vervoerder gaat dat bijvoorbeeld om de ritregistratie die bepaalt welke bussen morgen rijden, en om het automatisch vaststellen wie de kosten draagt als een rit uitvalt.

Hoe groot is het domein waarin je werkt?

Groot, en het groeit. Van planning en ritregistratie tot kostenverdeling en communicatie naar reizigers — vrijwel elk onderwerp raakt ergens aan wat het team bouwt. In december kwamen er twee nieuwe concessiegebieden bij, en de systemen moesten die extra belasting dragen. Er zijn geen afgebakende projecten: het zijn veel kleine en een paar grote aanpassingen naast elkaar. Overal verstand van moeten hebben is pittig, en dat blijft het.

Met welke technologie werk je?

Java met Spring Boot, microservices en cloud. Daarbij wordt expliciet nagedacht over wat een architectuur kost om te laten draaien, niet alleen of hij werkt. Test-driven development en SOLID zijn onderwerp van gesprek in het team, en beheerbaarheid van code weegt zwaarder dan snel klaar zijn.

Ben je in dienst bij PSG technauts of bij de opdrachtgever?

Bij PSG technauts. Onze Technauts hebben een vast contract bij ons en werken op opdracht bij onze klanten. Je werkgever wisselt dus niet als je opdracht wisselt.

Wat gebeurt er als een opdracht afloopt?

Dan regelt het team de volgende — je hoeft zelf niets te zoeken. In de tussentijd is die tijd van jou: je ontwikkelt je verder en werkt aan eigen projecten. Dat is een van de redenen dat het dienstverband bij ons ligt en niet bij de opdrachtgever.

Hoeveel ervaring wordt er gevraagd?

Voor een seniorrol vragen we vijf jaar ervaring, voor een mediorrol drie jaar, met een hbo- of wo-diploma. Voor opdrachten bij overheidsorganisaties is een pre-employment screening onderdeel van de procedure.

Waar zitten de opdrachten?

Bij klanten door heel Nederland. Onze eigen kantoren staan in Nieuwegein en Rotterdam, maar waar je terechtkomt hangt af van de opdracht. We kijken samen welke opdracht past bij je stack en je ambitie.

Hoe verloopt het contact als je interesse hebt?

Je kunt mailen met Aron Kosten zonder dat daar een sollicitatieprocedure aan vastzit — gewoon een gesprek over wat je zoekt. Wil je liever direct solliciteren, dan staat de vacature voor Senior Java Developer open.

Meer uit de praktijk

Wat onze Technauts nog meer bouwen

Het verhaal van Tom is er één van meer. Drie andere Technauts, drie andere domeinen, hetzelfde soort werk.

Een astronaut zweeft door de ruimte met een hand omhoog en in de andere hand een laptop

Word een Technaut!

Ben jij een ervaren Java Developer en klaar voor een nieuwe uitdaging? We zijn op zoek naar een Senior Java Developer. Bekijk de vacature en ontdek of deze rol bij jou past.