38
Experte für effektive Produktentwicklung Matthias Bohlen Softwarearchitektur entwerfen, ohne dabei verrückt zu werden! +49 170 772 8545 [email protected] http://www.mbohlen.de @mbohlende Benutzer Entwickler Business Domänen- experte Architekt Fachbereich Analyst etc. Designer Programmierer Tester Kunde Dienstag, 30. April 13

Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Embed Size (px)

DESCRIPTION

Vortrag auf der JAX 2013: Softwarearchitekten, die für den Entwurf großer Systeme zuständig sind, haben in der Regel einen vollen Terminkalender und wissen oft nicht, wo ihnen der Kopf steht. Das muss nicht sein. Lernen Sie in diesem Vortrag, wie Sie durch mehrfaches Anwenden von Teile-und-Herrsche und mithilfe moderner Methoden wie Kanban die Architekturarbeit für große Systeme vereinfachen und sich Zeit nehmen können.

Citation preview

Page 1: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Softwarearchitektur entwerfen,ohne dabei verrückt zu werden!

+49 170 772 [email protected]://www.mbohlen.de@mbohlende

Benutzer

Entwickler

Business

Domänen-

experte

Architekt

Fachbereich

Analyst

etc.

Designer

Programmierer

Tester

Kunde

Dienstag, 30. April 13

Page 2: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Architekten sind beschäftigt

2

entwerfen

entscheiden

vereinfachen

implementieren

dokumentierenkommunizieren

schätzen

balancieren

beraten

verkaufen

Dienstag, 30. April 13

Page 3: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Kummunikation am Fließband

Das funktioniert nicht!Software hat keine physikalischen Gesetze, die die Korrektheit der Ergebnisse nach jeder Übergabe sicherstellen würden!

3

ArchitektBusiness EntwicklerKunde Tester

Dienstag, 30. April 13

Page 4: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Entwicklung ist nicht Fertigung

Architekt wird zum zentralen Kommunikator,

also zum FlaschenhalsEr wartet oder entscheidet alles selbst

Es gibt keine Kommunikation, die an einer Stelle zum Abschluss kommt

Stille Post dauert zu langeMan braucht immer die Sicht aller Rollen

4Dienstag, 30. April 13

Page 5: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Agile Architekturrunde:Gemeinsam sind wir Architekten !

5

Benutzer

Entwickler

Business

Domänen-

experte

Architekt

Fachbereich

Analyst

etc.

Designer

Programmierer

Tester

Kunde

Dienstag, 30. April 13

Page 6: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Warum alle am Tisch sitzen müssen

6

Stakeholder Beitrag zur Architektur

Benutzer Erwartungen, kognitives Modell

Kunde Zeit, Kosten, Produktkonfiguration je nach Zielmarkt angepasst

Business Umsatz, Kosten, Investment

Domänenexperte Erfahrung

Entwickler Machbarkeit, Testbarkeit

Dienstag, 30. April 13

Page 7: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Beispiel: Make or Buy Entscheidung

7

Stakeholder Beitrag zur Architektur

Business Schlägt "buy" statt "make" vor

Kunde und Benutzer

Sagt, ob das gekaufte Etwas die Standards einhält

Domänenexperte Beurteilt Integrierbarkeit des gekauften Etwas

Entwickler Beurteilen Aufwand und Nebenwirkungen der Integration des gekauften Etwas

Tester Beurteilt, ob das integrierte System testbar sein wird

Dienstag, 30. April 13

Page 8: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Zusammenarbeit

8

Architekturrunde

Saturn-

Team

Neptun-

Team

Architektur

Saturn-BacklogNeptun-Backlog

Saturn Neptun Delegation

Delegation

Dienstag, 30. April 13

Page 9: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Foto: Casey Hussein Bisson

Lean Architecture

9Dienstag, 30. April 13

Page 10: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Was ist SW-Architektur?

10

ISO 42010:fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution

Die fundamentalen Konzepte oder Eigenschaften eines Systems in seiner Umgebung, verkörpert in seinen Elementen und Beziehungen, in den Prinzipien seines Designs und seiner Evolution.

Dienstag, 30. April 13

Page 11: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Form versus Struktur

11

Struktur stützt FormForm ermöglicht Verhalten

Dienstag, 30. April 13

Page 12: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Form

"Essenz" der Strukturwahrnehmbar, interessantwertlieferndkonstant

12

Foto: Maik Maid

Dienstag, 30. April 13

Page 13: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Struktur

notwendig für die Formwahrnehmbar, doch weniger interessantKosten erzeugendstabil

13

Foto: Ralph Aichinger

Dienstag, 30. April 13

Page 14: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Verhalten

das, was in der Form passieren kanninteressantNutzen stiftendvariabel, flexibel

14Foto: Benjamin Thompson

Dienstag, 30. April 13

Page 15: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

15

Was das System ist Was das System tut

FormSubsysteme

Interfaces, APIsDomänenobjekte

Use CaseKontext

Methodenfreie Rollen

StrukturModulePaketeKlassen

Methodenreiche Rollen

Algorithmen

Form geht alle an!Form ändert sich seltener als Struktur!

Daher: Im Architekturteam die Form aufbauen,in den anderen Teams die Strukturen schaffen!

Dienstag, 30. April 13

Page 16: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Entwickeln und dokumentieren

16

Aspekt Bedeutung Medien

Form Subsysteme, APIs, von außen sichtbares Verhalten

Bilder und Vodcasts im Wiki, APIs im Code

Struktur Subsystem-interne Klassen und Schnittstellen

Code

Verhalten wichtige Abläufe im System

Bilder im Wiki, den Rest im Code

Stil Entwurfsprinzipien Wiki

Dienstag, 30. April 13

Page 17: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Architekturentwicklung fraktal

17

gelb

cyan

Auslieferung

rot

blau

Lagerhaltung

grün

saphir

rubin

Bestellung

diamant

Top Level Architekturrunde

Zahlung

Kundenverwaltung

Schnittstellen

Dienstag, 30. April 13

Page 18: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Architekturentwicklung fraktal

18

gelb

cyan

Auslieferung

rot

blau

Lagerhaltung

grün

saphir

rubin

Bestellung

diamant

Top Level Architekturrunde

Zahlung

Kundenverwaltung

Schnittstellen

Spontane Architekturrunde auf Ebene jeder Subdomäne!

Dienstag, 30. April 13

Page 19: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

User Story "Nach Waren stöbern"

19

Für Kunden: Stellen Sie Ihre eigenen Bilder ein.

Hier reinlesen und suchen

Hallo, Matthias Bohlen. Wir haben Empfehlungen für Sie. (Ausloggen)

Matthias' Amazon | Angebote | Wunschzettel | Gutscheine | Geschenke

Suche Bücher

Bücher Erweiterte Suche Stöbern Bestseller Neuheiten Hörbücher Englische Bücher Taschenbücher

IT-Unternehmensarchitektur: Von derGeschäftsstrategie zur optimalenIT-Unterstützung [Gebundene Ausgabe]Wolfgang Keller (Autor)

(3 Kundenrezensionen) (3)

Preis: EUR 49,90 kostenlose Lieferung. Siehe Details.

Alle Preisangaben inkl. MwSt.

Auf Lager.Verkauf und Versand durch Amazon.de. Geschenkverpackungverfügbar.

Nur noch 13 Stück auf Lager - jetzt bestellen.

Lieferung bis Dienstag, 4. September: Bestellen Sie innerhalb3 Stunden und 24 Minuten und wählen Sie Morning-Expressder Kasse. Siehe Details.

71 neu ab EUR 49,90 6 gebraucht ab EUR 35,60

KurzbeschreibungErscheinungstermin: 27. Februar 2012

Gegenstand von IT-Unternehmensarchitektur ist es, ein Portfolio an Software und IT-Infrastruktur so auszurichten,optimaler Nutzen für das anwendende Unternehmen entsteht. Durch den musterbasierten Ansatz, den dieses Buchmöglich, die IT-Unternehmensarchitektur für die Einsatzziele des Unternehmens zielgenau zu konfigurieren. Der LeZielmuster durch welche Managementprozessmuster unterstützt werden und wie er daraus die erforderliche Datenum Architekturaktivitäten zu unterstützen.

Die Kernprozesse der IT-Unternehmensarchitektur wie das Erarbeiten der IT-Strategie, das IT-PortfoliomanagemenIT-Planung, das Monitoring des Projektportfolios sowie die Projektbegleitung können so an den Bedarf des Unternewerden.

Darüber hinaus vermittelt das Buch notwendige Grundlagen zu den im Unternehmensumfeld wichtigen Themen CoIT-Sicherheit und IT-Risikomanagement. Dabei werden Frameworks für das IT-Management wie TOGAF oder COBIT

Auf diese Seite verlinken Dem Widget hinzufügen Dem aStore hinzufügen Veröffentlichen

Werbekostenrückerstattung Neuigkeiten Diskussionsforen Einstellungen

Alle Kategorien ansehen

Den Verlag informieren!Ich möchte dieses Buch auf demKindle lesen.

Sie haben keinen Kindle? Hier kaufenoder eine gratis Kindle Lese-Appherunterladen.

Gratis-Premiumversand für StudentenAls Student folgende Vorteile sichern: Gratis-Lieferungam nächsten Tag, ohne Mindestbestellwert.Außerdem: 20% erhöhter Eintauschwert bei Trade-In.

Jetzt anmelden

IT-Unternehmensarchitektur: Von der Geschäftsstrategie zur o... http://www.amazon.de/gp/product/3898647684/ref=s9_simh...

Dienstag, 30. April 13

Page 20: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Bestand und Lieferzeit

20

Kunde möchte beides sehen"Stöbern"-Story (in Bestellung) muss...

das Lager nach dem Bestand fragendie Auslieferung nach der Lieferzeit fragenbeides ausgeben

Subdomänen-Leute nehmen den Gesprächsbedarf mit und gehen zur nächsten Anforderung über

Dienstag, 30. April 13

Page 21: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Die Form der Subdomänen ändern

21

Subdomäne Komponente zuständiges Team

Bestellung Shop saphir

Lager Bestand rot

Auslieferung Warenausgang gelb

Vertreter aus saphir, rot und gelb diskutieren und beschließen die Schnittstellenerweiterungen.

Dienstag, 30. April 13

Page 22: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Team rot und sein Shop

22

Mit den neuen Schnittstellen aus den Teams saphir und gelb......erweitert Team rot die Form der "Shop"-Komponente

«Geschaeft»Shop

«Geschaeft»Auslieferung::Warenausgang

«Stamminformationen»Lagerhaltung::Bestand

Lieferzeit abfragenBestand abfragen

Dienstag, 30. April 13

Page 23: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

In der nächsten Architekturrunde

23

Teams berichten über das realisierte Form-InkrementAndere Mitglieder der Runde geben FeedbackDie Form ist jetzt gutTeams realisieren und testen die Struktur und dokumentieren die Änderungen.

Dienstag, 30. April 13

Page 24: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Foto: Casey Hussein Bisson

Wie schaffen wir es, Form-Änderungen für 75 Leute

zu koordinieren, ohne dabei verrückt zu werden?

24Dienstag, 30. April 13

Page 25: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Ein kanban pro Feature

25

Bestand undLieferzeit anzeigen

Subdomänen:

✓Bestellung (führend)

✓Lager✓Auslieferung

- Zahlung- Schnittstellen

Subdomänenankreuzen, um Abstimmbedarf festzustellen

Dienstag, 30. April 13

Page 26: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Kanban Board (linke Hälfte)

26

IdeenIdeen Features NächsteFeatures

Form / ArchitekturForm / ArchitekturForm / Architektur

Neu zerlegen entwerfen zur Abstimmung fertig zumEntwickeln315

610

Dienstag, 30. April 13

Page 27: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Kanban Board (rechte Hälfte)

27

EntwickelnEntwickelnEntwickeln Systemtest Akzeptanztest ProduktionSubdomäne unterwegs fertig zum

Systemtest

Lager

Bestellung

Auslieferung

Zahlung

Kunden

Schnittstellen

3015 15 12

Dienstag, 30. April 13

Page 28: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Das WIP-Limit optimieren

nach Henrik Kniberg

To do Doing Done

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor

sit amet, co nse

ctetur

1

Zu geringes WIP-Limit

To do Doing

orem ipsum dolor

sit amet, co nse

ctetur

Done

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor

sit amet, co nse

ctetur

2Gerade richtiges WIP-Limit

To do Doing

orem ipsum dolor

sit amet, co nse

ctetur

Done

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor

sit amet, co nse

ctetur

5Zu hohes WIP-Limit

orem ipsum dolor sit amet, co nse ctetur orem ipsum dolor

sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Zzzzzzzzz

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Leute warten

Langsamer Fluss (end-to-end)

Leute warten manchmal (Spielraum)

Schneller FlussTasks warten

seltenLangsamer

Fluss

Tasks warten oftKein Platz

hier...

Leute warten nie

Dienstag, 30. April 13

Page 29: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Das Gesetz von Little

29

Durchschnittlich gilt:

Work in Progress [Features]Zykluszeit = ---------------------------------

[Wochen] Durchsatz [Features pro Woche]

Dienstag, 30. April 13

Page 30: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

EntwicklerpaarArchitektur-Kümmerer

Entwicklerpaar

Experte für effektive ProduktentwicklungMatthias Bohlen

Beispiel-Annahmen (1)

Work in Progress = 2 FeaturesZykluszeit = 2 Wochen pro Featurealso Durchsatz = 1 Feature pro Woche

30Dienstag, 30. April 13

Page 31: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Annahmen (2)

Jeder Architektur-Kümmerer muss...die Form von 1 Feature pro Wocheentwerfen, abstimmen, dokumentierenund den Code dazu reviewen

31Dienstag, 30. April 13

Page 32: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Annahmen (3)

Ein Kümmerer braucht pro Feature...1 Std. um Requirements zu verstehen1 Std. um Requirements aufzuschreiben8 Std. zum Entwerfen der Form10 Std. zur Abstimmung mit den anderen4 Std. für Code-Reviews und zur Dokumentation der Architektur

Das sind 24 Stunden pro WocheBleiben 16 Stunden Reservezeit

32Dienstag, 30. April 13

Page 33: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Der Wochenplan des "Kümmerers"

33

Montag Dienstag Mittwoch Donnerstag Freitag

09:00 - 09:30

09:30 - 12:00

12:00 - 13:00

13:00 - 15:00

15:00 - 16:00

16:00 - 17:00

Daily Scrum MeetingsDaily Scrum MeetingsDaily Scrum MeetingsDaily Scrum MeetingsDaily Scrum Meetings

Konzentrierte Entwurfsarbeitoder Code-Reviews

Konzentrierte Entwurfsarbeitoder Code-Reviews

Konzentrierte Entwurfsarbeitoder Code-Reviews

Konzentrierte Entwurfsarbeitoder Code-Reviews

Konzentrierte Entwurfsarbeitoder Code-Reviews

Mittagessen gehenMittagessen gehenMittagessen gehenMittagessen gehenMittagessen gehen

Meetings zur Abstimmung der FormMeetings zur Abstimmung der FormMeetings zur Abstimmung der FormMeetings zur Abstimmung der FormMeetings zur Abstimmung der Form

Requirements Architektur-DokumentationArchitektur-DokumentationArchitektur-DokumentationArchitektur-Dokumentation

Req.-Doku ReservezeitReservezeitReservezeitReservezeit

Dienstag, 30. April 13

Page 34: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Annahmen (4)

Das Meeting der Kümmerer...dauert 2 Std. pro Tagstimmt 15 Form-Änderungen pro Woche abdas sind 3 pro Meetingbleibt pro Abstimmung eine halbe Stundeplus pro Meeting eine halbe Stunde Puffer

Jeder Kümmerer bringt pro Woche eine Form-Änderung zur Abstimmung

34Dienstag, 30. April 13

Page 35: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Annahmen (5)

35

Wenn mein Team sehr flexibel ist...dann rotieren wir die Rolle des Kümmerersdann komme ich nur alle 5 Wochen dranin den anderen 4 Wochen entwickle ich lauffähige Software!

EntwicklerpaarArchitektur-Kümmerer

Entwicklerpaar

Dienstag, 30. April 13

Page 36: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Jeder Stakeholder trägt seinen Teil zur Architektur bei

Form in der Runde, Struktur/Verhalten außerhalb der Runde

Architekturarbeit feature by feature über die Woche verteilt erarbeiten

36

3x Teile und herrsche

Dienstag, 30. April 13

Page 37: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Mehr dazu? eBook lesen!

Erhältlich bei:

amazon.de(für Kindle-Geräte)

lulu.com(EPUB-Format für iPad und andere)

37

Matthias Bohlen

Softwarearchitektur

auf die schlanke Art

Architekturarbeit entspannt

und effektiv organisieren

mit der Kanban-Methode

EntwickelnEntwickelnEntwickeln Systemtest Akzeptanztest Produktion

Subdomäne unterwegs fertig zum

Systemtest

Lager

Bestellung

Auslieferung

Zahlung

Kunden

Schnittstellen

3015

15 12

IdeenIdeen Features Nächste

Features

Form / ArchitekturForm / ArchitekturForm / Architektur

Neu zerlegen entwerfen zur Abstimmung fertig zumEntwickeln315

610

Methodless Role

Methodful Role

parameter1

parameter2

Context *1

Domain class

Domain object in role

<<mixin>><<instanceof>>

Dienstag, 30. April 13

Page 38: Softwarearchitektur entwerfen ohne dabei verrückt zu werden

Experte für effektive ProduktentwicklungMatthias Bohlen

Mehr Info? Hier melden!

Matthias BohlenCoach für effektive Produktentwicklung

Telefon: +49 170 772 8545E-Mail: [email protected]: http://www.mbohlen.de/Twitter: @mbohlende

Dienstag, 30. April 13