49
© OPITZ CONSULTING GmbH 2013 Seite 1 Vom 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!

Architektur agiles vorgehen seacon 2013

Embed Size (px)

Citation preview

Page 1: Architektur agiles vorgehen seacon 2013

© 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!

Page 2: Architektur agiles vorgehen seacon 2013

© 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?

Page 3: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 3Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

1Das Projekt Wasabi bei der freenet GmbH

Page 4: Architektur agiles vorgehen seacon 2013

© 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

Page 5: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 5Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Prozessorientiertes Vorgehen

Produktwelten mail, singles

Vertragsabschluss

Upgrade

Kündigung

<<Subprozess>> Provisionierung

Page 6: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 6Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Projektziele

Automatisierung

Vereinfachung

SaaS

agil

Page 7: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 7Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

BPMN 2.0 ist agil ;-)

Page 8: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 8Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Prozessmodelle

Strategisches Prozessmodell

Operatives Prozessmodell

Technisches Prozessmodell

Business

IT

Page 9: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 9Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Transparenz

Modell Engine Monitoring

Transparenz

Page 10: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 10Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

2 Also agil?

Page 11: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 11Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

awareness

Wissens-silos

Probleme spät

erkannt

Lange Zyklen

:-(

Page 12: Architektur agiles vorgehen seacon 2013

© 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

Page 13: Architektur agiles vorgehen seacon 2013

© 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

Page 14: Architektur agiles vorgehen seacon 2013

© 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

Page 15: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 15Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Simplicity is the ultimate sophistication.Leonardo da Vinci

Simple made easyRich Hickey

Page 16: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 16Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Agile

Emergent Design

Refactoring

Test Driven Development

Automated Tests

Excellent technical Practice

Page 17: Architektur agiles vorgehen seacon 2013

© 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

Page 18: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 18Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

easy

WizardsBPELZero Coding

Page 19: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 19Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

easy ???

Refactoring?Merging?Codebasis lesen und verstehen?

Page 20: Architektur agiles vorgehen seacon 2013

© 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

Page 21: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 21Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Exkurs - Komposition

Page 22: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 22Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Verflechtung durch Zustand

Page 23: Architektur agiles vorgehen seacon 2013

© 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”.

Page 24: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 24Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

3 Architekturentscheidungen

• Systematisch treffen und dokumentieren

Page 25: Architektur agiles vorgehen seacon 2013

© 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”

Page 26: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 26Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Geschäftsziele

Page 27: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 27Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

planen entwickeln testen releasen betreiben

Zeit

Geschäftsqualität - Time to Market

Page 28: Architektur agiles vorgehen seacon 2013

© 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

Page 29: Architektur agiles vorgehen seacon 2013

© 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

Page 30: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 30Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Analysis scheitert an Systemen

Analysis Systemdenken

StoriesEpicsMMFs, MVPs Emergent Design Architektur

Page 31: Architektur agiles vorgehen seacon 2013

© 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

Page 32: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 32Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

ISO 9126ISO/IEC 25012:2008

Page 33: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 33Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Alle Qualitäten sind erstrebenswert

Page 34: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 34Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Aber, Tradeoffs sind unvermeidlich

Page 35: Architektur agiles vorgehen seacon 2013

© 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

Page 36: Architektur agiles vorgehen seacon 2013

© 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

Page 37: Architektur agiles vorgehen seacon 2013

© 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

Page 38: Architektur agiles vorgehen seacon 2013

© 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

Page 39: Architektur agiles vorgehen seacon 2013

© 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

Page 40: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 40Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Modfizierbarkeit – Refactoring – Testbarkeit

https://github.com/sistar/camunda-fox-demo-app-oc

Page 41: Architektur agiles vorgehen seacon 2013

© 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

Page 42: Architektur agiles vorgehen seacon 2013

© 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

Page 43: Architektur agiles vorgehen seacon 2013

© 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

Page 44: Architektur agiles vorgehen seacon 2013

© 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

Page 45: Architektur agiles vorgehen seacon 2013

© 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

Page 46: Architektur agiles vorgehen seacon 2013

© 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

Page 47: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 47Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

4 Fazit

Page 48: Architektur agiles vorgehen seacon 2013

© 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

Page 49: Architektur agiles vorgehen seacon 2013

© OPITZ CONSULTING GmbH 2013 Seite 52Vom Zusammenhang zwischen Architekturen und agilem Vorgehen

Danke! Fragen und Antworten

[email protected]: @sistar Xing Ralf Sigmund