The Well-Bred Grapefruit

Musings on Software Development

Why Toolsmithing Is Important

This weekend I took a few hours and read through Brian P. Hogan’s book on tmux.

While I did get a lot out of the book, I’m not going to talk about tmux itself. Instead, I’d like to talk a bit about toolsmithing.

It’s generally understood that as software developers, we don’t actually spend a whole lot of time writing code. A significant portion of the time we spend in our code editing environments is actually spent reading and understanding code - there’s a comparatively significant amount of effort involved in getting to the point where we can contribute anything material to the code base. On top of that, most of us actually don’t spend all day in the editor - there are calls/chats with coworkers and bosses, support issues to look through, data the client needs gathered, and all manner of other non-coding tasks that we get sucked into over the course of a normal day.

Often people look at toolsmithing as a means of gaining efficiency - by becoming more familiar with your tools overall and discovering shortcuts, you can shave seconds off of common tasks and end up being more productive in the long run.

This is one of the attitudes conveyed in the tmux book. The reason you should familiarize yourself with tmux is because it will make you faster and save you the excruciating few seconds it takes to reach for your mouse.

But if we don’t spend all that much time, comparatively, using our tools… how much does a few extra seconds actually buy us? Even if we’re generous and assume that we’ve saved ourselves 5 minutes over the course of the day, is 5 minutes of extra productivity really going to do us that much good?

(A common fallacy here is to say “Well, that adds up to 25 minutes per work-week, or about 100 minutes a month, or about 20 hours over the course of a year - that’s like getting two and a half extra days of effort every year!”. If only the world worked like this, though. I can’t take the 5 minutes I saved today and put it into some kind of time-bank where I can redeem it later - I’ll either use it to work on something right now (which has to be simple if it’s going to be done in 5 minutes) or I’ll waste it on leisurely pursuits, like taking an extra little break to walk around the house.)

So why do it, then? If it doesn’t provide us with huge daily wins in our productivity, is there any point in trying to improve our tools?

Obviously I think so, or I wouldn’t have wasted my Saturday doing so. To me, the real answer is about pride (the good kind), and passion, and motivation to a much greater extent than it is about efficiency and productivity.

A carpenter can build great things with tools from Wal-Mart. A chef can cook delicious dishes with pots and pans from IKEA. A writer can pen a brilliant novel using a Bic and a $0.79 college-ruled notebook. But when you look at how the great artists in their field work, you find that they tend towards more expensive tools. Does the soft leather cover on a writer’s notebook enable them to write faster? Does the chef’s copper cookware help her prepare more dishes at once? Does the carpenter’s sleek titanium hammer help him drive more nails?

Great tools are inspirational. When we’re confronted with tools that are interesting we are inspired to work with them, whether that interest comes from their beauty, elegance, simplicity, or specification. This inspiration helps to yield better results from our labor.

So the next time you get a chance to mess around with a new tool or tweak your existing workflow, I would encourage you to get in there and do it. Even if you decide not to change anything, taking the time to appreciate the tools of your trade will push you to become better.

Comments