Teams as a service in de praktijk

De kansen & uitdagingen, voorwaarden en voorbeelden uit het veld

Dit whitepaper geeft meer inzicht in de factoren die een belangrijke rol spelen bij het samenstellen van een goed functionerend zelfsturend team op afstand. Welke mensen heb je nodig in je team, en hoe kom je daarachter? Hoe richt je het development proces optimaal in? En welke tools kunnen hierbij helpen?

De sleutel tot succes

De juiste fundering is essentieel. Maar hoe bepaal je zo’n fundering? Welke mensen horen daarbij, hoe richt je processen in en wat is er nodig voordat je kan beginnen? Dit whitepaper licht deze keuzes toe, gaat in op de kracht van de juiste mensen en de bijbehorende samenwerking. Een belangrijke meerwaarde bij een compleet team as a service is juist deze samenwerking. Met de juiste technieken en tools haal je hier het maximale uit.

Development teams as a service in de praktijk

Hoe maak je dit tot een succes?

Het werken met teams op afstand brengt uitdagingen met zich mee, maar ook enorm veel kansen. In dit whitepaper zullen we verder toelichten hoeje de kans op succes vergroot. Dit whitepaper geeft meer inzicht in de factoren die een belangrijke rol spelen bij het samenstellen van een goed functionerend zelfsturend team op afstand. De juiste fundering is essentieel.

Maar wat is de juiste fundering? Welke mensen horen daarbij, hoe richt je processen in en wat is er nodig voordat je kan beginnen? Dit whitepaper licht deze keuzes toe, gaat in op de kracht van de juiste mensen en de bijbehorende samenwerking. Een belangrijke meerwaarde bij een compleet team as a service is juist deze samenwerking. Met de juiste technieken en tools haal je hier het maximale uit.

Development teams as a service in de praktijk

Hoe maak je dit tot een succes?

In dit whitepaper ontdek je welke factoren een belangrijke rol spelen bij het samenstellen van een goed functionerend zelfsturend remote team. Welke mensen heb je nodig in je team, en hoe kom je daarachter? Hoe richt je het development proces optimaal in? Dit laatste whitepaper gaat hierop in.

De fundering

Om te bepalen welke mensen je nodig hebt, heb je een heldere businesscase en roadmap nodig. We hebben het al eens eerder kort aangestipt; deze twee zaken zijn essentieel voor het succes van je project. Ze dicteren wat er nodig is om je (uiteindelijke) doel te bereiken. Desgewenst helpen wij klanten bij het opstellen hiervan.

De businesscase

Het vormgeven van de businesscase kan op veel verschillende manieren. Een veelgebruikte methode is de zogenaamde ‘pitch deck’. In je businesscase omschrijf je in ieder geval de doelstelling en visie, het huidige probleem en de urgentie van dat probleem. Ook hoort er een strategie in je businesscase voor de oplossing van dat probleem, zonder dat je daarbij al te concreet wordt. Een planning en fasering maken de businesscase compleet.

De roadmap

Ook voor de roadmap geldt; deze kun je op diverse manieren samenstellen en vormgeven. In de roadmap beschrijf je waar je naar toewerkt. Je legt vast wat je – vanuit businessperspectief – op welk moment wil realiseren en welk budget je daarvoor per fase beschikbaar hebt. Wat wil je over 5 jaar bereikt hebben en wat in bijvoorbeeld de komende drie maanden? In de roadmap zet je verder KPI’s om straks te kunnen bepalen wanneer je succesvol bent en wanneer niet.

Of je nu begint met een enkele developer of meteen met een compleet team, het opstarten van een remote team op grote afstand vereist een goede voorbereiding, goede software en een gestructureerde manier van werken. Maar daar krijg je vervolgens wel een enthousiast, flexibel, schaalbaar en goed performend team voor terug waarmee je snel stappen kunt zetten.

De rollen

Om een goed proces te waarborgen, werken wij, net als veel andere organisaties, volledig agile. Dat betekent dat wij met de daaruit voortvloeiende leanmethodiek een zelfsturend ontwikkelteam creëren. Hierin worden een aantal rollen onderscheiden:

Scrummaster

Een scrummaster bewaakt het proces, maar is níet met de inhoud bezig. Zijn (of haar) taak is zorgen dat de output van het team zo hoog mogelijk is. Hij vervult daarbij een coachende rol; helpt problemen signaleren en oplossen en coacht mensen als ze vast zitten. De scrummaster zet de learnings daarnaast collectief om in solutions; hij bespreekt met het team wat ze kunnen doen om bepaalde problemen in de toekomst te voorkomen.

Product owner

De product owner komt uit jouw organisatie in Nederland. Hij bewaakt het product en vertegenwoordigt de business. Zijn taak is om vanuit de business en de eindgebruiker(s) te kijken naar de doelen van het project en de mogelijke oplossingen. Daarnaast is hij vooral bezig met prioriteiten stellen; wat is het belangrijkste? Wat moet als eerst ontwikkeld worden? Zodat het multidisciplinaire team ook als eerst ontwikkelt waar de grootste vraag naar is.

Multidisciplinair ontwikkelteam

Aan de hand van het technische en functionele ontwerp stel je een multidisciplinair ontwikkelteam samen. De solutions architect kijkt naar welke technische kennis en competenties er nodig zijn en op basis daarvan worden er gespecialiseerde developers en testers aangehaakt. Werk je aan een webshop, dan haakt er bijvoorbeeld een Magento-specialist aan. Bouw je een mobiele applicatie, dan is bijvoorbeeld een ReAct developer erg handig.

Het is natuurlijk essentieel dat alle benodigde disciplines in het team zitten. Maar hoe je dat vervolgens verdeelt – hoeveel uur per week je van iedere discipline nodig hebt – is afhankelijk van de roadmap, de gekozen strategie en welke technologie je nodig hebt. Uiteindelijk is het doel dat alle kennis die je nodig hebt om het deel- of eindproduct te maken, in het team gevangen zit.

Het team

Wat is het geheim van een succesvol team op afstand? Hoe zorg voor de optimale prestaties? Hieronder een overzicht van een drietal belangrijke factoren die invloed hebben hierop.

1. De mensen

Een sterk en hecht (remote) team omvat alle benodigde capaciteiten en vaardigheden voor een project en is goed op elkaar ingespeeld. Hoe je de teams samenstelt, heeft grote invloed op de performance. Daarom zullen we hieronder een aantal tips met je delen.

Telkens de beste specialisten samenbrengen in een team? Dat klinkt misschien aantrekkelijk, maar waak ervoor dat deze mensen niet altijd optimaal met elkaar samenwerken. Ze zijn namelijk niet op elkaar ingespeeld en daardoor kan er meer communicatie en sturing nodig zijn.

Aan de andere kant is altijd werken in dezelfde teams ook niet ideaal. Waarschijnlijk ligt de initiële performance een stuk hoger, maar het gebrek aan afwisseling kan ook juist zorgen voor een gebrek aan creativiteit. Bovendien wil je een team altijd zó samenstellen, dat alle benodigde vaardigheden optimaal vertegenwoordigd zijn. En voor vaste teams geldt dat natuurlijk nooit helemaal.

Een tussenoplossing werkt daarom het beste. Zorg ervoor dat de developers meerdere disciplines en talen kennen, zodat ze op diverse projecten inzetbaar zijn. Vervolgens stel je ontwikkelduo’s of trio’s samen; een paar developers die – na een aantal projecten – aan een half woord genoeg hebben. Deze ontwikkelduo’s plaats je vervolgens samen in een team. Natuurlijk heb je ook altijd te maken met enkele ‘losse’ specialisten (zoals een architect) die kunnen aanhaken bij een project, als dat nodig is. Daarnaast kan een meer onervaren collega veel leren van ervaren collega’s en brengt deze weer een nieuwe dynamiek met zich mee. Uiteindelijk kun je zo het snelst en meest efficiënter ontwikkelen, en houd je het team scherp.

“De scrum master speelt een belangrijke rol in het vormen van hechte teams. Hij coacht en begeleidt en lost problemen op. Maar hij zorgt ook voor kennisoverdracht, zodat er nooit maar één persoon in de organisatie een bepaalde ontwikkeltaal kent.”

–Babish Shrestha, Project Manage bij Proshore in Nepal

2. Het grotere plaatje

Het beste resultaat krijg je, als het team continu met je meedenkt. Dat betekent voor de product owner niet continu nieuwe informatie geven en de opdracht veranderen, maar wel het team heel goed briefen. Iedereen moet de businesscase en de roadmap van haver tot gort kennen. In ieder geval het eerste jaar van die roadmap moet bij iedereen helder zijn. Ook moeten alle developers goed begrijpen wie het systeem straks gaat gebruiken. Zelfs als een developer maar aan één single requirement of module werkt, moet hij precies weten waar en hoe zijn puzzelstukje straks in het grote geheel past.

Het is essentieel om die belangrijke informatie continu hoog op de agenda te houden. Tijdens de backlog refinement meeting aan het begin van iedere sprint breng je daarom verdieping aan op de requirements in de backlog. Je bespreekt wat de gewenste output is van de sprint en op welke manier je dat resultaat het beste, slimste en snelste kunt bereiken. Tijdens deze meetings ga je niet alleen in op wat er gebouwd moet worden en waarom, maar komen ook de technische details aan bod. Zo zorg je ervoor dat jouw (remote) team ook daadwerkelijk bouwt wat jij nodig hebt.

3. Samenwerking

Juist als je op afstand van elkaar werkt, is een goede rolverdeling essentieel. Als deadlines niet gehaald worden door remote of virtual teams, dan is er meestal geen goed proces vastgelegd en afgesproken. Het helpt om ceremonies (bijeenkomsten) op vaste dagen en tijden te plannen. En door ook teams up-to-date te houden van de ontwikkelingen binnen het bedrijf (bijvoorbeeld waarom bepaalde prioriteiten wijzigen), blijven ze optimaal betrokken bij de organisatie.

Tot slot moet ook de product owner zich aan het proces houden. Hij (of zij) moet altijd aanwezig zijn bij de belangrijke ceremonies, zoals planning en evaluatie. Op die manier houdt hij voldoende gevoel met het team en kan hij, vanuit business perspectief, de juiste prioriteiten blijven bepalen. Feedback wordt continu gedeeld via een retrospective. Dit is een interne meeting tussen het team en de scrummaster. Wanneer deze mensen allemaal op één locatie zitten, zoals bij zelfsturende (remote) teams het geval is, heb je hiervoor geen techniek voor nodig. Wel is dit een belangrijk aspect van het proces.

De techniek

Voor een succesvol agile ontwikkeltraject heb je techniek nodig die iedere fase van het proces goed ondersteunt. De juiste soft- en hardware is belangrijk om de samenwerking zo goed mogelijk te laten verlopen. Het laatste wat je wil is communicatieproblemen die je had kunnen voorkomen. Wij maken daarom gebruik van Jira (backlog en versiebeheer) en Google Hangout (conference calling). Daarnaast gebruiken wij betrouwbare hardware omdat deze investering zich al snel terugverdient. Het grote voordeel van hangout is tevens dat dit toegankelijk is vanuit je browser, zodat iedereen eenvoudig toegang heeft. Vergeet hierbij vooral niet het belang van goede webcams, heldere microfoons en een rustige ruimte om een conference call te kunnen doen.

Voor tussentijds projectoverleg en vragen die niet direct te maken hebben met de user stories waaraan het team werkt, is een chatfunctionaliteit fijn om te hebben. Daarvoor gebruiken wij Slack, waarbij Engels uiteraard de voertaal is. Belangrijk is dat de product owner ook toegang heeft tot dit systeem, zodat ook hij vragen kan stellen en beantwoorden.

Over de schrijver

Jeroen van der Horst

Jeroen is mede-eigenaar van Proshore en is in die hoedanigheid al meer dan 6 jaar betrokken bij Proshore. Door het helpen van verschillende organisaties met hun development vraagstuk kent hij de uitdagingen en valkuilen van veel organisaties. Zijn ervaring met het verbinden van zijn collega’s uit Nepal (hieronder met Babish) met de klanten in Nederland heeft hem veel inzicht gegeven in de uitdagingen die hierbij komen kijken. Ook een dankwoord voor Arend, Chris, Geert, Job, Marten, Meindert, Noor, Petra, Sietse en Steven voor de interviews en het delen van hun ervaringen. Voor meer informatie, vragen of opmerkingen is Jeroen te bereiken via jeroen@proshore.nl.

Over Proshore

waarom onze mensen het verschil maken

Wij zijn Proshore, een Nederlands-Nepalees bedrijf met zo’n 60 vaste medewerkers. Het overgrote deel werkt vanuit Kathmandu in Nepal. Vanuit Nederland zijn Haico en Jeroen het aanspreekpunt voor klanten. Proshore is in 2009 opgericht door Haico (Nederland) en Roshan (Nepal) en combineert de kracht van Nederlandse ondernemers met Nepalees technisch talent. Wij geloven in duurzame samenwerkingen met klanten en met collega’s. Daarom zijn we trots dat we, met het vieren van ons 10-jarig jubileum, ook het 10 jarige dienstverband van Ashish en Nabin mochten vieren. Wij geloven in een open werkomgeving en de kracht van samenwerken op de lange termijn.

Wat wij doen

Wij helpen onze klanten in Nederland met complete teams as a service die vanuit ons kantoor in Nepal werken. Deze teams werken uitsluitend voor Nederlandse klanten, zijn perfect op elkaar ingespeeld en vullen elkaar aan op de inhoud. Wij houden van eerlijke en transparante communicatie, zodat we zo snel mogelijk onderdeel worden van jouw organisatie.

We zien onszelf als een verlengstuk van jouw organisatie en leveren niet alleen de technische capaciteit, maar denken ook mee over de beste manier om jouw technische doelstellingen te behalen. We investeren continu in de professionele ontwikkeling en ontplooiing van onze collega’s en hun welzijn, zodat jij je kan richten op jouw bedrijf.

Wil je meer weten over de mogelijkheden van onze development teams as a service? Neem dan contact op met Jeroen van der Horst of Haico Duisters via hello@proshore.nl of 085-2020000. We horen graag van je!