Thursday 11 April 2013

De rol van de lead developer: verslag van een onderzoek

Het afgelopen halfjaar heb ik een aantal presentaties gedaan voor mijn collega developers bij OGD. Het OGD motto is "Samen slimmer" waar ik mijn steentje aan bij wil dragen door mijn kennis over een aantal onderwerpen te delen. Zo heb ik een presentatie gedaan over het toevoegen van real-time communicatie aan een Ruby on Rails applicatie (check hier voor een testproject op Github). Recent heb ik ook een vergelijking gemaakt tussen twee javascript frameworks: Ember en Angular. 

Beide presentaties gingen over nieuwe technieken, een belangrijke drijfveer voor mij als developer, maar niet de belangrijkste. Wat mij het meest motiveert, is mijn rol als lead developer. Het werken in een team en daar leiding aan geven is het mooiste dat er is. Mijn ambitie is om andere developers die deze rol hebben of deze rol ambiëren naar een hoger niveau te brengen. Om dit mogelijk te maken, heb ik een onderzoek gedaan naar de verwachtingen rond de rol van lead developer. Ik had de indruk dat lead developers een ander beeld hadden van hun rol dan mensen die deze rol niet hebben, deze stelling wilde ik graag onderzoeken. Het doel mijn onderzoek was een beeld schetsen van de verwachtingen rond (de rol van) lead developers in een software ontwikkelproces.

Het is erg prettig dat er tegenwoordig tools zoals Google Docs beschikbaar zijn, waarmee het opzetten van een enquête een fluitje van een cent is. Dankzij de hulp van mensen uit mijn netwerk op Coconut en op LinkedIn, waren er ook snel resultaten binnen. Tot mijn vreugde hebben 30 mensen de enquête ingevuld. Helaas bleek het aantal lead developers dat de enquête had ingevuld te laag om conclusies te kunnen trekken over de stelling ik wilde onderzoeken.


 Resultaten onderzoek

De belangrijkste verantwoordelijkheid van de lead developer is de kwaliteit van het product:













Op geen enkele andere vraag werd zo'n eenduidige respons gegeven. Dat deze verantwoordelijkheid ver gaat, blijkt uit de antwoorden op de vraag of de lead developer ook verantwoordelijk is voor de user experience.
Over dit onderwerp zijn de respondenten het niet eens, echter vindt een significant deel (44%) dat het een verantwoordelijkheid is van de lead developer. Ik ben het met deze stelling eens: kwaliteit van het product omvat alles en de user experience is misschien wel het belangrijkste dat een product kan hebben.

Een aantal verantwoordelijkheden zijn duidelijk voor iedereen:
  • technische opzet van het product
  • dagelijkse voortgang 
  • taakverdeling
  • tijdige escalatie van problemen
  • de ontwikkeling van teamleden
  • de planning
Met de laatste ben ik het niet eens: het maken van een planning moet een team-effort zijn, waar het hele team voor verantwoordelijk is. De rol van de lead developer ligt meer bij het halen van de planning, hij of zij moet developers helpen om de juiste keuzes te maken en voorkomen dat teamleden teveel tijd besteden aan onbelangrijke zaken. 

In de enquête had ik ook een aantal taken en verantwoordelijkheden opgenomen die ik absoluut niet bij de rol van lead developer vind horen. Een lead developer is per definitie geen product owner kan dus niet verantwoordelijk gehouden worden voor het product backlog. De respondenten zijn dit in meerderheid niet met mij eens:

Ook het budget of het business plan zijn geen zaken waar een lead developer zich mee bezig moet houden. Dit is de verantwoordelijkheid van de klant, vaak voert een project manager deze taken uit. De respondenten zijn wat betreft het business plan ook verdeeld:
Bij meer taken blijkt dat de respondenten verdeeld zijn. Ik snap deze ambiguïteit, want hier komt het aan op de 'developer' kant van de rol. En iedere developer heeft zijn eigen invulling, sommige zijn breed georiënteerd en doen alles, van het schrijven van user stories tot programmeren en anderen houden zich het liefst bezig met de meest ingewikkelde technische problemen. Als lead developer heb je de keuze wat je doet, zolang je maar niet alles zelf probeert te doen. Geef je teamleden vertrouwen, geef ze de belangrijkste klussen en geef ze de ruimte om te falen. Zorg dat je proces goed ingericht is, zodat je fouten op kunt vangen. Zodat je toch die kwaliteit kunt leveren die mensen (klaarblijkelijk) van je verwachten.

Het karakter van de lead developer

In het onderzoek werd ook gevraagd naar karaktertrekken die goed bij een lead  developer passen en naar karaktertrekken die een lead developer beter niet kan hebben. 



Kundig of perfectionistisch vind ik niet per se negatieve eigenschappen, maar voor de rest kan ik mij heel goed vinden in dit resultaat. 



De belangrijkst eigenschap van een lead developer is volgens mij het hebben en houden van overzicht. Als lead developer moet je het development team leiden. Je moet verder kunnen kijken dan vandaag: hoe staat je team er over een maand voor? En over een half jaar? En over een jaar? Daar ligt de meerwaarde voor de lead developer. 

And the winner is:

Tot slot: onder de deelnemers aan de enquête heb ik een Raspberry Pi verloot. De winnaar is Jurgo Touw. Ik wil iedereen graag bedanken voor de respons en de enthousiaste reacties. En mocht je je als lead developer willen ontwikkelen: neem contact op. Ik help je graag een stukje op weg.