Software Craftsmanship
Definition
Wikipedia:
Software Craftsmanship (englisch für etwa „Software-Handwerkskunst“ oder „Softwerkskunst“) ist eine Bewegung in der Softwareentwicklung, die sich mit der Arbeitsweise und Wahrnehmung des Berufsstandes der Softwareentwickler beschäftigt. Ziel der Bewegung ist es, die Softwareentwicklung als eigenständige Profession, als Handwerk (und nicht als Ingenieursdisziplin) wahrnehmbar zu machen und die Bewertung von Softwareprojekten nach Entwicklerverantwortlichkeiten und nicht nur unter rein finanziellen Gesichtspunkten vorzunehmen.
Wikipedia (2023-02-20)
We are tired of writing crap.
The Software Craftsman: Professionalism, Pragmatism, Pride:
Software craftsmanship is a long journey to mastery. It’s a mindset where software developers choose to be responsible for their own careers, constantly learning new tools and techniques and constantly bettering themselves.
Manifesto
As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:
- 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
That is, in pursuit of the items on the left we have found the items on the right to be indispensable.
Manifesto for Software Craftsmanship (written in 2009)
→ Erweiterung des Agile Manifesto#Manifesto for Agile Software Development
Was macht Software Craftsmanship aus?
- ständiges Training
- Coding Dojos
- Berücksichtigung der essentiellen Aspekte des Software Engineerings
- Requirements Engineering
- Qualitätssicherung
- …
- Vorleben von Werten
- Disziplin: Einhaltung von Prinzipien wie Clean Code
- Zuverlässigkeit: Einhaltung von Zusagen oder, wenn das nicht möglich ist, frühzeitig transparent machen
- Nachhaltigkeit: Technische Schulden erkennen und abbauen
Langlebige Softwarearchitekturen: Software Architecture Sustainability
Kritiken
Programming is not a craft by Dan North
Softwareentwicklung ist kein Handwerk:
- die Zugangsbeschränkungen sind zu niedrig, jeder kann Programmierer werden
- Industriezweig ist zu jung
- erstellten Produkte tragen nicht die Schönheit von Handwerksprodukten
Fehlende Aspekte im Manifesto:
- "Ergebnisse erzielen"
- "Kunden erfreuen"