Sinds de introductie van het begrip agile rond de eeuwwisseling wordt er gepuzzeld hoe het te verenigen is met architectuur. Er lijkt een fundamenteel verschil in doelstellingen te bestaan: architecten zoeken stabiliteit en toekomstvastheid, agilisten zoeken wendbaarheid, een soort toekomst 'los'heid. Om de juiste balans te kunnen vinden moeten zowel agile-aanhangers als architecten hun eigen discipline op een iets andere manier bekijken.
Sommigen vinden onder architectuur en agile werken tegenstrijdig. Het lijdt geen twijfel dat de manier waarop de agile-beweging aankijkt tegen Big Up-Front Design (BUFD) op het eerste gezicht lijnrecht tegenover het werken onder architectuur staat. Deze perceptie van onverenigbaarheid wordt versterkt door het door Philippe Kruchten amusant beschreven verschijnsel dat de agile-beweging zich soms als een religie gedraagt, compleet met dogma’s en verkettering van andersdenkenden (KRUCHTEN2007). Op blogs gaan agile-aanhangers wild tekeer tegen iedere suggestie dat van tevoren nadenken over architectuur soms nuttig kan zijn, of dat niet alle belangrijke (kwaliteits-)eisen achteraf nog kunnen worden ingevuld via het magische ‘refactoren’ van een it-oplossing.
Wie goed kijkt, ziet dat architectuur en agile twee kanten van een spectrum vertegenwoordigen. Waar op het spectrum je project het beste kan verblijven hangt af van de context. Barry Boehm suggereert dat de ideale plaats op dit spectrum afhankelijk is van drie factoren die bepalen hoeveel architectuur vooraf nodig is: de grootte van het project, de veranderlijkheid van de omgeving en de mate waarin de it-oplossing kritiek is voor de bedrijfsvoering (BOEHM2010).
Agilisten kunnen succesvoller worden als ze de projectcontext meenemen in hun oordeel over het nut van architectuur, maar wat kunnen architecten doen om de kloof tussen agile en architectuur van hun kant te dichten? De principes uit het Agile Manifesto zijn lang genegeerd door de architectuur-beweging, althans zo lijkt het als je bijvoorbeeld naar Togaf kijkt, het populaire architectuur-framework van de Open Group. De Togaf Architectuurmethode ADM vereist nog steeds behoorlijk zware documentatie, geproduceerd door vaak logge processen als Business Architecture, Information Systems Architecture en Technology Architecture. Voor een wendbare architectuur-omgeving zijn dit soort EA-aanpakken niet geschikt. In de wereld van de software-architectuur zie je wel langzaam lichtere architectuur-aanpakken opkomen, zoals de ‘Just Enough Software Architecture’-aanpak van George Fairbanks (FAIRBANKS2010). Deze meer wendbare aanpakken zien architectuur niet meer hoofdzakelijk als een ontwerpdiscipline, maar meer als een manier om risico’s te beheersen en met onzekerheden om te gaan.
Een recent beschikbaar gekomen agile architectuur-aanpak is Risk- and Cost Driven Architecture (RCDA) voor solution-architectuur. Deze aanpak is ontwikkeld om het gat tussen enterprise-architectuur en software-architectuur te dichten. Bestaande software-architectuur praktijken zijn namelijk vaak te beperkt voor de complexiteit en scope van de oplossingen die ontworpen moeten worden, maar de enterprise-architectuur praktijken zijn vaak te log voor de wendbaarheid die wordt vereist door tijdsdruk en frequent optredende onzekerheden en veranderingen. De RCDA-aanpak neemt een aantal aspecten uit agile software-ontwikkelmethodes over. Zo werkt de aanpak met een backlog van architectuurvraagstukken die soms dagelijks geherprioriteerd worden op economische gronden.
Het geheim van het agile maken van architectuurwerk zit hem, net als bij agile software-methodes, in het op een andere manier kijken naar wat het werk oplevert. Zo levert een agile software-ontwikkelteam niet een ‘big-bang systeem’, maar een continue stroom van verbeteringen aan een systeem. Op dezelfde manier levert een agile architect niet een ‘big up-front design’, maar een continue stroom van architectuurbeslissingen die stap voor stap de onzekerheden en risico’s rond complexe it-oplossingen onder controle brengen. Hoeveel architectuur er moet worden ingebouwd wordt dan niet bepaald door agile dogma’s als ‘You Ain’t Gonna Need It’ (YAGNI), maar door economische afwegingen die de werkelijke waarde van architectuur bepalen.
Samenvattend, architecten kunnen veel doen om de kloof met agile te dichten. Dat is ook dringend nodig, want anders verliezen architectuurafdelingen alle voeling met it-ontwikkelafdelingen, waar agile werken de norm aan het worden is, en met de business, waar de vraag vandaan komt sneller en beter in te spelen op veranderende (markt)omstandigheden. De belangrijkste verandering die architecten moeten maken is dat ze architectuur niet meer zien als een vooraf aan projecten op te leveren ontwerpdocument, maar als een continu proces van besluitvorming met als doel om risico’s, kosten en onzekerheden onder controle te brengen. Zo kunnen architecten de toegevoegde waarde en flexibiliteit leveren die de business van ze verwacht.
Bedankt voor jullie reacties, blijkbaar leeft het onderwerp!
@Kaspar: ik zie de architect inderdaad als onderdeel van een development of delivery organisatie, in ieder geval in de latere fasen van de levenscyclus van een oplossing.
@mauwerd, @Michel, @Ewout: het is inderderdaad allemaal niet makkelijk. Zoals ik onlangs Philippe Kruchten nog hoorde zeggen: “The life of an architect is a long succession of suboptimal decisions made partly in the dark”. Je weet als architect zeker dat een deel van je beslissingen fout is. Des te meer reden om zoveel mogelijk oneigenlijke factoren uit te bannen, en je argumenten als architect klinken toch het beste als je ze in business termen uitdrukt: risico’s, kosten en waarde.
@Cees: RCDA is inderdaad deels gebouwd op de software architectuur practices van het SEI, en de basis-ideeen van attribute driven design en architecture trade-off analysis zitten er nog steeds in. Maar vanaf het begin was duidelijk dat de onverdunde SEI practices veel te zwaar zijn voor de meeste praktijk-architecten. RCDA is inderdaad mede ontstaan uit de behoefte om architectuur in bid-trajecten te kunnen bedrijven, en de deadlines die vaak aan die trajecten hangen hebben zeker bijgedragen aan het agile karakter. Maar het religieus fundamenteel-agilisme vind je inderdaad in RCDA niet terug.
@Louis Kossen: Niet alleen continous delivery en devops, maar ook de Agile projecten. Het releasematige zaken over zetten wordt steeds kortcyclischer. Dus ja uiteraard moet beheer zorgen voor stabiliteit en betrouwbaarheid, maar daar komt steeds meer bij kijken en het gaat ook verder dan het in beheer nemen van zaken.
@MichelMartens. Ik ben heel benieuwd wat er meer bij komt kijken buiten dat je al beheerder vaker nieuwe releases voor de kiezen krijgt.
@EltjoPoort Mooi artikel was dat van Kruchten (Voyage in the Agile Memeplex). Als Agile scepticus sprak me dit aan. Ik vind het occulte IT.
Goed artikel, met name je conclusie is behoorlijk Agile.
Mag ik refereren naar je artikel op andere blogs?
Dank Douwe, natuurlijk mag je naar mijn artikel refereren – graag zelfs!