Scrum agile Projektmanagementmethode

Scrum ist eine agile Methode im IT-Projektmanagement. Sie kommt vorwiegend bei der Entwicklung von Software zum Einsatz und ist daher unter Programmieren und Entwicklern bestens bekannt. Agil bedeutet hierbei, dass zu Beginn noch kein fertiger Detailplan besteht, zum Beispiel was den exakten Umfang und die Eigenschaften der zu entwickelnden Software angeht. Die Methode berücksichtigt, dass sich die Anforderungen an das Endproduckt im Laufe der Entwicklungszeit ändern können. Aus der Sicht eines Projektmanagers bedeutet das, „schiessen auf bewegte Ziele“.

Scrum das Gedränge

Der Begriff Scrum stammt aus dem Englischen und bedeutet so viel wie „Gedränge“. Es handelt sich dabei um einen agilen Prozess, der in der Software-Entwicklung angewandt wird. Weitere Beispiele für agile Prozesse wären „Extreme Programming“, auch mit XP abgekürzt, und „Feature-Driven-Development“.
Dass bei dem agilen Verfahren Scrum der englische Begriff für „Gedränge“ genutzt wurde, ist nicht verwunderlich. Die Namensgeber ließen sich von dem stattfindenden Trubel inspirieren, da sich sämtliche Mitglieder des Themas jeden Tag treffen, um Informationen auszutauschen oder über das weitere Vorgehen abzustimmen. Dieses Vorgehen erinnert an ein Rugby-Spiel, bei dem auch reges Treiben und eben Gedränge herrscht.

Scrum wie im Lehrbuch

In Scrum nehmen Entwickler verschiedene Rollen ein. So gibt es den Product Owner, den Scrum Master und ein Team. Der Product Owner übernimmt die Rolle des Auftraggebers. Er gibt zu erfüllende Anforderungen vor, die anschließend durch die weiteren Teammitglieder priorisiert werden. Der Scrum Master wiederum ist dafür verantwortlich, das gesamte Team zu koordinieren. Zusätzlich fällt das Prozessmanagement unter seine Aufgaben. Er hält seinem Team den Rücken frei und klärt frühzeitig Hindernisse ab, um diese aus dem Weg räumen zu können. Er unterstützt das Team mit allen sich ihm bietenden Möglichkeiten. Bei dem Team handelt es sich um eine heterogene Gruppe, die keine hierarchischen Strukturen aufweist. Jedes Teammitglied ist auf ein Fachgebiet spezialisiert, besitzt jedoch eine interdisziplinäre Ausbildung oder Erfahrung, sodass auch Aufgaben von anderen Mitgliedern übernommen werden können.

Wie wir mit Scrum arbeiten

Die kleinste Einheit in einer Scrum Entwicklung wird Sprint genannt. Wobei wir für jeden Sprint im Voraus die Dauer festlegen. Jeder Sprint beginnt mit einer Planungsbesprechung, die wir meist als Screensharing-Telko oder beim Kunden vor Ort veranstalten. Abgeschlossen wird ein Sprint durch ein Review-Meeting, in dem der Prozess reflektiert wird und Auswirkungen für den folgenden Sprint beschlossen werden. In der Regel entsteht in der Programmentwicklung pro Sprint ein Release.

Zum Projektstart werden die Anforderungen definiert. Um das Projekt möglichst schnell voran zu treiben, werden diese so genannten „Requirements“ durch die Teammitglieder priorisiert. Anschließend werden sie im „Product Backlog“, eine Liste mit der zu erledigenden Aufgaben, festgehalten. Das Product Backlog ist keine starre Liste, sondernd verändert sich im Laufe der Arbeiten. Es ist die Aufgabe des Product Owners, die Anforderungen im Blick zu behalten und die Arbeitspakete passend zu priorisieren. Nur so lässt sich schnell auf die Wünsche von Kunden eingehen und die Qualität sicherstellen.
Um das Arbeiten möglichst produktiv zu gestalten, wählen die Teammitglieder zusammen mit den Product Owner ein Arbeitspaket aus. Dieses wird in ein Teilprodukt umgesetzt, das alle benötigte Dokumentation enthält, bereits getestet wurde und potentiell auslieferbar wäre. Ziel eines solchen Sprints ist es, ein Increment innerhalb der vorgegebenen Zeit fertigzustellen. Um dieses Ziel zu sichern, ist es nicht erlaubt, während eines Sprints die Anforderungen zu ändern oder zusätzliche Funktionalitäten hinzuzufügen. Das bedeutet eine gewisse Aufweichung des Begriffes agil bzw. dessen Abgrenzung zu chaotisch.

Tasks und Sprints

Damit die einzelnen Arbeitspakete besser bearbeitet werden können, werden sie in kleinere Aufgaben, die so genannten „Tasks“, heruntergebrochen. Die Tasks wiederum werden im Sprint-Backlog festgehalten. Eine tägliche Aktualisierung sorgt dafür, dass sie stets den Wünschen des Kunden angepasst sind. Damit die Teammitglieder jederzeit wissen, welches Increment aktuell umgesetzt wird, werden bei der Methode Scrum von uns tägliche Meetings durchgeführt. Sie dauern maximal 15 Minuten. Sie dienen dem Austausch und ermöglichen, dass die Entwickler sich über Probleme und den aktuellen Entwicklungsstand austauschen können.
Ist ein Sprint vorüber, so bekommen Product Owner und Stakeholder die Ergebnisse präsentiert. Man spricht vom sogenannten „Sprint-Review“. In der Regel erfolgt es live am System. Klassische Präsentationen sind da eher nicht erwünscht. Stattdessen kann die Software direkt in Aktion erlebt werden. Das bei der Vorführung stattfindende Feedback wird vermerkt und für Verbesserungsvorschläge im „Planning Meeting“ für den nächsten Sprint genutzt. Der Kreis wird effektiv und wirkungsvoll geschlossen und die nächste Iteration ist bereit, um durchgeführt zu werden.

Warum wir Scrum nutzen

Scrum stellt für uns eine sehr wirkungsvolle agile Methode dar, um IT-Projekte zügig entwickeln zu können. Durch den engen Kontakt zum Kunden profitieren Entwickler von einem ständigen Feedback und können Software entwickeln, die die gewünschten Funktionalitäten entspricht.
Scrum ist bereits nach einer kurzen Einführung und ohne viel Aufwand einsetzbar. Die verschiedenen Rollen ermöglichen eine sehr flexible und dennoch hervorragend strukturierte Arbeitsweise.

Welche Vorteile hat das für unsere Kunden?

Agile Softwareentwicklung steht für hohe Flexibilität. Die Methode kommt gänzlich ohne Pflichtenheft aus und erspart so viel Arbeit. Der Kunde gibt dem Team zu Beginn lediglich geringe Basisfunktionen vor, die realisiert werden müssen. Das Projekt kann ohne nennenswerte Verzögerung gestartet werden. Im Zuge des Projektverlaufs besteht ein enger Kontakt zwischen allen Beteiligten.

Dank des iterativen Vorgehens ist es möglich, neu gewonnene Erfahrungen direkt in das Projekt mit einfließen zu lassen. Zusätzlich wird nur das entwickelt, was tatsächlich für die Software beziehungsweise das Produkt nötig ist.

Wie machen wir das in der Praxis?

Damit Entwicklungsprojekte erfolgreich sein können, bedarf es einer effizienten und einfachen Kommunikation.
Auch die Technologien werden möglichst simpel gehalten, damit Entwickler direkt einsteigen können. Das Produkt wird in regelmäßigem Kontakt mit dem Produktverantwortlichen entwickelt, wenn möglich vor Ort. Kommunikativ streben wir den „kurzen Dienstweg“ an, Details lassen sich so zügig klären und Missverständnisse verhindern.
Der Nachteil von schriftlichen Anfragen auf dem „normalen Dienstweg“ ist bekanntlich, dass sie häufig zu spät bearbeitet werden, im schlechtesten Fall, sogar ganz übersehen werden. Nur durch den dauerhaften Kontakt haben Entwickler die Möglichkeit, Feedback durch den Kunden direkt umzusetzen und sich nicht in einer Software zu verrennen, die so nicht gewünscht ist. Kunden wiederum können sich stets den aktuellen Systemzustand zeigen lassen und haben während der gesamten Entwicklung die Kontrolle über ihr Projekt.

Welche Vorteile sich dem Entwickler bieten

Durch das agile Vorgehen kann sichergestellt werden, dass wahre Qualitätsarbeit abgegeben wird. Jeder Entwickler möchte schlussendlich dem Kunden gute Software bieten, mit dessen Ergebnis er sich selbst identifizieren kann. Scrum bietet hierfür den idealen Rahmen. Entwickler schätzen selbst den Aufwand ab. Dank des zyklischen Vorgehens kann die benötigte Zeit realistisch eingeschätzt werden, statt zu Beginn eine Laufzeit angeben zu müssen, die häufig nicht eingehalten werden kann. Zusätzlich bietet Scrum Entwicklern die Möglichkeit, an den neuen Herausforderungen zu wachsen und sich stetig weiter zu entwickeln.

Moderierte Kommunikation

Bei agilen Methoden wie Scrum sprechen sich die Entwickler direkt mit dem Kunden bzw. Projektverantwortlichen ab – mitunter gar täglich. Die direkte moderierte Kommunikation ermöglicht dem Entwickler, ein besseres Verständnis zu entwickeln, was sich der Kunde von dem Produkt erwartet. Gleichzeitig bietet sich ihm die Möglichkeit, das Verständnis der Anwender zu erhöhen, sollten beispielsweise Funktionalitäten technisch oder wegen des Budgets nicht realisiert werden können. So entstehen in der Abfolge von Sprints oft kreative zukunftsweisende Innovationen.

Scrum ist eine agile Methode im Portfolio des IT- Projektmanagements, bei weitem nicht die einzige. In der Entwicklung von Software entfaltet Sie viele Ihrer Vorzüge auf angenehmste Weise.