If I had a hammer… Or maybe a saw

Splined tool

In Stephen King’s On Writing there is a passage where King describes his grandfather’s toolbox. The toolbox in question is a big and heavy piece, and yet the grandfather brings the entire thing with him whenever he is faced with a task that may, or may not, require him to use one of his tools.

The reasoning is that he does not know beforehand which tools he will have to use to get the job done. I like how grandpa King is thinking.

Perls to swines

I once worked with a programmer who had decided that he was a Perl programmer. He had willfully decided that he had one tool in his toolbox: Perl. While everyone else in that company had made the transition to C#, he stuck to his one tool.

I don’t have anything against Perl, but if I had one and only one tool in my toolbox, I would go mad before the weekend, and so did he. He was constantly frustrated with how difficult everything was, and how long it took him to finish even the smallest task.

Of course! All our tasks were designed to fit a certain set of tools and environments, and it was not Perl.

Let’s look at an example that does not have to do with software development. Say you gather your friends to build a bike shed. You all show up with toolboxes and start constructing. You share tools and soon people are using pliers, saws, chisels, measuring tapes and vices to create the most magnificent bike shed known to man.

Except Steve. Steve is using a hammer, and only a hammer.

Others are using hammers as well, for its intended purpose, but Steve uses it for everything. He hammers in nails with it (the preferred way of using the tool), but he also uses it for measuring, splitting boards, painting and carving.

Screwdriver and cutter

Now if you’re like me, you probably have a toolbox too. One filled with pliers, hammers, scales and whatnot. But you also have a soft toolbox, the one you use while doing your computer based day job. In it, you have all sorts of tools. For me, it contains programming languages, programming paradigms, keyboard shortcuts and such. If you’re more of an administrative person, yours may contain planning tools and tools for communication and the likes. And if you’re in economy it may contain… Excel?

Either way, we all have a toolbox. And it’s different from person to person. That’s good. That way we can complement each other and help each other where one person lacks a tool that someone else have access to.

I now have two questions for you.

  1. What tools do you have in your toolbox?
  2. What’s your plan for expanding your toolbox?

Let’s break this down.

What’s in your toolbox?

Have you tried to make an inventory? As a consultant I was forced to make such inventories on numerous occasions. It was a pain.

Not that it’s not good to have some sort of inventory, it’s just that the task is often to fill out a pre-defined set of skills, where you have to grade your level from 1 to 10 or something like that.

These lists come in two flavours- the broad one and the deep one.

The broad one lets you grade your knowledge on such an overarching level that it’s hard to give a straight answer; How well do you know Java? Or What’s your skill level in software testing? Or How would you rate the color blue?

The deep one contains a billion questions, each one so detailed that you really just know how to answer five of them; Rate your ability to make a cycle analysis of a Joomla plugin based mainly on meta-object programming. Or What is your knowledge level regarding spatial banjo programming algorithms in G++ aimed at FUM-based processor architectures?

Clearly, these are neither efficient nor enjoyable ways to keep track of your toolbox. There should be a better way.

I would try this: Write a CV (or, if you have a recent one, use that). What skills would you list there? Which skills are soft? Which skills are hard? Where do you wish you had more space to write details, and where did you struggle to come up with enough material to even make it seem worthwhile to include?

Try taking that list of skills and categorise it. Try sorting it, perhaps by deepest understanding. Then sort it again, based on some other criteria, perhaps desirability from a specific employer. You’ll probably notice a pattern, which leads us to question number 2.

What’s your plan for expanding your toolbox?

Now that you know the contents of your toolbox, what will you do with it? And perhaps more importantly, how will you expand it? Should you broaden it or deepen it?

If there was an item you struggled with, perhaps you should analyse why. Is your understanding not as good as you thought it was? Is it difficult to describe? Or is it really not a skill that should be in your CV in the first place?

What about when you categorised your skills? How did you categorise them? Can you categorise them again, under different labels, and how would the result differ? If one category contains significantly fewer items than the others, perhaps that’s something you should work on, to diversify your skills list.

Stick figure with weighted head

When you sorted your list of tools, did the different criteria yield approximately the same result? Let’s say you sorted it in two different ways: By deepest understanding and by your personal favourite items, high to low. Did the two results match? If not, you may want to put some time and effort to deepen your understanding and experience in the topic you’re most interested in.

This is not your grandfather’s toolbox

Now here’s a beautiful thing about your toolbox: it’s weightless! You can carry it with you wherever and whenever you go, without having to worry about the weight or the size. No matter the size of your toolbox, your head isn’t going to droop from the weight. Not even the airline cartels can charge you extra for the stuff in your head. But don’t tell them, they may figure out some way of doing that if they pick up the scent of moola.

(Feature photo: Phil Parker)

Email Icon LinkedIn Icon Twitter Icon GitHub Icon