On Tools

In any online discussion of photography, you’ll hear over and over that the camera, the primary tool of a photographer, has very little to do with creating great photographs. Those who shoot well need only a camera phone to create great work. It doesn’t matter what you buy, as there isn’t a camera that supplements having an eye for taking a picture. Spend thousands of dollars and your pictures will still be uninspiring.

I went racing at the local track a few weekends ago. One could pick from a Formula car or a Porsche. The instructor told us that the former would eat the latter every day of the week on the track, so all the students picked Formula cars. The instructor followed us in the Boxster and quickly proceeded to pass each of us, vanishing out of sight. Not to make excuses, but I was frustrated because I spent a lot of time fiddling with the controls and transmission of the Formula car; the cockpit was unfamiliar and uncomfortable. When I came in, the pit crew told me that he’d done the very same thing to another group earlier in the day using a rented Dodge Caliber; and after all, he’s been doing this for more than 20 years in every type of car we might think of, on every type of surface. I admit, I haven’t driven a four cylinder Dodge on two wheels at high speed like this guy.

The difference between someone great and everyone else rarely comes down to tools. A professional will quickly figure out the best way to solve something regardless of the tools at hand.

I’ll also make the point that I probably could have gone faster in a more familiar car with more traditional controls that I am accustomed to. What does this say about tool selection?

When I was younger I was very concerned with equipment. Every year I would buy a whole new snowboard setup with the latest greatest of everything. I did the same with skateboarding, mountain biking and lots of other things that wound up costing me a lot of money. In hindsight, what did any of that equipment really do for me?

I think all it ever gave me was a false sense of confidence out on the hill. If I stay with snowboarding as the example, every time the really good kids showed up and went an order of magnitude bigger and higher than I could ever go, I was reminded that the board had absolutely nothing to do with my abilities.

I distinctly remember going from a board that suited me quite well to one that was lighter, faster, etc. I remember how much chatter it had on anything but the softest snow. I remember how it punished me for any lapse of concentration because it was extremely twitchy. I remember how much I came to hate it, but hey, it was newer, lighter, faster and so it had to be better.

Which brings me to developers and the state of tools today.

Tools are part of solution and strategy that developers provide, and in that capacity it is good to evaluate and understand new things coming of age in order to evaluate potential directions effectively.

However, any given day on Twitter and in the blogosphere, it seems like all we talk about is either tools or being more agile (another post entirely). Maybe we have too many tools. Have we started to focus on the tools more than solutions? More than the business?

Moreover, are these tools clouding our judgement? Are we so confident in the tools we’ve chosen that we’re actually not able to see a simpler, faster, more cost effective solution?

Does our obsession with tools have a equivalent anywhere else? Do contractors talk about their tools the way we do? Can a top NFL linebacker tackle in his bare feet? Do tennis players talk about racquets and balls like we do?

They may, but I suspect that the truly great discuss core strategy more and the actual tools less.

Managers have the worst opinions on tools, because normally their understanding of a tool is based on marketing, costs, or a hard requirement and not on actual use, technical strategy or sustainability. Good managers that can’t actually evaluate a tool by use defer to trusted parties who can put a product through its paces before making a decision. The best managers tell the team to build a boat and let them figure out what tools they will need in order to sail out of port.

How many people or teams do you know that are forced to use something they wouldn’t otherwise? Does that effect their productivity? Morale? Ability to ship?

How many times does a tool become part of the problem rather than part of the solution? Frameworks get deprecated, this database can’t scale, the software does x, now I want it to do y, etc. The problem here is that I can’t remember the last time I got to do a greenfield project and I’m stuck with the decisions of those who went before me; I must use the tools they’ve chosen for whatever reason.

We walk a fine line between being in the business of tools and the business of providing solutions. Personally, I wish we had less dependencies on the tools we choose to employ, but I can’t imagine how this might ever be the case.