Stap uit de architectuur moeras! Mijn verhaal Lean / Agile architectuur HaMIS Solution SOA / Integration Coaching Quality Enterprise Java 1
Ik wilde geloven dat... 2
Te veel fake architectuur & design vele projecten zonder directe business value voorspelbare toekomstvaste architectuur blijkt utopie Teams worden langzamer Slechte ervaringen uit verleden introduceer architectuurprocessen en tools Anticipeer om problemen in toekomst te voorkomen Systemen worden complexer krankzinnige oplossingen Bouw meer dan nodig generieke & out-of-box architecturen 3
Waarom Lean / Agile Architectuur? Weinig samenwerking met engineers Weinig aandacht voor stakeholders en hun belangen Politieagent opstelling Veel focus op modellen, methodieken en tools Veel focus op lange termijn en met name hypothetische situaties Weinig koppeling met voortdurende verandering 4
Gedrag 5
Architect lijkt wel een Superman! Software???? Hardware??? Client Operations Management External parties Vendors Engineers RUP DYA TOGAF Functional domain knowledge Zachman 6 Technical domain knowledge SOA EAI DCI CBD Cloud DDD OO MDA 6
Stakeholders Missie IEEE 1471-2000 Recommended Practice for Architectural Description of Software-Intensive systems vervult Omgeving bevindt zich in beinvloedt Systeem heeft Architectuur heeft 1 of meer is beschreven door Belanghebbende Architectuur beschrijving geeft Argumentatie is toegekend aan partcipeert in heeft 1 of meer Belang / zorg dekt identificeert 1 of meer Viewpoint selecteert 1 of meer voldoet aan georganiseerd door View komt uit Verzameling oogpunten is basis voor 1 of meer bestaat uit 1 of meer Model bestaat uit 1 of meer 7
Waar is het fout gegaan? 8
Is bezig zijn met architectuur wel belangrijk! Maar wat is een kundige manier? 9
Waar heb ik het over? Alle stakeholders tevreden Maximale kwaliteit Architectuur die steeds beter wordt met meer code en functies Projectmanager en architect kunnen met elkaar opschieten :-) Documentatie die echt nuttig is Projectleden heel veel lol hebben 10
Everybody, all together, early on James O. Coplien 11 11
Optimize the whole Hyperproductive Agile team Hyperproductive Department 1 Agile team Hyperproductive Agile team Department 2 Department 3 Requirements gathering Architecture Marketing...has a challenge Department 4 Planning User / Business Lead time Agile team Department 5 Analysis Department 6 Department 8 Delivering Department 7 Testing Development 12
De Dienende Architect De Klassieke Architect Aandacht voor architectuur zelf Architectuur is een product geleverd door een of meer architecten Architectuurraamwerk en modelleertechniek staan centraal in communicatie Architecten zijn bewakers en zorgen ervoor dat iedereen de uitgestippelde lijn volgt Bepaalt alle kaders waarbinnen ontwikkelaars zich mogen begeven. Bedenkt en bewaakt de architectuur De Dienende Architect Aandacht voor belanghebbenden Architectuur is de resultaat na samenwerking met bouwers Common sense en eenvoud zijn het belangrijkst in communicatie Architectuur bewaking komt voort uit een gevoel van verantwoordelijkheid van zowel bouwers als architecten Definieert en draagt één visie uit Initieert, faciliteert en coordineert het architectuurproces bron: De Dienende Architect artikel (Viktor Grgic) http://www.via-nova-architectura.org/artikelen/tijdschrift/de-dienende-architect.html 13
Essentie Architectuur is te belangrijk om die aan architecten over te laten Dienstverlenende opstelling van architect(en) Emerging Architecture Complexiteit van de oplossing = belangrijke faalfactor Veranderende samenhang i.p.v. BDUF Architectuur is de software; niet het document Quality requirements; meten is weten Modellen & tools zijn goed, maar gezond verstand is leidend 14
Opstelling van een architect 15
Delivering business value & reducing waste by Doing less by Removing products farthest from customer means Internal communic ation Better alignment by Delaying decisions Feedback loop but results in Not later than responsible Rework in design creates Less rework during development by Based on James Coplien - Lean Architecture 16
Architectuurvisie Fase 1 Identify aspects affecting architecture Define architectural principles Stakeholders analysis en interviews Presentation: Interviews feedback Fase 2 Achitecture Vision Quality Requirements Engineering Analyse current situation Define Migration / Roadmap New insights Focus on form and needs instead of structure 17
Wat zit in de flow? Did we improve a quality? Distillation of standards and guidelines Problem Definition Reqs, concerns & business goals Product backlog and delivery Roadmap Technical Vision 18
Een systeem groeit 19
Een enterprise landschap groeit 20
Oplossing voor te weinig design Teams worden in staat gesteld om snel code te schrijven te refactoren zonder dat het systeem breekt altijd op de hoogte of refactoring iets gebroken heeft Geautomatiseerde regressietest Just-in-time design patterns & out-of-box producten 21
Design for change Schrijf altijd hoge kwaliteit code Doe veel aan kennisuitwisseling zodat code makkelijk aanpasbaar is. Refactor op tijd Kies de meest eenvoudige oplossing 22
Architectuur & SCRUM Todo Brainstorm Convergeren Documen teren Feedback Herzien Communi catie Done Impediments Questions Lessons learned Problem definition } Technical Vision 1. Iteration Zero 2. Tech Story 3. Spike (experiments) 4. Assembly Line 23
Havenbedrijf - HaMIS Hoe bereik je meer met minder! 24
HaMIS, Havenbedrijf, Havenmeester Management Information System. 24/7 applicatie voor verkeersmanagement, transport, milieuveiligheid en crisisbeheersing. Goals: 1. Vervang verouderd systeem 2. Rotterdam s haven groeit (Maasvlakte 2) 25
Bestaand systeem / landschap Journaal B&S Journaal PVT Journaal VPO Journaal VTS IVS (08) KRVE systeem Journaal TMV Port Security Bedr. DB VOS VKL (09) SPIL Dossier Mini BOS Infoschermen HCC VKB (10) DataDirk GSA (11) ZORRO (38) GSE (12) RCS REF HM (13) (14) SISTER (37) DHK (28) (29) (27) RIV RostarFlex ZOS (01) SRV TAM (15) (16) (17) (18) DWH QORRIDOR (31) (30) PCS Expert (02) (19) SSN Legenda te vervangen naam applicatie niet te vervangen naam applicatie naam naam uitgefaseerde applicatie externe applicatie interface via DOD-Port directe interface uitgefaseerde interface TARGET NNI NOD Passage Morsingen (03) (04) (05) (06) (07) REF (21) (22) (23) (20) (26) (24) (25) MARS Bunkeren WM (32) (33) (34) (35) (36) SAP Identity Vault KLPD systeem RWS schepentabel 26
Waar komen we vandaan? 100+ geidentificeerde use cases Project Start Architecture Veeleisend Q&A afdeling Architectuur met 4 lagen & 6 sub-systemen BPEL process server 6 architecten RUP & Scrum but 800+ architectuurbesluiten 27
Waar komen we vandaan? 1 use case in 6 maanden!!!! 28
A Solution, Agile Manifesto Individuals and interactions! Working software! Customer collaboration! Responding to change! over! over! over! over! Process and tools! Comprehensive documentation! Contract negotiation! Following a plan! Source: www.agilemanifesto.org! 29
Eenvoud 30
Samen Diner na iedere sprint Waar ben ik trots op? Workshops in hotel Een week wintersporten in Frankrijk 31
Creativiteit 32
Toewijding Teams zijn trots op de behaalde resultaten Vertrouwen & verantwoordelijkheid 33
Uitdaging: Gedrag & Titels I am an - architect - manager - designer - analist - scrum master... Bureaucratie is de compensatie van incompetentie en gebrek aan discipline 34
Uitdaging: Technische achterstand (Meer) druk van boven Team velocity loopt terug Snij de bochten af Achterstand loopt op Betaal technische achterstand niet terug 35
Technische achterstand kost geld 36
Architectuur is heel belangrijk Just-in-time just-enough Open space sessies Kennis uitwisseling Documentation is Wiki filled by harvesting the knowledge Standaarden zijn ontdekt en niet voorgedefinieerd Architectuur principes: Eenvoud & Design for Change Voortdurende refactoring naar een beter design 37
Kwaliteit We leveren maximale kwaliteit! Goed is dus niet goed genoeg! Zero defects beheer Voelt de code goed aan? Just-in-time out-of-box technologieen en producten Refactoring z.s.m. doen Geen just-incase generieke oplossingen 38
Architectuur besluiten Alle significante architectuur besluiten worden samen genomen! 39
Hoe bereiken we meer met minder? Less... Whish lists Architecten in traditionele zin Pakketten of tools die geen directe waarde hebben voor gebruikers Architectuurconcepten en lagen die geen direct probleem oplossen Generieke en just-in-case oplossingen Voorbereidende documenten Geen uitgebreide use case beschrijvingen More... Concrete doelen Visie Architectuurverantwoordelijkheid bij teams 1-uur architectuurbesluiten in gefaciliteerde workshops Voortdurende refactoring naar verbeterde architectuur Wiki documentatie altijd up-to-date en just-enough; iedereen is auteur van alles Oplossingen voor de Havenmeester en geen toekomstevaste en flexibele uitspraken. 40
Resultaten Iedere 3 weken met HaMIS in productie of potentially shippable Gebruikers Getronics (infra) Inspecties proces opgeleverd binnen budget & tijd Product owners Teams Gebruikers tevreden Hoge kwaliteit (4.3 van 5) volgens SIG Business, stakeholders tevreden Edwin de Werk & Viktor Grgić 41
Everybody, all together, early on James O. Coplien 42 42
Meer lezen: http://www.leanarch.eu/publicaties Via Nova Architectura: De Dienende Architect Agile Holland: Lichte Architectuur door onderscheid tussen vorm en structuur XR magazine: NoESB, een alternatief voor een ESB Complexiteit aanpakken met Domain-Driven Design Architectuur in een SCRUM project - De kunst van het loslaten Eenvoud in Architectuur - Deel 1: Inleiding Architectuurrollen vervangen door domein-experts Architectuur op een Agile manier James O. Coplien Webwereld: Verkiezing IT Architect van het jaar 2009 Eenvoud helpt Handelsregister uit complexiteit Computable SOA expert panel: Top 10 SOA valkuilen Een Enterprise Service Bus is nog geen SOA Ervaring kan overheidsproject niet redden EDA wordt de nieuwe hype Complexiteit SOA is onderschat De ROI van SOA is niet aan te tonen 10 tips voor een succesvolle SOA-implementatie 43