Wednesday, 11 June 2008

Do you know your tools?

The crafty aspects of programming (as in, the aspects that are like a craft, not the aspects that are cunning like a devious weasel hatching a dastardly plot) require us to use tools to fashion our work. Like any other artisans, we're reliant on quality tools to help us quickly produce software masterpieces. You could produce an elegant sculpture using only an blunt nail file, brute force, and perseverance, but you'd be better off using a full set of sharp chisels, points, claws, and hammers. They sure do help.

Good tools are important, but we also need to know how to use them. To be really productive, we really need to know how to use them - so their use is second nature. When we achieve this, we don't have to get distracted by using the tools, and our attention can be devoted fully to the code we're crafting, not the tool we're driving.

A friend of mine plays keyboards in a band. Recently he bought himself a new instrument - a top-of-the-line monster machine that can make tea and toast, all while you play incredible keyboard licks using only one finger. It's got loads of functions, and there's a lot to learn about it. Even the simple functions are hidden amongst the complex array of knobs and buttons.

He took the keyboard out to a gig not long after having bought it, and it all went spectacularly wrong. The keyboard seemed to have a mind of it's own, wouldn't behave itself at all, and after a while stopped making sounds at all.

Convinced it was faulty, he arranged to have it shipped back to the manufacturer and repaired (under guarantee, naturally). But they sent it straight back. Nothing was wrong with it, he just had no idea how to use it. His lack of understand of his tool had caused the problem.

Not knowing his tool cost him in two ways: he performed badly when it mattered most, and he wasted time and money needlessly (it's not cheap to post one of those large beasts). When you're counting on them, it's really important to know how to use your tools.

Do you know how to use your tools? Properly? What tools are you using? Could you be more productive using them? Are there better tools you could be using right now?

TIP
Know your tools. Know what's in your toolbox.

No comments: