Architektur agiles vorgehen seacon 2013

Post on 11-Jun-2015

214 views 3 download

Transcript of 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!

© 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

ralf.sigmund@opitz-consulting.comTwitter: @sistar Xing Ralf Sigmund