5 kognitive Verzerrungen bei der Softwareentwicklung und wie man sie vermeidet

13.04.2022
Jan Jileček

​​Kognitive Verzerrungen sind erlernte Wahrnehmungs- und Verhaltensregeln. Im Grunde sind dies mentale Abkürzungen, die wir unbewusst nutzen. Bei der Arbeit können uns diese versteckten Voreingenommenheiten überraschen, daher ist es wichtig, sich ihrer Funktionsweise bewusst zu sein und sie bewusst zu vermeiden. In diesem Artikel befassen wir uns mit den 5 wichtigsten Vorurteilen und nützlichen Techniken, die zu ihrer Minimierung eingesetzt werden können.

Optimistische Verzerrung

Die optimistische Verzerrung (oder auch Voreingenommenheit) ist die Tendenz, übermäßig optimistisch zu Ereignissen in der Umgebung zu sein. In der Welt der Software kommt sie vor allem bei der Einschätzung der Schwierigkeit von Aufgaben vor, wo wir unsere eigenen Fähigkeiten überschätzen können

Normalerweise sagt Ihr Kollege während einer Besprechung, dass er eine beliebige Aufgabe leicht erledigen kann und dafür fast keine Zeit braucht. Er hat jedoch keine Vorkenntnisse über die Aufgabe und geht von einem übertriebenen Optimismus aus. Wie Sie sicher schon in der Software-Welt gesehen haben, erweisen sich diese Schätzungen oft als stark unterschätzt. Und ein kleines Sahnehäubchen ist die so genannte Leicht-Schwer-Verzerrung, bei der Menschen schwierige Aufgaben optimistisch und leichte Aufgaben pessimistisch einschätzen.

Diese kognitive Verzerrung kann mit diesen direkten Fragen vermieden werden:

  • Sehen Sie etwas an der Aufgabe, das Probleme verursachen könnte?
  • Sehen Sie einen Grund, warum Ihre Lösung falsch sein könnte?
  • Haben Sie an die Abhängigkeiten gedacht, die von der Änderung dieses Codes beeinflusst sind? 

Bestätigungsverzerrung

Eine weitere bekannte Voreingenommenheit ist die Bestätigungsverzerrung. Sie bedeutet, dass wir dazu neigen, nur Informationen zu beachten, die unsere bestehenden Überzeugungen und Meinungen bestätigen, und Informationen zu ignorieren, die unseren Ansichten widersprechen. Das ist im Grunde das Gleiche, als wenn man den Kopf in den Wolken hat und vor der Realität davon läuft. Die Schärfe unseres Denkens verbessert sich unter dem Einfluss dieser Verzerrung nicht, ganz im Gegenteil.

Nehmen wir an, einer der Programmierer im Team ist der festen Überzeugung, dass die Vererbung schon immer die Grundlage von OOP (Object-Oriented Programming) war. Ein anderer Kollege wird das Argument vorbringen, dass dies nicht der Fall ist. Die Vererbung wurde nicht einfach akzeptiert und ist immer noch eine Quelle der Diskussion. Um seinen Standpunkt zu untermauern, googelt der erste Programmierer „Vererbung als Grundlage von OOP“ und das erste Ergebnis bestätigt seine Meinung. Aber sein Kollege hat Recht. Selbst Alan Key, einer der Begründer der OOP, wollte in der ersten Version von Smalltalk keine Vererbung implementieren.

Eine Bestätigungsverzerrung kann auf folgende Weise vermieden werden

  • Versuchen Sie, Probleme zu finden, die auftreten können, und suchen Sie nicht nur nach positiven Fällen. Im Falle des Google-Beispiels sollten Sie also auch nach der umgekehrten Ansicht suchen.
  • Suchen Sie nach logischen Begründungen für jedes Vorurteil (und finden Sie vorzugsweise heraus, dass es ein Vorurteil ist) und suchen Sie nach Fällen, in denen es logisch ungültig sein könnte.

Verankerung

Die Verankerung beschreibt die Tatsache, dass es eine natürliche menschliche Tendenz ist, sich im Entscheidungsprozess auf eine bestimmte Information oder Tatsache zu verlassen, von der dann andere Entscheidungen abgeleitet werden. Diese Informationen sind jedoch oft gar nicht relevant und können unser Urteilsvermögen negativ beeinflussen.

Diese Verzerrung kann z. B. in der folgenden Situation auftreten. Der Scrum Master wird das Team fragen, wenn er den Arbeitsaufwand schätzt: „Wie lange wird diese Aufgabe dauern? 2 Wochen?“. Dank des Verankerungseffekts ist es dann egal, wie schwierig die Aufgabe tatsächlich ist, die meisten Teams werden sich auf 2 Wochen einigen. Sie ließen sich von den ersten Informationen, die sie erhielten, beeinflussen. Die gleiche Technik wird bei Vorstellungsgesprächen angewandt, bei denen es für den Bewerber entscheidend ist, zuerst ein Gehalt vorzuschlagen.

Und wie wird man die Verankerung wieder los?

  • Fragen Sie nicht direkt nach der Abschätzung, sondern nach der Aufgabe selbst: „Wie viel können Sie in zwei Wochen erreichen?“
  • Planungspoker - alle Stellungnahmen werden im gleichen Moment anonym abgegeben. Das ist eine großartige Technik für die Scrum-Schätzung! 

Herdeneffekt

Der Herdeneffekt ist ein Phänomen, das den Einzelnen dazu zwingt, mit der Masse zu gehen und sich eher den Ansichten anzuschließen, die er bei anderen gesehen hat. Es kann auch die Beliebtheit von Modetrends bezeichnen - man denke nur an die heutige Instagram-Kultur von charakterlosen Menschen. Wenn eine Idee von der Mehrheit der Bevölkerung geteilt wird, gewinnt sie unabhängig von ihrem Wahrheitsgehalt an Glaubwürdigkeit. Soziale Netzwerke wie Twitter und Reddit sind ebenfalls sehr anfällig dafür. Auf Twitter wird dies durch die begrenzte Anzahl von Zeichen noch verstärkt, was zu oberflächlichen Meinungen und Ideen verleitet.

In Bezug auf die Softwareentwicklung wollen wir das Beispiel mit der Beratung wieder aufgreifen. Ein charismatischer Teamleiter argumentiert, warum das gesamte Team von REST API zu GraphQL wechseln sollte. Die Präsentation demonstriert die technischen Vorteile der neuen Technologie für das gesamte Unternehmen. Auch die Kollegen scheinen die neue Technologie zu wollen. Leider ist das ein Herdeneffekt. In Wirklichkeit hat die Teamleiterin nur Aufsehen um die neue Technologie erregt, konnte aber den Wert ihrer Idee nicht beweisen. Wird sich der Kunde dafür interessieren? Wir er einen Unterschied in der Nutzung feststellen? Wird es mehr Zeit, Kunden oder Geld bringen? Wenn es um neue Technologien geht, ist jeder verständlicherweise begeistert.

Wie kann man diese kognitive Verzerrung beseitigen? Mit diesen Fragen:

  • Wir entwickeln Software hauptsächlich zur Unterstützung des Unternehmens. Es macht keinen Sinn, eine neue Farbtechnologie einzusetzen, wenn sie keinen zusätzlichen Nutzen bringt?
  • Was ist der Wert dieser Idee?
  • Wie wird sie neue Kunden, Zeit oder einen anderen Vorteil bringen?
  • Überwiegen die Vorteile die Kosten der Umsetzung?

Attributionsfehler

Der Attributionsfehler ist eine Verzerrung der Zuordnungsprozesse. Er äußert sich darin, dass man bei der Erklärung des Verhaltens anderer Menschen dazu neigt, die Charaktereigenschaften einer Person zu übertreiben und den Kontext ihrer Lebenssituation oder die Zufälligkeit des Umfelds zu unterschätzen.

Für die letzte Verzerrung dieses Artikels sollten wir den Besprechnungsraum verlassen und uns wieder an die Arbeit machen. Bei der Programmierung werden Sie jedoch einen hässlichen Codeblock bemerken. Mittels Git Blame stellen Sie fest, wer der Autor ist. Das ist Lukas. Selbstverständlich. Lukas ist unvorsichtig, unverantwortlich und impulsiv. Er denkt nicht darüber nach, was er tut. Sie hätten es besser gemacht!

Aber Sie beruhigen sich und fahren mit der Implementierung ihres Features fort. Aber nach einer Weile stoßen Sie auf einen weiteren schrecklichen Codeblock. Wieder Lukas, das ist sicher! Aber Git Blame erzählt diesmal eine andere Geschichte - Sie sind der Autor. Alle möglichen Fragen gehen Ihnen plötzlich durch den Kopf. Bin ich ein schlechter Entwickler? Bin ich wie Lukas? Aber man wirft diese Zweifel sofort über Bord, und schon kommen die Ausreden. Natürlich sind Sie kein schlechter Entwickler, aber es gab einen Abgabetermin, die Zeit reichte nicht aus, Sie waren gerade erkältet und Ihr Hund war beim Tierarzt. Dabei handelt es sich um einen Attributionsfehler - bei der Beurteilung anderer Menschen wird der Kontext einer Lebenssituation unterschätzt.

Wie lassen sich Zuordnungsfehler vermeiden?

  • Die Schuld auf den Autor zu schieben, hilft nicht weiter. Versuchen Sie, die Ursache für den fehlerhaften Code herauszufinden.
  • Hat Lukas wenig Erfahrung in diesem Segment der Programmiersprachen/Projektkenntnisse?
  • War er nur gestresst? Gab es eine bevorstehende Frist? War er überlastet? Gab es etwas am Wochenende?

Laden Sie den Anwalt des Teufels ein

Das waren also die 5 wichtigsten kognitiven Verzerrungen. Was haben wir gelernt? Kognitive Verzerrungen kommen bei uns allen vor. Was wir dagegen tun können, ist zu lernen, sie zu bemerken und zu vermeiden. Die häufigsten Voreingenommenheiten in der Softwareentwicklung sind optimistische, Bestätigungs- und Verankerungsvoreingenommenheit. Der Herdeneffekt und Zuordnungsfehler sind ebenfalls sehr verbreitet. Sie können katastrophale Auswirkungen auf Softwareprojekte haben. Die wichtigste Methode zur Vermeidung besteht darin, das Problem sorgfältig zu durchdenken und bei der Analyse „den Anwalt des Teufels“ zu spielen, d. h. nicht nur nach positiven, sondern auch nach gegenteiligen und negativen Fällen zu suchen. Für weitere Informationen über kognitive Verzerrungen bei der Softwareentwicklung empfehle ich diese Studie​, die ich als Quelle für diesen Artikel verwendet habe. Ich hoffe, der Artikel hat Ihnen gefallen, und bis zum nächsten Mal!

#our-values