Kategorien: Softwareentwicklung


So läufts bei uns @Objectbay

Was sind Story Points, welche Rolle spielen sie beim Schätzen des Umsetzungsaufwandes von agilen Softwareentwicklungsprojekten und wie gelangt man am Ende zu Kosten bzw. Budgets? Das erfahren Sie im folgenden Beitrag.

Wenn Sie mit uns zusammenarbeiten, werden wir Schätzungen nur in Story Points angeben. Was diese aussagen und welche Vorteile sich für Sie daraus ergeben, erfahren Sie in diesem Beitrag.

Doch befassen wir uns zuvor mit der Problematik der klassischen Aufwandsschätzungen in Zeiteinheiten wie Stunden oder Tagen. Die Zeit, die jemand benötigt um ein Stück Software zu entwickeln, hängt von zahlreichen Faktoren ab. Diese Faktoren sind nicht bzw. nur sehr schwer vorhersehbar, das heißt wir haben keine Kontrolle über sie. Beispiele hierfür sind die Tagesverfassung der Entwickler, die zugrunde liegende Codebasis, Störungen und Unterbrechungen während des Entwickelns, unvorhergesehene technische Schwierigkeiten, etc. um nur ein paar zu nennen. 

Aufwand ist ungleich Dauer

Wenn wir kurz noch bei der Zeit bleiben ergibt sich durch den Einsatz von iterativer Entwicklung (z.B. Scrum Sprints) ein entscheidender Vorteil: Wir erhalten eine stets gleichbleibende Zeiteinheit. In unserem Fall sind das zwei Wochen, da unsere Teams stets in zweiwöchigen Sprints arbeiten. 

Nun wird es spannend: Wenn die Zeit ohnehin stets gleich ist, wie kann ich dann herausfinden, wie viel Software innerhalb dieser Zeit entwickelt wird? 

Beim Autofahren würden wir das über die Geschwindigkeit erkennen: Diese sagt uns, wie viele Kilometer wir zurücklegen, wenn wir uns eine Stunde lang mit dieser Geschwindigkeit bewegen. Ändert sich diese, so wird auch die zurückgelegte Strecke innerhalb dieser Stunde kürzer oder länger. 

Nicht viel anders verhält es sich beim Entwickeln von Software, mit dem Unterschied, dass wir eben keine Kilometer zurücklegen, sondern Software Code erstellen. Die Menge an Software ist davon abhängig wie schnell das Team arbeitet bzw. arbeiten kann (mehr dazu später). 

Die Mathematik lehrt uns folgenden Zusammenhang zwischen diesen Größen: 

Geschwindigkeit (v) = Weg (s) / Zeit (t)

Übertragen in die Softwareentwicklung bedeutet dies nun, dass wir Story Points als Maß für den Weg verwenden. Somit tricksen wir die Komplexität aus: denn der tatsächliche Aufwand ist von den oben genannten Faktoren unabhängig, er hängt lediglich von der Geschwindigkeit des Teams ab - diese lässt sich aber messen! 

Stellen Sie sich selbst die folgende Frage: "Wie lange brauche ich von zu Hause bis zum nächstgelegenen Flughafen? Die Antwort lautet ziemlich sicher: "Kommt drauf an...". Hier fließen viele exogene Faktoren ein, die das Schätzen erschweren, wie zum Beispiel das gewählte Verkehrsmittel, das Wetter, die Tages bzw. Jahreszeit etc. Lautet die Frage aber: "Wie weit ist es von zu Hause bis zum nächsten Flughafen, so werden all diese Faktoren plötzlich irrelevant. Egal ob Schneesturm oder Sonnenschein, der Weg bleibt der gleiche.

Es geht also darum, beim Schätzen daran zu denken, welcher "Weg" zurück zu legen ist, um das Feature zu entwickeln. Es ist somit nicht relevant, ob das Item vom Besten aller Programmierer oder vom eben eingestellten Praktikanten umgesetzt werden wird - die zu erledigende Arbeitsmenge bleibt gleich. Dies beinhaltet den Entwicklungs- sowie den Testaufwand und alle weiteren nötigen Aktivitäten, die für die Auslieferbarkeit des Items nötig sind, ignoriert aber, wie lange die eigentliche Umsetzung dauern wird.

Story Points sind die Einheit des Aufwands

Diese Einheit lässt sich schwer in absoluten Vergleichszahlen darstellen. Achtung: Vermeiden Sie es tunlichst, diese in Stunden oder Tage umzurechnen. Das wäre so, als würden Sie sagen: Wenn ich mit dem Auto fahre, brauche ich für einen Kilometer zwei Minuten. Dies trifft aber nur für eine ganz bestimmte Geschwindigkeit und somit nur punktuell zu. 

Da es keine absolute Referenzgröße zu einem Story Point gibt, wird sich jedes Team eine eigene Referenz schaffen, die eine rein relative Gültigkeit hat. Das heißt, ein Team wird ein zu schätzendes Stück Software mit ca. doppelt so vielen Story Points abschätzen, wenn alle Teammitglieder der Meinung sind, dass der Aufwand in etwa doppelt so hoch ist. 

Zur langfristigen Planung benötigt man dann nur noch die Velocity, also die pro Sprint umgesetzten Story Points. Nach einigen Sprints lässt sich ein Durchschnitt ableiten und somit in die Zukunft hochrechnen. 

Welche Faktoren beeinflussen die Velocity?

Natürlich in erster Linie das Team selbst. Keine Frage. Allerdings darf man nicht außer acht lassen, dass auch zahlreiche weitere Faktoren die Velocity beeinflussen, auf die das Team selbst gar keinen Einfluss hat. 

Daher wäre es ein großer Fehler, die Velocity als Metrik für die Team Performance heranzuziehen. Vielmehr ist es notwendig, stets zu reflektieren, welche Faktoren das Team daran hindern könnten, die Velocity zu steigern und stetig an der Verbesserung dieser zu arbeiten. Hierzu einige Beispiele, die in genau diese Kategorie fallen: 

    • Schlechte Infrastruktur
      Wie zum Beispiel langsame Hardware, langsame Netzwerkverbindung, zu kleine Bildschirme, zu wenig Zugriffsrechte auf relevante Systeme. Aus diesem Grund sind alle Arbeitsplätze unserer Entwickler mit state-of-the-art Hardware und 34” curved Monitoren ausgestattet. 
    • Anti-Wohlfühlatmosphäre im Büro
      Das Arbeitsklima hat eine enorme Auswirkung auf die Performance. Wo die Menschen gerne arbeiten, dort leisten sie auch mehr. 
    • Ineffiziente Kommunikation
      Softwareentwicklung besteht zur Hälfte aus Kommunikation. Für den effektivsten und effizientesten Informationsaustausch setzen wir bei Objectbay daher stark auf face to face Kommunikation. 
    • Zu geringe Verfügbarkeit des Product Owners
      Führt zu falschen Annahmen, diese wiederum führen zu unnötigen Nacharbeiten, Zeitverzögerungen oder gar Wartezeiten beim Entwicklerteam. Stellen Sie daher sicher, dass Ihr Produkt Owner genügend Zeit für das zu entwickelnde Produkt zur Verfügung hat. Mindestens 50% der verfügbaren Arbeitszeit (Vollzeit) gilt hier erfahrungsgemäß als Richtgröße.
    • Unnötiger Druck
      Es gibt sie, die Menschen die unter großem Druck auf Hochtouren kommen, allerdings stellen diese eine Minderheit dar. Erhöhter Arbeitsdruck führt in der Regel zu schlechterer Qualität mit allen negativen Folgen die schlechte Qualität nach sich zieht (Stichwort: Mehraufwand, Frustration, Konflikte, etc.)

Wie leitet man nun dennoch die Kosten bzw. den Budgetbedarf ab?

Zeit ist Geld. Daran ändert sich auch durch Story Points nichts. Das heißt, wir leiten die Kosten nicht von der Velocity eines Teams ab, sondern von der Zeit, die vergangen ist. Zum Beispiel durch die Verrechnung nach zeitlichem Aufwand oder durch eine Sprintpauschale. 

Ausgehend von der Gesamtzahl an Story Points für ein zu schätzendes Release (hierfür reicht eine sehr grobe Schätzung in der Regel aus) kann anhand der Velocity eines Teams nun die Anzahl der für die Umsetzung benötigten Sprints berechnet werden.

Ein Beispiel: Die grobe Schätzung eines Softwarepakets ergibt 260 Story Points. Das Team liefert bekannterweise eine Velocity von etwa 20 Story Points pro Sprint. Dies ergibt eine Gesamtdauer von voraussichtlich 13 Sprints. 

Aus der Anzahl von Sprints lassen sich dann anhand der Kosten für einen Sprint die Kosten für das gesamte Vorhaben berechnen.

 

Sie wollen mehr darüber erfahren, was wir für Sie tun können?

Hier geht's zum Whitepaper „So läufts @Objectbay."

JETZT HERUNTERLADEN!

 

Für E-Mail-Updates anmelden!

Abonnieren Sie jetzt den Objectbay Blog und erhalten Sie monatlich die besten Beiträge rund um agile Softwareentwicklung.

Für E-Mail-Updates anmelden

Suchen