Waar werkend Nederland tijdens de coronacrisis overstapte op thuiswerken, was dit bij HR2day al veel eerder de standaard. Het softwarebedrijf heeft geen kantoor; de vijftig medewerkers werken allemaal vanuit huis aan het oplossen van complexe vraagstukken voor HR-software. Hoe gaat dat in zijn werk?
HR2day ontwikkelt HR-software voor bedrijven, op basis van het Salesforce-platform. Salesforce bestaat sinds 1999, en in 2008 lanceerde het bedrijf Force.com als platform as a service (paas). HR2day ontwikkelt klantspecifieke modules die in Salesforce kunnen draaien, zodat ze aansluiten op de behoeften van het betreffende bedrijf. Dit platform wordt ontwikkeld in de eigen programmeertalen en frameworks van Salesforce, waaronder Apex, Visualforce en Lightning Web Components. Nieuwe collega’s bij HR2day moeten dus een nieuwe taal leren, maar die lijkt op Java. Developers die al ervaring hebben met Java, kunnen daardoor vrij makkelijk overstappen op Salesforce Apex.
Al voor corona geen kantoor meer
Emil Müller is sinds 2020 techlead van het frontend-team bij HR2day. Het uitgangspunt dat iedereen thuiswerkt, trok hem erg aan. Hij was net vader geworden en wilde graag meer bij zijn gezin zijn, voor een betere werk- privébalans. Emil had in het begin wel zijn twijfels over de vraag of het goed zou werken als je je collega’s minder vaak fysiek ziet, maar kwam erachter dat het prima gaat. Het bedrijf gebruikt Slack voor de dagelijkse communicatie. “Daardoor weten we elkaar heel snel te vinden; de lijnen zijn erg kort”.
De status van collega’s in Slack is ook meteen een soort aanwezigheidslijst, zodat je kunt zien aan wie je een vraag kunt stellen. Daarnaast is sinds de coronacrisis het thuiswerken ook bij andere bedrijven meer geaccepteerd. Bij vrijwel elk bedrijf waar HR2day voor werkt, is het normaal geworden om vanuit huis te werken en te videobellen. Dat maakt het nog makkelijker. Verder gebruikt HR2day Jira als productiviteitstool, om ervoor te zorgen dat iedereen weet waaraan moet worden gewerkt en waar collega’s mee bezig zijn. “Via Jira werken we met de teams in sprints en praten we elkaar dagelijks bij over waar iedereen mee bezig is.”
Voor wie toch even wil samenkomen om te overleggen, is er een ruimte beschikbaar die bijvoorbeeld ook wordt gebruikt bij sollicitaties. ”We hebben een locatie in Amstelveen. Daar kunnen we altijd gebruik van maken, maar dat gebeurt zelden. Wel komen we elke maand samen tijdens de maandmeeting. Aansluitend gaan we gezellig uit eten met elkaar. Het is echt een sociaal evenement.”
‘Het systeem is traag’
Dat binnen HR2day middels korte lijnen wordt gewerkt, blijkt ook uit de manier waarop het bedrijf problemen oplost. Het pakket dat HR2day aanbiedt, moet aansluiten op de brede en complexe behoeftes van klanten. Dat betekent dat er veel lagen en ‘schermen’ zijn die gebruikers kunnen opvragen voor bijvoorbeeld salarisstroken of pensioenoverzichten. Het opvragen van veel data vergt wat van een systeem. Hierdoor komt het weleens voor dat HR2day de melding krijgt dat het systeem traag aanvoelt.
“Het eerste dat je je dan als ontwikkelaar afvraagt, is wat er traag is”, vertelt Emil. Hij is als techlead van het frontend-team ook aangesloten bij een taskforce die de performance van het systeem wil verbeteren. Een taskforce klinkt meteen wat heftig, maar in de wandelgangen wordt het volgens Emil ook wel het ‘performanceclubje’ genoemd. Hierin zitten ontwikkelaars, maar ook mensen van de servicedesk, die dagelijks klanten spreken.
Het ligt voor de hand dat wanneer het systeem traag is, je iets aan de techniek moet veranderen, maar dat was een verkeerde aanname. Volgens Emil werd door het onderzoeken van de problemen met dit performanceclubje duidelijk dat gebruikers het over een traag systeem hebben als ze ervaren dat het hele proces van bijvoorbeeld het ophalen van een salarisstrook traag aanvoelt. “Een gebruiker maakt een hele wandeling door een aantal schermen. Tijdens die wandeling kunnen er obstakels opduiken die zorgen dat de gebruiker het proces niet snel genoeg vindt gaan.” In dat geval betekent het niet dat de backend beter moet werken, maar dat een UX-probleem moet worden aangepakt. “Het is dan dus zaak om te kijken of we het aantal handelingen van de gebruiker kunnen reduceren. Bijvoorbeeld door sommige velden al voor in te vullen en er stappen tussenuit te halen.”
Werken binnen de kaders van Salesforce
Dat laatste wil niet zeggen dat technische oplossingen niet kunnen helpen bij het versnellen van de wandeling van de gebruiker. Zo weet Emil te vertellen dat een afdelingskalender als module wordt aangeboden. “Om te kunnen achterhalen hoe het systeem presteert, heeft Salesforce een aantal eigen tools, maar die waren voor ons niet toereikend. Daarom heb ik een eigen tool ontwikkeld die geautomatiseerd meet hoe lang het duurt voordat een pagina met alle elementen is ingeladen voor een gebruiker.” Uit metingen bleek dat deze kalender het laden van een pagina vertraagde. Dat kwam niet zozeer door de kalender zelf, maar door de afbeeldingen van medewerkers die erin worden weergegeven.
“Bij HR2day proberen we de wandeling van de gebruiker door het systeem zo efficiënt mogelijk te maken”
“Om dit op te lossen, hebben we vervolgens lazy loading ingesteld, zodat eerst de rest van de pagina wordt geladen en pas aan het einde de afbeeldingen worden opgehaald.” Door met expertises vanuit alle teams naar dit soort dilemma’s te kijken, slaagt HR2day er naar eigen zeggen sneller in om tot een complete oplossing te komen. Emil: “Bij HR2day proberen we de wandeling van de gebruiker door het systeem zo efficiënt mogelijk te maken.”
Dat gaat volgens Emil niet altijd vanzelf, binnen het Salesforce-platform. “In onze modules die gebruikmaken van het Lightning Web Components-framework van Salesforce constateerden we tijdens metingen dat Salesforce requests naar de backend bundelt in één aanvraag en wacht tot alle requests in die bundel zijn afgerond.” Dit staat bij Salesforce bekend als ‘boxcarring’ en is als mechanisme bedacht om het aantal requests dat tegelijkertijd naar de backend loopt te minimaliseren.” Het was alleen juist dit mechanisme dat tegen het systeem begon te werken, vertelt Emil: “Wij gebruiken best veel Lightning Web-componenten op een scherm. De eerste componenten lieten vrij snel hun gegevens zien, maar de rest bleef achter en toonde pas na verloop van tijd opeens alles tegelijk. Omdat we niet om boxcarring heen kunnen, hebben we een stukje software bedacht waarmee we alle requests naar de backend kunnen prioriteren en dat in de gaten houdt dat maximaal zes requests parallel naar de backend lopen. Zodra een request klaar is, wordt de volgende request uit de ‘pool’ gehaald en afgevuurd. Dat resulteert uiteindelijk in een vloeiendere opbouw van het scherm, in plaats van dat eerst een klein stukje wordt getoond en daarna de rest in één keer.”
Voor het ontwikkelen van eigen modules binnen het platform van Salesforce wordt gebruikgemaakt van Salesforce Apex, de eigen programmeertaal van Salesforce. “In de praktijk lijkt dit heel erg op Java”, stelt Emil. “Als je die taal kent, kun je ook in Apex verder ontwikkelen, dus wees niet bang dat je je dat niet eigen kunt maken”. Overigens is kennis van Java geen vereiste om bij HR2day aan de slag te gaan, benadrukt Emil, “al is het natuurlijk wel een pré”.
Overigens kan teveel kennis van Java ook tegen je werken bij het ontwikkelen in Salesforce Apex. “Als jij een diehard Java-ontwikkelaar bent en alle ins en outs van die taal kent, is Salesforce misschien niet je ding.” Dat heeft te maken met de beperkingen die Salesforce zelf aan zijn software stelt. Zo moet je rekening houden met limieten die Salesforce heeft ingesteld met betrekking tot bijvoorbeeld het werkgeheugen. Emil: “Als je een scherm hebt waarin salarisstroken worden weergegeven, dan mag je daar maar een beperkte hoeveelheid informatie op tonen. De reden hiervoor is dat we cloudbased ontwerpen. Om te zorgen dat je een schaalbare applicatie maakt, moet je je aan bepaalde regels houden. De limieten van het platform voorkomen dat een gebruiker met een zware query het systeem overbelast. Onze applicatie draait daarom net zo goed moeiteloos voor één gebruiker als voor voor 100.000 gebruikers. Het spelen met die limieten maakt het werk echt leuk. Je krijgt er vanzelf behendigheid in en het resulteert in cloudsoftware in plaats van een gehoste clientserver-applicatie.”
Het dna van HR2day
HR2day wil natuurlijk net als elk ander softwarebedrijf dat klanten tevreden zijn met het product, maar het bedrijf wil ook graag het enthousiasme voor de techniek en het platform overbrengen naar de klant. Emil omschrijft dit als “klanten fan laten worden van ons, doordat we zo enthousiast problemen aanpakken en het leuk vinden om nieuwe oplossingen te maken”.Emil omschrijft dit als “klanten fan laten worden van ons ..."
Dit begint meteen als je als nieuwe medewerker binnenkomt. HR2day is geen bedrijf waarin iemand je elke dag komt vertellen wat je gaat doen; het idee is dat je eigenaarschap neemt over het werk dat je uitvoert. Bij Emil werd gevraagd om als eerste de mobiele app aan te pakken, waar allerlei problemen mee waren. Emil ging op onderzoek en kwam na twee maanden tot de conclusie dat de app opnieuw moest worden opgebouwd, in een andere architectuur. “Dat was natuurlijk geen leuk bericht dat ik aan de directie moest overbrengen, maar na mijn presentatie waren ze heel enthousiast en zeiden ze ‘Emil, ga je gang’. Vervolgens heb ik de app helemaal van de grond af opnieuw opgebouwd en daar hebben we nog elke dag profijt van.”
Dit zelfoplossende vermogen komt ook terug in de game Forensisch Administratieve Detective die HR2day liet ontwikkelen. Oplossingsgericht en zelfstandig te werk gaan is de sleutel in het oplossen van de vraagstukken in de game. Daarnaast zitten er ruim zeventien referenties in naar games en andere geeky easter eggs die ook onderdeel zijn van het dna van HR2day. Weet jij ze te vinden? Speel de game op de website van HR2day en laat als reactie onder het artikel weten hoeveel referenties jij hebt gevonden.
Overweeg je een carrièreswitch? Bekijk dan hier de vacatures die openstaan bij HR2day. Als er geen vacature voor jou tussenstaat, ben je altijd vrij om een open sollicitatie te sturen.
Dit artikel is geen redactioneel artikel, maar gesponsord en tot stand gekomen dankzij HR2Day en Tweakers Partners. Tweakers Partners is de afdeling binnen Tweakers die verantwoordelijk is voor commerciële samenwerkingen, winacties en Tweakers events zoals meet-ups, Developers Summit, Testfest en meer. Bekijk hier het overzicht van alle acties en events. Mocht je ideeën met ons willen delen over deze vorm van adverteren, dan horen wij dat graag. Hierover kun je met ons in gesprek via [Discussie] Reclame algemeen].