When You’re Holding a Hammer (Everything Looks Like a Nail)

The wisdom of good programming is pretty similar to the wisdom of good life. There are definitely people in life that are too theoretically minded to be any practical good, but practical seldom turns out to be a vice as long as it is accompanied with skill. So the saying, “when you’re holding a hammer, everything looks like a nail” may be warning us to not be overzealous in swinging whatever power we’re given, but I would contend that in the world of programming a brain full of fantastic tools can certainly ensure there aren’t any loose planks in our projects. Yes, I am encouraging the zealots.

You see zeal is almost never the problem, it is zeal without knowledge that wrecks things. Or worse, the unintelligent whose sole skill appears to be the act of getting in the way. They are quick to bloviate, and raise “red flags” when they meet a zealot, but slow to accomplish any but the simplest of tasks. There are far too many folks out there that scream that the sky is falling as soon as they see a bit of ambition and enthusiasm. I love enthusiasm, it’s one of the things that are impossible to teach. I can teach a guy to code, but I can’t teach him to not be lazy. When character vs. competence, character is top of the list. I’m often amazed at how much energy the unskilled can put into debating a topic, while being completely incapable of contributing. It’s as if they feel that they are the brains, and the capable are just the “brawn”. However, the more capable the capable are, the more these leeches come out of the woodwork squealing in alarm. For good reason, someone who can actually “do”, will make them look like fools, and squeal all the more, like hungry piglets.

So, whatever your involvement in IT remember to spot the warning signs. Look for the guy who does little himself while criticizing the ones who do much. Listen for the empty claims and if you’re really lucky you might even catch a “When I was president I did it this way and it worked.” whopper. A good follow up to such a grand claim would be:  “Can you provide references?” Or better yet: “Time to get your references together, lying like a child is not a trait we value here.”

Hard to Fake

About 10 years ago my wife and I were building our first house. It was completely custom, and the staircase was especially elaborate. In talking to the woodworker who would be doing the railings we were met with a lot of confidence. He said straight out: “I can make anything out of wood.” Isn’t it just fantastic when someone is confident? As our rental lease came to an end and we moved into the house the stairs were still not done. It was one of the only disappointments we encountered in the whole process. It turns out that it wasn’t for lack of trying that they were not done, but for lack of skill. In fact, when he finally did call it done I would soon be appalled. Initially, things seemed ok. Besides the pile of trash he left for us to clean up it looked completed. Then, that evening I was sitting at the top of the stairs enjoying the beautiful view into the foyer of our new home when I noticed something odd. The shadows cast by our perfectly symmetrical lighting were far from symmetrical. The newel posts were not even!

I went on to discover that while the two landings were symmetrical for some reason there were 8 balusters (or spindles) on one side, and 12 on the other! No joke, 4 different. It was terrible, and all started with a 1 inch difference in the position of the newel posts. While my craftsman spoke confidently when it came down to it he had only fooled himself.

There are fields that a person can fake experience and skill. In fact, I tend to mentally categorize these as the “fluffy” fields. They are the opposite of a craftsman. They are based on talk, posturing, and negotiating. Politicians have this characteristic as do many executive positions. Educators also can manage to get by for decades being really quite bad at what they do. What makes a field “fluffy” is when there are plenty of other people to blame when the outcome is negative. A student gets a bad score, blame the student. A state goes bankrupt, blame the previous leadership. A company goes bankrupt, promote the executives.

Programmers are craftsmen. They might be able to hide out on a large team for a while, but there isn’t much fluff in this field. You either get ‘er done, or you don’t. When your work is bad it comes back to bite, and while none of us are immune to obscure browser incompatibilities or unexpected user behavior there are definitely those whose mouths (or sales people) write checks that their skills cannot cash. It’s just hard to fake good programming.

We’re on a very large project these days, and I’m surrounded by some of the most skilled people I’ve worked with in a long time. One of the most refreshing aspects is the humility of people who measure their words accurately with their skills. There’s nothing wrong with saying something if you can do it, but it’s so easy to work when a person is willing to admit that they don’t understand while also being willing to work to understand. It’s a rare gem and the kind of project that has the highest likelihood of success, regardless of the scope. Hat off to my colleagues.