Bij HR2day werken developers aan HR- en payrollsoftware die impact heeft op honderdduizenden werknemers en pensioendeelnemers. Om te zorgen dat de software voor alle gebruikers goed blijft werken, zijn de developers in staat steeds sneller oplossingen te bouwen, te testen en uit te rollen.
"Ik kan me een situatie herinneren waarbij een gebruiker van onze software vertelde dat er iets mis was gegaan bij de salarisbetaling van een medewerker. Die medewerker kreeg daardoor onverwacht de melding ‘onvoldoende saldo’ bij het betalen van zijn boodschappen. Het ging om een probleem waar meerdere mensen tegenaan liepen. Dat is behoorlijk geëscaleerd." Aan het woord is Eric van Zuilen, dev lead bij HR2day. Het is een heftig voorbeeld, maar veel mensen krijgen elke maand te maken met een financiële puzzel. "In dit voorbeeld bleek de oorzaak een administratieve handeling te zijn die was blijven liggen bij de klant zelf, maar het kan ook weleens om een bug in de software gaan. Als we zo'n melding binnenkrijgen op onze servicedesk, staat iedereen op scherp en moeten we het meteen rechtzetten. Ons systeem wordt ook gebruikt voor de betaling van honderdduizenden uitkeringen; pensioen, lijfrente, dat soort dingen. De uitbetaling daarvan moet gewoon op tijd gebeuren, met het juiste bedrag. We zijn een schakel in de hele keten, maar wel een cruciale. Ik zou ons best maatschappelijk relevant durven noemen."
Een echte developers-club
Onlangs verscheen op Tweakers een artikel dat inging op de techniek achter - en de uitdagingen bij het ontwikkelen van - de oplossing van HR2day. Van Zuilen werkt als dev lead aan verschillende modules, waaronder documentmanagement, processen en autorisaties. "Ik schakel veel met product managers, de mensen die aangeven wat er gebouwd moet worden. Voordat we daarmee aan de slag gaan, is het een van mijn taken om te zorgen dat alles 'bouwklaar’ is: zijn de specificaties duidelijk en is alles goed omschreven? Van daaruit bepalen we hoe we het gaan aanpakken." In zijn rol schakelt hij veel met zijn collega Marian Buchlij, product manager bij HR2day. Marian: "Ik ben ook begonnen als developer en daarna doorgegroeid naar mijn huidige rol. Ik vind het leuk om te onderzoeken hoe we de processen van onze development-afdeling kunnen verbeteren. Op dit moment hou ik me bezig met het Interactions Center, een startpagina voor gebruikers van HR2day waar zij allerlei zaken rond hun salarisadministratie kunnen regelen, maar ook zaken zoals verlofaanvragen en ziekmeldingen."
Terug naar de bug uit het begin van dit artikel: hoe gaan developers van HR2day daarmee om? "Om te beginnen zijn we echt een developersclub. Er zit niet nog een managementlaag boven waar we voortdurend mee bezig zijn. Onze directeur is zelf developer, dat zegt wel iets. Het betekent dat we geen tijd verspillen aan randzaken zoals het bepalen waar de schuld ligt als er iets misgaat. Als er een probleem is, maken we gewoon iemand eigenaar en gaan we er wat aan doen. Een probleem komt meestal binnen bij de servicedesk en vervolgens zoeken we uit wat de oorzaak is en zorgen we voor een oplossing. Afhankelijk van de prioriteit voeren we een update door in de volgende versie - we brengen drie keer per jaar een grote update uit - of patchen we. Als het echt moet, bijvoorbeeld bij een probleem met de verloning, wachten we natuurlijk niet op de volgende versie en kunnen we in principe zelfs midden op de dag patchen voor een klant. Het belangrijkste is immers dat hij wordt geholpen."
Spannende momenten
De meest uitdagende update voor Marian was het uitbrengen van het nieuwe Interaction Center. Na een lange periode van testen, veel klantcontact en tal van overlegmomenten was de lancering nog altijd een spannend moment. "We waren heel benieuwd hoe het zou worden ontvangen. Op het moment van de uitrol vraag je je toch af of je misschien nog gekke dingen hebt gemist of bugs die niemand heeft voorzien, ondanks dat je uitgebreid hebt getest. Gelukkig is het vrijwel helemaal goed gegaan, er waren geen grote problemen. Iedereen kon bijvoorbeeld gewoon blijven inloggen en alle functionaliteiten gebruiken. In de dagen erna kwamen wel een paar kleine bugs aan het licht, maar die hebben we snel opgelost."
Als een issue met hoge urgentie binnenkomt, is de eerste afweging altijd of een softwarematige oplossing nodig is. Eric: "Het kan best zijn dat we de klant met een workaround verder helpen zodat we op een later moment kunnen patchen. Denk maar aan een klant die een nieuwe medewerker niet kan aanmelden. Onze servicedesk kan dat dan handmatig doen, terwijl wij op de achtergrond samen verder zoeken naar een oplossing. Vervolgens reproduceren we de situatie in een test- of ontwikkelomgeving en kijken we of we de oorzaak kunnen vinden." Voor dit laatste is het van belang dat developers bij HR2day het volledige eigenaarschap nemen over het probleem en het ook helemaal zelf kunnen oplossen. "In principe ben ik nergens afhankelijk van. Alles doen we in overleg met de product manager en de servicedesk, maar in principe beschik je zelf over de kennis en tooling om de beste oplossing te verzinnen, te testen en uit te rollen."
Werken voor honderdduizenden gebruikers
Het belang van het werk is voor Marian heel duidelijk, vertelt ze. "Omdat het in de frontend zit, kijken alle medewerkers die het pakket gebruiken naar iets waar ik verantwoordelijk voor ben. Als de interface te ingewikkeld voor ze is of het er gewoon niet goed uitziet, voel ik me geroepen er iets aan te doen. Ik spreek regelmatig met klanten en hoor dan hun feedback. Als zij iets niet handig vinden, ga ik het meteen zelf uitproberen en dan merk je soms dat iets inderdaad onhandig in elkaar steekt. Aan de andere kant vind ik het ook heel leuk om te zien dat al die mensen werken met een workflow en interface die ik zelf hebt ontworpen, en dat zij deze doorgaans als prettig ervaren."
Eric herinnert zich dat hij ooit intensief contact had met een grote onderwijsinstelling. "Dat ging over het personeelsdossier. In het onderwijs zijn diploma’s en de ‘verklaring omtrent gedrag’ belangrijke vereisten om als docent aan de slag te mogen. Voor de Belastingdienst en UWV heb je ook diverse stukken nodig. Het project om al die documenten te inventariseren en te digitaliseren had twee jaar gekost. Het slotstuk was het onderbrengen in onze applicatie en daarvoor werden wij ingeschakeld. Wij moesten vooral op het gebied van autorisatie nog de nodige aanpassingen doorvoeren. Sommige stukken mochten bijvoorbeeld wel aan de medewerker, maar niet aan de leidinggevende worden vrijgegeven. Op het moment dat we live gingen, kregen de HR-adviseurs inzicht in alle documenten en konden ook duizenden medewerkers bij hun eigen dossiers. Dat was vrij essentieel, want uiteindelijk gaat het om de kwaliteit van het onderwijs. Op zo'n moment voel je nog meer het belang van wat je doet."
De payroll-engine in Salesforce is de kern van HR2day. Als het nodig is, wordt met chirurgische precisie de code aangepast. "Een patch heeft functionele impact op diverse plekken in de applicatie", zegt Marian. "Bij dermate complexe materie is de analyse het grootste deel van het werk. De daadwerkelijke code aanpassen is soms een kwestie van het wijzigen van enkele regels, maar er zijn veel onderlinge schakelmomenten en reviews nodig. Als je een foutje maakt, staat de volgende dag de telefoon immers roodgloeiend. Het mooie van onze cloudoplossing is dat je in vergelijking met een on-premise oplossing veel gemakkelijker software distribueert. Het risico is dat een fout direct op elke gebruiker impact kan hebben. Soms kiezen we ervoor om aanpassingen bij een beperkt aantal gebruikers te activeren, via een feature switch. Dat verkleint het risico. Maar we doen vooral veel aan testen. Sterker nog, onze ontwikkelmethode is ‘test driven’.”
Marian vervolgt: “Al heel vroeg in het traject bedenk je je testscript. Vooral bij complexe aanpassingen werkt dat goed. Voor het verplaatsen van een veldje op een scherm is dat niet nodig, maar bij het uitwerken van een nieuwe pensioenregeling kan het eigenlijk niet anders. Een testscript is overigens ook gewoon code. Het zijn aparte klassen en methodes die situaties nabootsen en voorspellingen doen over het resultaat van een transactie. Elke keer als we een patch willen maken, worden alle testscripts automatisch uitgevoerd. Vrijwel al onze code is dus gedekt door testscripts en ook als slechts één validatie niet lukt, kan de hele patch niet worden uitgerold. Dit is ook de reden waarom er bijna nooit plotseling midden op de middag gepatcht hoeft te worden; we werken heel nauwkeurig. Zo zorgen we ervoor dat iedereen op tijd z’n salaris of uitkering krijgt bijgeschreven en daar meteen een notificatie van op de telefoon krijgt. Dat is het resultaat van teamwerk."
Wil je meer weten over werken bij HR2day of ben je benieuwd of er vacatures zijn die passen bij jouw profiel als developer? Ontdek het hier!