Freitag, 19. Juni 2009

Das Problem der eigentumsorientierten Softwareentwicklung

Sind Softwareentwickler abgesonderte Individualisten?

Viele würden jetzt wohl spontan ja sagen. Jedenfalls haben Informatiker gemeinhin den Ruf Individualisten zu sein. Zum Beispiel schreibt Klischeestudent in seinem Blog über Informatiker folgendes:


Ihn in der freien Natur anzutreffen ist weitaus schwieriger, als einen BWLer zu sichten. Informatiker halten sich lieber in geschlossenen Räumen auf. Bevorzugter Lebensraum ist der Keller mit der selbsterbauten und technisch hoch entwickelten Computerecke. Weibliche Vertreter dieser Gattung sind nur schwer zu finden, die Männchen bleiben lieber unter sich und reagieren daher auch meist schockiert, wenn sich weibliche Wesen in ihrer Umgebung befinden. Der Informatiker setzt auf vornehme Blässe und Karohemden, um möglichst unauffällig zu sein. Denn im Gegensatz zum BWLer ist der Informatiker eindeutig ein Einzelgänger! Lebensmittelpunkt: Technik!

Auch Gerald M. Weinberg schreibt in seinem Buch die Psychologie des Programmierers, dass er die meisten dieser Zunft in die Kategorie abgesonderte Individualisten einordnen würde. Ich denke, dass sich die Anforderungen an Softwareentwickler stark geändert haben. Dies hat zur Folge, dass auch die Entwickler andere sind und dieses Vorurteil nicht mehr zutrifft. Kommunikation ist für dieses Berufsbild von immenser Bedeutung.

Trotzdem identifizieren sich viele Softwareentwickler und Programmierer gern und oft mit ihrem Programm. Anders ist es nicht zu erklären, warum einige Programme nach ihren Entwicklern benannt sind.

Auch kenne ich ein Projekt, welches nicht nach Fachlichkeiten, sondern den Namen der Entwickler organisiert wurde. Darüber zu diskutieren ist wohl nicht notwendig.

Aber was ist daran überhaupt das Problem? Es gibt keines, wenn man ein Programm hauptsächlich lesen würde. Aber das geschieht viel zu wenig. Ein Programm muss in erster Linie funktionieren und seine Aufgabe erfüllen. Dies lässt sich leicht überprüfen. Aber was passiert mit einem Softwareentwickler, dessen Programm nicht läuft, wenn es Fehler gibt? Er wäre ja automatisch ein schlechter Programmier.

Dieses Urteil geben sich eigentumsorientierte Entwickler selten. Ist ja auch verständlich. Dies führt zu einer kognitiven Dissonanz. Wikipedia erklärt den Begriff so:


Als Kognitive Dissonanz versteht man in der Sozialpsychologie einen als negativ empfundenen Gefühlszustand, der durch nicht miteinander vereinbare Kognitionen – Wahrnehmungen, Gedanken, Meinungen, Einstellungen, Wünsche oder Absichten – entsteht.

Und dieses Gefühl muss aufgelöst werden oder sollte gar nicht erst entstehen. Der Mensch strebt nach Konsonanz. Deshalb werden viele Dissonanzen schon erahnt und dies führt zu einer selektiven Wahrnehmung. Zum Beispiel wird ein Käufer nach einem Kauf eines bestimmten Produktes selten in Prospekte eines anderen Produktes schauen. Er könnte dann feststellen, dass sein Produkt das schlechtere ist.

In der Softwareentwicklung führt dies zu einer selektiven Wahrnehmung bei der Fehlersuche. Der Programmierer wird in seinem eigenen Code weniger Fehler finden als in fremden Code.

Deshalb ist es wichtig, den Code nicht als “sein” Werk anzusehen. Vielmehr sollte man sich freuen, wenn andere Fehler finden und gemeinsam an dem Code arbeiten. Dies führt bei konsequenter Anwendung zu besserem Code. Pair-Programming zum Beispiel ist eine sehr gute Möglichkeit dies zu erreichen. Jeder ist für jeden Teil des Programms verantwortlich, niemandem gehört der Code! Dies sollte sich jeder Entwickler beherzigen.

Ach ja: könnte bitte jemand diesen Text nach Fehlern durchsuchen, ich finde gerade keine mehr. ;-)







Keine Kommentare:

Kommentar veröffentlichen