Something that has been on my mind for a number of months now is the ‘rightness’ of a tool. When I had left secondary school with no idea what I wanted to do, my first job was in a textile mill. It was an interesting place to work because the majority of the looms were made in the Nineteenth century. It was like stepping back in time, although thankfully there wasn’t a requirement to do three hours work before breakfast and there were metal guards in place so there was less chance of getting trapped in a machine.
I was employed as a tackler, which can be taken to mean loom mechanic. I learned how to fix looms and how to work with wood. This particular mill produced woven narrow fabrics used in upholstery, probably one reason why it had lasted as long as it had. Each loom had at least sixteen shuttles made from box wood or hornbeam and quite often they needed repairs. One of the reasons for using box or hornbeam is because they have very close grains, which means they don’t produce splinters.
I wasn’t particularly skilled at working with wood at school but I gained a real appreciation for it in the mill. Pulling machines to pieces and putting them back together was real work. Some of the jacquard machines were very complex and required patience and skill to repair.
I mention all this because I think it is easier to visualise a carpenter having a favourite plane or a favourite chisel. It would be a tool that fitted so nicely into his hands that it would feel like an extension of them. He could concentrate on his work with no distraction or irritation from the tool he was using.
This should be a goal we should strive for when writing software. It should be a good fit, it should feel right and it shouldn’t get in the way. All too often when we write software we either don’t know how it is going to be used or we’ve been given that many requirements that it is impossible to produce a tool that will satisfy any. There is a reason why Swiss Army knives have not replaced corkscrews, screwdrivers, scissors and pen-knives. The saying ‘Jack of all trades, master of none’ springs to mind.
It is though worth bearing in mind that one carpenter’s favourite chisel is another’s least favourite. A tool that helps one person can hinder another. Yet, most chisels will do the job and nine times out of ten if you buy a chisel it’ll be ideal for the job. One of the main reasons for this is that chisels and those who use them have been around for many years. We know what they should look like and what a person using them hopes to achieve.
There’s a lot to be said for a tool that feels right and just works.