In the previous episode we looked at a case study on the social harm that can be caused by poor quality software development. In this episode we explore what Software Craftmanship is.
What is Software Craftmanship?
Software Craftmanship is a response by software developers to the many real life problems caused by inadequate software.
The New Imperative
Pete McBreen first coined the term with his 2002 book Software Craftmanship: The New Imperative.
The original idea of Software Craftmanship was that it was a practice that only applied to small teams.
Software engineering was once characterized as being aimed at “managing hordes of ‘average’ programmers working on large teams that continue for years”.
Software Craftsmanship in contrast is about exploiting the productivity differences between individuals and using really small teams of good developers.
After this book was published, it was popularized by Robert Martin, a coauthor of the Agile Manifesto:
McBreen hits the nail on the head! This book is a MUST READ for all CxOs, VPs, Directors, Mangers, and Software Engineers.
It will change the way you think about the software development industry and profession.
In 2002, relatively few people had heard of Agile, and various styles of Agile development were in their early formation and were influenced by this book.
In 2004, the Second Edition of the book Code Complete was published, containing the following chapters in the final part:
- Layout and Style
- Self-Documenting Code
- Personal Character
- Themes in Software Craftmanship
- Where to Find More Information
It is in the nature of software developers to always be looking for ways to improve on the status quo, both in the software itself and the processes involved in generating that software.
Several years after the creation of the Agile Manifesto, ideas for Agile Development were spreading like wildfire. However, some felt that there was a missing part to it.
Just as their has been discontent with traditional waterfall based processes, many felt Agile did not address a key part of high quality Software Engineering.
Specifically, at the Agile 2010 conference, Robert Martin argued that there were not enough programmer focused talks.
There was talk of adding a fifth value statement to the Agile Manifesto. This discussion lead to a new manifesto.
The Software Craftmanship manifesto states:
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.
This manifesto is written in the same structure as the original Agile Manifesto from 2001.
Criticism of Software Craftmanship
Some developers felt that craftmanship was the wrong metaphor to use. Dan North’s post Programming is not a craft advocates programming as a trade instead. This post received a great deal of response, and Dan followed up with On Craftmanship.
Jason Goreman wrote Enough with the Software Holy Wars! claiming we’re all worshipping the same god.
“There is no disagreement that our mutual god’s primary commandment is that Thou Shalt Not Write Software Thy Customer Didn’t Want.” – Jason Goreman
Shortly after this, Martin Fowler published Craftmanship and The Crevasse, stating:
“I’ve long felt that debates about metaphors for software development are tedious. While Metaphoric Questioning has its place I’m fundamentally uninterested in whether software development is a craft, an art, a trade, or a dessert topping.” – Martin Fowler
Professionalism, Pragmatism, Pride
The most recent book on Software Craftmanship is written by Sandro Mancuso, co-founder of the London Software Craftsmanship Community, and subtitled Professionalism Pragmatism Pride
The response on Twitter to the e-book was highly positive, and it is now available in both Paperback and Kindle editions.
2 thoughts on “Why Do We Need Software Craftmanship? – Part 2”
Pingback: The Software Craftsman Book Review | Zombie Code Kill
Pingback: Pauca sed matura | Zombie Code Kill