1
Prinzipien agiler Entwicklung
Scrum, Kanban und der ganze Rest
Johannes Stiehler
Die Ursprünge
Toyota Production SystemLean Manufacturing
2
Kontinuierliche Verbesserung (Kai-Zen)
• Prozessorientierung
• Kundenorientierung
• Qualitätsorientierung
• Kritikorientierung
• Standardisierung
3
Kai-Zen Checkliste
• Muda: Verschwendung (8V-Regel)
• Muri: Überlastung
• Mura: Unregelmäßigkeit in den Prozessen
4
Kai-Zen: Acht Arten der Verschwendung (Muda)
• Überproduktion • überhöhte Lagerhaltung • überflüssigen Transport • Wartezeit • Herstellung fehlerhafter Teile • unnötige Bewegung • ungünstiger Herstellungsprozess / überflüssige Features • nicht oder falsch genutztes Talent der Mitarbeiter
5
Verschwendung in Software-Projekten
• unnötige Features ohne belegbaren Marktwert
• detaillierte Spezifikation für weit zukünftige Entwicklungen
• Features, die vor Release gestoppt werden
• Bugs, die an QA weitergegeben werden
• mangelnde Automatisierung, manuelle Deployment-Prozesse
• keine Einbeziehung des Dev-Teams in die QA, keine Einbeziehung des QA-Teams in die Spezifikation etc.
6
Der Weg zum perfekten Prozess
PLAN
Verbesserungspotentiale erkennen
DO
Implementierung evtl. im kleinen Maßstab
STUDY
Resultate überprüfen
ADJUST
Diskrepanz zwischen Plan und Realität feststellen
7
Copyright: ideenplanet GmbH
8
Theory of Constraints
1. Identifiziere den Engpass2. Laste den Engpass voll
aus3. Ordne alles der
Auslastungsentscheidung unter
4. Behebe den Engpass5. Bei Schritt 1 erneut
beginnen
Eliyahu M. Goldratt
Copyright: Marc CECCHETTI - Fotolia
Ergebnis: Just in time / Pull Prozess
• Spätere Prozessschritte „ziehen“ Ergebnisse aus früheren • Lagerhaltung wird vermieden • Engpässe werden kontinuierlich eliminiert • Nur was verkauft wurde, wird produziert
9
Das agile Manifesto
• Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
10
–MIT Sloan
„Agile firms grow revenue 37% faster. Agile firms generate 30% higher profits.“
11
12
Agile Softwareentwicklung
Scrum, Kanban, XP…
Pending Analysis Development Test DeployIn
ProgressDone In
ProgressDone
Kai-Zen fürs Produkt: Iterative Entwicklung
Inkrementelle Mona Lisa
13
Copyright: ideenplanet GmbH und Maria Bell - Fotolia
Kai-Zen fürs Produkt: Iterative Entwicklung
Iterative Mona Lisa
14
Copyright: ideenplanet GmbH und Maria Bell - Fotolia
Kai-Zen fürs Produkt: Iterative Entwicklung
Inkrementell-iterative Mona Lisa
15
Copyright: ideenplanet GmbH und Maria Bell - Fotolia
Build –– Measure –– Learn
16
Voraussetzung und Ziel: Hochwertige Software
Anforderungen
• änderungsfreundlich
• wartungsfreundlich
• ohne technische Schuld
• selbstdokumentierend
• fehlerarm
17
Praktiken
• test-driven development
• code reviews / pair programming
• „clean code“
• „simple design“
Technische Schuld18
0
25
50
75
100
gesetzter Termin
Initiale Schätzung
Technische Schuld19
0
25
50
75
100
gesetzter Termin Projektion
Initiale Schätzung Realistischer
Durchsatz
Technische Schuld20
0
25
50
75
100
gesetzter Termin Projektion
„Der Termin ist fix.“
Technische Schuld
Technische Schuld21
0
25
50
75
100
1. Release 2. Release
Technische Schuld wächst
Prozessrollen (Scrum Team)
Product Owner (Main Customer) Verantwortlich für die Produktdefinition und den Produkterfolg
Scrum Master Verantwortlich für die Prozesskonformität und das Beseitigen von Hindernissen
Development Team Verantwortlich für das Veröffentlichen neuer Features
22
23
Cross-functional teams Collective Code Ownership
24
Scrum und Kanban Agile Vorgehensmodelle
Copyright: Alison Bowden - Fotolia
Kurze Einführung in Scrum
Bitte klicken: https://prezi.com/bywn-h7cfqmx/scrum/
25
Scrum vs. Kanban
• definierte Rollen • cross-functional Team • Schätzen • WIP limitiert durch
Zeitrahmen • Sprint ist read-only • optimaler Durchsatz
26
• Rollen frei definierbar • evtl. mehrere Teams • Messen • WIP limitiert durch Slot-
Größe • Backlog veränderbar • optimale Flexibilität
Zusammenfassung: Agiles Vorgehen
• Qualitativ hochwertige Software in kleinen Produktinkrementen
• Selbstorganisierende Teams, klare Verantwortlichkeiten • Unsicherheit und Wandel als Prozesskonstante • Pull-Ansätze • Kai-Zen
27