Einheit 03: Scrum

In Wirklichkeit...

  • Sind Anforderungen schwer abzuschĂ€tzen

  • Ändern sich Anforderungen fortwĂ€hrend

  • Ändern sich Anforderungen (zu) spĂ€t im Projekt

  • Ist die Kommunikation mit dem Auftraggeber bzw. Kunden schwer

Daher ist ein Vorgehensmodell fĂŒr die Software-Entwicklung erforderlich, dass es uns erlaubt mit sich stĂ€ndig Ă€ndernden Parametern in Projekten umzugehen...

Woher stammt Scrum?

First Things First: Scrum ist kein Acronym

A scrummage, commonly known simply as a scrum, is a method of restarting play in rugby football that involves players packing closely together with their heads down and attempting to gain possession of the ball [Scrum, abbreviated form of scrummage, Oxford English Dictionary Online]

The New New Product Development Game

The New New Product Development Game, Hirotaka Takeuchi and Ikujiro Nonaka, Harvard Business Review, 1986 [1]

Bei der Entwicklung der Entwicklung der Canon AE-1 (Canon, 1976) wurde die Idee des Scrum das erste Mal eingefĂŒhrt (https://hbsp.harvard.edu/product/86116-PDF-ENG).

Erfolgsfaktoren fĂŒr die Umsetzung waren u.a.

  • Cross-Functional Teams

  • Selbstorganisierende Teams

  • Autonome Teams

Agiles Manifest

Das Agile Manifest wurde im Februar 2001 von einer Gruppe von 17 Softwareentwicklern in Utah verfasst, um leichtgewichtige Entwicklungsmethoden fĂŒr agiles Projektmanagement festzulegen.

Individuen und Interaktionen mehr als Prozesse und Werkzeuge Funktionierende Software mehr als umfassende Dokumentation Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung Reagieren auf VerÀnderung mehr als das Befolgen eines Plans

Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schĂ€tzen wir die Werte auf der linken Seite höher ein.

http://agilemanifesto.org/

12 Prinzipien

  1. Unsere höchste PrioritĂ€t ist es, den Kunden durch frĂŒhe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.

  2. Heise AnforderungsÀnderungen selbst spÀt in der Entwicklung willkommen. Agile Prozesse nutzen VerÀnderungen zum Wettbewerbsvorteil des Kunden.

  3. Liefere funktionierende Software regelmĂ€ĂŸig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kĂŒrzere Zeitspanne.

  4. Fachexperten und Entwickler mĂŒssen wĂ€hrend des Projektes tĂ€glich zusammenarbeiten.

  5. Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die UnterstĂŒtzung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.

  6. Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu ĂŒbermitteln, ist im GesprĂ€ch von Angesicht zu Angesicht.

  7. Funktionierende Software ist das wichtigste Fortschrittsmaß.

  8. Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmĂ€ĂŸiges Tempo auf unbegrenzte Zeit halten können.

  9. StÀndiges Augenmerk auf technische Exzellenz und gutes Design fördert AgilitÀt.

  10. Einfachheit - die Kunst, die Menge nicht getaner Arbeit zu maximieren - ist essenziell.

  11. Die besten Architekturen, Anforderungen und EntwĂŒrfe entstehen durch selbstorganisierte Teams.

  12. In regelmĂ€ĂŸigen AbstĂ€nden reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.

Der Der Scrum Prozess im Detail

Scrum Rollen

Product Owner

  • Verantwortlich fĂŒr »Business Value«, setzt die PrioritĂ€ten fĂŒr höchstmöglichen ROI

  • Traditionell: Projektmanager, der die Arbeit kontrolliert

Team

  • Verantwortlich fĂŒr das kontinuierliches Ausliefern von Arbeitsergebnissen/Teilergebnissen

  • Traditionell: Bekommt Arbeitsanweisungen vom Projektmanager

ScrumMaster

  • Achtet auf das Einhalten des Scrum-Prozesses und hĂ€lt Störungen vom Team fern

  • Traditionell: kein Äquivalent

Hinweis: Ein agiler Coach ersetzt keinen ScrumMaster

Einfache Berechnung des Release-Termins

Neuberechnung bei Änderung des Umfangs

  • ZusĂ€tzliche Anforderungen haben immer einen neuen Release-Termin zur Folge

  • Soll der ursprĂŒngliche Termin gehalten werden mĂŒssen, sind die am niedrigsten priorisierten Anforderungen zu streichen

  • Die Neupriorisierung bzw. Neuordnung von Anforderungen hat keine Auswirkungen auf den Release-Plan

Sprint-Planung - Planning 1

  • Sprint-Planung legt Arbeitsvorrat fĂŒr kommende Iteration (Sprint) fest

  • Reihenfolge wird durch Product Owner vorgegeben (Priorisierung)

  • Die Menge der Aufgaben wird durch das Team festgelegt (Pull Prinzip)

    • Erfahrungswerte

    • Empirische Daten

    • Kann auch mal daneben gehen

  • Eventuell wir Zeit fĂŒr Refactoring, Schulungen etc. eingeplant

  • Ergebnis der Sprintplanung ist das Sprint Backlog + Sprint Ziel

  • Commitment durch das Team? Seit 2011 kein Bestandteil des Scrum Guide mehr. [https://www.scrum.org/resources/commitment-vs-forecast ]

Sprint-Planung - Planning 2

  • Es ist Aufgabe des Teams, wie die FunktionalitĂ€t geliefert werden kann

  • Planning 2 ist eine Arbeitssitzung in der das Design, die Spezifikation und die Architektur erarbeitet werden

  • VerstĂ€ndnis wie Ziel gemeinsam bewĂ€ltigt werden kann

  • Ergebnis des Planning 2 sind Aufgaben (engl. tasks)

    • Praxistipp: Jeder Task sollte einen maximalen Umfang von maximal 8 Stunden (≈ 1 Personentag) haben

SchÀtzen

  • SchĂ€tzen ist eine der schwersten Aufgaben im Prozess

  • Unterscheidung

    • SchĂ€tzen von KomplexitĂ€t

    • SchĂ€tzen von Aufwand/Dauer

  • Keine Korrelation zwischen AufgabengrĂ¶ĂŸe und wie lange ein Entwickler dafĂŒr benötigt

    • ProduktivitĂ€tsunterschied zwischen Entwicklern bis Faktor 25

  • SchĂ€tzen auf Basis von Story Punkten (engl. Story Points)

    • Planning Poker

    • Magic Estimation

    • ...

User Stories

In der agilen Welt werden oftmals »User Stories« (oder kurz Stories) verwendet

  • Basierend auf Mike Cohen (User Stories Applied, 2004)

User Stories sind in der folgenden Form aufgebaut:

As a <user role> I need <functionality> so that I get <business value>

bzw. in Deutsch:

Als <Anwender mit der Rolle> benötige ich eine <FunktionalitÀt> damit ich <den Nutzen> bekommen

Jede User Story steht dabei fĂŒr ein Feature oder eine FunktionalitĂ€t im System, das aus der Sicht des Anwenders mit der entsprechenden Rolle beschrieben ist.

User Stories dienen der Kommunikation zwischen Product Owner und Team bzw. innerhalb des Teams. Sie werden in verschiedenen Meetings im Scrum Prozess als Grundlage zur Kommunikation verwendet. ErgÀnzend kann man Akzeptanzkriterien angeben, anhand derer der Product Owner dies Story abnehmen kann.

Personas

  • Warum Personas?

    • Stellvertretend fĂŒr eine spezielle Benutzerrolle (engl. user role) können Personas in User Stories verwendet werden.

    • Personas sind sog. Archetypen eines typischen Anwenders.

    • Meist ist es eine fiktive Person, die eine Gruppe von Anwender reprĂ€sentiert, die man sich gut merken kann und Eigenheiten und Merkmale aufweist, die diese Gruppe reprĂ€sentieren.

    • Personas helfen den Anwender besser zu verstehen und eigenen sich daher besonders eine User Story aus deren Sicht zu beschreiben.

WeiterfĂŒhrende Literatur

Scrum – Produkte zuverlĂ€ssig und schnell entwickeln Boris Gloger, Hanser Verlag, 5. Auflage, 2016, ISBN 978-3-446-44723-3

Last updated