Scrum-Master.de

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern

Grundidee: Entwickeln in Inkrementen

Scrum basiert, kulinarisch gesprochen, auf der Erkenntnis, daß es wesentlich einfacher ist, einen kleinen Bissen zu verdauen als einen großen. Deshalb schneiden wir ja auch ein Steak in mundgerechte Happen, bevor wir es uns einverleiben. Übertragen auf die Software-Entwicklung, bedeutet das: Es macht Sinn, ein großes Projekt in mehreren Inkrementen zu entwickeln. Dabei fangen wir am besten mit den wichtigen Teilen an und erledigen die weniger wichtigen später.

Worin sich Scrum von diversen anderen Vorgehensmodellen unterscheidet, ist die Tatsache, daß nicht nur Meilensteine in der Entwicklung gesetzt werden, sondern daß die Qualität eines Meilensteins (Increment) jeweils so definiert ist, daß vom Auftraggeber (Product Owner) immer erwartet werden darf, daß das in der abgeschlossenen Iteration (Sprint) fertiggestellte Stück Funktionalität in sich abgeschlossen und produktiv einsetzbar ist. Dazu gehören auch Dokumentation in notwendigem Umfang und Tests. Der bekannte Begriff in Scrum hierfür lautet Increment of Potentially Shippable Functionality. Manchmal wird, wieder in Anlehnung an die (japanische) Küche, auch der Begriff "Sashimi" verwendet. Sashimi ist eben nicht einfach roher Fisch, sondern ein Teller voller kleiner, appetitlicher Häppchen, kunstvoll geschnitten und angerichtet mit den obligatorischen Zutaten Wasabi (scharfer, grüner Meerrettich), Sojasauce und Ingwer. Wenn Software "Sashimi" ist, wie von Scrum gefordert, dann ist sie fertig (engl. "done"). Das bedeutet mehr als einfach nur ausprogrammiert und im Labor lauffähig.

Ein weiterer Vorteil des inkrementellen Entwickelns liegt darin, daß man anhand eines fertigen Stücks Software, sei es auch noch so klein, bereits früh Tendenzen erkennen kann für

  • die Machbarkeit eines umfangreichen Projekts,
  • die Tragfähigkeit einer Architektur,
  • die (Un-)Korrektheit von Technologieentscheidungen,
  • die richtige oder falsche Interpretation der fachlichen Anforderungen durch das Projekt-Team
  • und, im Falle von Client-Anwendungen, die Usability von Benutzerschnittstellen.

Somit ist es möglich, Fehlentwicklungen zu erkennen, bevor sie eine Menge Geld verschlingen, Entscheidungen ggf. frühzeitig zu korrigieren, Konzepte anzupassen und nicht zuletzt auch frühzeitig Anwender-Feedback einzuholen.

Die optionale Entscheidung zur Produktivsetzung eines beliebigen Inkrements durch den Product Owner bedeutet auch einen frühen Return on Investment für wichtige Kernbereiche der Applikation.

Der Entwicklungszyklus in Scrum kann durch drei Begriffe zusammengefaßt werden: Apply,  Inspect, Adapt.

1. Apply: AnwendenApply, Inspect, Adapt

  • endlich mal anfangen(!)
  • etwas entwickeln
  • aktiv eine Idee umsetzen
  • überprüfbare Fakten schaffen

2. Inspect: Prüfen

  • kritische Erfolgskontrolle
  • Fehler in Produkt und Prozeß analysieren

3. Adapt: Anpassen

  • Spezifikation präzisieren
  • Prozeß verbessern
  • ggf. alternativ vorgehen
  • auch mal (rechtzeitig!) etwas „wegwerfen“
 

Wußten Sie schon, ...?

Manche Leute verwechseln Scrum und Extreme Programming (XP) oder denken zumindest, man müßte Scrum-Projekte beispielsweise mit Pair Programming und Test Driven Development umsetzen. Dem ist nicht so: Scrum setzt kein XP in der Entwicklung voraus, beide sind völlig unabhängig voneinander.
Weiterlesen...