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.