Software Craftsmanship - The New Imperative

English CoverSoftware Development Magazine Productivity awardAt the 12th annual Jolt Product Excellence and Productivity Awards the book won a Productivity Award.

The book is now published and is available from Amazon and local bookstores. A Japanese translation is now available from amazon.co.jp, thanks to the hard work of Masaaki Murakami (who also translated The Pragmatic Programmer into Japanese).

Software Craftsmanship is a metaphor that can radically transform the way that we create and deliver software systems, with implications for the way we develop software, manage teams and deliver value to the users.

One of the classical problems in Software Engineering is getting engineers to consistently use effective methods, writes Watts Humphries in "Why Don’t They Practice What We Preach?". For smaller teams, Craftsmanship is a more appropriate metaphor than Engineering for getting developers work more effectively. Craftsmanship has been a model that has been used throughout history to effectively develop and disseminate arts, crafts and technology. By taking a sideways step towards craftsmanship maybe we can eventually advance the state of the art so that we can truly talk about Software Engineering.

This book is unique in that pays attention to the new reality of software development - People are the most expensive resource. Unlike practically all other industries, software is becoming more, not less labor intensive. As the cost of computers has fallen, and computers have become pervasive, our model for developing software has not adjusted to match these new realities.

Looking back into history, the problem of expensive labor and arcane skills was handled by Craftsmanship, with beginners being apprenticed to the craft. By prematurely adopting an engineering metaphor, the software industry has deskilled developers before it has found a way to create an effective software factory.

This book is a call to arms to say that we must insist that developers really know their craft before we trust them to create systems for us.

Some Interesting Ideas to play with before you read the book

Some reviews

Robert Martin of Object Mentor Inc. posted the following on Usenet

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 Software Craftsmanship, McBreen exposes the weaknesses of our current system of software engineering, and proposes an alternative model based the older apprentice/journeyman/master model. McBreen makes the point that building a software project is not akin to product manufacturing. We don't have factories that stamp out software. Rather we have groups of people trying to massage software into place. McBreen likens successful software development to blacksmiths, or silversmiths. To McBreen, software is a craft that takes years to learn, and more years to master. The only way to properly learn the craft is to be taught at the side of a master.

McBreen's thesis emphasises something that is missing from software development today: attention to quality, and attention to expertise. The dotcom frenzy saw thousands of startup firms throwing young untrained bodies at complex software projects. The idea was that a programmer is a programmer is a programmer. The more you have, the faster you get done. McBreen counters this concept by showing that large software systems are better built by small teams comprised of masters, journeymen, and apprentices, than by large teams of plug replaceable programming units.