Breakpoint Wilson: Perfektionismus und Agilität … passt das?

Softwareentwickler und der Perfektionismus
Kommentare

Softwareentwickelnde Menschen sind Einhörner. Sie können bloße Luft in Gold verwandeln. Viele dieser sonderbaren Wesen entfalten erst bei Mondschein Ihre Fähigkeiten, füttert man Sie nach Mitternacht mit Koffein, verwandeln Sie sich in Programmiermaschinen, deren Durst nach Problemlösungen erst gestillt ist, wenn Sie kurz vor Sonnenaufgang erschöpft zu Boden sinken. Während dieser Zeit scheinen Sie schier unbesiegbar zu sein; das behaupten Sie zumindest von sich selbst. Doch die meisten dieser sonderbaren Wesen haben eine erhebliche Schwachstelle: Die Achillesferse softwareentwickelnder Menschen ist der Perfektionismus.

Steht der Perfektionismus der Agilität im Weg? Softwareentwicklung findet in erster Linie im Kopf statt. In der Regel wird erst wird nachgedacht, dann drauf los gehackt.

Selbstverständlich gibt es auch Menschen deren Motto lautet „Weeks of coding can save hours of planing” [Autor leider unbekannt], aber das ist eine andere Geschichte. Egal ob man nun zu erster oder doch letzterer Kategorie gehört, neigen die meisten von uns dazu, riesige Luftschlösser und Elfenbeintürme in die Welt zu programmieren.

Perfektionismus

Hand aufs Herz: jeder und jede von uns, die jemals halbwegs passioniert programmiert haben, kennen die eine oder andere Art perfektionistischen Programmierens. Dabei sind durchaus unterschiedliche Ausprägungen anzutreffen: Formatierungs-Neurotiker, OOP-Puristen, Astronauten-Architekten und viele weitere Stereotypen. Leugnen hilft nichts, früher oder später wird sich jeder einmal in einem dieser Muster wiedergefunden haben.

Warum ist das eigentlich so? Die deutsche Wikipedia meint zur Ursache von Perfektionismus folgendes:

Sowohl der psychologische Faktor »Neurotizismus« als auch die »Gewissenhaftigkeit«, die beide mit dem Perfektionismus zusammenhängen, sind zu etwa 50 Prozent genetisch determiniert. So kann eine gewisse Neigung zum Perfektionismus angeboren sein. […]

Zweitens ist Perfektionismus durch Umwelteinflüsse, also in erster Linie durch die Erziehung und die Peers, verstärkbar.

Die Theorie genetisch bedingten Neurotizismus mag durchaus Hand und Fuß haben. Deshalb sollten wir nicht vergessen, dass sich der Wikipedia-Eintrag sehr allgemein auf das Thema Perfektionismus bezieht. Dabei spielen tiefe Traumata und ernsthafte psychische Krankheiten, wie zum Beispiel Zwangshandlungen, eine große Rolle.

Ich gehe davon aus und hoffe, dass dies auf wenige von uns zutrifft. Allen anderen gilt mein tiefstes Verständnis und Mitgefühl. Diese Menschen sollten sich nur bedingt angesprochen aber vor allem nicht aufgrund Ihrer Krankheit kritisiert fühlen.

Die weiterführende, zweite Ursache finde ich im Zusammenhang mit unbeeinträchtigten Menschen in der Software-Entwicklung wesentlich spannender. Denn gerade hier habe ich über unzählige Projekte und Beratungen den Eindruck bekommen, dass auch unter grundsätzlich gesunden Menschen und Teams ein gewisser ungesunder Perfektionismus vorherrscht. Wir scheinen ein Mindset entwickelt zu haben, bei dem es vor allem darum geht, anstelle der idealen Lösung die perfekte Lösung anzustreben. Bloß, warum? Vielleicht aus Gewissenhaftigkeit?

Ideal vs. perfekt

Sicher, wir wollen alle gewissenhaft arbeiten und ein möglichst ideales Ergebnis erzielen. Doch gibt es einen himmelweiten Unterschied zwischen perfekt und ideal.

Oftmals wird in Meetings die perfekte Lösung diskutiert. Zwischenlösungen gelten vermehrt als indiskutabel. Man versucht in einer Art kollektivem Gedankenexperiment den gesamten Verlauf eines Zwei-Jahres-Projekts millimetergenau zusammen zu zimmern.

Risiken durch eine entsprechende Planung zu verringern ist sehr Lobenswert. Doch schnell begibt man sich in eine Position, aus der heraus man nur noch sehr vage Vermutungen stellen kann. Darauf folgen weitere vage Vermutungen. Im schlimmsten Falle dreht man sich am Ende des Tages in einem realitätsfremden Kausalitäts-Karussell, das man selbst entworfen hat, aus dem man aber nicht mehr aussteigen kann. Sprich: Man findet keine hundertprozentige Lösung, weil sich scheinbar keine perfekte Lösung finden lässt – und ist frustriert. Dabei geht eine Menge Zeit, Geld und Motivation verloren, aber dem Ziel näher gekommen ist man noch nicht.

Nichts als virtueller Raum

Ich persönlich habe nichts gegen eine ordentliche Planung. Gerade aus unternehmerischer Sicht geht es vor allem darum, Risiken, wenn möglich, einzugrenzen.

Es ist sehr verführerisch, die wildesten und komplexesten Gedankenkonstrukte in die Welt zu setzen.

Doch gerade Software-Unternehmen tappen sehr schnell in diese Falle, da Software-Entwicklung in erster Linie im Kopf stattfindet. Dort kann man problemlos in wirklich sehr abstrakten Varianten Dinge konstruieren. Auch wenn man beginnt, die Ideen in Code zu gießen, bewegt man sich immer noch in einem virtuellen Raum; Naturgesetze oder Materialkosten spielen bei der Alltags-Programmierung so gut wie keine Rolle.

Es ist also wirklich sehr verführerisch, die wildesten und komplexesten Gedankenkonstrukte in die Welt zu setzen. Danach kann man sich selbst oder gegenseitig auf die Schulter klopfen, sich gegenseitig beglückwünschen, wie ästhetisch und genial diese Ansätze doch wären. Wie viel Budget dabei draufgegangen ist und dass eine Lösung dieser Komplexität für ein zweiwöchiges Werbegewinnspiel wenig Sinn ergibt, davon sprechen wir dann lieber nicht.

Was mich wiederum zurück zu Ursache Nr. 2 für Perfektionismus bringt: den Einfluss durch die Umwelt.

Umwelteinflüsse

Hier werden sowohl Erziehung und soziales Umfeld („Peers“) als Verstärker genannt. Sprich, es wird davon ausgegangen, dass die die Kultur in der wir Leben und die Menschen mit denen wir zu tun haben dafür verantwortlich sein können, ob wir zu Perfektionismus neigen.

Wenn wir uns für besonders ausgefuchste Lösungen also gegenseitig auf die Schulter klopfen und es als Maßstab für Ansehen und Erfolg begreifen, schaffen wir sehr wahrscheinlich auch eine Kultur, die Perfektionismus und Absolutismus fördert. Menschen wollen Sie sich selten die Blöße geben und eine weniger Lobenswerte Lösung abliefern – also werden über die Zeit mehr und mehr Kolleginnen und Kollegen in den Strudel auf Perfektionismus hineingesogen. Kann man mal machen, muss man aber nicht.

Boring is Better

Ich habe mich bereits in einem früheren Breakpoint für das Motto „Boring is Better“ ausgesprochen. Doch für rationale und pragmatische Lösungen scheint man unter programmierenden Kolleginnen und Kollegen selten Lorbeeren zu ernten. Je ausgefuchster, komplexer und aktueller die Architektur ist, desto mehr Charisma-Punkte kann man sammeln.

Der Größte Fehler:Je ausgefuchster, komplexer und aktueller die Architektur ist, desto mehr Charisma-Punkte kann man sammeln.

Es ist dabei ein bisschen wie Quartett spielen: Wer die bessere Fakten-Karten auftischt und dem Gegenüber imponiert, gewinnt. Das gilt für konkrete Umsetzungen von Code als auch in der Anwendung von Methoden.

Nur weil das halbe Internet der Meinung ist, man müsse „X“ machen, beten wir voreilig „X“ nach. Dass dies aber überhaupt nicht in die Rahmenbedingungen des Projekts oder Unternehmens passt, ist dabei erstmal egal. Zweckmäßigkeit lautet die zu verfolgende Devise!

Gerade richtig genug

Wie komme ich eigentlich auf dieses Thema? Ich habe vor einiger Zeit eine spannende Dokumentation zum Thema Mathematik gesehen. Hierbei kam mir, im Zusammenhang mit Mathematik im Ingenieurwesen, folgendes zu Ohren:

„Wir Ingenieure werden dafür bezahlt, die Dinge nicht genau richtig, sondern gerade richtig genug zu machen.“

— Adam Steltzner, NASA Engineer

 

In dieser ca. zwei Minuten langen Sequenz geht es darum, welchen Herausforderungen Ingenieure gegenüberstehen, wenn Sie versuchen, absolute mathematische Modelle in die unzulängliche Realität zu übertragen.

Das ist ein Satz, von dem wir uns meiner Meinung nach alle eine große Scheibe abschneiden sollten. Das bezieht sich allerdings nicht darauf, halbgare oder lieblose Arbeit abzuliefern; es geht vielmehr um ein Mindset, dem Over-Engineering entgegen zu wirken.

… weil man es kann.

Wie bereits beschrieben, neigen wir als Software Entwickler sehr gerne dazu, die absolute oder die Mehrheits-Lösung zu begünstigen. Sei es, weil wir rein mathematisch dazu in der Lage sind die vermeintlich beste Lösung gedanklich zu interpolieren, oder einfach, weil wir in einer Kultur arbeiten, die absolute und logik-ästhetische Lösungen stärker wertschätzt als wirtschaftliche Ergebnisse.

Bevor das mittlere und obere Management diese Aussage nun allzu sehr feiert, sollten wir nicht vergessen, wer bisher noch am meisten Sorgen damit hat, sich auf agile und iterative Ansätze einzulassen: Sie basieren nämlich ebenfalls auf dem Prinzip von Zwischenergebnissen, der stetigen Verbesserung suboptimaler Zustände auf Grundlage tatsächlicher Fakten. Das soll über die Dauer Kosten verhindern und zu einem idealen Ergebnis führen.

Im Volksmund gibt es dazu ein schönes Sprichwort: „Hinterher ist man immer schlauer.” – durch überschaubare, Iterative Prozesse schaffen wir es viel früher, ein „hinterher“ herbeizuführen.

Wir sollten uns alle ein bisschen mehr und ein bisschen öfter davon freimachen, perfekt arbeiten und perfekt liefern zu wollen. Vor allem, wenn Zweckmäßigkeit zu der Aufgabe angemessenen Ergebnissen führt, mit der alle Beteiligten leben können.


Agile Methoden und der Perfektionismus softwareentwickelnder Menschen – passt das zusammen?

View Results

Loading ... Loading ...
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -