Africa Studio - stock.adobe.com
Das Rauschen in der Softwareentwicklung verhindern
Fehleinschätzungen führen in der Softwarebranche häufig zu erheblichen Kosten. Aber was sind die Ursachen hierfür und wie lassen sich Fehleinschätzungen verhindern?
Fehleinschätzungen führen in der Softwarebranche immer noch zu erheblichen Kosten, wenn nicht sogar zum Scheitern...
Ich erkläre mich damit einverstanden, von qualifizierten Organisationen per E-Mail auf meine Profileinstellungen abgestimmte Informationen über Angebote zu erhalten.
von Projekten, obwohl bis heute viele Versuche unternommen wurden, sie zu reduzieren oder abzumildern. Aber was sind die Ursachen dafür und wie können sie verhindert werden? Wir versuchen, diese Fragen im Licht der jüngsten Forschungen des Wirtschaftsnobelpreisträgers Daniel Kahneman zu beantworten.
Daniel Kahneman, Olivier Sibony und Cass Sunstein untersuchen in Noise: A Flaw in Human Judgment diese Thematik und identifizieren mit dem Rauschen in der menschlichen Beurteilung und Entscheidungsfindung den Hauptfaktor, der zusammen mit Bias (kognitive Verzerrungen) soziale Ungerechtigkeit fördert und gleichzeitig zu erheblichen finanziellen Verlusten für Unternehmen führt.
Nach ihrer Definition ist das Rauschen eine unerwünschte Variabilität in den Urteilen, die zu ein und demselben Thema abgegeben werden, und kann auf eine Vielzahl von Faktoren zurückgeführt werden, darunter kognitive Verzerrungen, Gruppendynamik, emotionale Reaktionen und irrationale Gedanken. Auf der Grundlage dieser Definition analysieren die Autoren das Rauschen, klassifizieren seine Formen und unterziehen es schließlich Praktiken, die darauf abzielen, es zu reduzieren.
In diesem Beitrag wird in das Thema Rauschen im Software-Engineering eingeführt und mehrere Methoden zu seiner Reduzierung werden vorgestellt entlang der Theorie von Kahneman et al.
Was bedeutet urteilen?
Zu Beginn muss eine grundlegende Frage geklärt werden. Was genau bedeutet urteilen im Kontext der Entscheidungsfindung von Unternehmen und Institutionen?
Kahneman et al. definieren das Urteilen als eine Art von Messung, die vom menschlichen Verstand mit der Absicht durchgeführt wird, dem untersuchten Gegenstand eine Bewertung zu geben. Diese Bewertung muss nicht in einer Zahl ausgedrückt werden.
Diese Art der Messung, die als Urteil bezeichnet wird, kann entweder prädiktiv oder evaluativ sein, je nachdem, ob sie Vorhersagen darüber trifft, was in der Zukunft geschehen wird, oder ob sie etwas bewertet, das bereits geschehen ist. In diesem Sinne wird eine Vorhersage als überprüfbar bezeichnet, wenn die realen Werte, die dann tatsächlich zustande kommen, mit den Schätzungen verglichen werden können. Im Allgemeinen sind Urteile zu kurzfristigen Prozessen leichter zu überprüfen als solche, die langfristige Prozesse betreffen.
Aber wie lässt sich diese Taxonomie auf die Realitäten der IT-Arbeit anwenden? Nehmen wir als Beispiel Marius Rot, einen hypothetischen 35-jährigen Softwareentwickler auf Senior-Level.
Wenn Marius schätzen muss, wieviel Zeit er für die Fertigstellung einer Arbeit benötigt, trifft er ein verifizierbares prädiktives Urteil: Die Schätzung bezieht sich auf ein Ergebnis, das in der Zukunft eintreten wird, und die Qualität der Schätzung kann in absehbarer Zeit überprüft werden.
Marius wird jedoch ein nicht verifizierbares prädiktives Urteil fällen, wenn er sich für ein Datenträger für die sehr langfristige Datenspeicherung entscheidet, der den Erhalt der Informationen auch nach Katastrophen unterschiedlicher Ordnung gewährleisten kann: Niemand, auch nicht auf lange Sicht, wird in der Lage sein, die Vorhersagen von Marius zu bestätigen, es sei denn, eine Katastrophe tritt ein, jemand überlebt, diese Person überprüft dann den Zustand der aufbewahrten Daten und vergleicht das Ausmaß des Informationsverlustes mit den Vorhersagen, die Marius vielleicht Hunderte von Jahren zuvor gemacht hat.
Schließlich gibt Marius bei der Bewertung von Software, die bereits von einem Kunden verwendet wird, oder bei der Beurteilung der Leistung eines Kollegen für das jährliche Entwicklungsgespräch eine evaluative Beurteilung ab.
Man kann noch hinzufügen, dass ein Urteil dadurch gekennzeichnet ist, dass mögliche Meinungsverschiedenheiten zwischen den urteilenden Parteien vorhanden sind und dies ist auch in angemessenem Rahmen akzeptabel.
Urteilsfehler und ihre Ursachen
Was veranlasst einen nun dazu, schlechte Urteile abzugeben? Bias und systemisches Rauschen sind laut Kahneman et al. die beiden Hauptursachen für Fehler im Urteilen.
Bias ist der mittlere Fehler. Es handelt sich um eine gesellschaftlich beeinflusste und weithin verbreitete Ungenauigkeit, die auf äußere Faktoren wie Vorurteile oder falsche wissenschaftliche Theorien zurückgeführt werden kann. So können beispielsweise Fehler, die aus der Vorstellung resultieren, dass die Erde flach ist, als Bias bezeichnet werden.
Systemisches Rauschen hingegen ist die unbeabsichtigte Varianz zwischen Einschätzungen, die eigentlich übereinstimmen sollten, ein Unterschied, der durch das Messinstrument hervorgerufen wird, mit dem man die Realität misst: den Verstand.
Systemisches Rauschen lässt sich wiederum in Level- und Pattern-Rauschen unterteilen, das heißt in Beurteilungsfehler, die durch Unterschiede zwischen den beurteilenden Fachleuten verursacht werden, und Fehler, die durch die Art und Weise entstehen, wie jeder von ihnen an ein bestimmtes Problem herangeht. Mit anderen Worten: Das Level-Rauschen ist der Unterschied zwischen dem Durchschnittswert eines Fachmanns und dem Durchschnittswert anderer Fachleute, während das Pattern-Rauschen die Variabilität, der von ein und demselben Fachmann zu verschiedenen Themen abgegebenen Urteile ist.
Als ob das nicht genug wäre, enthält das Pattern-Rauschen eine gelegentliche Komponente, die durch äußere Faktoren verursacht wird, die einen unbewusst beeinflussen, wie zum Beispiel Hunger und Müdigkeit. Es macht sich bemerkbar, wenn ein und derselbe Fachmann nach einiger Zeit eine andere Meinung zu ein und demselben Thema äußert. Eine Methode zur Messung von gelegentlichem Rauschen besteht darin, die Auswirkungen eines irrelevanten Kontextfaktors, wie beispielsweise der Sieg der Lieblingsfußballmannschaft, auf das Urteilsvermögen zu untersuchen.
Zurück zu Marius. Er ist der festen Überzeugung, dass ein Junior-Programmierer immer mehr Zeit benötigt als ein Senior-Programmierer, und dass ein Programmierer mit einem Abschluss in jedem Fall besser ist als ein Programmierer ohne Abschluss, unabhängig von der anstehenden Arbeit. Wenn Marius also die Arbeit von Alan, einem Junior-Programmierer, oder Erik, einem Programmierer ohne Titel, bewertet, läuft er Gefahr, ein voreingenommenes Urteil durch Bias zu fällen.
Marius ist außerdem von Natur aus Optimist, was sich in seinen Bewertungen zeigt. In einem Scrum-Poker werden seine Punkte niedriger sein als der Durchschnitt, was zu einem Level-Rauschen führt. Wenn es jedoch um Datenbanken geht, ändert sich seine Einstellung. Die Bewertungen von Marius für die Arbeit mit Datenbanken sind aufgrund eines schweren Fehlers, der vor Jahren gemacht wurde, sehr pessimistisch: Man hat es in diesem Fall mitPattern-Rauschen zu tun. Schließlich wird Marius reizbar und ungeduldig, wenn er in die Mittagspause gehen will. Wenn er etwas bewerten muss, wird seine Entscheidung übereilt getroffen. Höchstwahrscheinlich wird er nach dem Mittagessen eine andere Entscheidung treffen: Seine Entscheidung wird also von gelegentlichem Rauschenbeeinflusst.
Entscheidungshygiene und Algorithmen als mögliche Lösungen
Um die Urteilsfindung zu verbessern, muss zunächst klar sein, dass die Beseitigung von Bias machbarer ist als die Beseitigung von Rauschen: Bias ist in der sozialen Natur verankert und kann daher beeinflusst werden; Rauschen hingegen ist der menschlichen Natur eigen. Wahrscheinlich aus diesem Grund gibt es zwar viele Studien, die verschiedene Ansätze zur Reduzierung von Bias vorschlagen, aber das Gleiche gilt nicht für das Rauschen.
Aber wie kann man das Rauschen reduzieren, wenn nicht gar eliminieren?
Kahneman et al. schlagen eine Entscheidungshygiene vor, um das Rauschen zu reduzieren. Sie lässt sich in fünf Grundsätzen zusammenfassen:
- Genauigkeit und Vollständigkeit, nicht der Ausdruck der eigenen Individualität, sind das Ziel von Beurteilungen.
- Denkprozesse, die auf Ähnlichkeit beruhen, vermeiden: Der Beurteilende soll versuchen, in Kategorien der Statistik zu denken und eine externe Perspektive einzunehmen, die als Bezugspunkt dient, zum Beispiel unter Verwendung von Referenzklassen.
- Voreilige Intuitionen sollte beiseitegelassen werden.
- Die zu bewertenden Themen vollständig und in verschiedenen Dimensionen gliedern. Außerdem sollen die Bewertungen unabhängig voneinander von verschiedenen Bewertern durchgeführt werden. Falls erforderlich, können die Ergebnisse aggregiert werden.
- Absolute Urteile vermeiden: Es solle eine vorher festgelegte Werteskala verwendet werden, um Urteile auszudrücken, und diese Urteile sollen mit äußeren Faktoren in Beziehung gesetzt werden, um sie zu relativieren und zu kontextualisieren.
Um das Rauschen zu eliminieren, machen Kahneman et al. außerdem einen radikalen Vorschlag: Das professionelle Urteil durch Entscheidungsalgorithmen ersetzen. Diese sind immer anfällig für Bias, die durch Überzeugungen hervorgerufen werden, aber sie sind unbeeinflusst von dem Rauschen, das durch die menschliche Natur verursacht wird. Natürlich stoßt dies auf heftigen Widerstand und ist in einigen Fällen unerwünscht, denn wer möchte schon in einer Gesellschaft leben, die ausschließlich von Algorithmen bestimmt wird?
Das ideale Szenario wäre daher eine Kombination aus menschlichem Urteil auf Grundlage von Entscheidungshygiene und dem Einsatz von Entscheidungsalgorithmen, die eine deutliche Verringerung des Rauschens in relevanten Bereichen zur Folge hätten.
Beispiel für Entwicklungsverfahren
Im Folgenden eine Illustration eines solchen Verfahrens, das zur Evaluierung von Software-Release-Zeiten verwendet werden kann. Es ist inspiriert von dem von Kahneman et al. vorgeschlagenen Mediating Assessments Protocol und besteht aus drei Schritten:
Erstellung einer Liste von relevanten, zu bewertenden Aspekten: Ein Business-Team prüft die Softwareanforderungen, zerlegt sie in unabhängige Punkte, die relevant für den Release-Termin sind, und stellt eine umfassende Liste von diesen zusammen.
Erstellung der Zwischenbewertungen: Das Bewertungsteam erhält diese Liste. Diese Gruppe von Experten wird von Marius geleitet und soll objektive und unabhängige Urteile zu jedem Punkt in der Liste abgeben. Das Urteil ist objektiv, weil es sich auf überprüfbare Fakten stützt und einen externen Bezugspunkt verwendet, so dass es eher vergleichend als absolut sein kann. Die Beurteilung ist unabhängig, da sich jeder Experte nur auf eine Dimension konzentriert und auf Gruppenarbeit verzichtet wird, um den Halo-Effekt zu vermeiden. Die Ergebnisse der Zwischenbewertungen werden dann zusammen mit allen relevanten Informationen an das Geschäftsteam weitergeleitet.
“Rauschen beeinflusst immer wieder die Entscheidungsfindung und sollte beseitigt werden, um falsche Entscheidungen einzugrenzen wie auch wirtschaftlichen Schaden zu vermeiden.“
Christian Del Monte, adesso SE
Auswertung der Ergebnisse und Zusammenführung zu einem abschließenden Gesamturteil: Für jeden bewerteten Punkt aus der Liste wiederhöhlt sich dann folgendes. Marius, Leiter des Evaluierungsteams, präsentiert kurz die Zwischenbewertung eines Punktes, woraufhin jedes Mitglied des Business-Teams den Bericht über den Punkt zur Diskussion für sich anliest und eine zusammenfassende Endbewertung mit Unterstützung einer speziellen Software anonym abgibt. Die Ergebnisse werden anschließend präsentiert und diskutiert, ohne dass bekannt gegeben wird, wer welche Bewertung vergeben hat. Im Anschluss an die Diskussion wird ein zweites Mal anonym für den Punkt zur Diskussion abgestimmt, und die Ergebnisse werden mit einem vordefinierten Algorithmus zusammengefasst — unabhängige Bewertungen sollen die übermäßige Konsistenz reduzieren, die durch den Resonanzeffekt entsteht, der indirekt bei Gruppenbewertungen verursacht wird. Nachdem alle Punkte aus der Liste eine finale Bewertung bekommen haben, werden die einzelnen Ergebnisse als Eingabe für einen Entscheidungsalgorithmus verwendet, der die Freigabetermine der Software berechnet. Die Ausgabe kann vom Business-Team überprüft und nachgebessert werden, in der Hoffnung, dass hier kein spätes, unerwünschtes Rauschen auftritt.
Fazit
Rauschen beeinflusst immer wieder die Entscheidungsfindung und sollte beseitigt werden, um falsche Entscheidungen einzugrenzen wie auch wirtschaftlichen Schaden zu vermeiden. Methoden zur Überwindung des Problems gibt es bereits, aber es braucht auch den Mut, altbekannte Lösungswege der Vergangenheit ad acta zu legen und sich diesen neuen Methoden zu öffnen, die die Wirtschafts- und Sozialwissenschaften vorschlagen, um die eigenen internen Entscheidungsprozesse zu überprüfen und neu zu definieren. In diesem Sinne hoffen wir, dass wir einige Denkanstöße geben konnten.
Über den Autor:
Christian Del Monte, adesso SE, ist Software-Architekt und Entwickler mit langjähriger Erfahrung. Im Zuge seiner vielfältigen Projekte im B2B- und B2C-Bereich hat er sich mit verschiedenen Software-Architekturen auseinandergesetzt, die mit unterschiedlichen IT-Technologien und Frameworks umgesetzt wurden. Einer seiner Schwerpunkte sind hochverfügbare, in Fast-Echtzeit arbeitende Softwaresysteme und deren Umsetzung mit Mitteln wie Cloud, Microservices und ereignisgesteuerten Architekturen.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.