Artikel

SOAgile - Deel 8: Zelforganisatie en reflectie zijn voorwaarden voor de beste architectuur en effectief gedrag

Dit is het laatste artikel uit deze serie waarin ik het uitgangspunt, dat Agile en SOA veel met elkaar gemeen hebben, behandel en ik de verschillen en overeenkomsten tussen de Agile principes en de SOA principes onderzoek. Het doel van deze reeks artikelen is om de comptabiliteit tussen SOA en Agile softwareontwikkeling aan te tonen.

Vele organisaties in Nederland zijn namelijk bezig een service georiënteerde architectuur in te voeren. Dit terwijl de IT afdeling steeds vaker het Agile denkraam omarmt. Omdat ik veel waarde hecht aan beide concepten probeer ik altijd een brug te slaan tussen de nog steeds sterk gescheiden werelden van architecten en ontwikkelaars en tussen de business en ICT.

Om mijn doel en uitgangspunt te toetsen, vergelijk ik telkens één (of meerdere) van de 12 Agile principes [1] met de SOA principes. Zo probeer ik aan te tonen waar de concepten overeenstemmen, elkaar aanvullen en verschillen. Als bron voor de SOA principes gebruik ik telkens de publicaties van Thomas Erl [2].

Deze keer behandel ik de laatste twee Agile principes: “The best architectures, requirements, and designs emerge from self-organizing teams”en “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly”

Weer twee principes die, naar mijn smaak, veel met leiderschap en/of adequaat management te maken hebben.

The best architectures, requirements, and designs emerge from self-organizing teams

Mijn vertaling van dit Agile principe in het Nederlands is:

De beste architecturen, eisen en ontwerpen komen uit zelforganiserende teams.

Dit principe kan worden toegepast op SOA alsmede op Agile software ontwikkeling. In feite schrijft SOA niet voor hoe u deze architectuur bereikt. U kunt dit doen met zelforganiserende teams of door het voorschrijven van een architectuur die in feite is opgelegd door de CIO.

Managementparadigma

De keuze is aan u, maar bedenk dat de managementparadigma’s die vroeger passend waren in een industriële onderneming met vergaande arbeidsverdeling en grote afstand tussen de top en werkvloer niet meer werkt. Althans, niet in het huidige tijdsgewricht met kenniswerkers en de wens tot verplatting van de organisatie. In dat verband kan ik u weer naar mijn introductie artikel uit deze serie verwijzen.

Het realiseren van een SOA heeft , net als alle andere prestaties, behoefte aan mensen van alle disciplines met de kennis over en uit hun respectievelijke domeinen. Deze mensen behoeven geen sturing als ze willen samenwerken.

Coördinatie tussen de mensen uit het bedrijfsleven, architecten, procesmodelleurs, testers en ontwikkelaars van de services is nodig en juist daarvoor is een multidisciplinair en zelforganiserend team het meest geschikt.

Meet in the middle

Het belangrijkste dat ik hier wil overbrengen is dat er een architectuurvisie nodig is omdat de oplossingen en opleveringen (services) moeten passen in het grotere geheel. Het top down gedeelte zullen we maar zeggen, want gezamenlijk een architectuurvisie bouwen is nog niet echt evident. Architectuur moet tevens deel uitmaken van het zelforganiserend team. Dit kan op een zodanige manier georganiseerd worden dat het vervolgens overdraagbaar is van team naar team.

Agile praktijken en zelforganisatie kunnen, op zichzelf staand, niet alle architectonische uitdagingen oplossen. Een ´solution’ architectuur kan heel goed worden toegepast op een Agile manier, door middel van refactoring, ontworpen in kleine stapjes en hoofdzakelijk uitgedrukt in programmatuur. Die architectuur ontstaat dan als het ware. Dit is het bottom-up deel van de architectuur welke gepaard moet worden aan het top down gedeelte. Ik stel voor elkaar halverwege tegemoet te komen; “let us meet in the middle’.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

Mijn vertaling van dit Agile principe in het Nederlands is:

Met regelmatige intervallen overdenkt het team hoe het efficiënter kan worden, stemt dit af en past het gedrag dienovereenkomstig aan.

Leren en reflecteren

Dit principe gaat over leren, reflectie en verbeteren. Omdat SOA niets zegt over de manier om dit laatste principe te bereiken, maar alleen beschrijft welke principes en bouwstenen we nodig hebben, kunnen we dit Agile principe gemakkelijk toepassen op onze architectonische inspanningen.

Het zal duidelijk zijn dat je continu test en de inspanningen beoordeelt, de kwaliteit meet, telkens leert, nog méér leert en refactort (encapsulate, generalize etc. [3]), om herbruikbare en waardevolle services te ontwerpen en te bouwen. Al is het maar ‘hoog over’ gesteld; er zullen bepaalde kwaliteitsnormen ingevoerd moeten zijn.

Een service georiënteerde architectuur geeft het ontwerp- en ontwikkelteam een concreet product (de service) om over te praten en een set van principes om de kwaliteit ervan te meten.

Een retrospectief, welke zich focust op de services die gebouwd zijn, kan vragen bevatten zoals:

  • Hoe kunnen we de herbruikbaarheid van onze services verbeteren?
  • Hoe kunnen we onze services waardevoller maken in de ogen van de belanghebbenden?
  • Welke onderdelen van het systeem kunnen we vervangen door de bestaande services?
  • Hoe kunnen we onze volgende service levering sneller en met minder bugs realiseren?
  • Kunnen we generaliseren?

Dagelijkse stand-up meetings, continue integratie en demonstraties van de opeenvolgende iteraties kunnen helpen om de controle over en de aanpassing van de architectuur, alsmede de ontwikkeling van de software te bevorderen.

SOA is hier slechts een handschoen en Agile de hand die werkt in de SOA handschoen. Het toepassingsgebied is de hele onderneming. Agile gaat over de manier waarop u het deel dat wordt ondersteund door software ontwikkelt. Althans, als je Agile in het - enge - begrip ervan beschouwd. De meeste principes van SOA en Agile zijn niet met elkaar in conflict, integendeel zelfs. Daar waar ze verschillen, houden ze elkaar in feite gezond.

Agile ontwikkeling zonder een duidelijke visie op de doelen en doelstellingen van het bedrijf is zinloos. Service Oriented Architecture is, zonder een duidelijke visie hoe u echt gebruik maakt van Agile software ontwikkeling principes, een grove verspilling van tijd en geld.

Business agility

SOA en Agile gaan over wendbaarheid, adaptieve bedrijfsvoering en verandervermogen (dat geldt met name voor de principes die niet met elkaar botsen). SOA gaat over de architectonische vorm en Agile ontwikkeling gaat over snelle levering. Ze houden elkaar in evenwicht. In feite beweer ik dat een SOA alleen op een Agile manier gerealiseerd kan worden en de wens voor een service georiënteerde architectuur een Agile aanpak rechtvaardigt. De een heeft geen zin zonder de andere. Zoals al eerder gezegd: als in een goed huwelijk eigenlijk.

Huwelijk

In dat verband wil ik als een soort slotakkoord een kort verhaaltje vertellen dat een samenvatting geeft van mijn idee over Agile en SOA en mijn rol als bedrijfsarchitect. Deze is in het Engels en met een knipoog, maar u begrijpt het vast wel.

There once was a matchmaker, called Ladybeetle who looked into the principles, values and believes of Lady Agile and Sir SOA. According to their own principles, values and believes, a marriage between the two seemed to be made in heaven. So this matchmaker arranged for them to meet. At their first date they talked about their shared, different and complimentary views on the future and decided to meet again. Many more meetings followed. They are now identifying the (sometimes naughty) details that would spice up their love life which would help to assure them of healthy offspring. At this moment they are already engaged to be married. So love is in the air. As a community we will help them as much as we can to make their wedding enjoyable and festive, their matrimony fertile and their lives long and prosperous.

Categorie:   
Auteur(s)
afbeelding van marybeijleveld
Mary Beijleveld
ABC-thinkBIG - Business consultant, bedrijfsarchitect en Agile project manager

Mary Beijleveld is afgestudeerd bedrijfskundige (MScBA) aan de Universiteit van Groningen. Het onderwerp van haar afstudeeropdracht was: "Het nut van SOA voor -mijn organisatie- in termen van strategische innovatie".

Ze werkt als senior business consultant, bedrijfsarchitect en Agile project manager. Haar aandachtsgebied is de waarde van architectuur voor de business in het algemeen en SOA & procesoptimalisatie in het bijzonder. Ze werkt het liefst op het snijvlak van business en technologie, waar complexe vraagstukken moeten worden aangepakt en de druk om praktische verbeteringen aan te brengen, hoog is.

Naast haar passie voor Agile project- en ontwikkelmethoden, netwerken, bloggen (www.ABC-thinkBIG.com/weblog/) en schrijven van opiniërend artikelen is zij Certified Scrum Master en Product Owner, heeft jarenlange ervaring in het managen van projecten, issue control en uitgebreide kennis van diverse project management methoden. http://nl.linkedin.com/in/marybeijleveld Twitter: ladybeetle

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.
Indien het niet lukt om een reactie te plaatsen, stuur dan uw reactie naar redactie@xr-magazine.nl.
Alle inzendingen dienen correct, professioneel en beschaafd te zijn. IP-adressen worden gelogd, maar niet gepubliceerd. De redactie van XR Magazine behoudt zich het recht voor om anonieme reacties (niet op naam) of zonder geldig e-mailadres, te verwijderen zonder kennisgeving. Ook reacties waarin commerciële uitingen worden gedaan en/of commerciële producten en diensten worden aangeboden worden door de redactie verwijderd of ontdaan van commerciële uitingen zonder kennisgeving.