OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN …...mentsverbetering op in grote organisaties....

4
DEVELOPMENT 62 AG CONNECT NOVEMBER 2017 AGILE SOFTWAREONTWIKKELING LEVERT NIET VANZELF RENDE- MENTSVERBETERING OP IN GROTE ORGANISATIES. IT-MANAGERS MOETEN ZICH MENTAAL INSTELLEN OP ZELFORGANISATIE VAN ONT- WIKKELTEAMS. ENKELE PRAKTISCHE INZICHTEN, OPGEDAAN OP DE WERKVLOER, BIEDEN HOUVAST. door Jeroen Meetsma illustratie Marc Kolle RENDEMENT MET AGILE OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN CRISIS HET GEBREK AAN SCHAALBAAR- BAARHEID VAN AGILE SOFT- WAREONTWIKKELING LEIDT TOT VERSNIPPERING VAN ONTWIK- KELCAPACITEIT EN BELANGEN, waardoor rendementsverbetering uitblijft. Op de werkvloer heerst geregeld een gevoel van crisis. Na doorvoering van zelfsturing is het nodig om de volgende stap te zetten. De IT-manager is aan zet om weer wat orde aan te brengen. Kern van de zaak is om teams zelf in staat te stellen hun speelveld voldoende in te kaderen, zodat ontwikkelaars op hun sterke punten aangesproken worden en teams als geheel in de zo gewenste flow komen. Waarom levert het ene team wel robuuste software in korte doorlooptijden af en het andere niet? Als je met ontwikkelaars praat, dan blijkt dat ze stuk voor stuk streven naar een efficiënte manier van werken. Het leidt tot ergernis wanneer de productiviteit stokt of wanneer veel tijd verloren gaat aan het verhelpen van gebreken. We zien dat productieve teams ontwikkelaars in staat stellen hun geestdrift en sterke punten ten volle te benutten. Ze hanteren een aantal pragmatische stuur- en feedbackmiddelen die in samenhang een substantiële productiviteitsverbetering geven. BALANS In een productief team draagt elke inspanning bij aan businessvalue en een steeds versnellende voortgang. Een goede teammix – balans tussen de vaardigheden en karakters van teamleden en wederzijds respect – is één voorwaarde om werk- zaamheden effectief te kunnen verdelen onder de teamleden. De een richt zich op het netjes uitcoderen en testen van features, de ander zorgt voor een ge- stroomlijnd deploymentproces. Weer een ander neemt het voortouw om ontwerp- beslissingen om te zetten in structuur. Dat is namelijk een tweede randvoor- waarde: dat het team de vaardigheid bezit om de software goed te structureren. Goed gedefinieerde modules en een goed doordachte ontkoppeling zorgen ervoor dat ontwikkelaars in isolatie aan een stuk code kunnen werken zonder elkaar voor de voeten te lopen. Een goed geïmple- menteerde softwarearchitectuur is een verborgen, niet direct zichtbare kwaliteit. JEROEN MEETSMA (j.meetsma@bon-code. nl) is medeoprichter van Boncode Software Remediation en heeft zich gespecialiseerd in softwarekwaliteit en softwarearchitectuur. AUTEUR REACTIES EN BIJDRAGEN Voor reacties en nieuwe bijdragen van IT-experts: Henk Ester 020-2356415 [email protected]

Transcript of OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN …...mentsverbetering op in grote organisaties....

Page 1: OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN …...mentsverbetering op in grote organisaties. it-managers moeten zich mentaal instellen op zelforganisatie van ont-wikkelteams. enkele

DEVELOPMENT

62AG CONNECT NOVEMBER 2017

AGILE SOFTWAREONTWIKKELING LEVERT NIET VANZELF RENDE-MENTSVERBETERING OP IN GROTE ORGANISATIES. IT-MANAGERS MOETEN ZICH MENTAAL INSTELLEN OP ZELFORGANISATIE VAN ONT-WIKKELTEAMS. ENKELE PRAKTISCHE INZICHTEN, OPGEDAAN OP DE WERKVLOER, BIEDEN HOUVAST. door Jeroen Meetsma illustratie Marc Kolle

RENDEMENT MET AGILE

OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN CRISIS

HET GEBREK AAN SCHAALBAAR-BAARHEID VAN AGILE SOFT-WAREONTWIKKELING LEIDT TOT VERSNIPPERING VAN ONTWIK-KELCAPACITEIT EN BELANGEN, waardoor rendementsverbetering uitblijft. Op de werkvloer heerst geregeld een gevoel van crisis.Na doorvoering van zelfsturing is het nodig om de volgende stap te zetten. De IT-manager is aan zet om weer wat orde aan te brengen. Kern van de zaak is om teams zelf in staat te stellen hun speelveld voldoende in te kaderen, zodat ontwikkelaars op hun sterke punten aangesproken worden en teams als geheel in de zo gewenste flow komen.Waarom levert het ene team wel robuuste software in korte doorlooptijden af en het andere niet? Als je met ontwikkelaars praat, dan blijkt dat ze stuk voor stuk

streven naar een efficiënte manier van werken. Het leidt tot ergernis wanneer de productiviteit stokt of wanneer veel tijd verloren gaat aan het verhelpen van gebreken. We zien dat productieve teams ontwikkelaars in staat stellen hun geestdrift en sterke punten ten volle te benutten. Ze hanteren een aantal pragmatische stuur- en feedbackmiddelen die in samenhang een substantiële productiviteitsverbetering geven.

BALANSIn een productief team draagt elke inspanning bij aan businessvalue en een steeds versnellende voortgang. Een goede teammix – balans tussen de vaardigheden en karakters van teamleden en wederzijds respect – is één voorwaarde om werk-zaamheden effectief te kunnen verdelen onder de teamleden. De een richt zich op het netjes uitcoderen en testen van features, de ander zorgt voor een ge-stroomlijnd deploymentproces. Weer een ander neemt het voortouw om ontwerp-beslissingen om te zetten in structuur.Dat is namelijk een tweede randvoor-waarde: dat het team de vaardigheid bezit om de software goed te structureren. Goed gedefinieerde modules en een goed doordachte ontkoppeling zorgen ervoor dat ontwikkelaars in isolatie aan een stuk code kunnen werken zonder elkaar voor de voeten te lopen. Een goed geïmple-menteerde softwarearchitectuur is een verborgen, niet direct zichtbare kwaliteit.

JEROEN MEETSMA ([email protected]) is medeoprichter van Boncode Software Remediation en heeft zich gespecialiseerd in softwarekwaliteit en softwarearchitectuur.

AUTEUR

REACTIES EN BIJDRAGENVoor reacties en nieuwe bijdragen van IT-experts: Henk [email protected]

Page 2: OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN …...mentsverbetering op in grote organisaties. it-managers moeten zich mentaal instellen op zelforganisatie van ont-wikkelteams. enkele

63

DEVELOPMENT

AG CONNECT NOVEMBER 2017

Page 3: OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN …...mentsverbetering op in grote organisaties. it-managers moeten zich mentaal instellen op zelforganisatie van ont-wikkelteams. enkele

DEVELOPMENT

64AG CONNECT NOVEMBER 2017

Het team zal aan stakeholders verkopen dat het noodzakelijk is om structuur aan te brengen en te onderhouden.

SOFTWAREARCHITECTUURDoorgaans is de softwarearchitectuur niet meer dan een gedeeld beeld van de structuur van een applicatie en een aantal papieren richtlijnen voor ontwikkelaars. Een coderaamwerk of framework daarentegen is een formele vastlegging van de architectuur. Het is in deze zin zeker geen mentale exercitie van verveelde software-engineers. Een duurzaam raamwerk ontstaat bij uitstek uit een minimale veralgemenisering van end-to-end implementatie van primaire functio-naliteit. Zo voorkom je implementatie van overbodige zaken en mitigeer je het risico op oversimplificatie of overenginee-ring. Het stelt teams in staat risico’s naar voren te halen en een toekomstbestendig fundament voor het realiseren van features te leggen.De implementatie van features binnen het kader van een raamwerk wordt efficiënt overgedragen middels een referentie-implementatie. Aangezien ontwikkelaars zich bedienen van knip- en plakwerk, kun je maar beter zorgen dat de voorbeeldcode compact en leesbaar is en deze het probleemdomein goed uitdrukt. De implementatie van features moet een getrouwe weergave zijn van het businessdomein. Het raamwerk moet de ontwikkelaar van features in

staat stellen oplossingen uit te drukken in een domeinspecifieke vorm. Fundamentele, meer abstracte functio-naliteit bevindt zich in het raamwerk of vindt haar weg erheen via structurele refactoring.

VISUALISATIEVoordeel van een in code geformaliseerde architectuur is dat die zich leent om de implementatie te visualiseren en de werking te monitoren middels slim aangebrachte meetpunten. Visualisatie stelt het team in staat het normaal gesproken onzichtbare toetsbaar te maken en stakeholders inzicht te geven in werkzaamheden die indirect businessva-lue creëren. Monitoring heeft niet alleen betrekking op de technische werking van de applicatie, maar juist ook weer op de businessvalue die zij biedt, zodat manage-ment en business het behaalde rendement kunnen beoordelen. We zien dat produc-tieve teams voort-durend bezig zijn met optimalisatie en dat ze een balans vinden tussen zichtbare voortgang nu en versnelling in de toekomst. Balans tussen realisatie van algemene, herbruik-bare code en specifieke oplossingen. Balans tussen realisatie van businessvalue en de verantwoording naar stakeholders.Productieve teams kaderen het werk in, niet alleen procesmatig maar ook tech-

nisch. En ze organiseren een voortduren-de wisselwerking tussen deze kaders. Niet alleen binnen het team, ook naar buiten toe zoekt men de verbinding met de business, het management en andere teams om inspanningen af te stemmen op bedrijfsdoelstellingen, om hun inspanningen te laten renderen.Zelforganisatie werkt zo goed, omdat juist de inzet van technische middelen en de afweging van de effectiviteit van deze middelen naar de omstandigheden alleen door inhoudelijk gedreven professionals kunnen worden vormgegeven.

VIJF TIPSWat kun je als IT-manager doen om teams te laten renderen? Vijf tips.

1LAAT ZELF-ORGANISATIE HAAR WERK DOEN

We grijpen vaak terug op formele, autoritaire middelen wanneer het even tegenzit. Het proces naar de letter volgen, overbodige vergaderingen, peptalks en beoordelingen verstoren de concentratie en zelfredzaamheid van het team en individu. Besef dat je heel veel dingen juist moet laten, loslaten. Een team moet de ruimte hebben zichzelf te organiseren. Het tijdperk van zelforganisatie vergt geduld en terughoudendheid. De mentaliteit van de tuinman die een boom opkweekt past de faciliterende manager beter dan die van een leger-commandant aan het front. Dat betekent niet dat we lijdzaam afwachten: we faciliteren groei, bewaken voortgang en grijpen in als het moet.

2MAAK VERWACHT RESULTAAT HELDERZelforganisatie waartoe?

Waar doen we het voor? Welwillendheid, creativiteit en professionaliteit hebben een overstijgend kader nodig. Niet alleen architecten, ook softwareontwikkelaars

RENDEMENTRendement is simpel geformuleerd de ratio tussen kosten en baten. We kunnen het rendement van softwareontwikkeling optimaliseren door: 1. alleen functionaliteit te realiseren die de meeste businessvalue biedt;2. programmatuur zo eenvoudig mogelijk te houden voor de taken die zij uitvoert;3. soortgelijke functionaliteit voortdurend efficiënter te realiseren.

Agile softwareontwikkeling adresseert voornamelijk punt 1: ten opzichte van de watervalbenadering maken we veel minder onnodige functionaliteit. Maar de vrijheid die zij biedt leidt dikwijls tot overengineering en wildgroei in de code. Een toenemende onderhoudslast veroorzaakt stagnatie van efficiëntie van uitbreidingen en aanpassingen.

Een productief team bewijst zijn zelforganiserend vermogen

Page 4: OP DE WERKVLOER HEERST GEREGELD EEN GEVOEL VAN …...mentsverbetering op in grote organisaties. it-managers moeten zich mentaal instellen op zelforganisatie van ont-wikkelteams. enkele

65

DEVELOPMENT

AG CONNECT NOVEMBER 2017

maken voortdurend, soms hele kleine, ontwerpbeslissingen. Elke beslissing is een afweging tussen belangen op korte en langere termijn. Visie, een helder referentiekader en inspiratie zorgen voor focus.

3HOU DE VINGER AAN DE POLSMeetbaar resultaat is de

graadmeter van succes. Maar het duurt even voordat het zover is. Intussen moeten we bewaken dat een team op de juiste weg is. Een productief team bewijst zijn zelforganiserend vermogen. Dit resulteert in deliverables, zoals een raamwerk, referentie-implementatie en visualisatie van de implementatie, die werkverdeling en bijsturing mogelijk maken. Het ontbreken ervan is een teken dat een team zijn draai niet vindt.

4SLEUTEL AAN DE TEAMMIX ALS RESULTAAT UITBLIJFT

Soms komt een team niet op gang. Dat kan allerlei redenen hebben. Twee ervaren ontwikkelaars kunnen het bijvoorbeeld niet eens worden over een bepaalde aanpak. Het team prefereert consensus of compromissen boven werkende oplossingen. Er is een teamlid dat niet functioneert en geen kritiek verdraagt.Alle geduld en terughoudendheid ten spijt, af en toe moet er worden ingegre-

pen. Het volstaat doorgaans om een of twee contraproductieve teamleden te verwijderen en de balans in het team te herstellen. Zie het als het snoeien van een opgekweekt boompje.

5SCHAAL OP OP BASIS VAN BEWEZEN RENDEMENT

Laat de teamopbouw beginnen met de senior die zich bewezen heeft op grote projecten. Laat hem een rechterhand kiezen. Elke verdere uitbreiding van het team vindt vervolgens plaats met instem-ming van het zittende team. Zodra raamwerk en referentie-implementatie zijn uitgekristalliseerd, kan niet alleen het team zelf opschalen, maar kunnen ook andere teams in een gespreid bedje features realiseren. Een productief team vindt navolging.

SUCCESWillen grotere organisaties de vruchten plukken van agile softwareontwikkeling, dan zullen ze een manier moeten vinden om de agile werkwijze aan te laten sluiten op traditionele bedrijfsvoering. We vragen van zelfsturende teams dat zij de verbinding tot stand brengen. Het is aan de IT-manager om te bewaken dat teams gefocust zijn op rendementsverbetering en technisch-orga-nisatorisch voldoende gestructureerd zijn. Dat vergt initiatief, flexibiliteit en vinding-rijkheid. Succes op teamniveau is daarbij de motor van rendement.

GELAAGDHEID EN VERBINDINGENZelforganisatie zorgt voor ontwikkel-teams die werkzaamheden inkaderen in technisch-organisatorische lagen. Deze lagen zijn onderling verbonden via technische middelen die communi-catie en overdracht faciliteren.

Lagen:1. ARCHITECTUUR: High-level

architectuur en systeemlandschap voldoende uitgewerkt in software-architectuur.

2. RAAMWERK: Softwarearchitectuur vastgelegd in code.

3. FEATURES: Het speelveld waar de meeste ontwikkelaars meters moeten maken.

Verbindingen:1. REFERENTIE-IMPLEMENTATIE:

Laat ontwikkelaars zien wat de bedoeling is (top-down).

2. STRUCTURELE REFACTORING: Raamwerk en architectuur worden aangepast op grond van fundamenteel veranderende eisen (bottom-up).

3. MONITORING: Een degelijk raam-werk maakt het mogelijk om code automatisch te controleren en te monitoren (top-down).

4. VISUALISATIE: Geautomatiseerde visualisatie is een proeve van bekwaamheid en faciliteert vergelijking implementatie en architectuur (bottom-up).

RAAMWERK

ARCHITECTUUR

REFERENTIE IMPLEMENTATIE

VISUALISATIE

MONITORING

FEATURES

STRUCTURELE REFACTORING

“Het tijdperk van zelforganisatie vergt geduld en terughoudendheid”