Waar Scrum zorgt voor snelheid (velocity), is architectuur het kompas en geeft richting aan het ontwikkelteam. Zonder architectuur kan een Scrum team van de koers afraken en snel van het doel afdrijven.
Wanneer we software ontwerpen en bouwen hebben we de neiging om te focussen op technische aspecten van de architectuur en te weinig op de organisatie die het moet bouwen. Dit kan leiden tot allerlei problemen. We hebben in een agile team veel invloed op elkaar en door dit over het hoofd te zien, kan dit leiden tot een eenzijdig en niet passend ontwerp. Door meer het sociale aspect mee te nemen in de architectuurbesluiten ontstaat er een gezamenlijke ontwerpbenadering.
Deze verandering stelt met name hoge eisen aan de sociale en communicatieve
vaardigheden binnen het team. Bij samenwerken is het soms nodig om status en macht
los te laten.
Hecht waarde aan mensen
Streef naar duurzame ontwikkeling, met een tempo dat voor onbepaalde tijd kan worden volgehouden door het ontwikkelteam, de organisatie, de klant en de stakeholders. Werk samen als team en leer van elkaar. Begrijp dat een persoon niet alles weet en dat iedereen zijn eigen expertise inbrengt om aan de architectuur waarde te leveren. Wees respectvol naar elkaar en bevorder iedere gelegenheid om van elkaar te leren.
Communiceren
Werk zo nauw mogelijk samen met alle belanghebbenden, inclusief klanten en andere ontwikkelaars. Stimuleer snelle feedback door samen aan modellen en documenten te werken. Onthoud dat de beste manier om informatie over te brengen een persoonlijk gesprek is, ondersteund door bijvoorbeeld een whiteboard. Gedeelde ontwikkeling van een model, op een whiteboard, zal uitstekende feedback en draagvlak opleveren.
Minder is meer
Minimaliseer complexiteit. Eenvoud vermindert de hoeveelheid werk die moet worden gedaan door het team. De eenvoudigste oplossing is meestal de beste oplossing voor de klant. Complexere oplossingen zullen moeilijker en duurder te onderhouden zijn. Wees niet bang om dingen weg te gooien, als ze hun doel voor het team hebben gediend en niet meer tot nut zijn.
Omarm verandering: plan het, regel het!
Plan voor verandering. De eisen van een klant veranderen voortdurend door andere omstandigheden, ervaringen en/of nieuw inzicht. Begrijp de waarschijnlijke richtingen van verandering door vooruit te kijken met behulp van technieken, zoals het analyseren van scenario's, en terug te kijken naar ervaringen met veranderingen in het verleden.
Als een bepaalde wijziging blijft terugkomen probeer dan manieren te vinden waarop dat soort wijzigingen gemakkelijker kan worden doorgevoerd en weer ongedaan gemaakt kan worden. Voer wijzigingen, die blijven terugkomen, door zonder onnodig documenten, broncode en/of datastructuren te blijven veranderen.
Kies de juiste oplossing
Het team moet de stakeholders kennen, inclusief hun doelen, hun behoeften en beperkingen. Stakeholders zijn diegenen die het systeem gebruiken en ervoor betalen, maar ook die het systeem ontwikkelen, uitrollen, onderhouden en exploiteren.
Heb moed in de architectuurbesluiten. Luister naar de argumenten, maar laat niet één stakeholder of belang het besluitvormingsproces domineren.
Lever kwaliteit
Focus op kwaliteit, maar meet de kwaliteit aan de hand van de waarde en bruikbaarheid van de leveringen aan de klant, niet aan de naleving van processen.
Plan en ontwerp voor testen. Sommige agile methodieken (met name eXtreme Programming) stellen dat eerst testen worden gerealiseerd, voordat de eerste regel wordt gecodeerd.
Test concepten. Om de architectuur te toetsen en risico's te mitigeren is het een goede praktijk om eerst een ​​prototype te ontwikkelen. Ontwikkel grote aanpassingen als de architectuur is bewezen.
Lever producten, waar mogelijk, regelmatig op en rol ze vaak uit. Een regelmatige leveringscyclus maakt het mogelijk om te leren en de architectuur tijdig bij te sturen.
Zorg ervoor dat interfaces duidelijk en goed gedefinieerd zijn. Dit geldt zowel voor fysieke interfaces naar andere systemen als voor menselijke interfaces.
Pas het proces aan op de organisatie. Help elkaar om regelmatig te kijken hoe het effectiever kan worden en pas methoden en gedrag indien nodig aan.
Modelleren en documenteren op een agile manier
Behendig zijn in modellering en documentatie is een sleutel in het bedrijven van agile architectuur. Zorg ervoor dat het model met een doel tot stand komt en het model in kleine stappen ontstaat. Gebruik de eenvoudigste tools, zodat het modelleren met iedereen binnen het team mogelijk is. Pas modelleringsnormen toe en gooi tijdelijke modellen weg als ze geen doel meer dienen voor het team.
Agile Architectuur in de praktijk
Het elfde principe achter het Agile Manifesto stelt dat "De beste architecturen, vereisten en ontwerpen voortkomen uit zelforganiserende teams". Veel mensen hebben geworsteld met het idee om een goede Agile-benadering te vinden voor het ontwerpen van een solide architectuur, zoals bijvoorbeeld Alistair Cockburn en zijn "walking skeleton".
Een bijzonder belangrijke praktijk die succesvolle teams toepassen is prototyping voorafgaand aan een doelsprint. Door voortdurende verkenning van de architectuur kan het team zich beter concentreren op het flexibel genoeg maken van de architectuur. Een flexibele architectuur helpt bij het ondersteunen van realiseren van toekomstige behoeften van de klant.
Agile architectuur helpt teams om een praktisch evenwicht te vinden tussen enerzijds niet te veel up-front architectuur en anderzijds onvoldoende architectuur.
Meer weten?
Agile in Focus heeft veel ervaring bij het opzetten van een agile architectuur voor grote en kleine organisaties. Bij Agile in Focus zijn we gecommitteerd om uw ontwikkelorganisatie verder te helpen om competitief te zijn in een snel veranderende markt. Wij kunnen u hierbij adviseren.
Comments