JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile
X

#Docker-Woche auf JAXenter: Top-Artikel, Tutorials & Videos in unserem Docker-Special!

Die Kunst des Programmierens... – oder wie gut ein Entwickler wirklich ist!

Die Kunst des Programmierens... – oder wie gut ein Entwickler wirklich ist!

Stellen Sie sich vor, Sie engagieren einen Klempner, um Ihre Rohre im Keller verlegen zu lassen. Vor, während und nach der Arbeit hört der gute Mann nicht auf, von der ästhetischen Schönheit seiner Rohrverlegerkunst zu schwärmen und zu erklären, warum er gerade dieses eine Rohr in diesem bestimmten Winkel zum anderen gesetzt hat.

Genauso nervtötend wie dieser Primadonna-Rohrverleger sind Entwickler, die ihre Arbeit als Kunst missverstehen!

Manifesto for Software Craftsmanship

Diese Metapher stammt aus dem viel beachteten Artikel "Programming is not a craft" von Dan North, selbsternannter "Agile troublemaker" und Begründer des Behavior-Driven-Development-Ansatzes, in dem das Manifesto for Software Craftsmanship kritisiert wird.

Folgende Maxime schreiben sich Unterzeichner des Manifests wie Kevlin Henney, Bob Martin, Corey Haines und Glenn Vanderburg auf die Fahnen:

  • Not only working software, but also well-crafted software
  • Not only responding to change, but also steadily adding value
  • Not only individuals and interactions, but also a community of professionals
  • Not only customer collaboration, but also productive partnerships

Das Problem, das North mit den Ideen aus dem Manifest hat, ist, dass Software-Projekte seiner Meinung nach allzu oft gerade wegen eines übertriebenen Entwickler-Egos scheitern - prominente Beispiele aus der jüngsten Geschichte seien Webservices und J2EE gewesen. Und dabei sei die Idee der Softwareentwicklung als Kunst nicht ganz schuldlos!

Gute Programmierer

Man kennt das Problem sicherlich auch aus kleineren Projekten: Bestimmte Entwickler greifen aus ästhetischen statt pragmatischen Gründen auf eine bestimmte Technologie zurück - und handeln sich damit nur Probleme ein.

Für North glänzen wirklich gute Programmierer nicht durch eine ästhetische Architektur (wie bei einer Kathedrale), sondern durch die effiziente Funktionsfähigkeit ihrer Software - etwa durch die Fähigkeit, Informationen auf effiziente Art und Weise von einem Punkt A dahin zu bringen, wo sie gerade gebraucht werden. Oft sei es das Vermögen, die Einfachheit eines Prozesses zu erkennen und programmatisch umzusetzen, auf die es ankomme.

A truly skilled programming team can deliver amazing business results in insanely short amounts of time. [.] It takes a real expert - a real craftsman - to see the elegant simplicity buried away inside the mess we call enterprise software, for instance, and tease it out. Dan North

Doch gerade auch gute Programmierer verlieren leider oft diese Grundfunktion guter Software aus den Augen - und das häufig, weil sie den Ideen eines "Manifesto for Software Craftsmanship" zu großen Raum geben.

Software practitioners - especially, ironically, the good ones - often lose sight of this. They fall in love with the software itself and start thinking of themselves as craftsmen of software. Dan North

Wie gut ist ein Entwickler wirklich?

North kommt es eigentlich auf ein weiter gefasstes Problem an: Das beschriebene Missverständnis, Software-Entwicklung sei eine Art Kunst, ist insbesondere dann ein Problem, wenn es darum geht, wirklich professionelle und engagierte Entwickler von der Schar der Durchschnitts-Hacker zu differenzieren, die ihre Arbeit nur als Job zum Geldverdienen verstehen. Die Softwareindustrie sei in der Situation, dass in der gesamten Entwicklerschaft ein riesiges Leistungsgefälle bestehe, es aber eigentlich keine allgemein anerkannte Methode gebe, zu bestimmen, wie gut ein Entwickler wirklich ist.

A really great programmer [...] can out-perform a doing-it-for-the-money programmer by orders of literally hundreds, delivering in hours or days what would take an average developer weeks or months. Dan North

As a buyer of software solutions, wouldn't you want to know your systems were being built by master craftsmen rather than day jobbers? You're paying for this and you deserve some kind of reassurance. Let's figure out how to provide it. Dan North

Der Begriff der "Schönheit einer Architektur" helfe bei dem Problem, die Entwickler-Spreu vom Weizen zu trennen, nicht weiter. Denn Softwarekünstler kann sich letztlich jeder nennen und schnell in die Fachsimpeleien über die Schönheit einer Softwarearchitektur mit einsteigen.

Deshalb fordert North, sich über wirkliche Kriterien Gedanken zu machen, wie die Arbeit eines Entwicklers qualitativ zu bemessen sei. Und hierbei sollten Begriffe wie "Ergebnisorientiertheit" und "Kundenzufriedenheit" eine Rolle spielen.

I would love to see someone rewrite the Software Craftsmanship Manifesto in terms of getting results and delighting customers. Dan North

Der Entwickler im Kellerloch

Wie die Rohre im dunklen Kellerloch laufen, interessiert den Hausbesitzer nicht - Hauptsache sie erfüllen ihren Zweck zuverlässig. Genauso wenig interessiert den Auftraggeber einer Software, mit welcher internen Schönheit sein gewünschtes Projekt ausgestattet ist.

In the same way I want an expert electrician wiring up my house rather than a cowboy, I want an expert programmer enabling my business. What I don't want, however, is a prima donna plumber who insists on talking about the elegance, beauty or art of plumbing. Dan North

Wie stimmig ist Dan Norths Metapher?

Aufmacherbild: smiling senior plumber at work von Shutterstock / Urheberrecht: gualtiero boffi

Kommentare

von Sebastian Schneeland (Unveröffentlicht) am

Klingt für mich nicht wirklich überzeugend. Ja, das Problem mit dem Entwickler-Ego existiert, aber ich halte es ehrlich gesagt für nicht so stark ausgeprägt.
Abgesehen davon: ja, Software-Entwicklung ist vielleicht keine Kunst, aber Handwerk beschreibt es doch ganz gut. Und genauso, wie ich nicht will, dass meine Hausinstallation nur von Gaffertape zusammengehalten wird, möchte ich keine Software, die nur durch üble Hacks funktioniert.

von Christian Frommeyer (Unveröffentlicht) am

Das scheint mir ein typischer Fall von "man kann das übertreiben, also ist es falsch" zu sein. Dabei kommt dann heraus, dass das Kind mit dem Bade ausgeschüttet wird. Genau wie mich sehr wohl interessiert wie bei mir Rohre und Kabel verlegt sind, weil das bei der Wartung wichtig ist, spielt es bei allem anderen als Wegwerfsoftware auch eine Rolle, ob die Software ordentlich gebaut wurde.

Just my 0,02€

von Onkel schlimmer... (Unveröffentlicht) am

So So ein aufgeräumtes Rohrnetz, das mann schnell warten kann, wo man das System nicht erst mal abreißen muss nur um an ein Rohr zu kommen, hat keinen Wert, genauso wie effizente einfache und schlüssige (SW)-Architektur???
Kunst kann man sehrwohr auch als Liebe zum Detail verstehen. Aber auch als Punk-Art, die bestehendes durch Überhöhung zur Diskusion stellt...
Wer nicht an die Angemessenheit zun zweckdienlichkeit seines (wirtschaftlichen) und (künstlerischen) Schaffen denkt ist zu Recht ein Querulant. Das aber ist aber keine Kunst.
Onkel schlimmer Finger

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).