kollaborative software architektur in agilen teams

33
Kollaborative Software Architektur in Agilen Teams Frankfurter Entwicklertag 2016

Upload: christian-fischer

Post on 14-Apr-2017

908 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Kollaborative Software Architektur in Agilen Teams

Kollaborative Software Architektur

in Agilen Teams

Frankfurter Entwicklertag 2016

Page 2: Kollaborative Software Architektur in Agilen Teams

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

Page 3: Kollaborative Software Architektur in Agilen Teams

Kollaborative Software Architektur in Agilen Teams

Das Entwicklungsteam im agilen Prozess

Aufgaben der Software Architektur

Best Practices & Scrum Integration

Zusammenfassung & Ausblick

Page 4: Kollaborative Software Architektur in Agilen Teams

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

Page 5: Kollaborative Software Architektur in Agilen Teams

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”

Page 6: Kollaborative Software Architektur in Agilen Teams

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

Page 7: Kollaborative Software Architektur in Agilen Teams

Softwarearchitektur im agilen Team• Schnelles Feedback• Krossfunktionalität nutzen• Akzeptanz der Entscheidungen

??

SA

Page 8: Kollaborative Software Architektur in Agilen Teams

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

Page 9: Kollaborative Software Architektur in Agilen Teams

Der “Agile Newbie” Ansatz

Anforderungsgerechte Architektur

ProduktinkrementSA

Page 10: Kollaborative Software Architektur in Agilen Teams

GefahrenUnklare Qualitätsanforderungen

Verborgene Entscheidungen

Fehlende Dokumentation

Unbekannte Technische Schulden

Page 11: Kollaborative Software Architektur in Agilen Teams

Kollaborative Softwarearchitektur

SA- Integration mit agilen Artefakten- Best Practices

- Qualitätsanforderungen erfassen- Entscheidungen treffen- Dokumentation erstellen- Technische Schulden bewerten

Page 12: Kollaborative Software Architektur in Agilen Teams

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

Page 13: Kollaborative Software Architektur in Agilen Teams

Qualitätsanforderungen erfassen• Konkrete Prüfkriterien• Priorisierung der

Qualitätsmerkmale• Aktualität• Einbeziehung aller Stakeholder

Page 14: Kollaborative Software Architektur in Agilen Teams

Qualitätsworkshop

Softwarequalität

Zuverlässigbarkeit Änderbarkeit Effizienz

Funktionalität Übertragbarkeit Benutzbarkeit

Anpassbarkeit Installierbarkeit Austauschbarkeit

Page 15: Kollaborative Software Architektur in Agilen Teams

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.

Page 16: Kollaborative Software Architektur in Agilen Teams

Szenarien kategorisierenQualitätsgeschichten

“Automatisches Webserver Failover”

Allgemeine Merker“Verwendung von Prepared

Statements”Akzeptanzkriterien

“Abnahme durch Rechtsabteilung”

Page 17: Kollaborative Software Architektur in Agilen Teams

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

Page 18: Kollaborative Software Architektur in Agilen Teams

Entscheidungen treffen• So spät wie möglich• Lösungsstrategien bewerten• Nachvollziehbarkeit sicherstellen• Einbeziehung aller Stakeholder

Page 19: Kollaborative Software Architektur in Agilen Teams

Der richtige Fokus• Wann?• Schwer änderbar• Hohe Kosten beim Rollback• Geringe Expertise

• Was?• Technologien• Modelle

Page 20: Kollaborative Software Architektur in Agilen Teams

Entscheidungen festhalten

1. Fragestellung2. Rahmenbedingungen3. Annahmen4. Betrachtete

Alternativen1. Pros/Cons2. Risiken

5. Entscheidung1. Wer & Wann2. Gründe Quelle: [ARC42]

Page 21: Kollaborative Software Architektur in Agilen Teams

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

Page 22: Kollaborative Software Architektur in Agilen Teams

Dokumentation erstellen• Nahe am Code• Versioniert• Zielgruppengerecht• Bekannte Standards

Page 23: Kollaborative Software Architektur in Agilen Teams

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

Page 24: Kollaborative Software Architektur in Agilen Teams

Dokumentation inTextdateien• Unterstützt Branching

und Merging• Gut lesbare Historie• IDE Unterstützung

Page 25: Kollaborative Software Architektur in Agilen Teams

Scrum Integration

A BC D

A BC

BacklogGrooming

DefinitionOfDone

SprintPlanning

Daily

Review Retro-spective

ProductBacklog

SprintBacklog

Snapshot

Sprint Inkrement

Aktualisierung

sicherstellen

Dokumente erweiteren

Page 26: Kollaborative Software Architektur in Agilen Teams

Technische Schulden bewerten• Kosten• Verzinsung• Risiken• Aufwände für die

Tilgung• Komponenten

$

Page 27: Kollaborative Software Architektur in Agilen Teams

Komponentenbewertung

Problem Childs Stars

Cash CowsDogs

Aktueller unternehmerischer Wert

Zukü

nfti

ger

Wer

tbei

trag

$

Quelle: Steve Garnett [GARNETT]

Page 28: Kollaborative Software Architektur in Agilen Teams

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

Page 29: Kollaborative Software Architektur in Agilen Teams

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.’.”

Page 30: Kollaborative Software Architektur in Agilen Teams

Kollaborative Softwarearchitektur

Team

Lösungen bewerten und entscheiden

Qualitätsanforderungen erfassen und prüfen

Architektur dokumentieren und kommunizieren

Techn. Schulden identifizieren und bewerten

$

Page 31: Kollaborative Software Architektur in Agilen Teams

Weitere Best PracticesStefan Toth:Vorgehensmuster for Software-Architektur

ISBN-10: 3446436154

http://www.swamuster.de

Page 32: Kollaborative Software Architektur in Agilen Teams

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

Page 33: Kollaborative Software Architektur in Agilen Teams

Fragen?@agiledojohttps://de.linkedin.com/in/christian-fischer-a89952102https://www.xing.com/profile/Christian_Fischer79