Vortrag auf der "Jax on tour", September 2012:
Sind die Zeiten, in denen man sich stolz Architekt nennen und sich darauf etwas einbilden konnte, vorbei? Wenn die Architektur ganz agil allen „gehört“, wozu dann eine herausgehobene Rolle? In diesem Vortrag wird auf die Auswirkungen moderner, leichtgewichtiger Vorgehensweisen auf die Architektenrolle eingegangen und gezeigt, was gleich bleibt, was sich verändern muss und welche Herausforderungen sich daraus ergeben, wenn der Architekt auf einmal ein gleichrangiges Teammitglied wird.
1. Matthias Bohlen Coach für effektive Produktentwicklung
Architektur versus Agilität
oder: Wer braucht schon noch Architekten?
Benutzer
Business Kunde
Architekt Designer
Fachbereich Domänen- Entwickler Programmierer
Analyst experte Tester
etc.
+49 170 772 8545
mbohlen@mbohlen.de
http://www.mbohlen.de
@mbohlende
Donnerstag, 20. September 12
3. Wer ist ein
Softwarearchitekt?
Foto: Casey Hussein Bisson 3
Donnerstag, 20. September 12
4. OOPSLA 1992
Publikum:
Mr. Beck, was ist
Softwarearchitektur?
Softwarearchitektur?
Das ist das, was Softwarearchitekten machen.
Publikum (kichert):
Also dann, was ist ein
Softwarearchitekt?
Hmm, Softwarearchitekt ist ein neuer pompöser
Titel, den Programmierer auf ihrer Visitenkarte
haben wollen, um ihre üppigen Bezüge zu
rechtfertigen.
4
Donnerstag, 20. September 12
5. Extreme Programming Explained (2000)
"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."
5
Donnerstag, 20. September 12
6. Die elende Bau-Metapher
Der Entwickler baut
Foto: Anna Oakley
Der Architekt erklärt
6
Donnerstag, 20. September 12
7. Wenn überhaupt Bau, dann...
Architekten Der Compiler baut
und Entwickler
entwerfen
7
Donnerstag, 20. September 12
8. Stille Post am Beispiel RUP
Foto: Casey Hussein Bisson 8
Donnerstag, 20. September 12
9. Matthias Bohlen Coach für effektive Produktentwicklung
Rational Unified Process
9
Donnerstag, 20. September 12
10. Matthias Bohlen Coach für effektive Produktentwicklung
RUP: Das Metamodell
10
Donnerstag, 20. September 12
11. Matthias Bohlen Coach für effektive Produktentwicklung
RUP: Die Rolle "Softwarearchitekt"
11
Donnerstag, 20. September 12
12. Matthias Bohlen Coach für effektive Produktentwicklung
RUP: Die Rolle "Implementierer"
12
Donnerstag, 20. September 12
13. Matthias Bohlen Coach für effektive Produktentwicklung
RUP: Aktivität "Implement Component"
Purpose:
To produce source code in accordance with the design model.
Steps:
Implement Operations, Implement States, Use Delegation to Reuse
Implementation, Implement Associations, Implement Attributes,
Provide Feedback to Design, Evaluate the Code
Input Artifacts: Resulting Artifacts:
Software Architecture Document, Component, Test Component
Design Package, Design Class,
Design Model, Design Guidelines,
Programming Guidelines,
Supplementary Specifications, Test
Case, Data Model, Test Interface
Specification, Test Component
Role: Implementer
13
Donnerstag, 20. September 12
14. Der überforderte Architekt
"Die ideale Architekt sollte des Schreibens mächtig
sein, ein Mathematiker, vertraut mit historischen
Studien, ein fleißiger Student der Philosophie,
vertraut mit Musik, nicht unwissend in der Medizin,
kundig in den Antworten der Rechtsgelehrten,
vertraut mit Astronomie und astronomischen
Berechnungen."
- Vitruv, circa 25 v. Chr.
Foto: Casey Hussein Bisson 14
Donnerstag, 20. September 12
15. Matthias Bohlen Coach für effektive Produktentwicklung
nach iSAQB CPSA-F
Aufgaben von Softwarearchitekten
Anforderungen 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
15
Donnerstag, 20. September 12
16. Matthias Bohlen Coach für effektive Produktentwicklung
nach Philippe Kruchten
Aufgaben von Softwarearchitekten
Architektur des Systems definieren
Integrität der Architektur sicherstellen
Technische Risiken erkennen
Risikomanagement-Strategien entwickeln
An der Projektplanung teilnehmen
Reihenfolge und Inhalt von Iterationen
vorschlagen
Consulting für Design-, Implementierungs- und
Integrations-Teams
Produktmarketing mit neuen Visionen
unterstützen
16
Donnerstag, 20. September 12
17. What you KNOW What you DO What You ARE
•Yourself •Set team context (vision) •You and others see you as a leader
Architect
•Make decisions (stick) •Charismatic and credible
Leadership
•Build teams •You believe it can and should be done, and can
•Motivate lead the effort
•You are committed, dedicated, passionate
•You see the entire effort in a broader business
context
•Who the key players are in the •Communicate, communicate, communicate! •Able to see from and sell to multiple viewpoints
Competency
Org. Politics
organization •Listen, network, influence •Confident and articulate Ambitious and driven
•What they want, both business •Sell the vision, keep the vision alive •Patient and not
and personal
•Take and retake the pulse of all critical •Resilient
influencers of the architecture project •Sensitive to where the power is and how it flows
in your organization
•Your organization’s business •Influence business strategy •Visionary
Framework
strategy and rationale •Translate business strategy into technical •Entrepreneurial
Strategy
•Your competition (products, vision and strategy
strategies and processes) •Understand customer and market trends
•Your company’s business •Capture customer, organizational and
practices business requirements on the architecture
•Elicitation techniques •Build “trusted advisor” relationships •Committed to others’ success
Bredemeyer Consulting 2002
Consulting
•Consulting frameworks •Understand what the developers want and •Empathetic, approachable
need from the architecture •An effective change agent, process savvy
•Help developers see the value of the •A good mentor, teacher
architecture and understand how to use it
successfully
•Mentor junior architects
•In-depth understanding of the •Modeling •Creative
domain and pertinent •Tradeoff analysis •Investigative
Technology
technologies
•Prototype/experiment/simulate •Practical/pragmatic
•Understand what technical issues
are key to success •Prepare architectural documents and •Insightful
presentations •Tolerant of ambiguity, willing to back-track,
•Development methods and
•Technology trend analysis/roadmaps seek multiple solutions
modeling techniques
•Take a system viewpoint •Good at working at an abstract level 17
Donnerstag, 20. September 12
19. Matthias Bohlen Coach für effektive Produktentwicklung
Kummunikation am Fließband
Kunde Business Architekt Entwickler Tester
Das funktioniert nicht!
Software hat keine physikalischen
Gesetze, die die Korrektheit der
Ergebnisse sicherstellen würden!
19
Donnerstag, 20. September 12
20. Matthias Bohlen Coach für effektive Produktentwicklung
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
20
Donnerstag, 20. September 12
21. Matthias Bohlen Coach für effektive Produktentwicklung
Agile Architekturrunde:
Gemeinsam sind wir Architekten !
Benutzer
Business Kunde
Architekt Designer
Fachbereich Domänen- Entwickler Programmierer
Analyst experte Tester
etc.
21
Donnerstag, 20. September 12
22. Benutzer Business Kunde Domänen- Entwickler
experte
Benutzer Feature- Bequemlich- Produkt/ Qualität
Priorität, keit einkaufen Feature- und
Scope Machbarkeit Funktiona-
lität
Stakeholder
Business Machbarkeit Standards Anforderungen Machbarkeit Quelle von
klären Einnahmen
Kunde Ein Markt Produkte Standards Standards Quelle von
untereinander
und
Leistungen
schaffen einhalten Einnahmen
Domänen- Spanne von Angenehmer Bedarf an Domänen- Rahmenbe-
experte Variabilität Arbeitsplatz Standards Synergien dingungen
im Produkt und für
-Konflikte Technologie
Entwickler Anforderung Angenehmer Beratung beim Orientierung Existieren-
en klären Arbeitsplatz Ausliefer- durch APIs, den Code
prozess poka-yoke verstehen
22
Donnerstag, 20. September 12
23. Matthias Bohlen Coach für effektive Produktentwicklung
Warum alle am Tisch sitzen müssen!
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
23
Donnerstag, 20. September 12
24. Matthias Bohlen Coach für effektive Produktentwicklung
Beispiel: Make or Buy Entscheidung
Stakeholder Beitrag zur Architektur
Business Schlägt "buy" statt "make" vor
Kunde und Sagt, ob das gekaufte Etwas die
Benutzer 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
24
Donnerstag, 20. September 12
25. Matthias Bohlen Coach für effektive Produktentwicklung
Conways Gesetz
Conway 1968:
"organizations which design systems ... are
constrained to produce designs which are copies of
the communication structures of these organizations"
Coplien / Harrison 2004:
"If the parts of an organization (e.g. teams,
departments, or subdivisions) do not closely reflect
the essential parts of the product, or if the
relationship between organizations do not reflect the
relationships between product parts, then the project
will be in trouble... Therefore: Make sure the
organization is compatible with the product
architecture"
25
Donnerstag, 20. September 12
26. Matthias Bohlen Coach für effektive Produktentwicklung
Die wesentliche Architektenaufgabe
Systemschnitt entwickeln
Essenzielle Systemteile entkoppeln
Kopplung zwischen Systemteilen
induziert Commitment zwischen Teams
lässt agile Teams aufeinander warten
Also müssen Architektur-Teams einen
Systemschnitt entwerfen, der den
anderen Teams erlaubt, eigenständig und
schnell zu arbeiten.
26
Donnerstag, 20. September 12
27. Matthias Bohlen Coach für effektive Produktentwicklung
Zusammenarbeit Architekturrunde
Delegation
Delegation
Saturn Architektur Neptun
Saturn-Backlog Neptun-Backlog
Saturn- Neptun-
Team Team
27
Donnerstag, 20. September 12
28. Matthias Bohlen Coach für effektive Produktentwicklung
PO, Architektekturrunde, Team
Architekturrunde liefert
nicht-funktionale Product Owner
Backlog-Elemente
Product Owner
entscheidet, ob und Team
wann sie in die
Entwicklung einfließen
Backlog
Architekt ist jetzt Team-Mitglied (Domänenexperte),
der "Bergführer", der "Kümmerer", der die Architektur-
Energie aufrechterhält
28
Donnerstag, 20. September 12
29. Matthias Bohlen Coach für effektive Produktentwicklung
Architekturarbeit gehört ins Backlog!
Stefan Toth (oose GmbH) :: Architekturbewertung – Der Schlüssel zur besseren Architektur(-arbeit)
29
Donnerstag, 20. September 12
30. Matthias Bohlen Coach für effektive Produktentwicklung
Quality Story
Eine Quality Story wird
Story
ins Backlog zwischen
zwei andere Stories Q-Story
einsortiert. Story
Die Architektenrunde
definiert die Q-Story,
der Product Owner
sortiert sie ein.
30
Donnerstag, 20. September 12
31. Matthias Bohlen Coach für effektive Produktentwicklung
Quality Aspect
Ein Qualitätsaspekt Story
kommt in die DoD Definition of Done
einer oder mehrerer
Stories.
Die Architektenrunde
definiert den Aspekt,
der Product Owner
lässt ihn zu.
31
Donnerstag, 20. September 12
32. Matthias Bohlen Coach für effektive Produktentwicklung
Quality Policy
Eine Rahmenbedingung
kommt als Merker auf Story
die Backlog-Wand. Story
Rahmen-
bedingung
Die Architektenrunde Story
definiert die
Rahmenbedingung, der
Product Owner lässt
sie zu.
32
Donnerstag, 20. September 12
34. Matthias Bohlen Coach für effektive Produktentwicklung
Was ist SW-Architektur?
Form, Struktur, Verhalten, Stil
Ralph Johnson: "Architektur ist die
Menge von Entscheidungen, von denen
Sie wünschten, Sie könnten sie früh im
Projekt richtig treffen (aber bei denen
die Wahrscheinlichkeit, sie richtig zu
treffen, nicht notwendigerweise größer
ist als bei jeder anderen Entscheidung)."
34
Donnerstag, 20. September 12
35. Struktur stützt Form
Form versus Struktur Form ermöglicht Verhalten
35
Donnerstag, 20. September 12
36. Struktur stützt Form
Form versus Struktur Form ermöglicht Verhalten
35
Donnerstag, 20. September 12
37. Struktur stützt Form
Form versus Struktur Form ermöglicht Verhalten
35
Donnerstag, 20. September 12
38. Struktur stützt Form
Form versus Struktur Form ermöglicht Verhalten
35
Donnerstag, 20. September 12
39. Matthias Bohlen Coach für effektive Produktentwicklung
Schlanke Architekturdokumentation
Aspekt Bedeutung Medien
Form Subsysteme, APIs, von Bilder und
außen sichtbares Vodcasts im Wiki,
Verhalten APIs im Code
Struktur Subsystem-interne Code
Klassen und
Schnittstellen
Verhalten wichtige Abläufe im Bilder im Wiki,
System den Rest im Code
Stil Entwurfsprinzipien Wiki
36
Donnerstag, 20. September 12
40. Matthias Bohlen Coach für effektive Produktentwicklung
Auch wichtig zu dokumentieren!
Querschnittskonzepte
Persistenz, Logging,
Transaktionsbehandlung, Authentifizierung,
Autorisierung, usw.
Design-Entscheidungen
Datum, Ausgangslage, Problemstellung,
gewählte/verworfene Optionen,
Entscheidungsweg/Begründung, Wiki
37
Donnerstag, 20. September 12
41. Matthias Bohlen Coach für effektive Produktentwicklung
Zusammen Architektur ist nötig
fassung Sie ermöglicht
unabhängiges Handeln
in den Teams
Alle zusammen sind
"der Architekt"
Architektur bleibt
schlank, wenn man sich
konzentriert!
38
Donnerstag, 20. September 12
42. Matthias Bohlen Coach für effektive Produktentwicklung
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
Donnerstag, 20. September 12