Software craftsmanship

Software craftsmanship is an approach to software development that emphasizes the hard skills of computer programming and technical expertise. It advocates for the idea that software developers should not only focus on delivering working software but also strive to produce software that is of high-quality, composed of well-crafted artifacts.

Pete McBreen’s 2001 book, "Software Craftsmanship: The New Imperative", attempted to summarize many of the ideas related to the concept of software development as being primarily a craft rather than an engineering discipline. The central thesis is that high quality software can’t simply be engineered or manufactured; rather, it must be crafted by skilled professionals who take pride in their work and continuously improve their skills.

At the Agile Conference in Toronto in 2008, Robert C Martin said that the term "agile" was being taken over by project managers and certification schemes. He jokingly proposes that the Agile Manifesto be extended to add craftsmanship as a core value. It wasn’t intended to be a serious suggestion, but some people at the conference were inspired by the idea and shortly after (in March 2009) published the Manifesto for Software Craftsmanship. This builds on the Agile Manifesto, extending the core agile values with a greater focus on professionalism and mastery of software development skills.

Software craftsmanship values
  • 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

Sandro Mancuso’s 2014 book, "The Software Craftsman: Professionalism, Pragmatism, Pride", attempted to reinforce the software craftsmanship movement’s efforts to achieve higher technical excellence.