Je kent ze misschien wel uit de trein: de logge apparaten waarmee de NS-conducteur je ov-kaart controleert. Tot voor kort had het eerstelijns personeel – al het personeel dat rechtstreeks in contact staat met reizigers – de Railpocket, ook wel ‘baksteen met display’ genoemd. Machinisten, veiligheids- en servicemedewerkers, conducteurs en medewerkers op de perrons gebruikten het apparaat onder meer om hun rooster te raadplegen, boetes te noteren, vertragingen te melden en actuele vertrektijden aan reizigers te kunnen mededelen.

Als deze apps niet werken, kunnen de treinen niet rijden.

Misschien is het je ook al opgevallen dat de Railpockets langzaam maar zeker verdwijnen en dat de NS-medewerkers met wie jij misschien wel dagelijks contact hebt, tegenwoordig een Android-telefoon gebruiken om je kaartje te controleren. Info Support bouwde de apps die ze gebruiken voor hun dagelijkse werkzaamheden, bij NS zijn die bekend als ‘Mijn NS Apps’.

Veel te traag

Dat de Railpocket wordt vervangen heeft twee redenen, vertelt Marco Kuiper die als Scrum Master namens Info Support betrokken was bij de totstandkoming van de apps. ‘Eén: de hardware werd niet meer ondersteund door de leverancier. En twee: de Railpockets waren zo traag dat reizigers sneller van informatie waren voorzien dan NS-medewerkers.’

We wilden voorkomen dat de app rechtstreeks zou communiceren met de logge systemen van NS en stelden daarom voor om Azure als tussenlaag te gebruiken’

NS wilde af van dedicated hardware en zocht vier jaar geleden initieel een partij die een html-pagina kon bouwen die kon draaien op een mobiele telefoon. Kuiper: ‘Maar wij hebben de stoute schoenen aangetrokken en hebben NS overtuigd van ons idee: dat ze echt native zouden moeten gaan als ze maximale performance zouden willen. Met zo’n html-pagina is dat eerstelijns personeel nog te veel afhankelijk van een goede verbinding, en die is er nu eenmaal niet altijd onderweg.’

Xamarin en Azure

Info Support wilde gebruikmaken van Xamarin om de native app voor Android-toestellen te ontwikkelen, en niet van Java, zoals gebruikelijk is in Android-land. ‘We kennen C#, de ontwikkeltaal die daarin gebruikt wordt goed’, vertelt Kuiper. ‘Het fijne aan Xamarin is dat je er een native app mee kunt ontwikkelen voor Android die ook echt de look en feel van een Android-app heeft.’ Bijkomend voordeel is dat door te programmeren in Xamarin, een Android-app ook relatief makkelijk om te zetten is in een iOS-app – iets wat mogelijk in de toekomst gaat gebeuren.

Het tweede deel van het ingediende plan behelsde het gebruik van de clouddienst Microsoft Azure, waarin ook C# gebruik wordt. ‘We wilden voorkomen dat de app rechtstreeks zou communiceren met de grote, logge systemen van NS en stelden daarom voor om Azure als tussenlaag te gebruiken. Azure is geoptimaliseerd voor mobiel en levert hoge prestaties. Het idee was dat Azure er dan voor zou zorgen dat alle data klaarstaat, zodat de app uiteindelijk veel sneller laadt.’

DevOps teams

Nadat Info Support de aanbesteding van NS won, konden Kuiper en zijn collega’s aan de slag met het ‘ver-appen’ van de Railpocket naar acht apps, elk met een eigen functionaliteit. Er werd gekozen voor een agile werkwijze, met iteraties van twee weken en DevOps. ‘Daardoor waren de hordes die we moesten nemen zo getackeld’, zegt Kuiper. ‘Als er iets misgaat, kan operations meteen sparren met de developers.’
Binnen het project gebruikte het team van Kuipers Scrum; daarbuiten gebruikte hij kanban, een werkmethodiek die in de developers-wereld steeds populairder wordt en afkomstig is uit de logistieke productieketen van autofabrikant Toyota. ‘Deze methode is nog flexibeler dan Scrum en zorgde ervoor dat we inzichtelijk konden maken welke ideeën eraan kwamen, welke verdere voorbereiding daarvoor nodig was, welke ideeën bij de ambassadeurs stonden en welke bij het landelijke personeel.’