Montag, 8. Juni 2009

Psychologie in der Informatik

Auf dem 1. Architecture.NET Open Space in Düsseldorf gab mir ein Track besonders zu denken: Psychologie in der Softwareentwicklung.



Welche Auswirkungen hat die Psychologie für die Architektur? Welche Rolle spielen Hierarchie und Erfahrung? Wieviel Kreativität steckt in Softwareentwicklern oder wieviel sollte in Ihnen stecken? Ist der Beruf eines Softwareentwicklers eher ein praktischer oder eher ein kreativer?

All diese Fragen sind nicht einfach zu beantworten und waren Teil der Diskussion beim Open Space. Das wohl meistzitierte Buch in diesem Bereich ist sicher "Die Psychologie des Programmierers" von Gerald M. Weinberg welches ich gerade lese. Ich werde demnächst sicher dazu noch etwas bloggen.

Aber als erstes Thema möchte ich hier die Frage diskutieren, wieviel besteht der Beruf des Softwareentwicklers aus Handwerk und wieviel ist Kunst?

Dazu muss man zuerst erörtern, wieviel Handwerk man benötigt um künstlerisch tätig zu sein. Ich denke, dass man ziemlich viel erlernen kann und durch Übung festigen muss. Ich stelle mir gerade einen Maler vor. Sicher gibt es hier viele Genies. Aber auch die mussten die Grundlagen erst erlernen und immer wieder proben. Es gibt sehr viele verschiedene Pinseltechniken und die zu erlernen ist harte Arbeit. Ähnlich sehe ich es auch mit Informatikern.

Viel ist harte Arbeit. Es müssen ersteinmal die Grundlagen erlernt und immer wieder geübt werden. Aber an einem gewissen Punkt gehört auch in der Softwareentwicklung Kreativität zum täglichen Werkzeug. An vielen Stellen liest man immer wieder von weichen Faktoren, die sich nicht mit Metriken ausdrücken lassen. Zum Beispiel wenn Martin Fowler in seinem Buch
Improving the Design of Existing Code
von Smells redet. Einige von diesen Gerüchen sind sicher messbar, wie zum Beispiel wenn die Anzahl der Zeilen einer Methode eine bestimmte Anzahl überschreitet. Andere Smells lassen sich nur mittels Gefühl und/oder Erfahrung erkennen. Man hat das Gefühl, dass hier irgendetwas nicht so gut ist ... oder eben nicht. Hier kommt eben die Kreativität ins Spiel. Und die kann man nur bedingt erlernen.

Also liebe Softwareentwickler: Setzt euch hin und arbeitet. Arbeitet hart. Arbeitet an Euch und erlernt euer Handwerk und zwar gut. Dafür gibt es genügend Hinweise, wie dies zu erreichen ist. Zum Beispiel als Clean Code Developer. Aber unterdrückt niemals eure Kreativität. Sie wird gebraucht!

1 Kommentar:

  1. Das mit der Kunst kommt ja immer wieder mal hoch. Ein hübscher Gedanke, ein schönes Bild - aber am Ende passt es einfach nicht. Der simple Grund: Künstler wollen etwas aussagen. Das macht ihre Künstlerhaftigkeit aus. Kunst bildet eben nicht möglichst kunstvoll ab, sondern geht darüber hinaus. Kunst ist nicht Kunsthandwerk. Kunst hat einen intellektuellen (oder moralischen) Anspruch. Kunst ist per definitionem nicht funktional (oder nur nebenbei). Ihr Interesse liegt eben in der Nichtfunktionalität.

    Und das sehe ich beim Programmieren so gar nicht. Programmierer haben eben keinen Anspruch jenseits des Zwecks ihrer Software. Code macht keine Aussage über die Welt. Code reflektiert nicht das Erleben seines Entwicklers. Code blickt nicht tiefer oder dahinter.

    Code mag Selbstverwirklichung sein. Aber Künstler wollen sich nicht nur selbstverwirklichen, sondern eben immer auch wirken. Programmierer wollen nicht wirken.

    Deshalb hat für mich die Metapher vom Programmierer als Künstler nie wirklich gestimmt. Programmierer als Kunsthandwerker - ok, darüber ließe sich reden ;-) Klingt aber lange nicht so sexy, oder?

    -Ralf

    AntwortenLöschen