Painting of paper workers who appear to be made of wood themselves as they operate a giant paper-rolling machine

Paper Workers, 1934, oil on canvas by Douglass Crockwell.

Two thoughts on a talk on Software Craftsmanship by Corey Haines and Chris Parsons at the London Ruby User Group (LRUG):

  1. An important group was (probably) missing at LRUG: non-developers. You need to explain to and bring along customers, management, product owners, operations, testers, and executives if you want to start adopting the craftsmanship principles. For instance, it’s quite understandable that business people could hear “Not only working software, but also well-crafted software” and think “Oh no, more gold-plating and fewer features”. They need to understand – and more importantly, to measure and observe – that better-crafted software means sustainable pace, fewer bugs, and better features. Chris appears to be trying to do this with his marketing for Eden Development.
  2. It was good to see Corey and others acknowledging that there may be value in code that isn’t well-crafted – it can make sense in lower-risk projects or as a stepping-stone to better code (e.g. a prototype). By analogy, Corey says he sometimes buys off-the-shelf furniture and used in the right place (say, a utility room) it can be more effective, though less attractive and long-lived, than a beautifully-crafted heirloom piece. We should remember too that it takes a different, perhaps more sophisticated craft to produce a machine that cranks out a hundred flat-pack beds an hour in an Ikea factory – I remember Rasmus saying that by design, “any idiot can write a PHP script”, and that designing PHP to allow this while keeping said idiots relatively safe required some very sophisticated techniques!