oose
Komm am 21.06. auf unseren oose.campus zum perspectives-festival.de 🥳
DeutschDeutsch

Craftsmenship vs. Scrum/Lean

Blog offline

Dieser Artikel stammt aus unserem Blog, der nicht mehr betreut wird. Für Neuigkeiten zu oose und interessante Inhalte zu unseren Themen, folgt uns gerne auf LinkedIn.

Schon vor einigen Wochen entbrannte eine mehr oder weniger spannende Diskussion zwischen Dan North, Robert Martin, Martin Fowler und einigen anderen bekannten Gesichtern im Software-Dschungel. Dabei drehte es sich grob um die Gefahren der Software-Craftsmenship-Bewegung und die potentielle Bedrohung einiger agiler Prinzipien. Nachdem Martin Fowler in seinem gestrigen Vortrag in Hamburg noch einmal seine Meinung und Besorgnis kundtat, verliere ich hier auch noch ein paar Worte darüber…

Zum Kontext

Software-Craftsmenship ist eine, von Robert Martin stark getriebene Bewegung, die bestimmte Werte für Programmierer und Designer propagiert und so Softwarequalität im Allgemeinen verbessern will. Man soll als Entwickler Qualität abliefern wollen und stolz auf seine Arbeit sein. Nachdem zunächst ein 5. Wertepaar für das agile Manifest vorgeschlagen wurde („Craftsmanship over Crap“ oder so ähnlich), entstand wenig später ein eigenes Manifest für Software-Kunsthandwerker (http://manifesto.softwarecraftsmanship.org/). Die Bibeln der Bewegung sind wohl „The Pragmatic Programmer“ (Hunt, Thomas) und „Clean Code“ (Robert Martin).

Zu Agilität, Scrum und Lean verkneife ich mir Mal einen historischen Abriss. Nur so viel: das agile Manifest ist gerade 10 Jahre alt geworden (Glückwunsch!).

Die Diskussion

Was den Stein nun ins Rollen brachte, ist ein Blogeintrag von Dan North („Programming is not a craft“). Eine Zusammenfassung des seit dem Geschehenen gibt es von Martin Fowler: http://bit.ly/eWZe9g. Mittlerweile glauben viele, es bestehe die Gefahr, dass sich Entwickler und Designer so sehr auf „ihr Handwerk“ konzentrieren, dass sie den Kunden vergessen und so agile Prinzipien vernachlässigen. Martin Fowler sprach das gestern noch einmal an und obwohl ich seine Einschätzung teile, dass die Craftsmenship Bewegung vor allem deshalb so populär ist, weil Scrum und Lean häufig als Management oder Organisationsthema gesehen werden und Entwickler deshalb dankend einen „eigenen“ Trend aufnehmen, bin ich mit seiner Schlussfolgerung nicht ganz einverstanden: Er macht eine wachsende „Kluft“ aus, die sich zwischen den neu ernannten Kunsthandwerkern und den anderen Projektbeteiligten auftut. Diese Kluft hätte es im Gegensatz zu Scrum und Lean bei XP nicht gegeben – dort hatten ja auch Entwickler ein Thema. Nicht nur Projektmanager.

Nun mag es sein, dass Scrum nicht für jeden Entwickler das zentrale Thema ist und einige Craftsmen „ihren Code“ auch schön und qualitativ hochwertig schreiben wollen. Auf der anderen Seite ist Code auch das was schließlich zum Kunden wandert, Qualität ist eines der wichtigen agilen Prinzipien und wenn wir Anforderungen vom Kunden bekommen müssen wir auch wissen wie wir Code schreiben damit wir diese Anforderungen erreichen. Die Prinzipien im Dunstkreis der Craftsmenship-Bewegung drängen auf Erweiterbarkeit, Flexibilität, Testbarkeit und Verständlichkeit. Dass diese Qualitäten nicht überall in einer Anwendung in 100%-Ausprägung Sinn machen ist vielen klar – und trotzdem möchte ich in einem Scrum-Projekt Entwickler haben, die wissen wie sie diese Qualitäten erreichen wenn sie gefordert sind. Wenn Martin Fowler, an anderer Stelle des gestrigen Vortrags, bemerkt, dass selbst nach 40 Jahren Objekt-Orientierung noch prozedurales Java geschrieben wird, finde ich das ein starkes Argument für eine Craftsmenship-Bewegung – egal ob der Name jetzt gut ist oder nicht. Natürlich sollte man weder die Kunden noch die Domäne vergessen, doch selbst das ist in Prinzipien von Clean Code und diversen Verweisen auf Domain Driven Design enthalten und ein priorisierter Backlog, regelmäßige Kommunikation, gemeinsame Arbeit am Problem und andere Praktiken aus Scrum und Lean lenken Entwickler auch in diese Richtung. Agile Entwickler sind motivierte Individuen mit Courage – die können gutes Codieren und Agilität auch gemeinsam leben… oder?