Agile Softwareenwticklung mit  SCRUM
AGENDA
1 2 3
Über Rollen, Artefakte und Zeremonien –  Eine Einführung in die Begriffswelt von SCRUM  1 2 3
SCRUM ist mehr als Projektmanagement und Softwareentwicklung -  Agile Prinzipien, Werte und der Faktor Mensch. 1 2 3
SCRUM im Feldversuch –  3 Jahre SCRUMologie bei Regis24. 1 2 3
Einführung in die Begriffswelt  von Agile und SCRUM 1
Das Ziel agiler Softwareentwicklung ist es, schneller und effektiver Software zu entwickeln als in den klassischen, schwergewichtigen Entwicklungsmodellen. = 1 2 3
Im schwergewichtigen Wasserfallmodell wird die Gesamtprojektzeit in feste Phasen eingeteilt. Projektfortschritt Zeit 1 Monat 3 Monat 12 Monate 16 Monate Initialplanung Anforderungs- analyse Systemdesign Implementierung Release Nutzung 1 2 3
Agile Prozesse nähern sich dem Projektziel in kurzen, absehbaren und planbaren Iterationen und schaffen dadurch kontinuierlich Nutzen. ITERATION 1-5 Wochen Initialplanung Anforderungs- analyse Systemdesign Implementierung Test Planung aktualisieren Release Nutzung 1 2 3
SCRUM gibt eine Antwort auf viele typische Probleme der Softwareentwicklung. Zu lange Releasephasen Zu wenig Stabilität Änderungen nur schwer umsetzbar Unzureichende Qualität Demoralisierung durch Projektstopp Kurze Releasephasen Stabilität durch TDD und Refactoring Änderungen dankbar annehmen Hohe Qualität der Software Spaß und Freude bei der Arbeit 1 2 3
SCRUM ist ein agiler Prozess, der durch  verschiedene agile Methoden gestützt werden sollte. Pair- Programming Test Driven Development (TDD) Ständiges Refactoring Code- und Architecture-Reviews Nightly Builds / Continous Integration Implementierungsaufgaben werden in Paaren gelöst
Eine Person schreibt Code, die Andere prüft, modelliert, hinterfragt
Vorteile: bessere Qualität, weniger Ablenkung, Wissenstransfer, Spaß
Nachteile: mehr direkter Zeitaufwand, ggf. negative Teamwirkung, Nicht nur Unit- und Integrationstests, auch Anforderungen, Usability etc.
100% Abdeckung erforderlich
Tests als elementarer Bestandteil der Entwicklung
Absicherung von Code gegen Änderung, Klare Zielrichtung Code-Smells regelmäßig aufspüren und beseitigen
Alles wird in besserem Zustand verlassen als es vorgefunden wurde
Dringende Grundbedingung: 100% TDD, Collective Code Ownership
Vermeidung und Reduktion von Technical Dept als oberstes Ziel Regelmäßige geplante und ständige spontane Code Reviews
Unstimmigkeiten werden sofort beseitigt
Alle Ansätze werden untereinander gechallenged
Wissenstransfer und Förderung des kollektiven Geistes Jedes Teammitglied integriert seinen neuen Code täglich
Mit jeder Integration werden an einem Testserver sämtliche Unit-Tests sowie ein automatischer Build durchgeführt
Code Fragmente laufen so nicht auseinander, jederzeit Release möglich 1 2 3
SCRUM bringt ein sehr übersichtliches Set an Grundsätzen mit. Product Owner Scrum Master TEAM Sprint Planning Sprint Sprint Review Retrospektive Daily Scrum Product Backlog Sprint Backlog Sprint Burndown Chart Product Increment Impediment List Estimation Meeting Product Burndown Definition of Done Rollen Zeremonien Artefakte 1 2 3
SCRUM beschreibt 3 relevante Rollen im  Entwicklungsprozess. Product Owner Team Scrum Master 1 2 3 definiert Produkt-Features
bestimmt Auslieferungsdatum und Inhalt
ist verantwortlich für den Gewinn des Projekts (ROI)
priorisiert Features abhängig vom Marktwert
passt Features und Prioritäten nach Bedarf für jede Iteration an
akzeptiert oder weist Arbeitsergebnisse zurück  Typischerweise fünf bis zehn Leute
Mitglieder sollten Vollzeitmitglieder sein
Interdisziplinär
Teams organisieren sich selbst
Mitgliedschaft kann sich nur zwischen Sprints verändern Verantwortlich für die Einhaltung von Scrum-Werten und -Techniken
Entfernt Hindernisse
Stellt sicher, dass das Team vollständig funktional und produktiv ist
Unterstützt die enge Zusammenarbeit zwischen allen Rollen und Funktionen
Schützt das Team vor äußeren Störungen
Vermittelt der Organisation die Welt der agilen Werte
SCRUM lebt vor allem durch die Interaktionen zwischen den einzelnen Akteuren. Das Team Nebenrollen Scrum Master Product Owner Anwender Vertrieb Kunde Marketing Geschäftsleitung Rechtsabteilung Gesetz Entwickler Tester DBA's / SysAdmins Designer Beschützt, befähigt  und hilft unterstützt Klärt Anforderungs- details Erteilt Aufträge als User Stories Sammelt Anforderungen und Wünsche klärt Anforderungsdetails 1 2 3
Vor dem ersten Sprint – und immer dann, wenn neue Produkte entwickelt werden – sollte eine Vorplanungs- phase stattfinden (Vom Konzept zum Produktbacklog) Das Produkt ist immer mehr als die Software – und sollte aus diesem Grund auch eine andere Behandlung erfahren. Alles was sich nicht oder nur sehr schwer ändern lässt (z.B. Basisarchitektur), sollte ausserhalb von Scrum in einer Vorphase aufgesetzt werden. Agilität ist nicht der komplette Verzicht auf Vorabplanung. Vision Product Planning Product Envisioning Major Features Product Design Product Architecture Risks / Benifits Budgetierung 1 2 3
Iterationen bestehen aus den gleichen, immer wieder kehrenden Stufen, die den Rhythmus der Entwicklung vorgeben. Planning Estimation Sprint Retrospektive Review Daily Scrum 1 2 3
Iterationen bestehen aus den gleichen, immer wieder kehrenden Stufen, die den Rhythmus der Entwicklung vorgeben. Planning Estimation Sprint Retrospektive Review Daily Scrum Aktuelle, priorisierte User Stories werden kurz vom Product Owner vorgestellt
Team schätzt den Aufwand (die Größe) der User Stories in Story Points

Scrum Workshop

  • 1.
  • 2.
  • 3.
  • 4.
    Über Rollen, Artefakteund Zeremonien – Eine Einführung in die Begriffswelt von SCRUM 1 2 3
  • 5.
    SCRUM ist mehrals Projektmanagement und Softwareentwicklung - Agile Prinzipien, Werte und der Faktor Mensch. 1 2 3
  • 6.
    SCRUM im Feldversuch– 3 Jahre SCRUMologie bei Regis24. 1 2 3
  • 7.
    Einführung in dieBegriffswelt von Agile und SCRUM 1
  • 8.
    Das Ziel agilerSoftwareentwicklung ist es, schneller und effektiver Software zu entwickeln als in den klassischen, schwergewichtigen Entwicklungsmodellen. = 1 2 3
  • 9.
    Im schwergewichtigen Wasserfallmodellwird die Gesamtprojektzeit in feste Phasen eingeteilt. Projektfortschritt Zeit 1 Monat 3 Monat 12 Monate 16 Monate Initialplanung Anforderungs- analyse Systemdesign Implementierung Release Nutzung 1 2 3
  • 10.
    Agile Prozesse nähernsich dem Projektziel in kurzen, absehbaren und planbaren Iterationen und schaffen dadurch kontinuierlich Nutzen. ITERATION 1-5 Wochen Initialplanung Anforderungs- analyse Systemdesign Implementierung Test Planung aktualisieren Release Nutzung 1 2 3
  • 11.
    SCRUM gibt eineAntwort auf viele typische Probleme der Softwareentwicklung. Zu lange Releasephasen Zu wenig Stabilität Änderungen nur schwer umsetzbar Unzureichende Qualität Demoralisierung durch Projektstopp Kurze Releasephasen Stabilität durch TDD und Refactoring Änderungen dankbar annehmen Hohe Qualität der Software Spaß und Freude bei der Arbeit 1 2 3
  • 12.
    SCRUM ist einagiler Prozess, der durch verschiedene agile Methoden gestützt werden sollte. Pair- Programming Test Driven Development (TDD) Ständiges Refactoring Code- und Architecture-Reviews Nightly Builds / Continous Integration Implementierungsaufgaben werden in Paaren gelöst
  • 13.
    Eine Person schreibtCode, die Andere prüft, modelliert, hinterfragt
  • 14.
    Vorteile: bessere Qualität,weniger Ablenkung, Wissenstransfer, Spaß
  • 15.
    Nachteile: mehr direkterZeitaufwand, ggf. negative Teamwirkung, Nicht nur Unit- und Integrationstests, auch Anforderungen, Usability etc.
  • 16.
  • 17.
    Tests als elementarerBestandteil der Entwicklung
  • 18.
    Absicherung von Codegegen Änderung, Klare Zielrichtung Code-Smells regelmäßig aufspüren und beseitigen
  • 19.
    Alles wird inbesserem Zustand verlassen als es vorgefunden wurde
  • 20.
    Dringende Grundbedingung: 100%TDD, Collective Code Ownership
  • 21.
    Vermeidung und Reduktionvon Technical Dept als oberstes Ziel Regelmäßige geplante und ständige spontane Code Reviews
  • 22.
  • 23.
    Alle Ansätze werdenuntereinander gechallenged
  • 24.
    Wissenstransfer und Förderungdes kollektiven Geistes Jedes Teammitglied integriert seinen neuen Code täglich
  • 25.
    Mit jeder Integrationwerden an einem Testserver sämtliche Unit-Tests sowie ein automatischer Build durchgeführt
  • 26.
    Code Fragmente laufenso nicht auseinander, jederzeit Release möglich 1 2 3
  • 27.
    SCRUM bringt einsehr übersichtliches Set an Grundsätzen mit. Product Owner Scrum Master TEAM Sprint Planning Sprint Sprint Review Retrospektive Daily Scrum Product Backlog Sprint Backlog Sprint Burndown Chart Product Increment Impediment List Estimation Meeting Product Burndown Definition of Done Rollen Zeremonien Artefakte 1 2 3
  • 28.
    SCRUM beschreibt 3relevante Rollen im Entwicklungsprozess. Product Owner Team Scrum Master 1 2 3 definiert Produkt-Features
  • 29.
  • 30.
    ist verantwortlich fürden Gewinn des Projekts (ROI)
  • 31.
  • 32.
    passt Features undPrioritäten nach Bedarf für jede Iteration an
  • 33.
    akzeptiert oder weistArbeitsergebnisse zurück Typischerweise fünf bis zehn Leute
  • 34.
  • 35.
  • 36.
  • 37.
    Mitgliedschaft kann sichnur zwischen Sprints verändern Verantwortlich für die Einhaltung von Scrum-Werten und -Techniken
  • 38.
  • 39.
    Stellt sicher, dassdas Team vollständig funktional und produktiv ist
  • 40.
    Unterstützt die engeZusammenarbeit zwischen allen Rollen und Funktionen
  • 41.
    Schützt das Teamvor äußeren Störungen
  • 42.
    Vermittelt der Organisationdie Welt der agilen Werte
  • 43.
    SCRUM lebt vorallem durch die Interaktionen zwischen den einzelnen Akteuren. Das Team Nebenrollen Scrum Master Product Owner Anwender Vertrieb Kunde Marketing Geschäftsleitung Rechtsabteilung Gesetz Entwickler Tester DBA's / SysAdmins Designer Beschützt, befähigt und hilft unterstützt Klärt Anforderungs- details Erteilt Aufträge als User Stories Sammelt Anforderungen und Wünsche klärt Anforderungsdetails 1 2 3
  • 44.
    Vor dem erstenSprint – und immer dann, wenn neue Produkte entwickelt werden – sollte eine Vorplanungs- phase stattfinden (Vom Konzept zum Produktbacklog) Das Produkt ist immer mehr als die Software – und sollte aus diesem Grund auch eine andere Behandlung erfahren. Alles was sich nicht oder nur sehr schwer ändern lässt (z.B. Basisarchitektur), sollte ausserhalb von Scrum in einer Vorphase aufgesetzt werden. Agilität ist nicht der komplette Verzicht auf Vorabplanung. Vision Product Planning Product Envisioning Major Features Product Design Product Architecture Risks / Benifits Budgetierung 1 2 3
  • 45.
    Iterationen bestehen ausden gleichen, immer wieder kehrenden Stufen, die den Rhythmus der Entwicklung vorgeben. Planning Estimation Sprint Retrospektive Review Daily Scrum 1 2 3
  • 46.
    Iterationen bestehen ausden gleichen, immer wieder kehrenden Stufen, die den Rhythmus der Entwicklung vorgeben. Planning Estimation Sprint Retrospektive Review Daily Scrum Aktuelle, priorisierte User Stories werden kurz vom Product Owner vorgestellt
  • 47.
    Team schätzt denAufwand (die Größe) der User Stories in Story Points

Hinweis der Redaktion

  • #15 PO: - gemeinsame Produktvision