Kollaborative Software Architektur in Agilen Teams

Post on 14-Apr-2017

907 views 1 download

Transcript of Kollaborative Software Architektur in Agilen Teams

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