SCRUM Methode für agile Softwareentwicklung

Die Methode SCRUM ist ähnlich wie ExtremeProgramming eine Methode der agilen Softwareentwicklung und wurde ursprünglich von Toyota entwickelt. Man nimmt bei dieser Methode grundsätzlich an, dass die Entwicklung von Software sehr komplex ist. So komplex, dass man alle Aufgaben und Phasen niemals so genau planen kann wie benötigt. Es ist also sinnvoller, nur einen groben Plan zu erstellen den man als Rahmen sehen sollte in den man sich bewegt und den man nutzen kann um auf Kurs zu bleiben.

Tatsächlich deckt sich dieser Ansatz sehr gut mit der Praxis! Wenn Kunden eine Software oder Website haben möchten dann verlangen Sie meistens eine genaue Zeit- und Aufwandschätzung und wollen dich dann damit auf einen Fixpreis festnageln. Jeder der schon einmal ein Projekt zu einem Pauschalpreis abgewickelt hat weiß, dass man sich sehr leicht mit dem Zeitaufwand verschätzen kann und im Endeffekt viel mehr Stunden daran programmiert als geplant!

Rollenverteilung bei SCRUM

Das es ein paar Rollen in SCRUM gibt die zu besetzen sind, ist diese Methode für kleine Teams von 2-3 Leuten sinnvoller als für einzelne Programmierer. Wenn du dich aber gut in verschiedene Rollen hineinversetzen kannst, kannst du natürlich SCRUM auch als einzelner Freelancer einsetzen.

  • Product Owner ist der Kunde der festlegt was er haben möchte. Er muss auch definieren welche Features am wichtigsten sind.
  • Team sind die Programmierer die die Anforderungen implementieren.
  • Scrum Master überwacht den ganzen Prozess und die Kommunikation zwischen Product Owner und Team. Der Scrum Master ist nicht als Chef zu sehen sondern eher als Schiedsrichter der darauf achtet, dass alle Regeln eingehalten werden und der Prozess transparent abläuft.

Zeitliche Abfolge und Zyklen von SCRUM

Wenn man nach der SCRUM Methode entwickelt gibt es ein paar definierte Zyklen die man einhalten sollte.

Sprint Planungstreffen

Der Product Owner klärt mit dem Team welche Features bis zum nächsten Termin zu erledigen sind und welches Ziel erreicht werden muss. Danach werden die Aufgaben an das Team verteilt. Diese Aufgaben sollten so aufgesplittet werden, dass jede innerhalb eines Tages zu implementieren ist. Diese Aufgaben werden auch Sprint Backlog genannt.

Sprint

Das ist der wichtigste Zyklus von SCRUM. Der Sprint bezeichnet eigentlich die Zeit in der die einzelnen Aufgaben vom Team abgearbeitet werden. So ein Sprint sollte nicht länger als 30 Tage dauern. Optimal wäre ein Zeitraum von ein bis drei Wochen. Am Ende des Sprints muss ein lauffähiges Programm stehen.

Daily Scrum

Dieses Meeting findet jeden Tag für ein paar Minuten statt. Hier sollte besprochen werden, welche Aufgaben seit gestern erledigt wurden, welche bis zum nächsten Treffen erledigt werden und ob es Probleme bei der Implementierung gegeben hat.

Review

Nachdem ein Sprint abgeschlossen ist wird vom Team und vom Product Owner ein Review durchgeführt. Es wird kontrolliert ob die definierten Ziele erreicht wurden.

Burndown-Charts (Scrum)

Ein Burdown-Chart ist eine Visualisierung von noch verbleibender Arbeit eines Projekts, welches unter dem Vorgehensmodell „Scrum“ läuft.

Dargestellt wird es durch einen einfachen Graphen, bei dem auf der X-Achse der Zeitverlauf in Tagen und auf der Y-Achse die Anzahl der nicht erledigten Tasks angegeben wird. Natürlich gibt es auch die Möglichkeit statt den nicht erledigten Tasks auch die Summe der geschätzten Aufwände der einzelnen Tasks hierbei zu nutzen.

Diese Charts werden dazu genutzt um besser abschätzen zu können, wann das Sprint-Ziel erreicht wird. Allerdings werden dabei nur die Abarbeitungen der einzelnen Aufgaben berücksichtig und die vorher definierten User Stories im Product Backlog sind nicht davon betroffen.

Für die Auswertung dieser User Stories kann stattdessen ein sogennantes „Story-Burndown-Chart“ genutzt werden.

Story-Burndown-Chart (=Sprint-Product-Burndown-Chart)

Ähnlich wie beim Burndown-chart für die einzelnen Tasks, wird hierbei auch wieder eine einfach Grafik verwendet welche wieder aus 2 Achsen besteht.

Die Summe der noch verbleibenden Story Points wird auf der Y-Achse angezeigt und diese sind bei jeder User Story unterschiedlich da diese nicht immer gleich groß sind. Auf der X-Achse wird die gesamte Dauer des Sprints angegeben. Der Verlauf der Kurve wird hierbei treppenförmig, wobei bei jeder erledigten User Story eine Absenkung auftritt. Sollte also Beispielsweise eine User Story mit 2 Punkten erledigt sein, wird die Kurve um 2 Punkte auf der Y-Achse nach Unten verschoben.

Ein paar ausgewählte Bücher zu Scrum