Architecturaal ontwerp

Een blauwdruk, voor software

De basis voor een goed werkend systeem, die aan alle vereisten voldoet, is een goed architecturaal ontwerp. Dit ontwerp geeft al in de beginfasen een goed inzicht in het systeem en geeft ook voeding tot discussies en overwegingen. Het is belangrijk dat deze discussies en overwegingen aan het begin van het project kunnen worden gemaakt, zodat er zo vroeg mogelijk kan worden bijgestuurd.

Waarom is goede architectuur belangrijk?

Het hoofddoel van architecuur is het argument over kosten en baten. Het doel als software architect is om de kosten en het onderhoud te minimaliseren, terwijl we het voordeel, dat de zakelijke waarde die de software biedt, maximaliseren. Dus het doel van goede architectuur is de ROI (return of investment) te maximaliseren, dat is de ROI van de software als één geheel.

Om dit doel te behalen kijkt OO-Creation niet naar de klassieke methodes die het makkelijkst zijn voor ons, maar juist naar de requirements van de klant en haar use cases en baseren daar het architecturaal ontwerp en de code op.

Verder komt uit een goede architectuur dat we alleen iets bouwen wat nodig is en wanneer het nodig is. We proberen alleen de functies en bijbehorende architectuur te creƫren die nodig zijn om de onmiddellijke behoeften van de gebruikers op te lossen in de volgorde van de waargenomen bedrijfswaarde.

We proberen dit te doen zonder ongevallige complexiteit, onnodige eigenschappen, voortijdige prestatieoptimalisatie of architecturale versiering te creëren. Dit helpt de kosten van het maken van het systeem te verminderen.

Daarbij optimaliseerd schone architectuur de onderhoudbaarheid van het systeem. Voor een gemiddelde bedrijfsapplicatie met een voldoende lange levenscyclus, zeg 10 jaar, wordt er aanzienlijk meer tijd en geld besteed aan het onderhouden van het systeem dan het creëren ervan. Verschillende bronnen geven aan dat ongeveer 60 tot 80% van de kosten in het leven van de software applicatie afkomstig zijn van het onderhoud. Als we dus onderhoudbaarheid optimaliseren door goede architectuur, onderdrukken we in theorie ook de kosten van het onderhouden van het systeem. Met deze focus op waardetoevoeging en kostenreducerende activiteiten proberen we de ROI van de software als geheel te maximaliseren.

Twin peaks model voor het agile ontwikkelen van een architecturaal ontwerp Twin peaks model voor het agile ontwikkelen van een architecturaal ontwerp
Afbeelding van code