Kollaborative Software Architektur
in Agilen Teams
Frankfurter Entwicklertag 2016
Christian Fischer• 15 Jahre Webentwicklung als
Administrator, Entwickler, Architekt, Team- und Projektleiter
• Agile Methoden seit 2006• Agile Coach und Coding
Architect bei der itemis AG
Kollaborative Software Architektur in Agilen Teams
Das Entwicklungsteam im agilen Prozess
Aufgaben der Software Architektur
Best Practices & Scrum Integration
Zusammenfassung & Ausblick
Das Entwicklungsteam im agilen Prozess
“Die besten Architekturen, Anforderungen und Entwürfeentstehen durch selbstorganisierte Teams.”
-- Das Agile Manifest
“Die besten Architekturen, Anforderungen und Entwürfeentstehen durch selbstorganisierte Teams.”
-- Das Agile Manifest
Das agile TeamAgile
Softwareentwicklung
Entwicklungsteam
Schnelle Reaktion auf Änderungen
- Autonomie- Selbstreferenzierung- Redundanz
SelbstorganisierendFunktionsübergreifend
“Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans”
Funktionsübergreifende Verantwortung
PM
QA
Team
OP- Dailies- Scrum Board
- Aufgabenkoordination- Fortschrittskontrolle
- TDD- Continous Integration
- Qualitätssicherung- Qualitätskontrolle
- Continous Delivery- You build, you run it
- Deployment- Monitoring
Softwarearchitektur im agilen Team• Schnelles Feedback• Krossfunktionalität nutzen• Akzeptanz der Entscheidungen
??
SA
Aufgaben der Software Architektur
“Die besten Architekturen, Anforderungen und Entwürfeentstehen durch selbstorganisierte Teams.”
-- Das Agile Manifest
“Meaningful architecture is a living, vibrant process of deliberation, design, & decision, not just documentation.”
-- Grady Booch
Der “Agile Newbie” Ansatz
Anforderungsgerechte Architektur
ProduktinkrementSA
GefahrenUnklare Qualitätsanforderungen
Verborgene Entscheidungen
Fehlende Dokumentation
Unbekannte Technische Schulden
Kollaborative Softwarearchitektur
SA- Integration mit agilen Artefakten- Best Practices
- Qualitätsanforderungen erfassen- Entscheidungen treffen- Dokumentation erstellen- Technische Schulden bewerten
Best Practices & Scrum Integration
“Die besten Architekturen, Anforderungen und Entwürfeentstehen durch selbstorganisierte Teams.”
-- Das Agile Manifest
“The way to get started is to quit talking and begin doing.”
-- Walt Disney
Qualitätsanforderungen erfassen• Konkrete Prüfkriterien• Priorisierung der
Qualitätsmerkmale• Aktualität• Einbeziehung aller Stakeholder
Qualitätsworkshop
Softwarequalität
Zuverlässigbarkeit Änderbarkeit Effizienz
Funktionalität Übertragbarkeit Benutzbarkeit
Anpassbarkeit Installierbarkeit Austauschbarkeit
Qualitätsszenarien
Verursacher Stimulus System/Umgebung Antwort Meßgröße
Ein Nutzer
öffnet in seinem Browser
alle Landing
Pages des Portals parallel zu 100
anderen Nutzern.
Von allen Antworte
n
Liegt die Latenzzeit
in 90% der Fälle unter 50
ms.
Szenarien kategorisierenQualitätsgeschichten
“Automatisches Webserver Failover”
Allgemeine Merker“Verwendung von Prepared
Statements”Akzeptanzkriterien
“Abnahme durch Rechtsabteilung”
Scrum Integration
A BC D
A BC
BacklogGrooming
DefinitionOfDone
SprintPlanning
Daily
Review Retro-spective
ProductBacklog
SprintBacklog
Snapshot
Sprint Inkrement
Qualitäts-szenarien erfassen
und priorisieren
Allgemeine Merker prüfen
Qualitätsgeschichten und
Akzeptanz-kriterien prüfen
Entscheidungen treffen• So spät wie möglich• Lösungsstrategien bewerten• Nachvollziehbarkeit sicherstellen• Einbeziehung aller Stakeholder
Der richtige Fokus• Wann?• Schwer änderbar• Hohe Kosten beim Rollback• Geringe Expertise
• Was?• Technologien• Modelle
Entscheidungen festhalten
1. Fragestellung2. Rahmenbedingungen3. Annahmen4. Betrachtete
Alternativen1. Pros/Cons2. Risiken
5. Entscheidung1. Wer & Wann2. Gründe Quelle: [ARC42]
Scrum Integration
A BC D
A BC
BacklogGrooming
DefinitionOfDone
SprintPlanning
Daily
Review Retro-spective
ProductBacklog
SprintBacklog
Snapshot
Sprint Inkrement
Lösungen entscheiden
und bewerten
Spike Ergebnisse
prüfen
Entscheidungs-bedarf
identifizieren
Dokumentation erstellen• Nahe am Code• Versioniert• Zielgruppengerecht• Bekannte Standards
DokumenttypenDokument Ziel Inhalte Form
Design Document
Überblick und Orientierung
Kontext, Aufbau, Struktur, Prinzipien
ARC42, Software Guidebook
Entwicklungs-leitfaden
Implementierungshilfe
Beispielcode, Muster, Szenarien
Cookbook, Howto
Schnittstellen-vertrag
Nutzungsvereinbarung zwischen Systemen
Protokolle, Semantik, Syntax, Qualitätsmerkmale
ARC42
Dokumentation inTextdateien• Unterstützt Branching
und Merging• Gut lesbare Historie• IDE Unterstützung
Scrum Integration
A BC D
A BC
BacklogGrooming
DefinitionOfDone
SprintPlanning
Daily
Review Retro-spective
ProductBacklog
SprintBacklog
Snapshot
Sprint Inkrement
Aktualisierung
sicherstellen
Dokumente erweiteren
Technische Schulden bewerten• Kosten• Verzinsung• Risiken• Aufwände für die
Tilgung• Komponenten
$
Komponentenbewertung
Problem Childs Stars
Cash CowsDogs
Aktueller unternehmerischer Wert
Zukü
nfti
ger
Wer
tbei
trag
$
Quelle: Steve Garnett [GARNETT]
Scrum Integration
A BC D
A BC
BacklogGrooming
DefinitionOfDone
SprintPlanning
Daily
Review Retro-spective
ProductBacklog
SprintBacklog
Snapshot
Sprint Inkrement
$
Schulden bewerten
und priorisieren
Maßnahmen zur Tilgung auswählen
Zusammenfassung & Ausblick
“Die besten Architekturen, Anforderungen und Entwürfeentstehen durch selbstorganisierte Teams.”
-- Das Agile Manifest
“The phrase that is guaranteed to wake up an audience: ‘And in conclusion.’.”
Kollaborative Softwarearchitektur
Team
Lösungen bewerten und entscheiden
Qualitätsanforderungen erfassen und prüfen
Architektur dokumentieren und kommunizieren
Techn. Schulden identifizieren und bewerten
$
Weitere Best PracticesStefan Toth:Vorgehensmuster for Software-Architektur
ISBN-10: 3446436154
http://www.swamuster.de
Quellen• [TOTH] Stefan Toth - Vorgehensmuster für Softwarearchitektur: Kombinierbare Praktiken in Zeiten von Agile und Lean
• [GARNETT] Steve Garnett - http://bit.ly/1LlwcbQ• [ARC42] http://www.arc42.de
Fragen?@agiledojohttps://de.linkedin.com/in/christian-fischer-a89952102https://www.xing.com/profile/Christian_Fischer79