Donnerstag, 28. Juli 2022

The agile Bookshelf: Software Estimation Without Guessing

Bild: Wikimedia Commons / Abhi Sharma - CC BY 2.0

Angesichts der Bedeutung die das Schätzen von Aufwänden in praktisch jedem Softwareentwicklungs-Vorhaben hat (egal on agil oder nicht agil) ist es verwunderlich, dass es kaum bekannte Literatur zu dem Thema gibt. Agile Estimating and Planning von Mike Cohn und Software Estimation: Demystifying the Black Art von Steve McConnell gelten zwar als Standard-Werke, sind aber schon fast 20 Jahre alt. Mittlerweile gibt es aber auch wieder aktuelle Literatur: Software Estimation Without Guessing von George Dinwiddie ist ein lesenswerter Versuch den aktuellen Sachstand zusammenzufassen.


Ein erstes Ausrufezeichen setzt das Buch direkt zu Beginn, indem es Story Points, Planning Poker und Durchsatz (NoEstimates), also die wesentlichen "agilen Schätztechniken", die den Grossteil aller Texte zu diesem Thema ausmachen, auf nur zwei Seiten abhandelt. Es wird deutlich, dass diese Klassiker zwar gewürdigt werden sollen, dass sie aber nur an der Oberfläche des Themas kratzen, das in den folgenden Kapiteln deutlich tiefgreifender behandelt wird.


Diese Behandlung beginnt mit der grundlegenden Frage warum Aufwandsschätzungen überhaupt nötig sind. Um zu wissen wie lange es dauert ist dabei nur eine Antwort, zu der noch weitere kommen: Um zu wissen ob eine Umsetzung überhaupt planbar ist, ob sie wirtschaftlich ist, und welches Budget für sie eingeplant werden sollte sind die anderen. Das scheint alles banal, wird aber in der Realität immer wieder nicht bedacht wenn gefragt wird warum überhaupt geschätzt werden soll.


Die folgenden Kapitel arbeiten sich durch viele Aspekte die zwar nicht alle genuin neu sind, erschliessen diese aber immer wieder mit neuen Aspekten. Z.B. werden Relationale Schätzungen nicht nur erklärt, es wird auch aufgezeigt, dass sie durch kognitive Dissonanzen und Phänomene der Gestalt-Psycholgie verfälscht werden können und daher mit einer gewissen Vorsicht behandelt werden müssen, um nicht eine irreführende Wirkung zu haben.


Ebenfalls mit unerwarteter Tiefe wird die Dekomposition (das Kleinschneiden von Anforderungen) behandelt. Nicht etwa weil es sich dabei um eine Schätztechnik handelt oder auf einer beruht, sondern weil sie die Anforderungspakete kleiner und damit verständlicher und besser schätzbar macht. Es werden dafür verschiedene Dekompositionstechniken aufgeführt und erklärt, einschliesslich der mit ihnen verbundenen Vor- und Nachteile.


Auch weitere Aspekte die erst auf den zweiten Blick mit Aufwandsschätzungen zu tun haben werden erörtert. Dass z.B. Planungsfortschritte und die verbleibende Zeit bis zu Meilensteinen oder Deadlines ebenfalls nur (bedingt zuverlässige) Schätzungen sind wird zu oft vergessen, von Dinwiddie aber deutlich hervorgehoben - ein Blickwinkel-Wechsel der das Potential hat viele Diskussionen um Aufwandsschätzungen grundlegend zu verändern.


Es gibt aber auch bekanntere Elemente die im Buch rekapituliert werden. Unter "Model-Based Estimation" werden zum Beispiel verschiedene mehr oder weniger bewährte Werkzeuge zusammengefasst. Function Points, Velocity, Cycle Time, lineare Fortschreibung, Burn Up-Charts, Burn Down-Charts, Kumulative Flussdiagramme und viele weitere Konzepte und Praktiken die bei Schätzungen und Planungen helfen können werden vorgestellt und erklärt.


Besonders nützlich für agiles Arbeiten sind die Kapitel in denen es darum geht, wie man in einer Umgebung vorgehen kann, in der ständige Veränderungen eine genaue Schätzungen und Planungen verhindern. Zum einen nämlich durch ständige Überprüfungen und Korrekturen älterer Schätzwerte, zum anderen dadurch, dass Fehlschätzungen zum Ausgangspunkt von Identifizierungen von zukünftig zu vermeidenden falschen und zu optimistischen Annahmen werden.


Zuletzt wird auch die menschliche Dimension behandelt. Dass sowohl die Schätzprozesse selbst als auch der Umgang mit falschen Einschätzungen und ihren Folgen stark von sozialen Dynamiken geprägt werden dürfte jedem klar sein, der schon einmal im Softwareentwicklungsumfeld gearbeitet hat. Das letzte Kapitel des Buches ist ganz diesem Thema gewidmet, dessen Auswirkungen in der Realität immer wieder deutlich unterschätzt werden.


Sowohl für Einsteiger als auch für "fortgeschrittene Agilisten" ist Software Estimation Without Guessing zu empfehlen, bei jedem Wissensstand kann man aus ihm noch etwas mitnehmen. Sogar für Leser ohne Bezug zu den agilen Frameworks lohnt es sich, viele der enthaltenen Informationen und Erkenntnisse lassen sich auch auf andere Vorgehensweisen übertragen. Wie man hundertprozentig zutreffende Aufwandsschätzungen machen kann wird man zwar in diesem Buch nicht lernen, man wird aber verstehen warum es sie nicht geben kann und wie man ihnen möglichst nahe kommt.

Related Articles