Agil mit Scrum
Dezember 3, 2018
Aus dem Unterricht des CAS Mobile Business & Ecosystems mit Ari Byland berichtet Tobias Frana.
Ari Byland hat uns eingeladen, zwei Tage die agile Arbeitsmethode Scrum kennenzulernen. Viele Studierende waren interessiert, was der Unterschied zu herkömmlichen Methoden ist – wie zum Beispiel der Wasserfall-Methode.
Nach der kurzen Vorstellungsrunde von Ari forderte er uns auf, eine Achse im Klassenraum zu bilden. Bei der ersten Übung sollten wir uns entlang der Erfahrung von Software-Entwicklungsprojekten aufstellen. Ari hat uns auch gebeten miteinander zu sprechen, um zu erfahren, ob wir an der richtigen Stelle stehen. Die Achse verlief nicht ganz gerade, eher wie ein Wollegarn, welches sich an einem Ende verknotet hat. Aber das Ergebnis war klar. Nur wenige in der Klasse haben (viel) Erfahrung in Software-Projekten.
Die zweite Übung war sehr ähnlich. Wir wurden gefragt, wie viel Erfahrung wir mit Scrum haben. Das Ergebnis war sehr ähnlich wie bei der ersten Frage. Bei der dritten Übung stellten wir uns entlang der Wohndistanz zur HWZ auf. Die Achse wurde durchmischt und die Teilnehmer haben wieder miteinander gesprochen, wie weit weg sie von der HWZ wohnen.
Aber weshalb haben wir diese Übungen überhaupt durchgeführt? Wenn man Scrum kennt, ist die Antwort einfach. Scrum unterscheidet sich grundsätzlich zu anderen Methoden, in der Art, wie man miteinander arbeitet. Es gibt viele Checkpoints, wie beispielsweise das Daily Scrum. Dabei berichtet man seinen Arbeitskollegen regelmässig über den Fortschritt. Falls jemand Probleme bei der Umsetzung hat, kann dies direkt im Team besprochen werden. Dazu folgt später mehr in diesem Blog.
Ari hat uns für die Einführung beauftragt, uns in Teams mit maximal 5 Teilnehmer aufzuteilen. Es sollten möglichst verschiedene Skills (technische und nicht-technische) vertreten sein. Der Auftrag war diesmal, ein Tier-Maskottchen für unser Team auszuwählen. Ausserdem sollten wir die Mehrwerte von Teamarbeit und drei Dinge aufschreiben, welche wir in der Klasse zum Thema Scrum lernen wollten.
Nun war es Zeit für eine nächste Übung. Wir erhielten eine kurze Einführung zur Case Study “Animal Website”. Danach hatten wir 30 Minuten Zeit, die Anforderungen für eine Website zu überprüfen. Nach der Gruppenarbeit hatten alle Teams Zeit, ihre Ergebnisse zu präsentieren. Ari stellte seine analoge Uhr auf dem Dozententisch auf und los ging es mit der Gruppenarbeit.
Die Teams besprachen die Anforderungen, begannen teilweise auch schon zu priorisieren. Nach etwa 15 Minuten erwähnte Ari, dass die Erwartung ist, dass man am Ende eine funktionierende Website zum gewählten Maskottchen präsentieren soll. Dies verursachte etwas Hektik im Klassenraum und die bis dahin strukturierte Arbeit wurde auf den Kopf gestellt. Ein Team hat einen Prototypen der Website in Powerpoint aufgebaut. Andere Teams haben sich bekannte Content Management Systeme wie WIX oder WordPress zu Hilfe genommen. Zum Schluss dieser Aufgabe haben die Teams die Ergebnisse präsentiert und im Nachgang ihre Erfahrungen ausgetauscht. Konkret wurde diskutiert, wie man vorgegangen ist, was gut lief und was eher nicht.
Nach dieser Gruppenübung legten wir mit dem Theorieblock zu agilen Arbeitsmethoden und konkret hiervon mit dem Scrum-Framework los. Die weiteren Gruppenarbeiten wurden dabei immer wieder zwischen die Theorieblöcke geschoben, was für die Aufnahme der vielen Theorie gut war.
Mit dem agilen Manifest werden die Werte der agilen Softwareentwicklung festgehalten.
“Wir erschliessen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen. Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:
Das heisst, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.”
Die folgenden Prinzipien sind entsprechende Leitsätze für die agile Arbeit:
Um zu verstehen, weshalb gerade Scrum sich gut für Software-Entwicklungsprojekt eignet, kann das Stacey-Diagramm von Ralph Stacey beigezogen werden.
Das Stacey-Diagramm beinhaltet die zwei Achsen Anforderungen und Technologie. Software-Entwicklungsprojekte haben meist die Situation, dass die Technologie viele Herausforderungen bietet und die Anforderungen an die neue Lösung sehr gross sind. In diesem Fall bewegen wir uns im Bereich eines komplexen Umfelds. Das Unbekannte überwiegt in diesem Fall das Bekannte.
Folgende Unterscheidungen werden im Stacey-Diagramm abgebildet:
Scrum aber rein auf Software-Entwicklungsprojekte zu reduzieren wäre falsch. Es gibt durchaus weitere Anwendungsbereiche, in welchem es angewendet werden kann:
Der Begriff Scrum stammt aus dem Mannschaftssport Rugby und formuliert das Gedränge der Mannschaft, welches zu Beginn einer Spielsituation durchgeführt wird.
Wiederholen…
Die folgenden fünf Punkte bilden die Scrum Werte:
Bei den traditionellen Entwicklungsmethoden wird ein strikter Plan verfolgt. Dabei erfolgt meist eine Analyse der Situation, es werden Konzepte geschrieben und neue Services designed, in die Entwicklung übergeben, getestet und schlussendlich ausgeliefert. Ein Feedback, ob die Entwicklung sinnvoll und gut war, stellt sich erst mit dem fertigen Produkt heraus.
Scrum verfolgt mit seinem iterativen Ansatz einen stetigen Prozess, mit denselben Disziplinen. Die Reihenfolge der einzelnen Aufgaben ist jedoch innerhalb einer Iteration frei. Zum Ende einer Iteration wird immer ein Produktinkrement bereitgestellt. Das Ergebnis ist, dass fortlaufend die Entwicklung des Produkts sichtbar ist und von Iteration zu Iteration nachgebessert werden kann.
Wie in der folgenden Grafik sichtbar ist, bietet Scrum insbesondere in den folgenden vier Punkten wesentliche Vorteile:
Rollen
Artefakte
Events
Die folgende Grafik zeigt den Scrum-Prozess-Flow:
Product Backlog:
Product Backlog Item:
Das Scrum Team bespricht die folgenden Punkte:
Eines der weiteren wichtigen Elemente in Scrum bildet die Timebox. Die folgende Tabelle zeigt auf, wie viel Zeit man maximal für den jeweiligen Scrum Event aufwenden soll. Die Timebox sollte dabei durch eine Person (meist den Scrum Master) kontrolliert werden.
Das Monitoren über den Sprint Fortschritt ist grundsätzlich für das Entwicklungsteam gedacht. Es soll das Team als selbstorganisierte Einheit unterstützen. Das Monitoring ist eine Indikation für den Sprint-Fortschritt und falls der Umfang mit dem Product Owner besprochen werden sollte.
Das Sprint Burndown Chart dient dem Entwicklungsteam, graphisch den Fortschritt im Sprint zu sehen. Das Burndown Chart funktioniert so, dass in der X-Achse die Zeit und in der Y-Achse der Umfang des Sprints dargestellt wird. Der Umfang des Sprints kann je nach dem unterschiedlich sein. Man kann beispielsweise die Anzahl Sprint Backlog Items als Messeinheit verwenden. Es kann aber auch die Schätzgrösse, wie die Storypoints angewendet werden.
Das Burndown-Chart verläuft horizontal entlang der Tage des Sprints. Sobald ein Sprint Backlog Item abgeschlossen ist, reduziert sich das Sprint Burndown Chart um die Messgrösse. Auf folgendem Bild ist ein Beispiel eines Burndown Chart ersichtlich:
Die Velocity dient dazu, ein Mass für die pro Sprint gelieferten Product Backlog Items zu erhalten. Sie wird primär vom Entwicklungsteam verwendet. Die Velocity hilft zu erfahren, wie viel Arbeit man in den Sprint nehmen kann. Weiter kann die Velocity vom Product Owner verwendet werden, um eine Prognose auf Product Backlog-Ebene zu erstellen.
Das Scrum Framework setzt sehr stark auf selbst organisierte Einheiten. Es gibt dabei keine Stelle, auch nicht der Scrum Master, welche dem Team Vorgaben erteilt. Idealerweise definiert jedes Scrum Team für sich selbst, wie es das Ziel erreichen kann. Hier einige Beispiele zum Thema Selbstorganisation. Ein Entwicklungsteam:
Schätzungen sind in Scrum ein weiteres, wichtiges Element. Die Product Backlog Items werden durch das Entwicklungsteam geschätzt. Das führt dazu, dass Umfang der Story besser eingestuft werden kann, als wenn dies durch eine Einzelperson erfolgt.
Eine dieser Schätzeinheiten sind die Story Points. Sie basieren auf Grösse, Aufwand sowie Komplexität und nicht auf Dauer. Sie stehen numerisch relativ zueinander. Jedes Team schätzt unterschiedlich, da andere Personen und andere Referenzeinheiten verwendet werden können. Eine beliebte Schätzeinheit ist eine Anlehnung an die Fibonacci-Folge. Sie addiert jeweils die aktuelle und letzte Einheit zusammen (0, 0.5, 1, 2, 3, 5, 8, 13, …). Bei Scrum wird nach der 13 häufig die Folge angepasst und auf maximal 100 reduziert. Dabei werden die Zahlen 20, 40 und 100 verwendet. Zudem gibt es noch die Fragezeichen und Kaffee-Einheit (Letzteres, um eine Pause beim Planning Poker einzufordern).
Nach dem eigentlichen Theorieblock zu Scrum hatte die Klasse die Möglichkeit, weitere Fragen zu stellen. Eine davon war, wie man denn die Planung für Gross-Projekte, Applikationen mit vielen Teams oder Programmen vornehmen kann. Ari hat uns hierzu das Scaled Agile Framework “SAFe” kurz vorgestellt.
Weiterführende Informationen zu diesem Framework sind auf folgender Seite aufrufbar:
https://www.scaledagileframework.com/#
Unser Newsletter liefert dir brandaktuelle News, Insights aus unseren Studiengängen, inspirierende Tech- & Business-Events und spannende Job- und Projektausschreibungen, die die digitale Welt bewegen.