Software Craftsmanship is skilled software development in small scale production

In this, the fourth post in my series on software craftsmanship, I interpret Wikipedia: Craft in the context of software development. I’m doing this because Ade Oshineye: Software Craftsmanship – More than just a manifesto
recommended the wikipedia definition of craft although Ade generally avoids dictionary style definitions for software craftsmanship (Hoover and Oshineye, 2009).

Wikipedia Definition of Craft

Wikipedia: Craft offers a general definition of a "craft":

A craft is a branch of a profession that requires some particular kind of skilled work. In historical sense, particularly as pertinent to the Medieval history and earlier the term is usually applied towards people in small-scale production of goods.

Wikipedia: Craft

It follows from this definition that a craftsman is somebody who does skilled work, probably in small-scale production. Thus software craftsmanship would be skilled software development in small-scale production.

What I make of it

"Skilled" is good; I like "Skilled". But I’m slightly wary of the "small-scale" bit because something that is focussed on small scale production is of limited value to the software industry.

In subsequent posts I’ll look at other definitions of software craftsmanship.


Ade Oshineye: Software Craftsmanship – More than just a manifesto

Hoover, D. & Oshineye, A. (2009). Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. O’Reilly. [Available on-line]

Wikipedia: Craft

2 thoughts on “Software Craftsmanship is skilled software development in small scale production

  1. I wouldn’t be too troubled by the idea of small scale. The interesting thing about software is that once you build it, it’s instantly distributable and easily copied. There is no “mass production” step needed in software.

    So a software craftsman is able to build small scale, then go large scale with minimal effort.

  2. Doug, good point. I guess I was not thinking about scale in terms of a small number of production units but was thinking in terms of the number of customers/users. The original craftsmen produced a small number of production units for a small number of customers/users. But software developers can produce a very small production run (one unit) for a world wide customer/user base – which is what we do at the BBC. And that type of scale requires certain practices to do well. Practices that are unnecessary for a developer writing some software for themselves; again only one production unit but in this case only one customer/user and a tolerant one at that.

Comments are closed.