Vaak krijg ik de vraag waaruit ik denk dat een ontwikkel team behoort tenbestaan. Nu kan dit natuurlijk per bedrijf anders zijn en zeker wanneer jenkijkt naar wat ze willen ontwikkelen, maar als ik kijk naar puur de sectornwaarin ik me vaak begeef, web-development, blijven er maar 2 vragen over. Hebnje een grote of kleine organisatie? En wil je het echt zelf intern gaan doen? Dit artikel gaat over hoeveel personen je nodig hebt binnen een developmentnteam, uit welke functies een development team bestaat en vooral waarom jenwelke functies binnen het team nodig hebt.
Hoeveel personen in een team
Uit hoeveel man moet een team bestaan? Als je kijkt naar SCRUM dan staat er alnsnel 7 á 8 man. Maar waaruit moet de groep dan bestaan? Alleen developers? Ennkan het ook niet met minder man?
Tuurlijk, het ligt er geheel aan wat je gaat ontwikkelen.
Als je bijvoorbeeld een eigen API aan het ontwikkelen bent dan zal daarnwaarschijnlijk weinig front-end aan te pas komen. Je weet wie de gebruikersnzijn (collega’s) en een dedicated front-end developer is dan misschien nogalneen overkill voor binnen dat team.
Echter kan je in mijn visie bijvoorbeeld een goede tester nooit missen binnenneen team. Misschien moeten het er zelfs wel twee zijn. Ééntje voor front-endn(als je een frontend hebt) en ééntje voor backend. Daarnaast heb je natuurlijknde developers zelf nodig en wellicht door de complexiteit van je servers ookneen Dev/Ops die de taal verstaat van de ontwikkelaars en van densysteembeheerder.
Natuurlijk kan je nagelang de grootte van de projecten en teams één tester ennéén dev/ops op meerdere teams zetten (max 2).
Maar als je een team gaat opbouwen moet je je wel afvragen of een eigenndevelopment team wel bij de organisatie past.
Kleine organisatie
Bij een kleine organisatie moet je je ten eerste afvragen of het hebben vanneen eigen development team wel financieel te onderbouwen is. Zoals je hiernboven kan lezen ben je naast 1 of 2 developers ook al 3 personen rijker aanneen Front-ender, een Tester en een Dev/Ops.
Vaak zie je in kleinere organisaties dat een team heel klein opgezet wordtnwaarbij de developer meerdere functies te gelijk doet. Toch is dit niet altijdneven handig maar daar over later meer in dit artikel. Als je toch te kleinnblijkt te zijn, kan je de werkzaamheden misschien beter uitbesteden aan eennextern bureau. Wanneer het werk zo veel blijkt te worden dat een eigen teamntoch handiger is kan je altijd nog een eigen development team opbouwen.
Grote organisatie
Bij een grote organisatie (of een snel groeiende kleine organisatie) is hetnvaak snel te zien dat je beter een eigen development team kan opzetten, mitsnje natuurlijk intern wil ontwikkelen.
Zorg er dan voor dat je het direct goed inricht qua team en de bemanning op denjuiste functies hebt zitten, zodat niet de mensen aan iets zitten te werkennwat ze eigenlijk niet goed onder de knie hebben.
Wanneer het product of project waaraan je werkt heel groot is, is het wellichtnverstandig om het project op te delen in kleinere sub-projecten. Zo kan jenbijvoorbeeld een grote webshop opdelen in een categorieën project, een productnpagina project en een checkout project en voor ieder een apart team op zetten.
Ik ken bedrijven die tussen de 15 en 20 scrum development teams hebben die opndit soort projecten zitten. Ieder team heeft daarin 3 tot 5 developers, eennfront-end designer/developer en een tester. Over max twee teams heen (nagelangnde drukte) hebben ze dan één Dev/Ops en één Product Owner.
Juiste persoon voor de juiste functie
Binnen het team dient ieder persoon op de juiste functie te zitten en is hetndus zeer ongewenst om personen taken te laten doen waar ze eigenlijk nietngenoeg verstand van hebben.
Ik zie binnen veel bedrijven dat er niet specifiek een front-end developer isnaangesteld (laat staan aangenomen) om de frontend taken te doen. Dit kan eennbackend developer toch wel doen?
Als ik uitleg waarom je dit niet moet doen begrijpen veel managers dit niet.
Dus leg ik het ze daarna simpel uit.
Ik heb zelf wel eens bij één van mijn eerste auto’s, zo’n 20 jaar geleden,nzelf de olie en het filter vervangen. Om de kosten binnen dit bedrijf tendrukken, ga ik dit ook bij alle lease-auto’s doen. Ja ook bij de Landrover,nJaguar of Maserati waarin de directeur rijdt. Ik heb niet zo heel veelnervaring, maar ik denk dat het me in de komende 6 maanden (in sprints van 2nweken) wel moet lukken. Wat vindt je van dit voorstel?
De managers waaraan ik dit vertel, kunnen en zullen 2 dingen denken. Ben jijnniet een beetje duur om olie te gaan vervangen? En, een filter vervangen bijneen Jaquar of Maserati? Dat lijkt me werk voor een specialist of in iederngeval door iemand die dit dagelijks doet!
Klopt!
Ik denk dat ik het best zou kunnen, maar als je zo iets 20 jaar voor hetnlaatst of niet al te vaak hebt gedaan en niet eens weet waar je het moetnzoeken bij sommige auto’s, zou dan niet het zelfde gelden voor een front-endnfunctie?
Front-end Functie
De afgelopen jaren is front-end development er niet makkelijker op geworden.nIn 1996 zette ik zo een HTML pagina in elkaar, maar tegenwoordig moet je metnzo veel zaken rekening houden dat het echt heel specialistisch werk isngeworden. Denk bijvoorbeeld aan de verschillende resoluties waaraan het moetnvoldoen, mobile, tablet, desktop. Welke jquery / jquery-ui versie en wanneerndit moet worden ingeladen om een zo goed mogelijke pagespeed score. Maar ook:nmoet ik Sprites gebruiken, HTML5, CSS3, Sass of Less, javascript minificationnen ga zo nog maar even door.
Een backend developer kan dit misschien wel een beetje, maar bij lange na nietnzo goed en snel als een echte front-end developer.
Dev/Ops Functie
Zelfde met een Dev/Ops functie. Tuurlijk kan een developer een leuke server innelkaar zetten en installeren en configureren. Maar houdt de developer rekeningnmet alle veiligheidsaspecten? Hoeveel geheugen PHP moet krijgen en hoeveelnMySQL. Hoe is de toegang geregeld? Caching-servers, php versie’s, apache ofnnginx, mysql / mariadb of percona, het zijn allemaal nogal specialistmen waarneen developer wel iets van af weet maar bij lange na niet genoeg.
Daarnaast richt een Dev/Ops development omgevingen in (met bijvoorbeeldnvagrant) en onderhoud hij deze. Ook zal hij nieuwe technieken proberen ennwanneer deze veelbelovend zijn binnen een project zal hij ze overdragen aan dendevelopers waarna deze het kunnen gaan gebruiken. Denk daarbij aan in plaatsnvan MySQL de overstap te maken naar MariaDB of Percona.
Ik zeg overigens niet dat een Dev/Ops de systeembeheerder moet vervangen, maarnnu zie ik nog te veel developers servers inrichten alsof het om hun eigennwerkstation gaat.
Tester Functie
En dan als laatste de tester! Testen moet je niet laten doen door eennDeveloper. Natuurlijk zal een collega developer een team-check doen op de codenmaar functioneel gezien dient een tester dit te doen. Een tester zal ook (alnof niet samen met de Dev/Ops) een ontwikkelstraat uitwerken en daar bij dendiverse test punten (unit tests, integration tests en Web Browser Automationntests) inbouwen of er in ieder geval op toezien dat de developer hier rekeningnmee houdt en ze ook daadwerkelijk maakt.
Toch de developer laten doen
Als je het stuk hier boven hebt gelezen en je bent nog steeds van mening datnje de backend developer ook de functie van een front-end developer, Dev/Ops enntester moet laten doen realiseer je dan het volgende:
- Het zal veel meer tijd kosten (en dus geld);
- Het zal nooit zo goed zijn als wanneer je dit de juiste persoon dit laat doet;
- Het zal achteraf nog meer tijd kosten omdat je meer problemen zal ondervinden.
Dus wil je een goed team, zorg dan dat je de juiste mensen op de juiste pleknhebt zitten! Het kost een beetje, maar je zal er heel veel profijt van hebben!
En vergeet niet! De tijd die een developer niet hoeft te werken aan de font-nend kan hij in de backend stoppen.