Thursday, 17 October 2013

Craft, not Manufacturing

The book “The Pragmatic Programmer” has as its subtitle “from journeyman to master” and on the cover a picture of a hand plane.  (The book itself is highly recommended).  The point is quietly made: good software development is more akin to craftwork than to manufacturing.  

Software developers are smart people, they are employed for their ability to create and engage with the logics that lie within our systems, and good software developers are at their best when they are being creative, and can exercise creativity.


This means:
  • Developers who engage with what they are doing take on a feeling of personal ownership, of responsibility. They don't need to be held to timesheets or working hours, but will make their work part of their lives, their self-identity.
  • Developers will want to take chances to look a little further than just the immediate problems they are dealing with. This allows opportunities for refactoring (which improves design and may increase the capabilities of the software), and for sweeping up of related problems, etc.
  • Developers should be recognised for the work they do, they way they do it, and the unique contributions they make.
  • Software development becomes enjoyable, and (speaking personally, but I think this is generally true) what this means is doing work that is useful, clever and efficient: “neat” in all senses of the word
  • The developer who is proud of their work will spread the word. If they have just extended the capabilities of a service in some way, they will encourage its use and re-use.
  • Likewise, working in a happy shop (and this may be a virtual workplace) will inspire and stimulate innovation, creativity and quality.
  • Reduced staff turnover. If our working environment is highly rewarding, and great fun, and in particular if it allows us to do good work that makes us feel good about ourselves, who would look elsewhere?