When I was a kid, my grandparents and uncles/aunts told me that when I grew up, I should set my sights on being in charge. “The head honcho, that is what you want to be”. I don’t think they did a good job of explaining why I would want that job. They did emphasize that I should remember that I wanted to be the boss. Just focus on that.
Right out of high school, I went into the Army. Everyone in the army is in charge of somebody. I got a taste of leadership and got a good understanding of what it entailed. Basically, it amounted to responsibility. The buck stopped with me. If somebody else screwed up, it fell on me. It wasn’t so bad once you got used to the idea and learned how to work with those rules.
After college, I went into programming. It was a different world from the Army. You got recognition if you were able to quickly learn new technologies and apply them successfully. It was like you got paid by your GPA and your class/course was your work. It made sense and I succeeded in that role.
I was handed more and more responsibility until, eventually, they started putting me in charge of people and projects. All of the sudden, the skills that I had been building didn’t apply any more. Knowing about technology and learning rapidly didn’t transfer-over to managing people. I was an “A student” at programming, databases and other technical stuff, but people were really hard to figure-out.
In the IT industry, this it the typical career path for most programmers:
- Become a programmer
- Advance to dev lead
- Advance to project lead
- Then project manager
- Then IT manager
- Then maybe, someday, you might become a CIO/VP
The roadmap seemed pretty straight-forward, except for the fact that this progression relies on three completely different skill sets, which are are in sharp contrast to each other.
The transition from programmer, to lead, to project lead is pretty obvious. It is simply more of the same. However, the next step involves a change from a technical role, to a project manager role (a specifically non-technical role). It is nuts. All of that technical experience that you have accumulated, not-only becomes irrelevant, it actually gets in the way. You must completely ditch all of your technical ways of thinking. You need to avoid getting pulled back-into technical stuff. Basically, you are starting-over. You must grasp this concept and embrace it, before you can become successful at project management.
VP/CIO is also a tremendously awkward transition because much of that job is almost entirely legal & financial dealings, contracts, negotiations and sales. Delegate everything. Set vision. An MBA helps to prepare you. A BCSE/MCS does not.
For most programmers, when you get to the top rung for the technical ladder, you find yourself at a crossroads.
- Remain technical and just be the best technical person that exists. Is it possible to know everything? You might just find out.
– or –
- Start leading people and organizing projects. Ditch the technical stuff. Delegate it to others and give them guidance to follow the path that you did, so they can become an ultimate ninja.
– or –
- Go for your MBA and start learning about politics and schmoozing. Learn about bean-counting, the other networking (connections with people instead of wiring). Buy some suits (not just for interviews and funerals). Maybe even run your own company for a while (until you get sick of it, or the company fails) so you can get a real understanding of what drives business.
Keep in mind that the safest of these paths is to remain technical. Everybody can always use a highly technical person. Even if the economy tanks, you may have to cut your rates, but someone will always have a use for your skills.
For every ten technical people, there is one opportunity to become a manager. Of course, you will be competing against other people without a technical background. They may have spent more time watching managers and learning from them, instead of doing technical stuff. So, you are actually at a disadvantage if you go down that road. Also, if you can’t make it as a manager, it is hard to go back to the technical track after a while, because you will become rusty as you tried to shake-off the old technical stuff and build management skills. It is a big risk and it requires a big commitment.
The CIO/VP route is the hardest. For every thousand technical people, there is one CIO job. Everybody wants it. Ironically, technical finesse is a huge minus to you, if you become a CIO. The CEO, COO & CFO don’t want a dude who can recompile his own kernel or troubleshoot at the third layer of TCP/IP. What the CEO wants, is a guy who understands what the CEO wants and recognizes the difference between [expenditures that make sense] and [expensive, flashy, cool points with little or no ROI]. If you ever lose your job as a CIO, you might never get another chance.
I have met people who sat at these crossroads and couldn’t decide which way to go. Heck, I’ve been there myself. I was lucky to have a good mentor who told me that I was blocking the intersection and I had to make a decision and get out of the way. If you try to do more than one of these (developer/manager/VP), you will do each poorly. You have to commit to doing one, wholeheartedly and leave the rest behind.
Completely immerse yourself in that responsibility and never look back. The other grass will probably always look greener, but don’t let it distract you. You can be completely successful and satisfied, as long as you apply the same diligence and resourcefulness that got you to those crossroads in the first-place.
As for fancy titles, they don’t really mean much if you don’t have the mettle to back them up. Your heart has to be in it, not just your ego.
Oh, and if one of your co-workers decides to go down the road that you did not, then don’t be a small person and hold it against them. Living with regret simply makes you into your own enemy, not everyone else’s. You are better-off living your life and letting others live theirs.
Whatever you do, do it well. In fact, be better than well. Aim for being epic at it (but remain humble). Never stop learning and improving. That will bring you success and stability.