Consultancy: Architecture Improvement

Wat?

Het verbeteren van de kwaliteit van systeem en software architecturen om de kritische succesfactoren van de architectuur zichtbaar te maken (risico analyse), zodat duidelijk wordt wat de architectuur impact is en vervolgens architectuur transformaties kunnen worden doorgevoerd.

Waarom?

Vaak zien we dat er ten onrechte vanuit wordt gegaan dat de oorspronkelijke architectuur in overeenstemming is met de uiteindelijke architectuur. Ook bestaat er vaak twijfel over de juistheid van de architectuur. Verder blijken architectuuralternatieven vaak op voorhand onvoldoende in kaart te zijn gebracht. Bovendien is de documentatie van architecturen ontoereikend. En biedt weinig houvast om de impact van architectuur transformaties te kunnen overzien bij bijvoorbeeld systeemuitbreidingen.

Hoe?

Onze consultancy diensten voor System and Software Architecture Improvement hebben betrekking op:




Observaties:


Herkenbaar voor veel architecten en projectleiders:
  • De executiearchitectuur (concurrency) krijgt weinig aandacht. Het gevolg is lange testtrajecten en kostbare refactoring van de architectuur.

  • De architectuur is niet bestand tegen veranderingen (design for change). Het gevolg is dat ‘market windows’ niet worden gehaald en dat de concurrentiestrijd verloren wordt.

  • Diagnostiek is niet voldoende ingebouwd in de software (o.a. design for testability). Het oplossen van problemen in het veld duurt lang. In combinatie met multi-site development geeft men elkaar de schuld van falende software of hardware. Het gevolg is ontevreden klanten en dat er geen tijd meer is om nieuwe ontwikkelingen door te voeren.

  • Het exceptioneel gedrag van systemen is onvoldoende geanalyseerd. Lange testtrajecten met veel refactoring is het gevolg. ‘Market windows’ worden niet gehaald en het vertrouwen bij het management daalt. De druk op het project wordt opgevoerd en projectleden ‘graven zich in’.

  • Niet duidelijk is was de business impact is van genomen architectuurbeslissingen. Wat zijn de consequenties en de gevolgen met betrekking tot de future proofness van het systeem? Welke varianten zijn mogelijk met de gekozen architectuur? Wat kan er in de toekomst niet meer aan het systeem worden toegevoegd (invariability)?

  • Er wordt verondersteld dat architecten geen fouten maken.

  • Het maken van een architectuur is teamwerk en een architectuur is de aaneenschakeling van suboptimale beslissingen.