Friday, January 26, 2007

Management vs Technical

Anyone who has worked in engineering or technology knows that one question that you are inevitably asked on the job is "management or technical". That is, do you want to pursue the "management" career path or the "technical" career path? At my current job, we have periodic "career discussions" with our supervisors, and usually the discussion centers around this question. Up until now, I have always thought of myself as more of a "technical" type of person. I naturally lean more towards the introverted side of the spectrum, I love the hands-on problem solving aspect of technical work, I love learning new things, and I am not a big fan of all of the politics that the "management" folks have to deal with. Besides, I am a darn fine techno-geek! Therefore, I didn't really see any reason to stray from the technical path.

Recently, however, I have been toying with the idea of going down the management path - going over to the "dark side" so to speak.

Why do I want to set sail in that sea of politics known as "project management"? First, I really think that I would actually enjoy mentoring and managing technical people. Recently, I have had the opportunity to take the "lead" on several small projects. This involves directing and managing a couple of others. I find that I really enjoy interacting with junior level techies, directing their work, and teaching them a thing or two about software that I have picked up in my years of programming. Also, there is a certain rush about getting people to do your bidding. There is a certain empowerment in getting work done through delegation, and you often can get more done by spreading the work to multiple people than if you had to do everything yourself.

The second reason is that I think I have a knack for managing projects. Managing a project seems to be a combination of planning, prioritization, and seeing the big picture. Those are all skills that techno-geeks have in spades. Programming is all about seeing abstractions and interconnections, organizing them, and using them to build a system. Managing a project follows a similiar pattern. You have some task or goal, a set of resources, and you have to figure out how to get from point A to point B through organization, planning and execution. In fact, it is somewhat amazing to be that more techies don't gravitate more towards management roles. Actually, it really isn't that amazing given that techies seem to more comfortable with the logical behavior of bytes and circuits, versus the unpredictability of the human computer.

The third reason is that I really feel as if I can do some good as a manager. While there are a lot of good technical managers that don't have a strong technical foundation (which may be why they went into management in the first place), I feel that having that strong foundation would make for an even better technical manager. After all, having been in the trenches as a coder can only help a manager to understand the issues facing a software project, as well as understand the geeks the manager is trying to manage. I have noticed that a manager with a strong technical background has more credibility than a manager whose programming consists of setting the timer on the VCR (I mean, come on, who actually owns a VCR anymore). One of the roles of a manager is to mentor, develop, and inspire people. It is hard to be truly developed and inspired by someone who hasn't walked in your shoes!

Even though I have three reasons why I would go over to the "management" side of the house, the one main reservation that I have is the politics. One big component of being a manager is that you have to "massage" the system in order to get what you want. I find that good managers spend a lot of time trying to portray themselves and their people in the most positive light. That involves a lot of "face time" with the right people at the right time. My personality doesn't really lend itself to that sort of backroom bargaining. That is not the way I am wired. My fear is that either I would have to develop that skill, or I might suffer as a manager.

All that being said, I think I have come to the conclusion that I really shouldn't be looking to choose between "management" or "technical" in the first place. Why can't I do both? If you look at sports, the all-time greats are the ones who excel at all facets of the game. Michael Jordan started off as a great "off the dribble" player, and he was an all-star player. Then he developed an amazing jump shot. And then he turned into one of the top defenders. Whenever he had a hole in his game, he worked hard to turn that deficiency into a strength. Eventually, he ended being considered one of the greatest of all time.

Why not strive for the same sort of greatness in our own lives? I am not suggesting that I am going to be the Michael Jordan of software development. However, it is certainly a worthy goal to at least reach for. Therefore, I think I am going to develop both my "technical" skills and my "management" skills and see where that leads me.

No comments: