Agile Modelling

Enterprise Architectuur & de basisprincipes van Agile Modelling


Bij het agile definiëren van een enterprise architectuur zijn er een aantal essentiële stappen onderscheidbaar:

  1. De klant communiceert de visie en doelstelling, zodat een conceptuele architectuur bepaald kan worden. Het voornaamste doel hiervan is zorgen dat de behoeften van de klant volledig opgenomen worden in een rudimentair model en dat er een goede en volledige basis gelegd wordt voor de meer gedetailleerde modellen.
  2. Het rudimentaire model wordt vervolgens verfijnd door middel van verschillende iteraties, in nauw overleg met de ontwikkelaars en andere teamleden. Deze verfijning resulteert in meer gedetailleerde modellen en (eventueel) prototypes. In deze stap wordt er over gewaakt dat de modellen nog steeds overeenkomen met de te realiseren doelstelling. De modellen die klaar zijn worden dan doorgezet naar de ontwikkelaars.
  3. Deze modellen worden door de ontwikkelaars als basis gebruikt voor hun software. De typerende agile ontwikkeliteraties leiden dan tot het uiteindelijke resultaat. Het resultaat van de verschillende iteraties wordt nog evenzeer afgetoetst aan de oorspronkelijke doelstelling.

Stap 2 en 3 lopen parallel. Terwijl bepaalde modellen nog gedefinieerd worden, worden andere afgewerkte modellen reeds geïmplementeerd.

Samengevat in een schema:

De hoofdprincipes van AM

Op het internet bedelven ze je met ellenlange lijsten van Agile Modelling principes. Ik doe er nog een lijstje bij maar probeer het allemaal kort en bondig te houden.

Het lijstje:

  1. Klant is Koning
  2. Eenvoud is Troef
  3. Incrementele vooruitgang
  4. Verwelkom verandering
  5. Laat je ego thuis

De Klant

Het draait allemaal om de klant. De voorgestelde modellen dienen dus de visie en de doelstelling van de klant te reflecteren. Controleer regelmatig of de modellen nog bijdragen aan het vooropgestelde doel.

Maak zeker niet de fout om dit alleen tijdens de modelleerfase te doen, maar doe het zeker ook regelmatig tijdens het verdere verloop om te zorgen dat de ontwikkelde code nog steeds voldoet aan de vereisten van de klant.

Software

De modellen hebben tot doel om software ontwikkelaars in staat te stellen om software te schrijven. Dit betekent:

  1. De modellen moeten tot stand komen door regelmatige terugkoppeling met de ontwikkelaars
  2. De modellen moeten net genoeg informatie geven om code te schrijven
  3. De modellen mogen niet teveel of te weinig informatie geven om kwaliteitsvolle code te genereren

Eenvoud is troef

De modellen dienen uit te blinken in eenvoud en duidelijkheid:

  1. Gebruik de meest eenvoudige tools. In de meeste gevallen volstaan een whiteboard in combinatie met de camera van een smartphone.
  2. Gebruik standaarden die iedereen kent. Als jij de enige bent die UML spreekt, gebruik dan een vereenvoudigde vorm en verspil geen tijd met het uitleggen van (of erger: het discussiëren over) ‘constraint inheritance’ of het ‘Liskov substitutie principe’.
  3. Zorg dat er net genoeg, en niet teveel, gedocumenteerd is zodat iedereen weet hoe de oplossing in mekaar gaat zitten.
  4. Modelleer alleen wat je vandaag nodig hebt en doe de rest later.
  5. Ga er vanuit dat de simpelste oplossing de beste is.

Incrementele vooruitgang

Start met de basics en koppel deze zo snel mogelijk terug naar anderen om ze te verfijnen. Doe dit zo vaak mogelijk en optimaliseer ze met de feedback van iedereen in het team.

Verwelkom verandering

De wereld draait om verandering. Jouw modellen zijn hier dus ook aan onderhevig. Plotse veranderingen in de markt kunnen de doelstellingen van een project veranderen, waardoor ook de modellen moeten aangepast worden.

Laat je ego thuis

Er zijn weinig goeroe’s die volledig op zichzelf perfecte modellen tevoorschijn kunnen toveren. Laat je ego thuis en hou niet halsstarrig vast aan jouw ‘creaties’.


Stefan Luyten

Voor meer info: http://www.triton-consulting.be

Show your support

Clapping shows how much you appreciated Stefan Luyten’s story.