User Tools

Site Tools


user:jan001:ba:scrum

Scrum

“Ein Rahmenwerk, innerhalb dessen Menschen komplexe adaptive Aufgabenstellungen angehen können, und durch das sie in die Lage versetzt werden, produktiv und kreativ Produkte mit dem höchstmöglichen Wert auszuliefern.” (Scrum.Org and ScrumInc, 2015) Das ganze Rahmenwerk Scrum ist im sogenannten Scrum Guide definiert.

Grundlagen

Scrum ist ein Rahmenwerk (engl. Framework), welches auf Empirie beruht. Alle Entscheidungen die getroffen werden beruhen auf den Erfahrungen, welche vorher gemacht wurden. Dies soll dabei helfen Risiken in Projekten besser zu kontrollieren. Das Rahmenwerk wird auf drei SĂ€ulen aufgebaut:

  • Transparenz
  • ÜberprĂŒfung
  • Anpassung

Transparenz bedeutet, dass stets fĂŒr jeden Teilnehmenden klar ist, wann die aktuelle Aufgabe abgeschlossen (Definition of Done) ist und wie der aktuelle Status der Aufgabe ist. ÜberprĂŒfung heißt im Scrum-Kontext, dass die momentane Aufgabe immer mit Blick auf die Definition of Done betrachtet werden muss. Abweichung, welche nicht in der Definition of Done enthalten sind, sind zu vermeiden. Die Anpassung wird meistens nach einer ÜberprĂŒfung durchgefĂŒhrt. Das ist vorallem dann nötig, wenn des Produkt nicht mehr den Erwartungen entspricht. Sowohl ÜberprĂŒfung, als auch Anpassungen werden im Normalfall wĂ€hrend des Sprint Plannings, Daily Scrums, Sprint Review und Sprint Retrospektive durchgefĂŒhrt (siehe Kaptiel SCRUM GRUNDLAGEN EREIGNISSE). (Scrum.Org and ScrumInc, 2015)

Rollen

Der Kern des Scrumteams besteht aus drei Personengruppen:

  • Product Owner
  • Entwicklungsteam
  • Scrum Master

Alle Gruppen arbeiten eigenstĂ€ndig voneinander. Beispielsweise darf dem Entwicklungsteam nicht vorgeschrieben werden, wie sie etwas entwickeln mĂŒssen und welche Tools sie dafĂŒr ein zu setzen haben. In diesem Fall ist es lediglich von PrioritĂ€t, dass das Ziel des Projektes erreicht wird.

Im Scrum Guide wird der Product Owner wie folgt definiert: “Der Product Owner ist fĂŒr die Wertmaximierung des Produkts sowie der Arbeit des Entwicklungsteams verantwortlich.” Es handelt sich dabei lediglich um eine Person und nicht eine Gruppe von Personen. Der Product Owner ist die einzige Person, welche fĂŒr den Product Backlog verantwortlich ist. Der Product Backlog ist eine Liste die alle Dinge umfasst, welche im finalen Produkt enthalten sein sollen. Er ist niemals vollstĂ€ndig und muss stets angepasst und erweitert werden. Der Product Owner ist dazu verpflichtet den Product Backlog so genau und klar zu formulieren, dass jeder diesen versteht. Auch ist es wichtig, dass diese Liste nach PrioritĂ€t sortiert wird vom Product Owner, sodass das Entwicklungsteam effizient und optimal arbeiten kann.

Das Entwicklungsteam sind die einzigen, welche sogenannte Inkremente entwickeln. Ein Inkrement ist das Resultat aus vorherigen Inkrementen und den in einem Sprint (siehe Kaptiel SCRUM GRUNDLAGEN EREIGNISSE) bearbeiteten EintrĂ€gen aus dem Product Backlog. Da das Entwicklungsteam selbstorganisiert arbeitet, muss das Team als Ganzes ĂŒber alle nötigen FĂ€higkeiten verfĂŒgen um ein Inkrement entwickeln zu können. Wichtig ist, dass, wenn es zu einem Versagen kommt und ein Ziel nicht erreicht wurde, das ganze Team dafĂŒr verantwortlich ist und nicht eine einzige Person.

Die letzte der drei Personengruppen ist der Scrum Master. Dieser ist dafĂŒr zustĂ€ndig, dass jeder im Scrumteam Scrum versteht und Scrum auch korrekt durchgefĂŒhrt wird. Sein Ziel ist es die Zusammenarbeit zu optimieren und damit den generierten Wert zu maximieren. So hilft der Scrum Master dem Product Owner den Product Backlog zu erabeiten und ihn so zu formulieren, dass er von jedem verstanden wird. Dem Entwicklungsteam soll der Scrum Master so helfen, dass diese besser selbstorganisiert arbeiten können und so hochwertige Produkte entwickeln. Dazu zĂ€hlt beispielsweise auch das Beseitigen von Hindernissen und die ErklĂ€rung und Organisation von Scrum. (Scrum.Org and ScrumInc, 2015)

Ereignisse

Das wichtigste Ereignisse im Ablauf von Scrum ist der Sprint. Der Sprint ist zeitlich begrenzt auf einem Monat und minimal eine Woche. WĂ€hrend des Sprintes wird ein Produkt-Inkrement entwickelt, welches die gesetzte Definition of Done erfĂŒllt und potenziell auslieferbar ist. Zwar ist es möglich einen Sprint abzubrechen, aber auf Grund der KĂŒrze des Sprints ist dies nur dann zu tun, wenn das Ziel des Sprintes obsolet geworden ist. Dies hat lediglich der Product Owner zu entscheiden.

Zu Anfang eines Sprintes kommt das Sprint Planning. Die Dauer des Plannings ist an die Dauer eines Sprintes anzupassen. Empfohlen wird fĂŒr einen ein monatigen Sprint ein acht Stunden Planning. In einem Sprint Planning wird geplant, welche Teile des Product Backlogs im Sprint-Inkrement enthalten sein sollen. Dabei kann das Entwicklungsteam beurteilen, welche FunktionalitĂ€t zeitlich gesehen in der Dauer des Sprintes implementiert werden kann. Hat das Entwicklungsteam entschieden, welche EintrĂ€ge aus dem Product Backlog im Sprint bearbeitet werden sollen, verfasst das komplette Scrum Team ein Sprint-Ziel. Das Ziel soll erklĂ€ren warum das Inkrement entwickelt wird und was erreicht werden muss. Die vom Entwicklungsteam ausgewĂ€hlten EintrĂ€ge aus dem Product Backlog fĂŒr einen Sprint werden als Sprint Backlog bezeichnet. Folgend berĂ€t das Entwicklungsteam wie sie die EintrĂ€ge aus dem Sprint Backlog entwickeln sollen beziehungsweise können. Bei VerstĂ€ndnisfragen kann der Product Owner helfen. Zuletzt erklĂ€rt das Entwicklungsteam, sowohl Scrum Master als auch Product Owner, wie es diesen Sprint verfahren will.

Folgend hĂ€lt das Entwicklerteam tĂ€glich das sogenannte Daily Scrum ab. Im Daily Scrum erklĂ€rt jede einzelne Person was sie am gestrigen Tage erreicht hat, was sie heute erreichen will und welche Hindernisse sie sieht. Alles mit Hinblick auf das Sprint-Ziel. Der Scrum Master ist beim Daily Scrum nur dafĂŒr verantwortlich, dass es durchgefĂŒhrt wird und keine anderen Personen, außer dem Entwicklerteam, daran teilnehmen. Das Daily Scrum ist auf 15 Minuten Dauer beschrĂ€nkt.

Am Ende eines Sprintes wird das Sprint Review und die Sprint Retrospektive durchgefĂŒhrt. WĂ€hrend des Sprint Reviews wird vom Entwicklerteam das Sprint-Inkrement vorgefĂŒhrt. Es handelt sich dabei um ein informelles Meeting, welches fĂŒr einen einmonatigen Sprint eine Dauer von vier Stunden nicht ĂŒberschreiten sollte. Es ist nicht dazu gedacht einen Statusreport abzugeben, da es vielmehr dem Entwicklerteam Feedback geben soll. Bei dem Sprint Review ist es auch möglich, dass der Product Owner Stakeholder einlĂ€dt. Diese können meist noch genaueres Feedback stellen. Wichtig ist, dass das Entwicklungsteam Entwicklungsprobleme nach außen hin kommuniziert. Dies gilt auch wenn diese wĂ€hrend des Sprintes schon gelöst wurden. Weiterhin ist es wĂ€hrend des Sprint Reviews notwendig zu ĂŒberprĂŒfen, ob sich die Marktsituation verĂ€ndert hat und sich somit neue Ziele ergeben, welche im Product Backlog festgehalten werden mĂŒssen. So wird das Product Backlog von Sprint zu Sprint immer weiter ĂŒberarbeitet und somit optimiert. Nach dem Sprint Review wird die Sprint Retrospektive durchgefĂŒhrt, wobei eine Dauer von drei Stunden bei einem ein monatigen Sprint nicht ĂŒberschritten werden sollte. Diese Zeit dient dem Scrum Team als Phase der Selbstreflexion. Im Besonderen mĂŒssen die Prozesse wĂ€hrend des letztens Sprints und die Kommunikation zwischen den teilnehmenden Personen begutachtet werden. Das Scrum Team arbeitet wĂ€hrend der Sprint Retrospektive “einen Plan fĂŒr die Umsetzung von Verbesserungen der Arbeitsweise des Scrum Teams” aus. Das soll wiederum die Arbeitsweise des Teams effektiver machen, was dazu fĂŒhrt das der Wert des Produktes maximiert wird. (Scrum.Org and ScrumInc, 2015)

Implementierung im Projekt

Bei der Entwicklung des Dokumentationstools wurde innerhalb des Projektes fĂŒr einen Teil der Mitarbeiter zum ersten Mal Scrum zur Arbeitsorganisation verwendet. Auf Grund dessen wurde vor dem Start des Projektes eine PrĂ€sentation vorgstellt, welche allen Teilnehmenden die GrundzĂŒge von Scrum nahe bringen sollte.

Rollen

Rolf Becker ist im Projekt der Product Owner. Da er zum ersten Mal Scrum verwendete und keine offzielle Zertifizierung als Product Owner von Scrum.org besitzt, wurde er beim Product Backlog durch das Entwicklungsteam unterstĂŒtzt. Dieses besteht aus Fabian Joeken und Jan Sonntag. Nach dem Scrum Guide ist die GrĂ¶ĂŸe von zwei Leuten bei einem Entwicklerteam eigentlich zu gering. Es wird eine GrĂ¶ĂŸe von mindestens drei Personen bis maximal neun Personen vorgeschlagen. Dies liegt vor allem daran, dass angenommen wird, dass eine so geringe Zahl an Entwicklern kein Inkrement in einem Sprint entwickeln kann. Die geringere Anzahl von Entwicklern wurde wĂ€hrend des Sprint Plannings beachtet. Scrum Master ist Jan Sonntag, da er bereits als solcher zertifiziert ist. Er fĂŒhrte vor Beginn des Projektes auch die PrĂ€sentation durch, in welcher die GrundzĂŒge von Scrum erklĂ€rt wurden.

Ereignisse und Umsetzung

Auch wenn die LĂ€nge von Sprints eigentlich nicht ĂŒber die Dauer eines Projekts hin verĂ€ndert werden sollte, wurde entschieden, dass der erste Sprint eine LĂ€nge von zwei Wochen haben sollte und die Folgenden eine Dauer von lediglich einer Woche. Dies lag vorallem daran, dass zunĂ€chst einmal viel Grundlagenentwicklung durch gefĂŒhrt werden musste. Dazu zĂ€hlt beispielsweise das Planen einer Architektur, aber auch das Ausprobieren von mehreren Technologien und AnsĂ€tzen. Da jedoch mit einem kleinem Entwicklungsteam, es nicht möglich ist diese grundlegende Entwicklung innerhalb einer Woche zu einem Inkrement zusammenzufĂŒgen wurde im ersten Sprint Planning die Dauer des Sprints angepasst.

ZunĂ€chst wurden die Sprint Plannings Montags durchgefĂŒhrt, dies wurde aber nach wenigen Sprints auf Freitags verschoben, auf Grund von Terminkollisionen. Diese Terminkollisionen haben die EffektivitĂ€t von Scrum und die des Teams vermindert, so war es effektiver die Scrum-Meetings zu verschieben. Da die Entwicklung des Dokumentationstools, besonders fĂŒr den Product Owner und auch die Stakeholder, nicht die einzigen Projekte waren, wurden das Sprint Planning, Sprint Review und die Sprint Retroperspektive folgend an einem Tag pro Sprint als ein grĂ¶ĂŸeres Scrum-Meeting abgehalten. Organisator war der Scrum Master.

Begonnen wurde mit dem Sprint Review. Bei diesem waren meistens noch weitere Stakeholder anwesend. Ein wichtiger Stakeholder ist und war Norbert Gröger, als SachverstĂ€ndiger der Landwirtschaftskammer NRW und Teilnehmer im Projekt GĂ€rtners GrĂŒner Daumen. Auch haben weitere Stakeholder teilgenommen, welche meistens fĂŒr das Projekt GĂ€rtners GrĂŒner Daumen weitere Applikationen, die eng mit dem Dokumentationstool zusammenarbeiten sollen, entwickeln. Nach dem Sprint Review hat das Scrum Team mit dem Sprint Planning des nĂ€chsten Sprintes begonnen. Dabei konnten besonders die davor gesammelten Informationen aus dem Sprint Review helfen. Nach dem Sprint Planning hat das Entwicklerteam unter sich eine SchĂ€tzung der gewĂ€hlten Backlog Items durchgefĂŒhrt. In Scrum gibt es keine genauen Vorgaben, wie die einzelnen Elemente des Product Backlogs aufgebaut sein mĂŒssen. In diesem Fall wurde entschieden, dass sogenannte User Stories verwendet werden. Preußig definiert User Storys wie folgt: “Eine User Story besteht typischerweise nur aus einem oder ein paar wenigen SĂ€tzen und beschreibt einen Anwendungsfall auf grober Ebene.” Zusammengefasst wurden die User Storys in sechs Epics. “Mit einem Epic (
) werden im agilen Projektmanagment mehrere, miteinander in Verbindung stehende AnwendungsfĂ€lle zusammengefasst.” (Preußig, 2015) Eine genaue Beschreibung und Analyse der Epics und User Storys ist in Kapitel ANALYSE SZENARIO zu finden. Die fĂŒr einen Sprint ausgewĂ€hlten User Storys wurden dann beim sogenannten Planning Poker geschĂ€tzt. Bei dem SchĂ€tzen soll jeder Entwickler unabhĂ€ngig Anderer einschĂ€tzen wie viel Aufwand eine User Story macht bis ihre Definition of Done erfĂŒllt ist. Es werden dabei Story Points vergeben. Diese haben keinen Umrechnungsfaktor in beispielsweise die reale Zeit, sondern mĂŒssen stets relativ zu den SchĂ€tzungen anderer User Storys betrachtet werden. Durch das SchĂ€tzen konnte im Entwicklerteam stets eine Diskussion ĂŒber die User Storys gefĂŒhrt werden. Dies half dabei die User Storys besser zu verstehen und eine besser Implementierungslösung zu finden. Nach dem Sprint Planning wurde dann mit dem Sprint begonnen. Da das Entwicklerteam lediglich aus zwei Entwicklern bestand, hat sich das Daily Scrum meistens auf direkte Textnachrichten beschrĂ€nkt. Teilweise wurden aber auch grĂ¶ĂŸere Entwicklungen in Meetings besprochen.

Vorteile und Nachteile fĂŒr das Projekt

Die Benutzung des Scrum Frameworks als agile Methode im Projekt hatte sowohl Vor- als auch Nachteile, wobei die Nachteile sich nicht auf die EffektivitĂ€t der Entwickler ausgewirkt haben. Die Vorteile im Projekt sind klar erkennbar. Der grĂ¶ĂŸte Vorteil war der enge Kontakt zu den Stakeholdern. So konnte jede Woche ein Feedback zum aktuellen Stand des Projektes eingeholt werden. Das machte es besonders einfach innerhalb einer Woche Anpassungen vorzunehmen. Ohne diesen steigen Austausch wĂ€re das Dokumentationstool in eine andere Richtung entwickelt worden. Dies hĂ€tte zur Folge gehabt, dass zum Ende des Projektes hin, tiefgreifende Änderungen hĂ€tten vorgenommen werden mĂŒssen. Zu diesem Zeitpunkt hĂ€tte das viel Zeit gekostet, die wohlmöglich nicht vorhĂ€nden gewesen wĂ€re. Weiterhin ermöglichte Scrum es auch, dass die Entwickler das Inkrement aus einer anderen Sichtweise betrachten konnten. Ein weiterer Vorteil war es, dass ĂŒber den Product Backlog stets fĂŒr alle Teilnehmenden einsehbar war, wie weit das Projekt fortgeschritten ist und welche User Storys momentan bearbeitet werden. Besonders den Entwicklern half es, akkurate Planungen fĂŒr jeweils die nĂ€chste Woche zu treffen. Als ein Nachteil ist anzusehen, dass Scrum nicht perfekt umgesetzt werden konnte. Dies lag zum einen an der Terminplanung und damit an manchen Terminkollisionen, zum anderen wurden die AblĂ€ufe in den Scrum Meetings besonders zum Ende des Projektes hin nicht mehr richtig befolgt. Dies scheint sich aber nicht sonderlich auf die EffektivitĂ€t ausgewirkt zu haben. Das lag vor allem daran, dass zum Ende hin weniger neue Funktionen implementiert wurden, sondern die meiste Zeit fĂŒr das Ausmerzen von Fehlern verwendet wurde. Trotzdem gab es noch einen regelmĂ€ĂŸigen Austausch mit den Stakeholdern, sodass trotzdem noch weitere Detailanpassungen gemacht werden konnten.

Scrum hat im Projekt einen wichtigen Nutzen gehabt, und trotz der nicht perfekten Umsetzung, seine Wirkung nicht verfehlt.

user/jan001/ba/scrum.txt · Last modified: 2021/08/24 17:35 by 127.0.0.1