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.
Lean Development = Überdrehter Motor in der Entwicklung?
Softwarearchitektur entwerfen ohne dabei verrückt zu werden
1. Experte für effektive ProduktentwicklungMatthias Bohlen
Softwarearchitektur entwerfen,
ohne dabei verrückt zu werden!
+49 170 772 8545
mbohlen@mbohlen.de
http://www.mbohlen.de
@mbohlende
Benutzer
Entwickler
Business
Domänen-
experte
Architekt
Fachbereich
Analyst
etc.
Designer
Programmierer
Tester
Kunde
Dienstag, 30. April 13
2. Experte für effektive ProduktentwicklungMatthias Bohlen
Architekten sind beschäftigt
2
entwerfen
entscheiden
vereinfachen
implementieren
dokumentieren
kommunizieren
schätzen
balancieren
beraten
verkaufen
Dienstag, 30. April 13
3. 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
4. Experte für effektive ProduktentwicklungMatthias Bohlen
Entwicklung ist nicht Fertigung
Architekt wird zum zentralen
Kommunikator,
also zum Flaschenhals
Er wartet oder entscheidet alles selbst
Es gibt keine Kommunikation, die an
einer Stelle zum Abschluss kommt
Stille Post dauert zu lange
Man braucht immer die Sicht aller Rollen
4
Dienstag, 30. April 13
5. 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
6. 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
7. 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
8. Experte für effektive ProduktentwicklungMatthias Bohlen
Zusammenarbeit
8
Architekturrunde
Saturn-
Team
Neptun-
Team
Architektur
Saturn-Backlog Neptun-Backlog
Saturn Neptun
Delegation
Delegation
Dienstag, 30. April 13
10. 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
13. Struktur
notwendig für die Form
wahrnehmbar, doch weniger interessant
Kosten erzeugend
stabil
13
Foto: Ralph Aichinger
Dienstag, 30. April 13
14. Verhalten
das, was in der Form passieren kann
interessant
Nutzen stiftend
variabel, flexibel
14
Foto: Benjamin Thompson
Dienstag, 30. April 13
15. 15
Was das System ist Was das System tut
Form
Subsysteme
Interfaces, APIs
Domänenobjekte
Use Case
Kontext
Methodenfreie
Rollen
Struktur
Module
Pakete
Klassen
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
16. 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
17. 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
18. Experte für effektive ProduktentwicklungMatthias Bohlen
Architekturentwicklung fraktal
18
cyan
rot
blau
Lagerhaltung
grün
saphir
Top Level Arch
Zahlung
K
Spontane
Architekturrunde
auf Ebene jeder
Subdomäne!
Dienstag, 30. April 13
19. Experte für effektive ProduktentwicklungMatthias Bohlen
User Story "Nach Waren stöbern"
19Für Kunden: Stellen Sie Ihre eigenen Bilder ein.
Hier reinlesen und suchen
Matthias' Amazon | Angebote | Wunschzettel | Gutscheine | Geschenke
Suche Bücher
her Erweiterte Suche Stöbern Bestseller Neuheiten Hörbücher Englische Bücher Tasch
IT-Unternehmensarchitektur: Von der
Geschäftsstrategie zur optimalen
IT-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. Geschenkverpack
verfügbar.
Nur noch 13 Stück auf Lager - jetzt bestellen.
Lieferung bis Dienstag, 4. September: Bestellen Sie inn
3 Stunden und 24 Minuten und wählen Sie Morning-Expr
der Kasse. Siehe Details.
71 neu ab EUR 49,90 6 gebraucht ab EUR 35,60
Kategorien ansehen
Dienstag, 30. April 13
20. 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 fragen
die Auslieferung nach der Lieferzeit fragen
beides ausgeben
Subdomänen-Leute nehmen den
Gesprächsbedarf mit und gehen zur
nächsten Anforderung über
Dienstag, 30. April 13
21. 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
22. 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
23. Experte für effektive ProduktentwicklungMatthias Bohlen
In der nächsten Architekturrunde
23
Teams berichten über das realisierte
Form-Inkrement
Andere Mitglieder der Runde geben
Feedback
Die Form ist jetzt gut
Teams realisieren und testen die Struktur
und dokumentieren die Änderungen.
Dienstag, 30. April 13
24. Foto: Casey Hussein Bisson
Wie schaffen wir es, Form-
Änderungen für 75 Leute
zu koordinieren, ohne
dabei verrückt zu werden?
24
Dienstag, 30. April 13
25. Experte für effektive ProduktentwicklungMatthias Bohlen
Ein kanban pro Feature
25
Bestand und
Lieferzeit anzeigen
Subdomänen:
✓Bestellung (führend)
✓Lager
✓Auslieferung
- Zahlung
- Schnittstellen
Subdomänen
ankreuzen, um
Abstimmbedarf
festzustellen
Dienstag, 30. April 13
26. Experte für effektive ProduktentwicklungMatthias Bohlen
Kanban Board (linke Hälfte)
26
IdeenIdeen Features Nächste
Features
Form / ArchitekturForm / ArchitekturForm / Architektur
Neu zerlegen entwerfen zur Abstimmung fertig zum
Entwickeln315
610
Dienstag, 30. April 13
28. 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
2
Gerade 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
5
Zu 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
selten
Langsamer
Fluss
Tasks
warten oftKein Platz
hier...
Leute
warten nie
Dienstag, 30. April 13
29. 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
31. Experte für effektive ProduktentwicklungMatthias Bohlen
Annahmen (2)
Jeder Architektur-Kümmerer muss...
die Form von 1 Feature pro Woche
entwerfen, abstimmen, dokumentieren
und den Code dazu reviewen
31
Dienstag, 30. April 13
32. Experte für effektive ProduktentwicklungMatthias Bohlen
Annahmen (3)
Ein Kümmerer braucht pro Feature...
1 Std. um Requirements zu verstehen
1 Std. um Requirements aufzuschreiben
8 Std. zum Entwerfen der Form
10 Std. zur Abstimmung mit den anderen
4 Std. für Code-Reviews und zur
Dokumentation der Architektur
Das sind 24 Stunden pro Woche
Bleiben 16 Stunden Reservezeit
32
Dienstag, 30. April 13
33. 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 Entwurfsarbeit
oder Code-Reviews
Konzentrierte Entwurfsarbeit
oder Code-Reviews
Konzentrierte Entwurfsarbeit
oder Code-Reviews
Konzentrierte Entwurfsarbeit
oder Code-Reviews
Konzentrierte Entwurfsarbeit
oder 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
34. Experte für effektive ProduktentwicklungMatthias Bohlen
Annahmen (4)
Das Meeting der Kümmerer...
dauert 2 Std. pro Tag
stimmt 15 Form-Änderungen pro Woche ab
das sind 3 pro Meeting
bleibt pro Abstimmung eine halbe Stunde
plus pro Meeting eine halbe Stunde Puffer
Jeder Kümmerer bringt pro Woche eine
Form-Änderung zur Abstimmung
34
Dienstag, 30. April 13
35. Experte für effektive ProduktentwicklungMatthias Bohlen
Annahmen (5)
35
Wenn mein Team sehr flexibel ist...
dann rotieren wir die Rolle des Kümmerers
dann komme ich nur alle 5 Wochen dran
in den anderen 4 Wochen entwickle ich
lauffähige Software!
Entwicklerpaar
Architektur-
Kümmerer
Entwicklerpaar
Dienstag, 30. April 13
36. 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
37. 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
30
15
15 12
IdeenIdeen Features Nächste
Features
Form / ArchitekturForm / ArchitekturForm / Architektur
Neu zerlegen entwerfen zur Abstimmung fertig zum
Entwickeln315
610
Methodless Role
Methodful Role
parameter1
parameter2
Context *1
Domain class
Domain object in role
<<mixin>><<instanceof>>
Dienstag, 30. April 13
38. Experte für effektive ProduktentwicklungMatthias Bohlen
Mehr Info? Hier melden!
Matthias Bohlen
Coach für effektive Produktentwicklung
Telefon: +49 170 772 8545
E-Mail: mbohlen@mbohlen.de
Web: http://www.mbohlen.de/
Twitter: @mbohlende
Dienstag, 30. April 13