That statement is akin to saying, “That cat fetches like a dog. She must be a dog!” Programming (or software engineering) has absolutely nothing to do with management. There aren’t even any similarities between the two.
I get it: finding someone to manage technical staff is like finding a needle in a haystack.
1.) They have to be “normal” enough to be able to communicate with senior management while they manage a group of highly unusual and self-proclaimed intellectuals. (Therefore, senior management often mistakes a relatively normal techie for management potential.)
2.) They have to be able to communicate with these intellectuals using “tech speak”. (The worst example of a technical manager is always when senior management assumes someone who is gifted at software engineering makes a great manager of caffeine-addicted geeks in superhero t-shirts.)
Today, we’re going to look at the latter: technical managers chosen to supervise and direct a programming team simply because they rose to the top of the group with ninja technical skills.
First let me be very clear about one thing: I cannot stake claim to being the most intellectually gifted programmer in the room – anywhere. I’m always learning and always growing (even though my feeble old mind fights me over it these days). For the most part those of us who are programmers/software engineers/computer geeks chose this profession because:
- We like working alone
- We like math and logic
- We adore caffeine, late night debates on the possibility of black holes and which is better: Star Trek or Star Wars (I lean toward the trekkie side as I’m of an older generation)
- We think we can do things no one else can do – sort of
- We have some hidden insecurity about our intellectual prowess
Using that knowledge it is pretty simple to see that most programmers have some deep-seated insecurities which rarely makes for good management potential.
There are, of course, great examples of exceptions to that assumption (besides which, we all know about the trichotomy of assumption, right?) However, I am willing to stake my reputation on the fact that those examples are few and far between.
What makes a great technical manager, you ask? There are many features of a great technical manager, but the one most often used to judge capability is really only a fraction of a much larger picture:
- The ability to understand technical jargon and translate it for senior management
- A genuine concern for those who work for him/her
- Understanding what motivates each person on his/her staff – why are those people really working there? (When it comes to programmers, the answers will always surprise you. Sure, money is a huge motivator, but what almost always ranks second? A really cool, cutting edge project to work on. If you want to demotivate a programmer tell them they have to do maintenance on a project using 10 year old technology. Nightmare job!)
- A willingness to admit his/her own weaknesses, strengths, mistakes and successes (setting an example of humility while maintaining an official managerial demeanor)
- Respect for those who work for him/her and their natural individuality (some might see this as a respect for each extreme of geekiness)
- Being able to identify and tap into the true strength in each resource on the team while encouraging each person to take on roles that might fall outside their normal comfort zone
- Being able to keep the team focused and drive a project through to the end without making everyone on the team insane. If I had a dollar for every project I saw fail because a team was not cohesive with clear direction I’d be very wealthy. (One of my favorite interview questions is to ask programmers about projects they finished. You would be amazed at how many programmers cannot answer that question because they never finish anything.)
- Giving constructive feedback. Yelling, manipulation, and vicissitude have no place in management.
- Appreciating the difference between “downtime” and “avoiding work” and being able to identify each
- Personal accountability
Clearly I’m not the resident expert on all that makes a great technical manager, but as someone who has been on both sides of the fence I can assure you I know a bad technical manager when I see one. Usually (but not always) that person was once the “Kid Rock” of programming and rose to the top of the ranks with his or her technical aptitude. As you can see from the brief list I’ve made, being a great programmer has absolutely nothing to do with great technical management skills.
In fact, let’s take a look at your typical premium code jockey (here I will use the term “he” for the sake of brevity, but clearly I mean both genders of programmer):
- He views himself as cerebrally superior to most of humanity
- His self-opinion is usually reinforced daily by those outside the technical community who come to him for guidance and view him as a god of technology
- He views the other members of his team as inferior because they tend to view him as a god of technology
- He rarely admits to making mistakes
- He has absolutely no desire to “teach” anyone anything (In his mind they should have been gifted with his cerebral talent in the beginning. He can’t fix their sad plight.)
- He believes people who make mistakes are idiots and has no respect for them
- His communication with senior management is often very smooth – I mean, he’s the god of technology, right? Senior management loves him. He can “fix” anything quickly. He is, indeed, the god of technology
- He has no clue what his peers want out of life. He couldn’t care less what motivates them.
- He can finish anything, but the boobs he works with are incompetent. If he wants something done right he does it himself.
- He loves to humiliate potential new programmers in an interview. He spends days brewing up the most insane technical interview questions he can find on the internet…umm…I mean in his mind…and then proudly prances into the interview room and swooshes out the white board markers to scrawl out a complex algorithm that encircles the room in a hush of reverence for his vast intellect.
Sound like someone you would want to work for? I can imagine your answer is a resounding “No”. So, perhaps you’ll take time to post a few stories below about someone technical you worked for who was really, really a great manager? I’d love to hear your stories!
Until the next time my Tardis passes through,