The Software Craftsman – Buch von Sandro Mancuso

Das Buch ist das Standardwerk für die Software Craftsmanship Bewegung. Sandro Mancuso hat als Softwareentwickler erlebt, dass ihm sein Chef den erstellten funktionsfähigen Code einfach gelöscht hat. Es kam ihm mehr darauf an, wie der Code geschrieben ist – dass Code funktioniert sei selbstverständlich. Damit musste sich Sandro Mancuso mit der Art und Weise der Software-Entwicklung neu auseinandersetzen. Zu der Zeit gab es die ersten Gedanken, Softwareentwicklung als Handwerk zu betrachten. Auch dort wurde Software-Qualität über die Lesbarbarkeit von geschriebenem Code definiert. Sandro Mancuso hat sich früh dieser Bewegung angeschlossen. Er ist Mit-Gründer der London Software Craftsmanship Community (2010), die Vorbild für viele andere Software Craftsmanship-Communities geworden ist.

Ich habe das Buch aus der Perspektive eines Learning Professionals gelesen: Was können wir von der Software Craftsmanship Bewegung für die Entwicklung von Menschen lernen?

Im Vorwort von Robert C. Martin steht

„Dieses Buch handelt von Software-Professionalität. Nicht nur von der Professionalität der Programmierer, eher von der Professionalität der gesamten Software-Organisation.“
Und:
„Dieses Buch ist eine Enzyklopädie über das Verhalten, die Kennzeichen und die Struktur einer Organisation, die anstrebt in ihrer Professionalität zu wachsen unter Beachtung der Software Craftsmanship Prinzipien.“

„How it is done is as important as getting it done.“

Sandro Mancuso beschreibt die o.g. Erfahrungen als junger Programmierer bei einem exzellenten Chef, der seine ersten 200 Zeilen Code konstruktiv kritisierte, weil sie für andere nicht nachvollziehbar seien. Der Chef löscht im Gespräch den ganzen Code, und bat um ein besseres Ergebnis. Sein Kommentar: Siehe Überschrift.

Wie wichtig der Autor die ganze Bewegung sieht, beschreibt er mit diesem Satz:

„… Software Craftsmanship verspricht unsere Branche auf den nächsten Level zu heben. Professionalität, technische Exzellenz und Kundenzufriedenheit ist der Haupt-Fokus von Software Craftsmanship.“

„We don´t do Agile. Either we are Agile or we are not.“

Im Kapitel 2 erläutert Sandro Mancuso seine Sicht auf die agile Bewegung und ordnet sie gleichberechtigt neben der Software Craftsmanship Bewegung ein.

Die agile Arbeitsweise sorgt für viele einzelne fertig gelöste Aufgaben, die vom Auftraggeber beurteilt werden können. Das Team steuert sich selbständig, und muss sich als Ganzes verstehen. Die Team-Mitglieder brauchen dafür den Blick aufs Gesamtergebnis, auf das Business, auf den Kunden – nicht nur auf den Code.

Ein schneller Feedback-Loop ist der Schlüssel für agiles Vorgehen. „Die schnelle Reaktion auf das Feedback macht erst wirklich agil“.

Software Craftsmanship ersetzt nicht agiles Vorgehen. Beides ergänzt sich gut. (S.21)

Agile Methoden fokussieren auf

  • Verstehen der Anforderungen
  • Priorisieren der Aufgaben nach Wertigkeit
  • Reduzieren von Bürokratie und Verschwendung
  • Empowering People
  • und schnellen Feedback-Schleifen

Agile Methoden helfen um die richtigen Dinge zu tun.

Bei Software Craftsmanship geht es um Professionalität in der Softwareentwicklung. Software Craftsmanship ist eine Ideologie, die viele Softwareentwickler übernehmen, um besser zu werden, als sie heute sind.

Software Craftsmanship hilft, die Dinge richtig zu machen.

Software Craftsmanship

In Kapitel 3 eine Definition von Sandro Mancuso:

Software Craftsmanship ist ein langer Weg zur Meisterschaft. Es ist ein Mindset, das Softwareentwickler wählen, um

  • zuständig für die eigene Entwicklung zu sein
  • permanent neue Tools und Techniken zu lernen
  • sich dauernd zu verbessern

Bei Software Craftsmanship geht es

  • ums Verantwortung übernehmen
  • um Professionalität
  • um Pragmatismus
  • und um den Stolz auf die eigene Arbeit.

Entstehung und Aussage des Software Craftsmanship Manifestos wird in dem Buch ausführlich dargestellt. Ich verzichte hier darauf, weil ich mich mit dem Manifest in einem anderen Blogpost noch auseinandersetzen möchte.

Die Folgen des Software Craftsmanship Manifestes nach Sandro Mancuso:

Softwarentwickler nahmen es jetzt selbst in die Hand, die Sicht ihrer Branche auf die Softwarentwicklung zu ändern. Sie machten den Kunden klar, dass sie Software gemeinsam mit ihnen erarbeiten wollten, und dass das ganz im Interesse der Kunden sei.

The Software Craftsmanship Attitude

Ein paar Aussagen aus dem Kapitel 4:

  • Dauernd Wege zu finden, um ein besserer Professional zu werden, ist ein lebenslanges Commitment.
  • Unser Haupt-Ziel: Wir helfen unseren Kunden, ihre Ziele so effizient wie möglich zu erreichen.
  • Das Teilen unseres Wissens mit weniger erfahrenen Software Craftsman ist unsere moralische Verpflichtung.

Wer nicht „Factory-Worker“ sein will, der muss sich selber um seine Entwicklung kümmern (Seite 42/43). Das bestehende Arbeitgeber- /Arbeitnehmer-Modell hält Sandro Mancuso für überholt. Es entspringt der Command and Control-Idee aus der Zeit der Industriealisierung. Aber es wirkt nicht mehr bei den “Creative Workers”, wie den Software Craftern.

Nicht der Arbeitgeber ist in der Verantwortung für die eigene Entwicklung, sondern jeder Software Crafter selber. Schön, wenn der Arbeitgeber das unterstützt. Aber wenn nicht, dann finden Software Crafter eigene Wege, sich permanent weiterzuentwickeln.

Im Buch beschreibt er eine ganze Reihe von Vorschlägen, die der eigenen Weiterentwicklung dienen (ab S. 44):

  • Bücher, viele Bücher lesen
  • Blogs lesen
  • Technische Webseiten lesen
  • Experten folgen
  • Lernen mit Sozialen Medien (z.B. Twitter)
  • Machen, Machen, Machen (Guten Code schreiben)
  • Katas machen (Übungen)
  • Pet Projects machen (Projekte ohne Zeitdruck, private z.B.)
  • Zu Open Source beitragen
  • Pair Programming praktizieren (zwei coden gemeinsam an einer Tastatur)
  • User Groups aufsuchen
  • Deliberate Discovery (bewusste Entdeckung, der noch unbekannten Erkenntnisse)
  • Work Life Balance (bewusstes Austarieren beruflicher und privater Tätigkeiten)
  • Creating Time (unsere 24 Stunden am Tag bewusst für die wichtigen Dinge planen)

Culture of Learning

Die Kapitel 5 bis 12 sind nur am Rande für uns Learning Professionals interessant. Aber im Kapitel 13 geht es darum, in einer Organisation die Rahmenbedingungen für eine Kultur des Lernens zu schaffen.

Creating a Culture of Learning:

  • Start a Book Club (Spreche über Deine Erkenntnisse beim Lesen, löse eine Diskussion aus)
  • Have a Tech Lunch (Brown Bag Session)
  • Have Group Discussions (Roundtable)
  • Switch Projects for an Iteration (tausche zeitweise die Personen im Projekt aus)
  • Switch Projects for a Few Hours (tausche die Personen nur für kurze Zeit aus)
  • Conduct Group Code Reviews (Diskutiere mit dem ganzen Team über den Code)
  • Hands-on Coding Sessions (z.B. Katas organisieren)
  • Try running technology-Agnostic Sessions (auf Konzepte und Ideen konzentrieren, nicht auf Technologien)
  • Start Communities of Practice
  • Ermögliche Pet-Project-Time (Zeit für eigene Projekte der Mitarbeiter, an denen sie lernen)
  • Engage with external Technical Communities (Ermuntere Mitarbeiter sich auch in ext. Communities zu engagieren

Aber versuche nicht, alle damit zu erreichen! Menschen sind sehr unterschiedlich und haben ganz verschiedene Strategien zur eigenen Weiterentwicklung.

Fang bei Dir an:

  • Sei selbst ein Vorbild beim Lernen
  • Fokussiere auf die die wollen
  • Einladen, nicht zwingen
  • Nicht versuchen, jeden zu ändern
  • Nicht versuchen es allen recht zu machen
  • Nicht um Erlaubnis fragen
  • Etabliere einen Rhythmus

Etablieren einer Lernkultur ist nicht nur Dein Job. Es ist jedermanns Job!

The Software Craftsman Mission (S. 233)

Software Craftsman sind auf einer Mission:

  • Sie fokussieren sich auf eigene Verbesserungen,
  • investieren dauernd in ihre eigene Entwicklung,
  • lernen, lehren, teilen
  • und liefern wertige Leistungen an ihre Kunden.

Aber die reale Mission der Software Craftsman liefert auch einen Beitrag zur Entwicklung der Software-Branche über Professionalität, Leidenschaft und gute Arbeit. Software Crafter helfen anderen Entwicklern ihr Handwerk besser zu machen, und sind stolz auf das was sie tun und was sie sind.

Das Ziel ist, das Software Projekte überall auf der Welt künftig besser sind als heute.

Software Crafting ist ein Lifestyle, ein Kommitment für Exzellenz. Sei stolz auf Deine Rolle bei der Entwicklung unserer Gesellschaft.

Fazit

Das Buch wirkt überzeugend. Da spricht ein erfahrener Software-Handwerker. Obwohl der sich auch Zuordnungen wie Software-Ingenieur oder Software-Künstler vorstellen kann. Es geht ihm um die innere Haltung. Das persönliche Bestreben immer besser werden zu wollen, steht neben dem Willen, sein Wissen mit Anderen zu teilen.

Das appelliert zunächst an jeden einzelnen Software-Entwickler, und schreibt ihm ganz klar die Verantwortung dafür zu: Software Crafter entwickeln sich selbstgesteuert!

Dafür gibt es zahlreiche bei Software Craftern erprobte Methoden, die Arbeiten und Lernen oft verschwimmen lassen. Einige Methoden dienen ausdrücklich dem Üben. Das bewusste Üben wird in fast allen Branchen weggelassen – was uns auch nachdenklich machen sollte.


Dieser Blogpost ist ein weiterer Baustein meiner Recherche zur Software Craftsmanship Bewegung im Rahmen des CLC-Projektes #MeinZiel23.

Schreibe einen Kommentar

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