De meest effectieve agile teams zijn kleine, wendbare groepen van 5 tot 7 personen met diverse, maar overlappende vaardigheden. Deze structuur stelt het team in staat om hechte, vertrouwensrelaties te ontwikkelen die gebruik maken van verschillende vaardigheden en het vermogen van het team om werk te leveren te versnellen. Soms vallen vaardigheden die nodig zijn voor een project echter buiten de collectieve vaardigheden van een team.
Dat is waar specialisten van belang zijn.
Generalisten en specialisten
De mensen met wie we werken vallen meestal in een van de twee categorieën: generalisten en specialisten. Hoe verschillen ze?
- Generalist — een persoon met een brede kennis die op een aantal verschillende gebieden kan werken
- Specialist — een persoon die een diepgaande en unieke kennis heeft van een bepaald aandachtsgebied
Veel agile methodologieën pleiten ervoor dat alle teamleden generalisten worden (voor meer informatie over waarom, zie ons artikel over agile teams). Soms is het echter logisch dat een team de hulp inroept van een specialist om de volgende redenen:
- een bepaalde set vaardigheden is niet voltijds vereist voor het team
- het bedrijf heeft een beperkt aantal mensen met een bepaalde set vaardigheden, die worden gedeeld tussen teams
- specifieke toestemming is vereist om te werken in een gebied waar het algemene team geen toegang toe heeft
In deze gevallen is het zinvol om een specialist voor een bepaalde periode bij het team te laten komen. Het toevoegen van een specialist aan het team brengt echter een paar uitdagingen met zich mee.
Uitdagingen met specialisten herkennen
Omdat specialisten maar voor een bepaalde periode bij een team zitten, kunnen ze snel een 'kritisch element' worden, waardoor soms de voortgang van het hele team wordt geblokkeerd. Als een team bijvoorbeeld afhankelijk is van een databasebeheerder om wijzigingen aan te brengen in de database om nieuwe code te implementeren, wordt de voortgang van het team geblokkeerd door de databasebeheerder. Wanneer het team niet verder kan omdat ze input van die specialist nodig hebben, stopt die werkstroom. Omdat de specialist de enige in het team is die over de vaardigheden beschikt, heeft het team geen andere keuze dan af te wachten totdat de specialist ze deblokkeert.
Specialisten houden zich bezig met veel contextwisselingen: het ene project opschalen en het andere afschalen. En wisselen tussen projecten is kostbaar. Specialisten hebben bijna nooit de grondige kennis van een project dat kernteamleden hebben. Hierdoor kunnen specialisten belangrijke details missen. Om dit tegen te gaan, moet het kernteam extra energie inzetten om de specialist up-to-date te houden.
Tips voor het werken met specialisten
Laten we drie tips doorlopen om de struikelblokken te beperken bij het werken met een specialist.
1. Definieer duidelijk wat er nodig is van de specialist
Zodra je merkt dat je een specialist moet inschakelen, moet je enige tijd nadenken over wat je behoeften precies zijn. Begrijp het soort werk en de diepte van de vereiste kennis. Dit zorgt ervoor dat het team de juiste specialist krijgt en dat de specialist voldoende tijd heeft met het team om succesvol te zijn. Door niet realistisch te zijn over de tijd en vaardigheden die een specialist nodig heeft, stevenen zowel je team als de specialist af op mislukking.
2. Breng kennis van de specialist naar over het kernteam
Agile teams hebben alles te maken met overlappende sets vaardigheden. Als een specialist werkt met een team, plan dan voldoende tijd in voor de specialist om het kernteam zoveel mogelijk te trainen, zodat de kennis die de specialist binnenbrengt niet helemaal verloren gaat wanneer deze vertrekt. Enkele effectieve manieren om dit te doen zijn onder meer:
- Pair programming - Bij pair programming werken twee of meer teamleden in realtime samen op een specifiek gebied van het project. Beide mensen kunnen vragen stellen en zich bezighouden met het werk.
- Codebeoordeling – Bij codebeoordeling beoordeelt een kernteamlid het werk dat door de specialist is voltooid om alle wijzigingen te begrijpen. Codebeoordelingen richten zich meer op het waarom dan het hoe, waardoor ze minder effectief zijn dan pair programming voor training.
- Lunchsessies – Lunchsessies zijn informele sessies waarin specialisten kennis delen met een groep mensen. Het is een efficiënte manier om het hele team te onderwijzen.
Het doel is ervoor te zorgen dat het team autonomer wordt. Kennisoverdracht geeft het kernteam meer context voor het beheer van gebieden die voorheen eigendom waren van de specialist, waardoor het kernteam in de toekomst minder afhankelijk wordt van die specialist.
3. Minimaliseer de voortdurende behoefte aan de specialist
Wanneer specialisten hun betrokkenheid bij een team afbouwen, is het belangrijk om SLA's te maken tussen het team en de specialisten. Bepaal wanneer en onder welke omstandigheden het team mogelijk opnieuw een specialist moet inschakelen. Ondersteuningsgidsen met veelvoorkomende scenario's op het gebied van de specialist kunnen het team helpen meer controle te krijgen over hun eigen lot door hun eigen uitdagingen op te lossen.
Bij Atlassian richten we ons op het vergroten van vaardigheden voor generalisten. Om bijvoorbeeld design uit de 'specialistische' categorie te halen, hebben we concrete manieren gecreëerd voor ontwikkelaars en producteigenaren om hun ontwerpvaardigheden op te bouwen. Bekijk voor meer informatie ons artikel over agile design.