Diagnose, Ontwerp en Verandering

Agile architectuurontwikkeling:Evolutie, revolutie of hype?

Meer en meer organisaties kiezen voor een agile aanpak voor ontwikkeling. Integraal onderdeel is dan ook het ontwikkelen van een architectuur vanuit een agile methodiek. Om de juiste keus te maken voor ontwikkeling van een systeem is onderzoek naar de context waarbinnen ontwikkeling plaats moet vinden echter noodzakelijk. Onder systeem wordt hier verstaan het geheel van een nieuw of aangepast bedrijfsproces, inclusief procedures en IT voorzieningen.

Typische procesmodellen voor ontwikkeling zijn:

  • Ad-hoc development methode: Dit kent vaak als nadeel dat ontwikkeling chaotisch plaats vindt en volkomen rust op kennis en vaardigheden van betrokken individuele medewerkers binnen het proces.
  • De Waterval methode: Ondanks dat deze methode zeer veel jaar met enorm succes is gevolgd voor het produceren van enorme hoeveelheden ‘high-quality’ systemen ligt deze methode tegenwoordig onder druk. Dit komt vooral door het rigide ontwerpproces en de strakke procedures die vaak als inflexibel worden gezien. Het ontwikkelen van een werkend systeem vanuit de Waterval methode kan een lang en pijnvol proces zijn, waarbij pas in een laat de contouren van een werkend systeem verschijnen.
  • Iteratieve methode: Dit is in essentie de Waterval methode, maar dan opgedeeld in een aantal mini-waterval processtappen (iteraties). De uitdaging bij een iteratieve aanpak is communicatie en actieve betrokkenheid van een gebruikersgroep gedurende het gehele traject. Een erkend nadeel bij deze methode is de ‘scope creep’, omdat bij iedere iteraties nieuwe eisen/wensen worden toegevoegd vanuit gebruikers.
  • Prototyping:Deze methode is ontwikkeld vanuit de aanname dat het vaak ondoenlijk is om alle requirements vanaf de start van een project te weten. Kritiek op deze methode is vooral dat prototyping tot valse verwachtingen kan leiden. Een klant ziet een systeem dat klaar is, maar in feitelijk is dit niet gereed. Prototyping kan ook leiden tot slecht ontworpen systemen omdat het doel van prototyping vaak snel ontwikkelen is. Globale integrale aspecten, zoals performance, security en integratie zijn vaak onderbelicht.
  • De  exploratory methode : Dit model is zeer bruikbaar in situaties waarin het zeer moeilijk of onmogelijk is om vooraf requirements te identificeren voor een nieuw systeem. Naast de nadelen die ook geleden bij prototyping is een extra nadeel van deze aanpak dat het meten of voorspellen van kosten efficiëntie zeer lastig is.
  • Spirale aanpak: Deze methode is ontwikkeld om de beste elementen vanuit de waterval aanpak en prototyping te combineren. De term ‘spiraal’ beschrijft het proces dat gevolgd wordt gedurende de ontwikkeling van een systeem.

Software ontwikkelen is een verzameling van duidelijk gespecificeerde en vaak goed voorspelbare stappen. Systeemontwikkeling omvat software ontwikkeling maar daarnaast ook nog een aantal andere disciplines, zoals organisatieontwerp en procesontwerp. Voor het integraal inzetten van een moderne agile aanpak binnen een groot project, zoals bijvoorbeeld:

  • Crystal
  • XP (Extreme programming)
  • RUP (Rational Unified Process)
  • SCRUM
  • FDD (Feature-Driven Development)
  • DSDM (Dynamic System Development Method)
  • Adaptive Software Development

Is een goede diagnose van de context en kennis van de voordelen en nadelen van de verschillende procesmatige ontwikkel methodes cruciaal om de juiste kwaliteit binnen gestelde tijd en budget op te leveren. Zeker voor architectuurproducten!

revolution