Direkt zum Hauptbereich

Der Software-Handwerker


Nachdem das Agile Manifest in der Welt der Softwareentwicklung vielen ein Begriff ist und irgendwie jeder 'agil' sein will, macht sich eine weitere Bewegung bemerkbar. Die der Software Craftsmanship mit einem eigenen Manifest.

Aber was ist denn dieses Software Craftsmanship und brauchen wir noch ein weiteres Manifest?



Geschichtlich gesehen gehen die Wurzeln der Software Craftsmanship Bewegung bis ins Jahr 1999 zurück, als Andy Hunt und Dave Thomas "The Pragmatic Programmer" veröffentlichten. 2001 folgte dann "Software Craftsmanship - The New Imperative" von Pete McBreen, welches der Bewegung wohl ihren Namen gab. Aber erst 2008 hat sie begonnen Fahrt aufzunehmen. Damals hat Robert C. Martin (Uncle Bob) einen fünften Wert für das agile Manifest vorgeschlagen: "Craftsmanship over Crap". Im gleichen Jahr erschien auch sein Buch "Clean Code".

Bei einem Bonn Agile Meetup Event Anfang 2011 haben wir versucht für die Bezeichunung Softwarecraftsman eine passende Übersetzung zu finden. Die zwei Hauptbegriffe hierbei waren Handwerker und Kunsthandwerker. Beide scheinen es aber nicht gut zu treffen denn der Handwerker hier teilweise mit einfachen Tätigkeiten verbunden wird und beim Kunsthandwerker kommt dann schnell der Gedanke an unnötige Schnörkel.

Ich habe "craftsmanship" noch einmal nachgeschlagen und Begriffe wie "handwerkliches Können" und "Handwerkskunst" gefunden. Ich denke dies trifft es ganz gut. Jeder Heimwerker kann aus ein paar Brettern einen Schrank bauen. Aber erst jemand der sein "handwerkliches Können" beherrscht wählt die richtigen Bretter mit der entsprechenden Sorgfalt und Augenmaß aus um dann mit den richtigen Werkzeugen einen qualitativen Schrank zu bauen.
Das Nachschlagen von "Craftsman" ergab neben "Facharbeiter" und "gelernter Handwerker" auch den Begriff: "Gewerbetreibender" zum Vorschein. Ein Gewerbetreibender ist ein Geschäftsmann und ist nicht nur daran interessiert zufriedene Kunden zu haben sondern auch nicht mehr zu liefern als Bezahlt.

Ich denke genau darum geht es: Nicht einfach eine Software zu erstellen die irgendwie ihren Zweck erfüllt sondern die gleichzeitig gut gearbeitet ist ohne unnötige Schnörkel zu haben.

Robert C. Martin beschreibt die Beweggründe der Bewegung und ihre Motivation so:
"One thing; and one thing only: We are tired of writing crap."
Brauchen wir denn wirklich eine weitere Bewegung dafür könnte man nun fragen?

Wenn man sich das agile Manifest und vor allem die gern übersehenen 12 Prinzipien dahinter ansieht so kann man zu dem Schluss kommen, dass es sich nicht um eine neue Bewegung handelt, sondern nur um eine SubBewegung die besonders an eins der zwölf Prinzipien erinnert:
Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
In einer Zeit in der die sichtbaren SCRUM-Hüllen gern genommen werden um damit endlich einen "agilen" Prozess zu haben ist die Software Craftsmanship Bewegung zumindest mit der Hoffnung verbunden, dass auch in der Software was vom agilen Mainstream ankommt.

Arbeiten wir dran!

Auch wenn in anderen Ländern die Bewegungen zu dem Thema schon verbreiteter sind gibt es in Deutschland erste Initiativen welche sich dem Thema annehmen;

  • Clean Code Developer Eine Initiative welche Clean Code als Fundament der professionellen Softwareentwicklung sieht und einen Weg zur Einführung der daraus resultierenden Prinzipien aufzeigt.
  • Softwerkskammer Lokale UserGroups zum Thema SoftwareCraftsmanship
  • SoCraTes Das Software Craftsmanship and Testing Camp ist der Geburtsort der Softwerkskammern
Hinweis: Dies ist ein überarbeiteter und erweiterter Beitrag aus meinem alten Blog.

Kommentare

  1. Hi Christoph,

    danke für diese knackige Zusammenfassung!

    Was die Entstehung des Namens angeht, noch eine kleine Ergänzung von mir: Bereits 2001 hat Pete McBreen das Buch "Software Craftsmanship - The New Imperative" geschrieben (mit einem Vorwort von Dave Thomas - hier schließen sich also die Kreise).

    Viele Grüße
    Nicole

    AntwortenLöschen
    Antworten
    1. Danke Nicole! Das Buch kannte ich noch nicht. Ich habe den entsprechenden Absatz angepasst.

      Löschen

Kommentar posten

Beliebte Posts aus diesem Blog

Eine Retro im Kreis

Für die letzte Retro habe ich die Tische und Stühle alle beseite gestellt um dann mit Klebeband (Malercrep) drei unterschiedlich große Kreise um einen Mittelpunkt zu kleben. Der innerste Ring war groß genug, dass das gesamte Team da drin Platz finden konnte. Für die erste Phase der Retro habe ich Kärtchen mit den Zahlen 50, 40, 30, 20 in den Ringen ve rteilt. Die 50 in der Mitte und dann absteigend nach außen. Um so eine Zielscheibe anzudeuten.

Mit dem Rücken am Tellerrand

Es ist gut auch mal über den Tellerrand zu schauen. Manchmal sind wir so in "unserer Welt" gefangen, dass wir den Rest gar nicht mehr wahr nehmen. Zum Beispiel muss ich mich immer wieder daran erinnern, dass nicht alle Menschen mindestens ein Smartphone haben. Oder das agile noch lange nicht Mainstream ist. Nur weil wir uns in einem Umfeld bewegen, in dem die Dinge so scheinen wie sie sind, heißt das noch lange nicht, dass dem auch so ist. Ein Typisches Beispiel für den Unterschied von Realität und Wahrnehmung der Realität. Aber auch um neuen Ideen eine Chance zu geben, welche scheinbar nicht funktionieren können, weil sie nicht in unsere Gedankenwelt passen ist es sinnvoll ab und an über den Tellerrand zu schauen. Heute habe ich noch einen Tweet, welcher darauf hinweist gesehen: Wenn uns das einmal bewusst geworden ist, dann neigen wir (oder zumindest geht es mir so) dazu möglichst oft über diesen Tellerrand zu schauen. Dabei kann es aber passieren, dass wir so

Der Wasserfall ist immer noch vorherrschend in der Softwareentwicklung

In den letzten Jahren sind viele "neue" Bewegungen auf der Bildfläche des Mainstream-Bewusstseins der Softwareentwicklung erschienen. Und viele aktuelle Studien berichten, dass die Agilität den Wasserfall abgelöst hat. In allen Softwareunternehmen und viele der Entwickler die ich treffe reden zumindest viel über Agilität. Wenn aber mal einen Schritt zurück macht sieht das (ideal) Bild eher so aus: Die neue Lösung wird mit Design Thinking gefunden und definiert. In der Entwicklung ist dann eher die Rede von agile (meist Scrum) und selten SoftwareCraftsmanship. Von der Betriebsseite heißt es nun DevOps. Aber dazwischen gibt es immer noch Brüche und es existiert keine Ganzheitlichkeit. Jahrzehnte lang haben wir in der Softwareentwicklung geglaubt und es so auch allen Kunden beigebracht, dass die "Cost of Change Curve" gilt und daher der Wasserfall als Vorgehen perfekt ist. (Was nun was bedingt, lass ich mal dahingestellt) Dadurch haben sich natürlich auch di