TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture...

61
Architek(ul)tur – wie bekommen wir Architekturarbeit in den Alltag rein? Matthias Bohlen http://mbohlen.de @mbohlende +49 170 772 8545 Hacking — Foto: Johan Viirok

Transcript of TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture...

Page 1: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Architek(ul)tur – wie bekommen wir Architekturarbeit in den Alltag rein?

Matthias Bohlen http://mbohlen.de @mbohlende +49 170 772 8545

Hacking — Foto: Johan Viirok

Page 2: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Warum Architek(ul)tur einführen?

Eines Tages enden alle ernsthaften Systeme hier:

Wartungskosten steigen Produkt hat voll vernetzte Abhängigkeiten Komplexität nicht mehr zu bewältigen Company muss Produkt "aufräumen"

Page 3: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Woraus besteht eigentlich "Kultur"?

Verhaltensweisen "So machen wir das hier".

Darstellungsformen "So beschreiben wir unsere Welt."

Wertvorstellungen "Diese Dinge sind uns wichtig."

Page 4: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Grundlagen legen

4

Page 5: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

OOPSLA 1992

5

Publikum:Mr. Beck, was istSoftwarearchitektur?

Softwarearchitektur? Das ist das, was Softwarearchitekten machen.

Publikum (kichert):Also dann, was ist einSoftwarearchitekt?

Hmm, Softwarearchitekt ist ein neuer pompöser Titel, den Programmierer auf ihrer Visitenkarte haben wollen, um ihre üppigen Bezüge zu rechtfertigen.

Page 6: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Extreme Programming Explained (2000)

6

"Softwarearchitektur ist in XP-Projekten genauso wichtig wie in irgendeinem Softwareprojekt.

... Nimm Dir für die erste Iteration einen Satz von Stories, der Dich zwingt, die ganze Architektur zu erschaffen. Am Ende dieser Übung wirst Du Deine Architektur haben. Es könnte sein, dass es nicht die ist, die Du erwartet hast, aber Du wirst etwas gelernt haben.

... Ich setze die Architektur rein, die ich jetzt brauche und vertraue auf meine Fähigkeit, sie später zu ändern."

Page 7: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Coach für effektive ProduktentwicklungMatthias Bohlen

Architektur

ISO 42010: "architecture"

die fundamentalen Konzepte oder Eigenschaften eines Systems in seiner Umgebung, verkörpert in seinen Elementen, Beziehungen und den Prinzipien für sein Design und seine Evolution

7

Page 8: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Die elende Bau-Metapher

8Der Architekt erklärt

Der Entwickler baut

Foto: Anna Oakley

Page 9: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Wenn überhaupt Bau, dann...

9

Architekten und Entwickler

entwerfen

Der Compiler baut

Page 10: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Coach für effektive ProduktentwicklungMatthias Bohlen

Aufgaben von SoftwarearchitektenAnforderungen und Randbedingungen klären, hinterfragen, verfeinern

insbesondere geforderte Qualitätsmerkmale

Strukturentscheidungen treffen Bausteine und Schnittstellen festlegen

Übergreifende technische Konzepte entscheiden Persistenz, Kommunikation, GUI, etc.

Software-Architektur kommunizieren und dokumentieren Umsetzung und Implementierung der Architektur überwachen

Rückmeldungen der beteiligten Stakeholder einarbeiten

Konsistenz von Quellcode und Softwarearchitektur sicherstellen Software-Architektur bewerten

hinsichtlich Risiken bezüglich der geforderten Qualitätsmerkmale

10

Page 11: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Form versus Struktur

11

Struktur stützt Form Form ermöglicht Verhalten

Page 12: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Form

"Essenz" der Struktur wahrnehmbar, interessant wertliefernd konstant

12Foto: Maik Maid

Page 13: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Struktur

notwendig für die Form wahrnehmbar, doch weniger interessant Kosten erzeugend stabil

13Foto: Ralph Aichinger

Page 14: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Verhalten

das, was in der Form passieren kann interessant Nutzen stiftend variabel, flexibel

14Foto: Benjamin Thompson

Page 15: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

15

Form Struktur Verhalten

Essenz der Struktur Stütze der Form was in der Form passiert

wahrnehmbar notwendig interessant

Wert liefernd Kosten erzeugend Nutzen stiftend

konstant stabil variabellean agil

Page 16: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

16

Was das System ist Was das System tut

FormSubsysteme

Interfaces, APIs Domänenobjekte

Use Case Kontext

Rollen-Interfaces

StrukturPakete Klassen

Rollen-Implementierungen Algorithmen

"Form? Struktur? Wovon redest Du eigentlich?"

Page 17: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Coach für effektive ProduktentwicklungMatthias Bohlen

17Das Bild stammt aus dem Buch "Vorgehensmuster für Softwarearchitektur" von Stefan Toth

Page 18: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Coach für effektive ProduktentwicklungMatthias Bohlen

Zusammenarbeit

18

Architekturrunde

Saturn-

Team

Neptun-

Team

Architektur

Saturn-BacklogNeptun-Backlog

Saturn Neptun Delegation

Delegation

Page 19: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

19

Was das System ist Was das System tut

FormSubsysteme

Interfaces, APIs Domänenobjekte

Use Case Kontext

Rollen-Interfaces

StrukturPakete Klassen

Rollen-Implementierungen Algorithmen

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

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

Page 20: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Transfer in die Praxis

20

Page 21: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Einstimmung – 10’

Gruppenarbeit – 30’

Ergebnis-Präsentation – 40’

Wie geht’s weiter? – 10’

Ausklang.

Transfer-Workshop

Page 22: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Organisation & Zusammenarbeit

1. Wie organisieren wir uns als Architektur-Team,-Runde, -Gilde, oder was sonst?

2. Wie starke Vorgaben macht dieses Architektur-"Etwas"? Sind wir Agenten, unterstützende oder gar klassische Architekten (siehe Bild aus dem Buch von Stefan Toth)?

Page 23: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Erwartungen an Architekten und Teams

3. Welche Erwartungen an die Architektenrolle gibt es? (Aufgaben und Verantwortung)

4. Welche Erwartungen gibt es zukünftig an die Teams? (Gibt es eine Abgrenzung: was macht das Team, was machen die Architekten?)

Page 24: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Architekturarbeit im Tagesgeschäft

5. Wie sieht die Architekturarbeit als Items im Backlog aus?

6. Wenn Architekturarbeit im Backlog auftaucht, welche Erwartungen gibt es dann zukünftig an die POs?

Page 25: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

ArchitectureElevator Pitch

• Wie erklären wir Architektur unseren Kunden oder Auftraggebern?

Page 26: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Eure Ergebnisse bitte…

.

Page 27: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Wie es weitergeht…1-2 Workshops

pro Themenpaar, je 4-7 Leute

Demnächst wissen wir, wie wir Architekturarbeit tun!

Page 28: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Jetzt registrieren!

Wer kann und will zu welchem Thema

beitragen?

Organisation & Zusammenarbeit

Erwartungen an Architekten

und Teams

Architektur-arbeit im

Tagesgeschäft.

Page 29: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Teambildung

29

Page 30: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

2 Teams während der Lernphase

Fachliche Architektur mit Domain Driven Design

Technische Architektur mit Prototyping

Achtung: Diese Struktur nur kurzzeitig behalten!

Domain Driven Design Technische Architektur

Page 31: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Skillmatrix liefert Ausbildungsbedarf

3 = ich kann das völlig neu aufbauen

2 = ich kann dazu beitragen

1 = ich kann es lesen

0 = ich weiß nichts

ModellierungswissenABC DEF GHI JKL MNO PQR STU VWX YZA BCD EFG HIJ KLM 3er

Objektorientiertes Modellieren

3 1 2 3 3 0 1 2 3 1 1 3 1 5

Methodik DDD 2 0 1 2 1 0 2 1 2 0 1 1 1 0

UML reduziert 2 1 2 2 2 1 2 3 3 2 2 3 2 3

Architektur-Basics

2 1 2 2 2 1 1 3 3 1 1 2 1 2

UML-Tool 2 0 1 0 1 0 1 2 2 0 2 2 1 0

Englisch 3 3 3 3 3 3 3 3 3 3 3 3 2 12

Page 32: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Kickoff

32

Page 33: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Kickoff der Arbeiten

System aus Bausteinen aufbauen

Nicht als Monolith, sondern als Bauwerk aus vielen Steinen

Vorbild: Lego-Künstler Nathan Sawaya

Nathan Sawaya: siehe http://www.brickartist.com

Page 34: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Domain Driven Design = fachliche Bausteine

9 Bausteine

um zu beschreiben, woraus das System fachlich besteht

Entity Value Object

Service AssociationBusiness Event

Module

Factory

Repository

Aggregate

Page 35: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Abbildung auf die TechnikTechnische Architektur

ebenfalls mit definierten Bausteinrollen

Realisierung durch Prototypen und Bewertung

Page 36: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Ausbildungszeit

36

Page 37: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Schulungen

User Stories & Use Cases

Tactical Design

Strategic Design

Grundlagen der SW-Architektur

Agile SW-ArchitekturFoto: tapetenpics

Page 38: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Von der User Story…

Story-Karte

Review submissionReviewer can review a submission so that the chairman will know how good it is.

How to demo: 1. System lists submissions assigned to this reviewer 2. Reviewer selects submission for download 3. System serves document file 4. Reviewer assigns rating: A (strong) to D (poor)

300

3857

5

Page 39: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

… zu den Wireframes für das UI

Foto: baldiri

Page 40: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Use Cases schreiben

die "rechte Seite" macht's !

BEZEICHNER: <DK>.<UK> (DK = Domänenkürzel, UK = Use Case Kürzel)

TITEL: <irgendetwas mit dem System tun>

NUTZEN IM KONTEXT: <Kurzbeschreibung dessen, was der Benutzer als Ziel bzw. Vorteil hat>

UNTERSTÜTZTE USER-ROLLEN: <Rollenname>

VORBEDINGUNGEN: <Was bereits gelten muss, damit der Use Case überhaupt starten kann>

BENUTZERINTENTION SYSTEMVERANTWORTLICHKEIT

NACHBEDINGUNGEN: <Was auf jeden Fall gilt, sobald der Use Case gelaufen ist>

Page 41: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Akzeptanztests dazu erstellen

Genial für das gemeinsame Verständnis zwischen Business und IT

GIVEN <Situation> WHEN <Event> THEN <Result>

Page 42: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Abbilden auf Domain Services & Entitäten

Aus den Abläufen der "rechten Seite" Service-Funktionen gewinnen

Aus den konzeptionellen Begriffen Entitäten gewinnen

Entity

Entity

Service

Page 43: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Domänenmodell entwerfen

Bausteine zusammensetzen

im UML-Tool durchmodellieren

publizieren

Feedback einholenFoto: Lego Photo mureut

Page 44: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Prototyping

44

Page 45: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Leitfragen helfen, die Gedanken zu lenken

Leitfrage aufstellen

Architekturansatz dazu wählen

Prototyp dazu erstellen

Ergebnisse bewerten und aufschreiben

Bild: Chris Potter

Page 46: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Architekturansätze wählenJavaEE versusSpring Boot

Single Page versus Multi Page UI

Microservices versus Self Contained Systems

etc.Bild: Forgemind Archimedia

Page 47: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Pro und contra für jeden Architekturansatz

Bewertungskriterien aufstellen

Ansätze bewerten

Ergebnisse publizieren

Feedback einholenFoto: Tim Rizzo

Page 48: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Wachstums-schmerzen

48

Page 49: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Domain Driven Design Technische Architektur

Bounded Context 1 Bounded Context 2

Teams neu "schneiden"

Bisherige Teams: Fokus auf's Prototypen und Lernen

Neue Teams: Fokus auf verwendbare Resultate

Page 50: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Onboarding: Neue Leute kommen ins Team

Leute, welche die Historie nicht haben

und die Architektur-ansätze nicht (sofort) teilen

Aufgabe: Das "Große Warum?" bewältigen

Foto: banoootah_qtr

Page 51: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Pilotieren

51

Page 52: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Bewertete Architekturansätze entscheiden

Entscheidungs-workshop zum Piloten Was haben wir schon entschieden? Was müssen wir jetzt noch entscheiden? Welche Dinge können wir später entscheiden?

Foto: Katie Lips

Page 53: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Unit-Testen, entwickeln, akzeptanztesten

Erste "ernsthafte" Story

Soll vorzeigbar sein

Soll zeigen, ob gewählte Architektur die Qualitätsziele tatsächlich erfüllt

Page 54: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Continous Integration and Deployment

Build-Server

Images als Ergebnisse

Demoserver, auf dem alles jederzeit läuft

Page 55: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Foto: Casey Hussein Bisson

Reife erlangen

55

Page 56: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Wenn genügend viele Stories umgesetzt sind

Erfahrungen dokumentieren

Am besten als How-To

Publizieren

How-Tos pro Team zu einem Prozess zusammensetzen

Prozess einübenFoto: Michael Havens

Page 57: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Organisation an Soll-Architektur anpassen

Teams: schnell, autark releasefähig

Warten nicht auf einander

Optimal: Jeder Bounded Context hat genau ein Team als Owner !

Team 1 Team 2

Bounded Context 1a Bounded Context 2Bounded Context 1b

Page 58: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Feedback-Mechanismen fest etablieren

Akzeptanztests für Business Value und Service-Verhalten

statische Prüfungen im Build-Lauf

Reviews durch Peers, Domänenexperten und User

Team Ergebnis

Lieferung

Feedback

Page 59: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Zusammenfassung: Architek(ul)tur verankern

Grundlagen legen Praxistransfer Teambildung Ausbildung Prototyping Pilotierung Reifung

Foto: Thomas Kohler

Page 60: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Die Abkürzung zum Erfolg

Sie tun es selbst

mit mir als "Remote Coach"

Rufen Sie mich an.

Page 61: TAG2015: ArchiteKultur – wie bekommen wir Architekturarbeit in den Alltag rein? (The architecture gathering 2015)

Coaching nehmen

Seminar besuchen

Newsletter abonnieren

Beginnen Sie jetzt!

Newsletter, Blog, Artikel, Bücher, Podcast, Videos:http://mbohlen.de

Anrufen: +49 170 772 8545

Fotos: Sarah Brabazon, Friends of Europe, iStockPhoto