Software craftsmanship is an approach to software development that emphasizes the coding skills of the software developers themselves. It is a response by software developers to the perceived ills of the mainstream software industry, including the prioritization of financial concerns over developer accountability.
Historically, programmers have been encouraged to see themselves as practitioners of the well-defined statistical analysis and mathematical rigor of an engineering approach with the connotations of predictability, precision, mitigated risk and professionalism. This perspective led to calls for licensing, certification and codified bodies of knowledge as mechanisms for maturing the field.
The Agile Manifesto, with its emphasis on "individuals and interactions over processes and tools" questioned some of these assumptions. The Software Craftsmanship Manifesto extends and challenges further the assumptions of the Agile Manifesto, drawing a metaphor between modern software development and the apprenticeship model of medieval Europe.
The movement traces its roots to the ideas expressed in written works. The Pragmatic Programmer by Andy Hunt and Dave Thomas and Software Craftsmanship by Pete McBreen explicitly position software development as heir to the guild traditions of medieval Europe. The philosopher Richard Sennet wrote about software as a modern craft in his book The Craftsman. Freeman Dyson, in his essay "Science as a Craft Industry", expands software crafts to include mastery of using software as a driver for economic benefit:
- "In spite of the rise of Microsoft and other giant producers, software remains in large part a craft industry. Because of the enormous variety of specialized applications, there will always be room for individuals to write software based on their unique knowledge. There will always be niche markets to keep small software companies alive. The craft of writing software will not become obsolete. And the craft of using software creatively is flourishing even more than the craft of writing it."
Following initial discussion, conferences were held in both London and Chicago, after which, a manifesto was drafted and put online to gather signatories. This was followed by the development of practices to further develop the movement including the exchange of talent in "Craftsman Swaps" and the assessment of skills in "Craftsmanship Spikes"
In 1992, Jack W. Reeves' essay "What Is Software Design?" suggested that software development is more a craft than an engineering discipline.
In 1999, The Pragmatic Programmer was published. Its sub-title, "From Journeyman to Master", suggested that programmers go through stages in their professional development akin to the medieval guild traditions of Europe.
In 2001, Pete McBreen's book Software Craftsmanship was published. It suggested that software developers need not see themselves as part of the engineering tradition and that a different metaphor would be more suitable.
In his August, 2008, keynote at Agile 2008, Bob Martin proposed a fifth value for the Agile Manifesto, namely "Craftsmanship over Crap". He later changed his proposal to "Craftsmanship over Execution".
In December, 2008, a number of aspiring software craftsmen met in Libertyville, Illinois with the intent of establishing a set of principles for Software Craftsmanship.
On February the 26th, 2009, the first international Software Craftsmanship Conference was held in London.
In March, 2009, after ongoing conversation, a summary of the general conclusions was decided on. It was presented publicly, for both viewing and signing, in the form of a Manifesto for Software Craftsmanship.
In May, 2009, Enrique Comba Riepenhausen started The Wandering Book initiative. The Wandering Book is a book that travels from craftsman to craftsman capturing the current thinking about the Zeitgeist of the Software Craftsmanship movement.
In August, 2009, the first Software Craftsmanship North America conference was held in Chicago.
In October, 2009, the book Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman was published by O'Reilly
In December, 2009, Obtiva published the idea of Software Craftsmanship Spikes to accompany Craftsman Swaps.
In December, 2009, the Israeli Software Craftsmanship Community was founded.
In August, 2010, the London Software Craftsmanship Community was founded.
In January, 2011 the first Utah Software Craftsmanship Group meeting was held.
In September, 2011 International Software Craftsmanship and Testing Camp Unconference was held in Johannesberg, Bavaria
Following SoCraTes 2011, several Software Craftsmanship communities have been founded: the Paris Software Craftsmanship Community was founded in October 2011, at about the same time the Softwerkskammer started with 6 Software Craftsmanship Communities in Germany.
In June, 2012, the Cambridge Software Craftsmanship Community was founded.
In January 2013, Sandro Mancuso's Software Craftsmanship: Professionalism Pragmatism and Pride book was released. It gives a fresh perspective on Software Craftsmanship; reporting the main facts that happened since Peter McBreen's book (2001) and what Software Craftsmanship means today.
In February, 2013, the London Software Craftsmanship Community reached 1000 members and had more than 100 events organised.
- "Software Craftsmanship Conference".
- "Software Craftsmanship North America".
- "Software Craftsmanship Manifesto".
- Wong, Wailin (15 June 2009). "Open to the competition". Chicago Tribune.
Further reading 
- Hoover, Dave; Oshineye, Adewale. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. Foreword by Ward Cunningham. O'Reilly. ISBN 0-596-51838-2.
- Martin, Robert C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Addison Wesley. ISBN 0-13-235088-2.
- McBreen, Pete (2001). Software Craftsmanship: The New Imperative. Addison Wesley. ISBN 0-201-73386-2.
- Sennett, Richard (2008). The Craftsman. Yale University Press. ISBN 0-300-11909-7.
- Pyritz, Bill (2003). "Craftsmanship versus engineering: Computer programming - An art or a science?". Bell Labs Technical Journal.