MeinZiel23: Entwicklung der Software Craftsmanship – erklärt von Patrick Cornelißen

Einen ersten Überblick zum Thema habe ich ja schon aus dem “Macht der Craft” Podcast mit Andy Fischer bekommen. Bei meiner Recherche ist mir aber auch ein aufgezeichneter Vortrag von der Free und Open Source Conference “froscon 2012” von Patrick Cornelißen aufgefallen. 2012, da war die Software Craftsmanship-Bewegung ja noch ganz jung.

https://media.ccc.de/v/froscon2012-933-software_craftsmanship_was_ist_das

Patrick Cornelißen lebt als Software-Entwickler selbst den Open-Source-Gedanken: Auf der Homepage seines Unternehmens Orchid steht eine „Unabhängigkeitserklärung“:
Fairness ist uns wichtig! Daher erhalten Sie die von uns erstellten Lösungen auch während der Entwicklung unter einer freien Lizenz und können über die für Sie erstellte Software frei verfügen

Patrick Cornelißen ist Teil der Software Craftsmanship Bewegung und hat die “Softwerkskammer Düsseldorf” mitgegründet.

Aussagen aus dem Vortrag

Im Hauptteil seines Vortrages auf der froscon 2012 erläutert er ausführlich die Entstehungsgeschichte der Software Craftsmanship-Bewegung:

1992 kam der erste Anstoß durch einen Beitrag von Jack Reeves, der erstmals den Gedanken aufbrachte, Softwareentwicklung sei auch zum Teil Handwerk.

1995 erscheint das Buch “Design Patterns”, das Vorschläge zur Wiederverwendung von Software-Teilen macht

1996 wird “Extreme Programming” geboren. Damit wird das iterative Vorgehen in kleinen Schritten, gemeinsam mit dem Auftraggeber, eingeführt

1999 erschien das Buch “The Pragmatic Programmer – From Journeyman to Master” von Andrew Hunt und David Thomas.  Der Untertitel “Vom Gesellen zum Meister” war der nächste Hinweis auf eine handwerkliche Tätigkeit bei der Softwareentwicklung.

2001 entsteht das agile Manifest. Der Fokus liegt auf der Organisation der Arbeit und auf den dafür nötigen Soft-Skills

2008 erschien das Buch Clean Code von “Uncle Bob”, Robert C. Martin: Man muss gut programmieren, sauber dokumentieren, …

2008 hat sich “Uncle Bob” einen fünften Aspekt zum agilen Manifest gewünscht: “Craftsmanship over crap”. Später formulierte er vornehmer: “Craftsmanship over Execution”.

2011 schreibt Peter Norvig einen Artikel: Teach yourself programming in 10 years. Am Beispiel von Musikern (Mozart, Beatles) macht der deutlich, dass es viel Praxis (Übung) braucht, bis man gut programmieren kann.

Im Dezember 2008 gibt es den Craftsmanship Summit: 35 Leute haben über Software Craftsmanship geredet. Das war die Geburtsstunde der Bewegung. Daraus entstand auch die Idee für das Software Craftsmanship Manifest.

2009 wurde das Software Craftsmanship Manifest veröffentlicht:
Schon der Einleitungssatz stellt das Lernen, das Üben und das Weitergeben von Wissen heraus.


Software Craftsmanship Manifest

Als engagierte Software-Handwerker heben wir die Messlatte für professionelle Softwareentwicklung an, indem wir üben und anderen dabei helfen, das Handwerk zu erlernen.

Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:

Nicht nur gut funktionierende Software – sondern auch gut gemachte Software

Man muss seine Tools kennen, seinen Job richtig gut machen, Üben, Üben, Üben!
Musiker spielen auch nicht nur auf Konzerten. Vorher üben die!
Man sollte viele Probleme X-mal gelöst haben, damit man es auch wirklich kann

Nicht nur auf Veränderungen reagieren – sondern auch ein stetige Wertschöpfung

Ein guter Handwerker lernt, dass ein Arbeitsplatz nachher sauber ist. Das macht er auch zwischendurch immer mal wieder. Das kann man bei der SW-Entwicklung genauso machen, gerade wenn es viele Änderungen gegeben hat.

Nicht nur Individuen und Interaktionen – sondern auch Gemeinschaft von Fachleuten

Nicht nur innerhalb des Projektes miteinander reden, auch außerhalb. Ich muss mich mit anderen austauschen, bei Konferenzen oder Coderetreats oder in Communities. Nicht nur das Zuhören bringt mich nach vorne: Wenn ich einen Beitrag bringe, dann bereite ich mich intensiv vor und lerne viel dabei. Austausch ist keine Einbahnstraße.

Nicht nur die Zusammenarbeit mit dem Kunden – sondern auch fruchtbare Partnerschaften

Nicht nur erfüllen, was der Kunde will, sondern mit ihm erkunden, was er wirklich braucht.


  • Im April 2009: Craftsman Swap: Erster Versuch, die alte Handwerkstradition des woanders Mitarbeiten in der SW-Entwicklung zu beleben: Zwei Softwareentwickler aus verschiedenen Unternehmen haben ihre Arbeitsplätze für eine Zeit lang gewechselt.
  • Corey Haines hat sich in Amerika tatsächlich 3 Monate lang auf die Walz begeben: Ist zu Firmen gegangen, hat gesagt, ich will bei Euch als Softwareentwickler mitarbeiten, will keinen Lohn, nur Essen und Unterkunft – so wie es die Handwerker im Mittelalter auch machten (nur länger).
    Hier ein Auszug aus seiner Ankündigung auf dem Tour-Blog am 30.4.2009:

    What the heck is my pairing tour? Well, the basic premise is that I spend between 1-5 days with people, usually around 2-3, pair-programming on whatever they want to work on. What do I get out of it? Room and Board! Yup, they provide me with a place to sleep and food while I’m with them. That’s it, a very simple exchange.
  • Im Oktober 2009 erschien das Buch Apprenticeship Patterns: Was muss ich tun um als „Software-Lehrling“ besser zu werden?
  • 2009 fand auch die erste Software Craftsmanship-Konferenz in Amerika statt. Erstmals ging es auf einer Konferenz ausschließlich um das Thema Software Craftsmanship.
  • Im Mai 2009 gab es ein erstes SW Craftsmanship Seminar in London.
  • Im Dezember 2009 wurde die erste SW Craftsmanship-Community außerhalb der USA gegründet: In Israel.
  • 2010 nächste SW Craftsmanship Konferenz und wieder haben zwei ihre Arbeitsplätze zum Lernen getauscht.
  • 2011 folgte schon die erste SoCraTes in Deutschland. Dort wurde auch die „Softwerkskammer“ gegründet.
  • 2011 lief auch der erster Global Day of Coderetreat – an 90 Städten der Welt. Der Ablauf in etwa:
    Löse ein Problem in 45 Minuten
    Rede dann mit anderen drüber
    Werf es weg
    Fange erneut mit der Lösung an
    und das 6 bis 7 mal am Tag.
    Man geht dahin, um einen Tag lang zu lernen, mit anderen zusammen. Bringt einen handwerklich sehr gut nach vorn.
  • Neben den Code Retreats haben sich noch Code Dojos etabliert:
    Code Dojos bilden den Rahmen für das wieder gemeinsame Üben an verschiedenen Katas (Übungsaufgaben). Beschreibung und Kata-Vorschläge: https://codingdojo.org/
  • Code Dojos gibt es sogar für Kinder: https://coderdojo.com/de-DE

Am Ende seines Vortrages gibt Partick Cornelißen noch den Tipp, sich in Open Source Projekten zu engagieren: „Wo kann man besser lernen als in Open Source-Projekten?“ fragt er. Man hat keinen Projektmanager, keinen Zeitdruck, und man ist gezwungen den Code so zu schreiben, dass andere ihn lesen können. Dabei wird man als Experte sichtbar.

Zusammenfassend gilt für die Software Craftsmanship-Bewegung:

Lerne Deine Tools / Verbessere Deine Skills / Lerne Leute kennen / Hab Spaß!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert