I’m a fixer. A tinkerer. As a kid, I would take my toys apart just to see how they worked, and to prove that I could put them back together again (and these experiments often had mixed results). Even today, I’m still kind of a shade tree handyman. In fact, earlier this week I had to fix a broken safety sensor on my garage door opener, and ended up running new wiring for all of the garage door sensors and switches. I’ve also fixed electrical, plumbing, and HVAC stuff around the house, and have done many of my own automotive repairs.
With all of that, though, I’m no craftsman in any of those trades. I’ve got minimal skills in any of those disciplines, and would almost certainly get fired on day 1 if I were to hire myself out to perform those services. I’ve learned enough to be minimally proficient to do those types of repairs on my own, but not nearly good enough to do it professionally. I know enough to not electrocute myself, to avoid falling through the Sheetrock into my living room, and occasionally, I actually solve the problem I intended to solve.
However, there is one lesson I’ve learned in being an amateur handyman that helps me in my professional life, too. I’ve found that there is a proper tool for every job, and using the right tool for the task at hand often turns a long and frustrating project in to a brief and successful one.
A Tool for Every Job
Ask me which household tools I’m really good with, and I’ll give you a very short list. A hammer. A screwdriver. Pliers. All fine tools, and very useful for many tasks. However, there are some projects that could be completed with these tools, but they aren’t ideally suited for that purpose. Take my garage rewiring project, for example. Because I had to run new wires down two of my exterior walls, I needed a tool to help me get the wire from the attic to the floor below. I could have easily used the tool I know well – a hammer – and smashed out the Sheetrock so I could manually yank the wires down the wall. While that would have quickly and effectively solved the problem with the tools I already had, it would also cause another problem – a wall with big ugly holes in it. A much better option would be a fish tape, a device that runs a metal strip down the inside of the wall to allow the user to nondestructively pull wires through the wall. This wasn’t a tool that I owned, nor was it one that I was proficient in using. However, investing in and learning to use the right tool for this job saved me an inestimable amount of time and frustration.
As technologists and analysts, very often we fall into the same trap. I already own and know how to use this tool, so it’s what I’m going to use to solve all of my problems. It’s not that the tools we are most comfortable with are bad or ineffective; rather, it’s that they are not necessarily useful for every task. As problem solvers, we try to shape every problem into one that we can solve, and naturally we think first about solving it with the hardware or software we know the best. As the old saying goes, “If all you have is a hammer, every problem looks like a nail.”
Using new and different tools (especially when they are very specialized tools) usually requires an investment of time and money. This is the part that typically scares most folks away. Why learn about X when I already know how to use Y? Why should I buy A when I already own B? These are valid questions, but they often don’t take into account the cost of using the wrong tool. Yes, you can start using the tools you already have right away, but there’s value in taking time to do things the right way.
This is one of the things that I preach to attendees of my SSIS training classes. There are tools within Integration Services that are comfortable and easy to use, but aren’t a good fit for every problem. And even more broad than that, as much as I dig using SSIS, sometimes SSIS itself is the wrong solution. It takes guts and intuition to break out of the rut of using the same tools, but it’s often the best way to solve a problem.
When designing or developing a technical solution of any type, consider all tools and architectures, not just those you know well. There is a tool for every job; using the wrong tool might help you to get started more quickly, but it rarely helps you finish quickly or properly.
Photo credit: William Warby (Creative Commons)
Great post, Tim. Love the angle. So many problems are created by the wrong tool being owned and no one being creative enough to think that maybe a different tool is necessary. Thanks for the insight 🙂
Funny I was thinking of writing a very similar post this weekend with some pictures of the grapple hook on the tractor, the right chain saw, the chain saw sharpening files I had to use a few times and some of the other tools out in the woods. Guess I’ll have to wait awhile to write that post now 😉
Reminds me of this one I wrote a few years back where I extolled the virtues of a simple pick axe. Right tool for the right job is so important a concept. (http://www.straightpathsql.com/archives/2010/04/lessons-from-the-garden-again/)
Thanks Mike. Using other tools forces us out of our comfort zones, but it makes it easier to use that tool the next time, and even easier the time after that.
I cannot agree more with your statement:
“Using new and different tools (especially when they are very specialized tools) usually requires an investment of time and money”
I always tell my colleagues that as professionals, most of time, we are only as capable as the tools we have.
Absolutely. There’s two parts to that: The right skills and the right tool. A good skillset can get the job done even without the best tool, but having the right tool makes a *huge* difference in productivity and work quality.
It often makes me roll my eyes when I see an SSIS package trying to move a ton of data without using a data flow task….instead using SSIS to merely glue stored procedures together, ugh….