architektur agiles vorgehen seacon 2013
TRANSCRIPT
© OPITZ CONSULTING GmbH 2013 Seite 1Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Dr. Ralf Sigmund, Solution Architect
OPITZ CONSULTING
Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Hamburg, 17. Mai 2013
Don't supersize me!
© OPITZ CONSULTING GmbH 2013 Seite 2Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Agenda
1. Das Projekt bei der freenet GmbH
2. Also agil? Konsequenzen für die Architektur und die Plattformauswahl
3. Architekturentscheidungen Systematisch treffen und dokumentieren
4. Fazit Welche Plattform war für freenet die richtige?
© OPITZ CONSULTING GmbH 2013 Seite 3Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
1Das Projekt Wasabi bei der freenet GmbH
© OPITZ CONSULTING GmbH 2013 Seite 4Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
E-Commerce bei freenet
Customer Frontend
Customer Database
Bonität
Wirksysteme
Billing SAP
Callcenter
Mail-Gateway
Business Intelligence
© OPITZ CONSULTING GmbH 2013 Seite 5Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Prozessorientiertes Vorgehen
Produktwelten mail, singles
Vertragsabschluss
Upgrade
Kündigung
<<Subprozess>> Provisionierung
© OPITZ CONSULTING GmbH 2013 Seite 6Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Projektziele
Automatisierung
Vereinfachung
SaaS
agil
© OPITZ CONSULTING GmbH 2013 Seite 7Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
BPMN 2.0 ist agil ;-)
© OPITZ CONSULTING GmbH 2013 Seite 8Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Prozessmodelle
Strategisches Prozessmodell
Operatives Prozessmodell
Technisches Prozessmodell
Business
IT
© OPITZ CONSULTING GmbH 2013 Seite 9Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Transparenz
Modell Engine Monitoring
Transparenz
© OPITZ CONSULTING GmbH 2013 Seite 10Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
2 Also agil?
© OPITZ CONSULTING GmbH 2013 Seite 11Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
awareness
Wissens-silos
Probleme spät
erkannt
Lange Zyklen
:-(
© OPITZ CONSULTING GmbH 2013 Seite 12Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
desire Produktivität
Engagement,
Zufriedenheit
Faster Time to Market
Höhere Qualität
© OPITZ CONSULTING GmbH 2013 Seite 13Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
agil: if it ain’t perfect keep improving
nicht agil: if it ain’t broke do not fix it
motif
© OPITZ CONSULTING GmbH 2013 Seite 14Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
1975 Fred BrooksAll repairs tend to destroy structure, increase entropy and disorder. Less and less effort is spent fixing original design flaws, more and more time fixing flaws introduced by earlier fixes. Sooner or later, fixing ceases to gain any ground. Also usable, the system has worn out as a base for progress. Machine, configuration and requirement changes eventually dictate ground-up redesign.
Modifikationen (Bugs, neue Features)
Ent
opie
Aber Entropie / Unordnung
© OPITZ CONSULTING GmbH 2013 Seite 15Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Simplicity is the ultimate sophistication.Leonardo da Vinci
Simple made easyRich Hickey
© OPITZ CONSULTING GmbH 2013 Seite 16Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Agile
Emergent Design
Refactoring
Test Driven Development
Automated Tests
Excellent technical Practice
© OPITZ CONSULTING GmbH 2013 Seite 17Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
ability
Als Team denken, selbst verantwortlich
sein
Collective code ownership
Excellent technical practice
Emergent Design
© OPITZ CONSULTING GmbH 2013 Seite 18Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
easy
WizardsBPELZero Coding
© OPITZ CONSULTING GmbH 2013 Seite 19Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
easy ???
Refactoring?Merging?Codebasis lesen und verstehen?
© OPITZ CONSULTING GmbH 2013 Seite 20Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Zeit
Pro
dukt
ivitä
t
Rich Hickey http://www.infoq.com/presentations/Simple-Made-Easy
easysimple
simple versus easy
© OPITZ CONSULTING GmbH 2013 Seite 21Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Exkurs - Komposition
© OPITZ CONSULTING GmbH 2013 Seite 22Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Verflechtung durch Zustand
© OPITZ CONSULTING GmbH 2013 Seite 23Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Agiles Vorgehen erfordert zwingend exzellente technische Praxis
Continuous testing
Refactor
Simple
System
Michael Feathers definiert Legacy Code als “Code ohne automatisierte Tests”.
© OPITZ CONSULTING GmbH 2013 Seite 24Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
3 Architekturentscheidungen
• Systematisch treffen und dokumentieren
© OPITZ CONSULTING GmbH 2013 Seite 25Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Qualität ist orthogonal zu Funktionalität
Funktionalität - User Stories“als Kunde mit einem Basic Vertragwenn ich ein Upgarde auf einen PAID-Vertrag durchführe und die Bonitätsprüfung erfolgreich war,dann wird das Mailbox-Volumen auf 100GB erhöht.”
Qualität“die Anbindung einer neuen Reseller-Marke ist mit einem Aufwand von 20 PT implementierbar”
© OPITZ CONSULTING GmbH 2013 Seite 26Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Geschäftsziele
© OPITZ CONSULTING GmbH 2013 Seite 27Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
planen entwickeln testen releasen betreiben
Zeit
Geschäftsqualität - Time to Market
© OPITZ CONSULTING GmbH 2013 Seite 28Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Time to market
Cost and benefit
Projected lifetime
Rollout schedule
Geschäftsqualitäten
© OPITZ CONSULTING GmbH 2013 Seite 29Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Architektur System
Geschäfts-QualitätQualität
Qualitäten wirken sich aufeinander aus
Qualität
© OPITZ CONSULTING GmbH 2013 Seite 30Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Analysis scheitert an Systemen
Analysis Systemdenken
StoriesEpicsMMFs, MVPs Emergent Design Architektur
© OPITZ CONSULTING GmbH 2013 Seite 31Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
System
Funkt-ionalität
Zuver-lässigkeit
Benutz-barkeit
Effizienz
Wartbar-keit
Übertrag-barkeit
Qualität in Software Systemen
© OPITZ CONSULTING GmbH 2013 Seite 32Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
ISO 9126ISO/IEC 25012:2008
© OPITZ CONSULTING GmbH 2013 Seite 33Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Alle Qualitäten sind erstrebenswert
© OPITZ CONSULTING GmbH 2013 Seite 34Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Aber, Tradeoffs sind unvermeidlich
© OPITZ CONSULTING GmbH 2013 Seite 35Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Architecture Tradeoff Analysis Methodhttp://www.sei.cmu.edu/reports/00tr004.pdf
Lightweight Architecture Alternative Assessment Methodhttp://technogility.sjcarriere.com/2009/05/11/its-pronounced-like-lamb-not-like-lame/
Qualitätsmerkmale und Tradeoffs methodisch angehen
Szenarien Risiken
Sensitivity points
TradeoffsAttribute
Requirements
Architektur-ansätze
Analyse
© OPITZ CONSULTING GmbH 2013 Seite 36Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Quelle:
Stimulus: Antwort:
Antwort-Maßzahl:
Artefakt:
Umgebung:
Software Architecture in Practice (2nd Ed.)
Qualitäts-Attribute in Szenarien konkretisieren
© OPITZ CONSULTING GmbH 2013 Seite 37Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Quelle:
Stimulus: Antwort:
Antwort-Maßzahl:
Artefakt:Prozess
Umgebung:
System-Extern
UnerwarteteNachricht(ein Fehler) Normaler Betrieb
Operator informieren, Verarbeitung fortführen Keine Ausfallzeit
Ein Szenario zur Verfügbarkeit
© OPITZ CONSULTING GmbH 2013 Seite 38Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Quelle:QA / Produktion
Artefakt:Prozesse /
Codebasis / DeliverablesStimulus: Antwort:
Antwort-Maßzahl:Umgebung:
Fehler in der Prozesslogik
Korrektur in Produktion ohne Seiteneffekt In 5 Stunden
System > 200 FTE Implementierung
Modifizierbarkeit – Korrektur von Fehlern
© OPITZ CONSULTING GmbH 2013 Seite 39Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Quelle:Architektagiles Team
Artefakt:Prozesse /
Codebasis / DeliverablesStimulus: Antwort:
Antwort-Maßzahl:Umgebung:
System vereinfachenRefactoring
Verbesserte Code-Struktur erreicht ohne Seiteneffekt In einem
Sprinttag
System > 200 FTE Implementierung
Modifizierbarkeit – Refactoring
© OPITZ CONSULTING GmbH 2013 Seite 40Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Modfizierbarkeit – Refactoring – Testbarkeit
https://github.com/sistar/camunda-fox-demo-app-oc
© OPITZ CONSULTING GmbH 2013 Seite 41Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Quelle:Analyst
Artefakt:Prozesse /
Codebasis / DeliverablesStimulus: Antwort:
Antwort-Maßzahl:Umgebung:
Änderung einer Geschäftsregel
Änderung durchgeführt ohne Seiteneffekt Ohne Beteiligung
des Entwickler-Teams
Analyst kennt BPMN 2.0, Rules.Kennt nicht technische Details
Benutzbarkeit – Zero Coding
© OPITZ CONSULTING GmbH 2013 Seite 42Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Qualität / Utility
Effizienz AntwortzeitFrontend - Eine
Cluster-Node bei normaler Last <2s
Funktionalität SicherheitKein Zugriff auf
interne Daten durch Frontend
Zuverlässigkeit RobustheitKein Ausfall bei falschem Aufruf durch Frontend
Wartbarkeit
Modifizierbarkeit
Fehler-Korrektur der Prozesslogik in
5h
Refactoring Verbesserte Code Struktur in einem
Sprinttag
Testbarkeit
Testgetriebene Entwicklung
Prozess Unit Test < 1 Minute
Benutzbarkeit Erlernbarkeit
Business / IT gemeinsames Prozessmodell
Zero Coding - Änderung von
Geschäftsregel ohne Entwicklerteam
Qualitätsszenarien als Utility Tree
© OPITZ CONSULTING GmbH 2013 Seite 43Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Qualität / Utility
Effizienz AntwortzeitFrontend - Eine
Cluster-Node bei normaler Last <2s
Funktionalität SicherheitKein Zugriff auf
interne Daten durch Frontend
Zuverlässigkeit RobustheitKein Ausfall bei falschem Aufruf durch Frontend
Wartbarkeit
Modifizierbarkeit
Fehler-Korrektur der Prozesslogik in
5h
Refactoring Verbesserte Code Struktur in einem
Sprinttag
Testbarkeit
Testgetriebene Entwicklung
Prozess Unit Test < 1 Minute
Benutzbarkeit Erlernbarkeit
Business / IT gemeinsames Prozessmodell
Zero Coding - Änderung von
Geschäftsregel ohne Entwicklerteam
Ranking im Utility Tree
Ranked Attribute Weights:
-> 0,262
-> 0,461
-> 0,163
-> 0,094
-> 0,045
-> 0,75
-> 0,25
1
2
1->0,75
2->0,25
0,26
0,46
0,16
0,05
0,017
0,023
0,03
0,01
1->0,75
2->0,25
© OPITZ CONSULTING GmbH 2013 Seite 44Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Priorisierte Liste der Qualitätsszenarien
Sicherheit / Kein Zugriff auf interne Daten durch Frontend
Effizienz / Antwortzeit Frontend - Eine Cluster-Node bei normaler Last <2s
Robustheit Kein Ausfall bei falschem Aufruf durch Frontend
Wartbarkeit / Fehler-Korrektur der Prozesslogik in 5h
Testbarkeit / Testgetriebene Entwicklung Prozess Unit Test < 1 Minute
Erlernbarkeit / Business / IT gemeinsames Prozessmodell
Erlernbarkeit / Zero Coding - Änderung von Geschäftsregel ohne Entwicklerteam
© OPITZ CONSULTING GmbH 2013 Seite 45Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Sensitivity Points
Sicherheit / Kein Zugriff auf interne Daten durch Frontend
Effizienz / Antwortzeit Frontend - Eine Cluster-Node bei normaler Last <2s
Robustheit Kein Ausfall bei falschem Aufruf durch Frontend
Wartbarkeit / Fehler-Korrektur der Prozesslogik in 5h
Testbarkeit / Testgetriebene Entwicklung Prozess Unit Test < 1 Minute
Erlernbarkeit / Business / IT gemeinsames Prozessmodell
Erlernbarkeit / Zero Coding - Änderung von Geschäftsregel ohne Entwicklerteam
© OPITZ CONSULTING GmbH 2013 Seite 46Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Assesment (exemplarisch)
Szenario Gewicht Camunda BPM
OracleBPM
Testgetriebene Entwicklung Prozess Unit Test < 1 Minute
0,023 Exzellent (4)0,092
Mäßig (1)0,023
Zero Coding Änderung von Geschäftsregel ohne Entwicklerteam
0,01 Mäßig (1)0,01
Exzellent (4)0,04
Architekturalternativen
0,102 0,063Summe
© OPITZ CONSULTING GmbH 2013 Seite 47Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
4 Fazit
© OPITZ CONSULTING GmbH 2013 Seite 48Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
It depends…
Zeit
Pro
du
ktiv
ität
easysimple
Zeit
Pro
du
ktiv
ität
Code zentrisch Tool- /Plattformzentrisch
Standard
Organisatorisch
Klare Ziele und Anforderungen
Individuell
Zentral für Wertschöpfung
agil
© OPITZ CONSULTING GmbH 2013 Seite 52Vom Zusammenhang zwischen Architekturen und agilem Vorgehen
Danke! Fragen und Antworten
[email protected]: @sistar Xing Ralf Sigmund