SoftwareCaptains

View Original

Hoe structureer je een developmentteam?

Een software-development-organisatie bouw je niet in 1, 2, 3. Vaak groeit zo'n organisatie organisch. Dat gaat goed, tot op het moment dat het niet meer goed gaat. Dan is het nuttig en noodzakelijk om even een stap terug te nemen, en aandacht te besteden aan hoe je je team organiseert.

Dat is het moment waarop veel bedrijven bij mij terecht komen. Doorheen de jaren heb ik een aanpak ontwikkeld waarmee ik met een software development team aan de slag ga. Deze manier van werken helpt hen om een structuur op te zetten waarin iedereen zich goed voelt, waarin iedereen weet wat ie van een ander verwacht, en waarin iedereen weet wat van hem/haar wordt verwacht. Hierdoor voelen de teamleden zich beter in hun job, én wordt de organisatie als geheel efficiënter en effectiever.

Stap 1: Praat met iedereen

Voor mij is dit een belangrijke stap. Ik stap als buitenstaander in de organisatie, en ken dus niet iedereen. Waarschijnlijk ken jij de mensen in je team wel wat beter. Toch is het belangrijk dat je goed snapt wat ieders eigen verlangens en verzuchtingen zijn. Je kan niet alleen voortgaan op wat anderen zeggen. Je kan zelfs niet altijd voortgaan op wat mensen in een groep zeggen - vaak zeggen ze onder vier ogen heel andere dingen. Daarom ga ik met ieder apart één tot anderhalf uur samenzitten, om te kijken wat ze doen, wat ze willen doen, en waar ze tegenaan lopen.

Ook als je denkt dat je je team goed kent, is het belangrijk toch regelmatig iedereen apart te spreken. Houd de vinger aan de pols van wat er leeft; geef mensen de kans om je feedback te geven over de zaken die je in gang zet.

Stap 2: Teken (een eerste schets van) een mogelijke structuur en procesflow

Met de informatie die ik verzameld heb in de eerste stap, breng ik in kaart welke mensen welke rollen kunnen vervullen. Daarbij baseer ik me op een aantal basismodellen voor IT teams (agile, waterfall, ...); die modellen pas ik aan aan de situatie en aan de mensen die er zijn. Veel van die modellen hebben veel afzonderlijke rollen. Je hebt (gelukkig) niet altijd voor elke rol een aparte persoon nodig. Eén persoon kan meerdere rollen vervullen.

Het is belangrijk om goed neer te schrijven wat een rol precies inhoudt. Titels worden vaak door verschillende mensen op een heel verschillende manier geïnterpreteerd. Maak het expliciet wat je bedoelt met een bepaalde titel.

Stap 3: Communiceer de structuur en flow in het team

Een keer je een beeld hebt van hoe de organisatie eruit kan zien, is het belangrijk om de tijd te nemen om dit met het hele team te communiceren.

Er zijn een aantal manieren om dit te doen; mijn voorkeur gaat meestal uit naar een workshop waar alle betrokkenen aanwwezig zijn. In die workshop is het de bedoeling om het plan uit te leggen, maar vooral ook om te kijken of het goed ontvangen wordt. Niet zelden (of bijna altijd) worden tijdens deze workshop al de eerste wijzigingen aan het plan aangebracht, gebaseerd op feedback van de mensen uit het team.

Het resultaat van deze workshop is dat de teamleden weten waar het team naartoe gaat, en dat ze een goed gevoel hebben bij de toekomstige rol die ze gaan moeten vervullen.

Stap 4: Stel een plan op om tot die structuur en flow te komen

Een structuur en een flow afspreken is één ding, volgens die structuur en flow werken is iets anders.

Het is een illusie om te denken "iedereen weet nu hoe het proces eruit ziet, dus iedereen gaat dat volgen." Vaak zijn er nog heel wat praktische zaken die geregeld moeten worden; selectie van de juiste tools is er maar één van.

Om van de huidige situatie naar de nieuwe situatie te groeien, heb je meerdere stappen nodig. Bespreek wat die stappen gaan zijn. In sommige organisaties kan het nuttig zijn een timing op elke stap te plakken, maar in de meeste gevallen is de volgorde van de stappen al genoeg informatie.

Stap 5: Implementeer het plan

Genoeg gepland en gepraat. Eindelijk tijd voor het echte werk!

Voer het plan uit Stap 4 uit. Houd steeds in de gaten dat je plan maar een plan is. Een goed plan wordt steeds bijgestuurd. Als je merkt dat de mayonnaise op bepaalde plaatsen niet pakt, wees dan flexibel en pas je plan aan. Vergeet niet om dit te doen in samenspraak met het team.

Stap 6: Begeleid en stuur bij

Hoe graag ik het ook zou willen, een organisatiestructuur is geen statisch gegeven. De omstandigheden veranderen continu (mensen vertrekken, mensen komen erbij, het team groeit, het team krimpt, de focus van het product verandert, ...) en je team zal zich continu moeten aanpassen.

Ook zal je merken dat je proces nooit perfect is. Er zullen altijd situaties zijn waar je niet aan gedacht hebt. Het is belangrijk om die te identificeren en erop te reageren.

Nog een belangrijk aandachtspunt in deze stap: wees beschikbaar voor je teamleden. Niet iedereen heeft dezelfde ervaring en visie als jij. Zorg dat je teamleden ergens terecht kunnen wanneer ze ergens tegenaan lopen of iets onduidelijk is voor hen.

That's it.

Dat is alles. Zo simpel kan het zijn om je software development team efficiënter te maken, en er toch voor te zorgen (of net door er voor te zorgen) dat je teamleden gelukkiger zijn in hun job.

Er is maar één ding moeilijk: je moet hier tijd voor maken en aandacht aan besteden. Dat is niet altijd gemakkelijk als je voortdurend overstelpt wordt door je dagdagelijkse taken, of je zelf onzeker bent of je de goede beslissingen neemt. Dan helpt het om je te laten begeleiden door iemand die dit al vaak gedaan heeft, of zelfs om hem/haar mee aan de kar te laten trekken.