enterprise architectuur

RSS feed

Projecten en architecten gaan prima samen

Projecten en allerlei vormen van ICT-architecten vormen in de praktijk vaak een wat onhandige combinatie. Er wordt in ieder geval veel over geklaagd in mijn omgeving. Zou daar wat aan te doen zijn?

 
"Ben ik net lekker bezig met een project, komt er een architect langs die zegt dat het anders moet"
 
Je kent de situatie wel. Je hebt een idee voor een nieuwe dienst en weet dat daar veel behoefte voor is. Gelukkig denken meer mensen binnen je organisatie dat ook, en je start een project om de boel op te zetten. Er moet wel een nieuw stukje website ontwikkeld worden, maar niemand ziet daar veel problemen in. Eind goed, al goed. Alleen, een paar weken later krijg je een telefoontje. Van een architect die even wil bijpraten over je project. Tijdens dat gesprek blijkt dat je mooie webuitbreidingen eigenlijk helemaal niet kunnen. Dat het op deze manier niet binnen het huidige informatie- en ICT-beleid past.  Er moet nu fundamenteel opnieuw over het project nagedacht worden. Je staat perplex. Kan dit inderdaad zo maar gebeuren?  En kan het niet anders? 
 
Natuurlijk kan zoiets anders. Bovenstaand voorbeeld is een typisch geval van te weinig afstemming tussen de architectuurfunctie en de projectorganisatie. Vaak ontstaat dit hoog in de organisatie. Verschillende managers krijgen dan verschillende doelen mee, die niet op elkaar afgestemd worden. Zo zal de gemiddelde business manager gaan zorgen voor meer omzet, minder kosten of meer marge. En de CIO zorgt ondertussen voor meer kwaliteit in de informatievoorziening, tegen minder kosten. Iedereen blij, natuurlijk. 
 
In projecten blijken deze doelen regelmatig tegenstrijdig. Want meer omzet kan prima lukken met een nieuwe dienst. Die even snel via een nieuwe website in de markt wordt gezet. Als die website echter met nieuwe technologie wordt gemaakt, dan ziet de CIO plotseling extra licenties, extra beheer en extra diversiteit in zijn portfolio opduiken. Iets wat zijn of haar architecten zullen tegenhouden.
 
De uitweg uit deze impasse in tweeërlei. Zorg ten eerste dan in ieder businessproject zo snel mogelijk een architect betrokken is. Een dooddoener, denk je. Maar ik zie nog steeds legio projecten waar dit niet gebeurt. Aangezien architecten de bedrijfsbrede doelarchitectuur kennen, kunnen zij adviseren over een maakbare, en haalbare oplossing. Ten tweede: architecten mogen geen architectuuroplossingen inbrengen die niet binnen de looptijd van het project te realiseren zijn. Loopt het project een jaar? Dan kan het niet zo zijn dat projectresultaten moeten voldoen aan een doelarchitectuur die pas over drie jaar gaat gelden. Architecten zullen dus, of op projectbasis, of bedrijfsbreed, moeten toewerken naar aan realistisch architectuurdoel. Geen luchtkastelen waarbij alles tegelijkertijd op de schop moet, maar haalbare doelarchitecturen die de kwaliteit van de informatievoorziening telkens een stapje verbeteren.

Architect en architectuurdomeinen

Ieder zichzelf respecterend architectuuraamwerk kent architectuurdomeinen. TOGAF houdt het bij business, application, data en technology architecturen. DYA gebruik Product, Proces, Organisatie, Gegevens, Applicatie, Middleware, Platform en Netwerk. Zachman gebruikt Data, Function, Network, People, Time en Motivation.

Domeinen gebruik je om een probleem of oplossing inzichtelijk te kunnen vormgeven. De meeste problemen en oplossingen zijn niet triviaal. Daardoor zijn ze moeilijk in één plaat te presenteren (ook al denken veel managementguru’s dat iets niet bestaat als het niet in een 4-kwadranten model weer te geven is).
 
Kerncompetenties van een goede architect zijn om te kunnen bepalen welke domeinen nodig zijn het probleem inzichtelijk te presenteren (maak niet de fout om altijd alle domeinen te gebruiken), om te bepalen in welk domein de oplossing primair gevonden gaat worden (soms los je iets op met een betere applicatie, soms met een andere organisatie-inrichting, soms met een verandering van technologie), en hoe de oplossing vanuit haar primaire domein doorwerkt in de andere domeinen (een organisatie met kenniswerkerfuncties heeft niets aan een gedetailleerd werkend workflowmanagement systeem).

Wat doet een architect?

Architect is in de digitale wereld een nogal „overloaded" begrip. Het betekent voor verschillende mensen verschillende dingen. Daarom hier mijn beeld.

Voor mij is een architect iemand die het globale ontwerp neerzet voor de oplossing. Dat ontwerp is wel precies, maar niet gedetailleerd. Bijvoorbeeld bij een software architect: het is de opdeling in componenten, de definitie van hun samenwerking (via provided en required interfaces) en de definitie van die interfaces. Het is niet de inhoud van componenten (class niveau). Het is dus niet gedetailleerd (geen klasse-opdeling), maar wel precies (interfacespecificaties). En ik zou via stubs de globale werking van het systeem kunnen prototypen. Software is echter maar een deel van de oplossing, en idealiter beschrijft het globale ontwerp de totale oplossing. 
 
In het globale ontwerp zitten beslissingen over hoe de oplossing in elkaar zit, zowel constructief (bv gebruik van één-loket gedachte, gebruik OO paradigma), als functioneel (denk aan de begrenzing van het probleem, maar ook aan XP's metafoor) als technisch (denk aan allerlei gekozen (outsourcing)partners en tools). Hiervoor is het begrip „enterprise architectuur” bedacht. Een enterprise architect is iemand die de oplossingsrichting vorm geeft over allerlei domeinen heen.
Verder geeft de globale oplossing aan, liefst expliciet (maar minstens impliciet) welke detailontwerpen toegestaan zijn (en welke uitgesloten worden). De globale oplossing is een leidraad naar een goede oplossing (eindproduct met vooraf gedefinieerde kwaliteit), en maakt het ook mogelijk om die goede oplossing op een goede manier te bereiken (het stuurt de proces-/projectinrichting). 
 
In de rol van architect zitten nog wel wat onduidelijkheden:
  • Het verschil tussen ontwerper en architect: is mijnerzijds een kwestie van schaal, zoals de RUP software architect ook gewoon een senior ontwerper genoemd zou kunnen worden.
  • Het verschil van aandachtsgebied: je kunt een probleem oplossen door een keten, een bedrijfsinrichting, een informatievoorziening of technologie te veranderen. En meestal verandert alles tegelijkertijd. Wie houdt er overzicht over of al die veranderingen passen binnen de gekozen globale oplossingsrichting? Is dat de enige echte architect??
  • Het verschil in scope: ben je al architect als je het globale ontwerp van een systeem neerzet, of ben je pas architect als je het globale ontwerp voor een familie van systemen neerzet?
  • De balans tussen abstract en concreet: hoe meer je architectuur iets generiekers moet zeggen, hoe minder concreet het wordt, en hoe minder makkelijk de architectuur te vertalen valt naar een concrete oplossing in een project. Vanuit de gegevensgerichte "wereld" spreken we over het "datamodel voor alles" probleem: er is een datamodel te maken met twee entiteiten en twee relaties waarin de hele wereld te modelleren valt. Alleen heb je daar dus niets meer aan, want het levert geen overzicht, samenhang, et cetera meer op.
 
Vervolgens zijn er een aantal uitdagingen die de architect aan mag gaan:
  • Veel mensen weten niet hoe een goed eisenpakket er uit ziet. Vaak wordt eisenpakket verward met functionele eisen. Maar niet-functionele eisen (zie bijvoorbeeld ISO 9126) en allerlei constraints (tijd, geld, kennis, capaciteit, middelen) bepalen ook hoe de oplossing er uit kan zien. Als je maar een deel van de eisen kent, kun je nooit tot een goede oplossing komen.
  • Veel mensen kunnen alleen maar concreet denken, en niet abstract. Dus een geïmplementeerde applicatie met zichtbare schermen snapt men, maar een domeinmodel van waar het in de organisatie om gaat snapt men niet. Denk bijvoorbeeld aan een opleidingsorganisatie waar de cursusadminstratie, de projectenadministratie, de financiële administratie en de agenda van trainers allemaal over dezelfde domeinconcepten gaan, maar deels verschillend geïmplementeerd zijn, (deels) niet-synchroon lopen, en in feite allemaal onbeheersbare kopieën bevatten van in essentie dezelfde domeinconcepten (cursist, factuur, cursusuitvoering, trainer, materiaal, budget, realisatie).
  • Veel mensen kunnen niet omgaan met onzekerheid en durven geen keuzes te maken op onvolledige informatie. Dit fenomeen wordt versterkt door het watervaldenken, waarachter de filosofie zit dat als je maar genoeg details hebt, je alles in één keer goed kunt doen. Een architect probeert wel zo snel mogelijk tot een oplossingsrichting te komen, maar zal onderweg moeten bijsturen. Dat laatste wordt a) meestal vergeten b) als onelegant beschouwd en c) dus liever niet gedaan want daar score je niet mee. En bij wijzigingen in je huidige implementatie, zouden alle bestaande implementaties ook gewijzigd moeten worden, om synchroon te blijven met het betere begrepen domeinmodel. 
 
Misschien toch wel een beetje een schaap-met-5-poten-rol, zo’n architect. Ik blijf dus dromen dat het nog eens echt goed wordt gedaan....

Goede architecten zijn agile - en goede archituren zijn to-the-point

Vorige week kwam ik weer in de geijkte discussie terecht: we hadden het over het maken van een doelarchitectuur, en direct was er iemand die "geen tijd wilde besteden aan het zinloos uitwerken van een hele architectuur". Ik snap zo'n reactie niet. Waarom zou een doelarchitectuur een "hele" architectuur zijn? Wat is "heel" eigenlijk? Het klinkt als veel werk, in ieder geval. En dat bedoelt de spreker ook vaak: architecturen kosten te veel werk! En dan is het uitwerken er van ook nog "zinloos"! Goh, denk ik dan, hoeveel architecten zouden graag veel tijd steken in iets wat door hun omgeving als zinloos wordt gezien?

 
Mensen die architectuur ervaren als veel werk, hebben ervaring met  de verkeerde architecten. Beter geformuleerd: ze hebben ontwerpers of engineers mee mogen maken die zich voordeden als architect - die hebben behoefte aan (te veel) detail. Of ze zijn iemand tegengekomen die doel en middel niet uit elkaar weet te houden - het te leuk vindt om architectuur te maken om de architectuur zelf. Maar in de gemiddelde bedrijfssituatie is architectuur altijd een middel, en geen doel op zich. 
 
Een goede architect is per definitie agile. Bedenkt niet meer dan nodig is. Op het moment dat het nodig is. Je hoeft geen architectuur van 400 pagina's te maken als je de informatievoorziening wilt laten groeien naar een servicegeoriënteerd applicatielandschap. In eerste instantie zijn 4 pagina's meer dan genoeg. Vervolgens zien we wel weer verder. Een goede architectuur is per definitie doelgericht. Een organisatie wil iets bereiken, een architectuur geeft richting aan hoe dat kan. Niet meer, maar ook niet minder.
 
Zoals Ruud van Vliet, Arjen Uittenbogaard en ik al schreven voor het Landelijk Architectuur Congres 2006: "Een architect is geen showstopper, geen boe-roeper, geen luchtfietser. Helaas komen we hem maar al te vaak in een of meer van die rollen tegen. Wij menen dat dit heeft te maken met gebrek aan ‘agility ’! Een agile architect weet dat een architectuur niet in beton gegoten is, dat standaarden aangepast kunnen worden en dat minder regels beter is dan veel regels. Een agile architect weet dat je de effectiviteit van een architectuur alleen maar kunt beoordelen tijdens de toepassing ervan."
Zie ook hoofdstuk 4, De Agile Architect, in het boek "Wendbaarheid door Architectuur".
 
Een architect is geen "business preventer". Hij of zij geeft juist inzicht in total cost of ownership en total (IT) risk of ownership. Waarna de opdrachtgever mag bepalen of deze kosten en risico's door de organisatie gedragen kunnen worden.

Alleen kiezen voor ArchiMate is niet voldoende

Steeds meer organisaties hebben aandacht voor enterprise architectuur. En daardoor kiezen ook steeds meer organisaties voor ArchiMate als taal voor het visualiseren van hun enterprise architectuurmodellen. ArchiMate is hier zonder twijfel uitermate geschikt voor. ArchiMate is namelijk de enige taal die het mogelijk maakt om in één visualisatie alle aspecten van zo'n architectuur te laten zien, en die daarbij toch een formele basis heeft. En als zodanig overstijgt ArchiMate duidelijk het niveau van "rechthoeken en pijltjes" in PowerPoint.

Maar alleen kiezen voor ArchiMate is niet voldoende. Want ArchiMate geeft wel voorschriften voor *hoe* er gemodelleerd kan worden, maar geeft geen richtlijnen voor *wat* er gemodelleerd moet worden. En dat laatste is het startpunt voor een goede visualisatie (en het achterliggende model).

Een voorbeeld: in ArchiMate kan de gegevensuitwisseling tussen applicaties op een aantal manieren getoond worden. Zo kan het via data flows tussen applicaties, via access relaties met een gedeeld data object, of via afhankelijkheden tussen services en/of interfaces. De data flow is hierbij het meest eenvoudig te modelleren, maar laat een aantal zaken onduidelijk. Zoals hoe de gegevens precies uitgewisseld worden. Ook blijft onduidelijk welke applicatie de gegevensuitwisseling initieert, of hoe de afhankelijkheden tussen de applicaties precies in elkaar zitten. Zaken die bij het maken van een roadmap voor opschoning van een applicatielandschap wel interessant zijn, maar voor toelichting aan gebruikers en/of managers vaak weer niet.

Een andere voorbeeld: ArchiMate zegt niet welke gegevens je over de elementen op een diagram vastlegt. En ook mist het een aantal elementen. Zo is eigenaarschap, van bedrijfsprocessen of applicaties, niet standaard te modelleren. En ook kent ArchiMate geen principes, knelpunten of veranderprojecten.

Een goede ArchiMate implementatie lost bovenstaande zaken op, en meer. In zo'n implementatie is er aandacht voor het maken van een pragmatische modelleeraanpak en het opstellen van handige modelleerrichtlijnen. Niet omdat het leuk is, maar omdat het nodig is om gericht de juiste modellen te maken.

Architectuurprincipes vastleggen

Er is momenteel geen open standaard voor de vastlegging van architectuurprincipes. TOGAF 9 beschrijft een sjabloon voor vastlegging van individuele principes, maar biedt geen structuur voor het vastleggen van een verzameling principes in relatie tot elkaar en in relatie tot andere architectuurproducten. ArchiMate kent, als taal voor het vastleggen van architectuurproducten, momenteel geen architectuurprincipes in haar metamodel.

In juni 2010 heb ik met hulp van Ben Binnendijk van Cap Gemini en Eric Roovers van IDS Scheer een artikel gepubliceerd over het gestructureerd vastleggen van architectuurprincipes. Deze structuur kan in architectuurrepository’s gebruikt worden als aanvulling op het TOGAF Architecture Content Model (ACM) of het ArchiMate metamodel.

Kijk op Via Nova Architectura voor een html-versie van het artikel. Of download de PDF van het artikel.

De taal van architecten bij de Dienst Justitiële Inrichtingen - over de invoering van ArchiMate

De invoering van een gemeenschappelijk taal is niet makkelijk. Dat geldt ook voor ArchiMate als taal voor het modelleren en visualiseren van enterprise architectuur beschrijvingen. Bij de Dienst Justitiële Inrichtingen (o.a. gevangenissen en vreemdelingendetentie) zijn we hier zo'n 2 jaar mee bezig geweest. Afgelopen week heb ik samen met Ben Binnendijk hierover een presentatie gegeven op het Landelijk Architectuur Congres (LAC 2010, 24 november).

Op de site van het LAC 2010 kun je de volledige presentatie over de invoering van ArchiMate terugvinden 

Een paar hoofdpunten:

  • Een gemeenschappelijk taal leidt tot minder discussies binnen het team
  • ArchiMate kent een afgebakend toepassingsgebied - architectuurplaten op hoofdlijnen - voor minder gedetailleerde "praatplaten" blijft PowerPoint beter, voor gedetailleerdere diagrammen zijn bijvoorbeeld BPMN en UML weer beter
  • ArchiMate is goed toepasbaar, alleen kunnen bepaalde concepten lastig of niet uitgedrukt worden. Iedere gebruiker zal moeten kijken in welke mate hij/zij ArchiMate op een pragmatische manier uitbreidt

     

De presentatie laat een goed beeld zien van de stappen die zijn gezet. Daarnaast krijg je ook een beeld van het soort diagrammen dat we hebben gemaakt. Door de tijdsrestrictie van een half uur zijn er ook onderwerpen weggelaten. Zoals de inrichting en het beheer van de repository, of regels voor het goed visualiseren van ideeën in het algemeen. Mocht je daar vragen over hebben, neem dan contact op.

Wat is het nut van Enterprise Architectuur?

Als ik als enterprise architect bij klanten actief ben, wordt de vraag vroeger of later gesteld: “wat is nu eigenlijk het nut van die Enterprise Architectuur (EA) van jou?” Of ook wel botweg: “Gaat dit nu ook nog iets bijdragen?” Geen onterechte vraag van pragmatici als projectleiders of COO’s, die vooral voor het resultaat gaan.

CIO Podcast Enterprise Architectuur

Welkom bij de Caerleon Enterprise Architectuur Podcast nummer 1 van maart 2006. Uw gastheer vandaag is Rijk van Vulpen. Caerleon is een Enterprise Architect adviesbedrijf in Nederland. Als u contact wenst op de tenemen met ons of feedback te geven op deze podcast, gebruik dan ons e-mail adres info@caerleon.nl.


In onze podcast delen we kennis met u over informatie architectuur en innovatieve ontwikkelingen in informatieland. Het richt zich op CIO's, business en informatie managers, die actuele informatie wensen met betrekking tot informatiemanagement en informatie architectuur. Iedere consultant van Caerleon heeft zijn of haar eigen focus en meningen, dus iedere podcast zal vanuit een eigen invalshoek kijken. En omdat de praktijk van informatie/enterprise architectuur nog steeds in ontwikkeling is, brengen we verschillende, soms conflicterende en zich ontwikkelende meningen.

Drijfveer

Hoe komt het toch dat informatie in organisations niet veel innovatiever, consistenter en effectiever wordt toegepast?

Dat is de vraag die me nu voor jaren intrigeert. Ik zocht de antwoorden in disciplines zoals enterprise architectuur en informatie architectuur. Hoewel ik in dergelijke beta-wetenschap begon heb ik mijn blik verruimt naar de kunst, de veranderkunde, de semantiek en de filosofie.

In deze blog zal ik gaan zoeken hoe we informatie anders kunnen gaan gebruiken, om de informatiewerker optimaal te bedienen.