A lot of programmers wonder if they should be programmers forever or become managers. They love programming so much (and hate managing people) that they loath the idea of being a manager and why should they?
By sheer serendipity, I believe I have found an answer to this dilemma.
Richard Wesley Hamming was an American mathematician whose work had many implications for computer science and telecommunications.
The entire transcript is very long but we just need to read his answer to the following question,
Would you compare research and management?
If you want to be a great researcher, you won’t make it being president of the company. If you want to be president of the company, that’s another thing. I’m not against being president of the company. I just don’t want to be. I think Ian Ross does a good job as President of Bell Labs. I’m not against it; but you have to be clear on what you want.
Furthermore, when you’re young, you may have picked wanting to be a great scientist, but as you live longer, you may change your mind.
For instance, I went to my boss, Bode, one day and said, “Why did you ever become department head? Why didn’t you just be a good scientist?” He said, “Hamming, I had a vision of what mathematics should be in Bell Laboratories. And I saw if that vision was going to be realized, I had to make it happen; I had to be department head.”
When your vision of what you want to do is what you can do single-handedly, then you should pursue it. The day your vision, what you think needs to be done, is bigger than what you can do single-handedly, then you have to move toward management. And the bigger the vision is, the farther in management you have to go.
If you have a vision of what the whole laboratory should be, or the whole Bell System, you have to get there to make it happen. You can’t make it happen from the bottom very easily. It depends upon what goals and what desires you have. And as they change in life, you have to be prepared to change. I chose to avoid management because I preferred to do what I could do single-handedly. But that’s the choice that I made, and it is biased. Each person is entitled to their choice. Keep an open mind. But when you do choose a path, for heaven’s sake be aware of what you have done and the choice you have made. Don’t try to do both sides.
Enlightening, isn’t it?
Now instead of a researcher, think from a programmer’s perspective here. Everything will make sense.
Let me rephrase some lines from the programmer’s point of view:
When your vision of what you want to do is what you can do single-handedly (solving interesting problems by programming), then you should pursue it.
This is the path you should chose if you want to be a programmer all your life, which is definitely a life worth spent.
The day your vision, what you think needs to be done (in programming or to make it better in your organization), is bigger than what you can do single-handedly, then you have to move toward management. And the bigger the vision is, the farther in management you have to go.
So if you want to bring changes to your team, become a team lead. If you want to bring changes to the company, become a company head. Of course you will have to work hard for it. But I guess this is when you decide to become a manager from a programmer.
What do you think? Have I found the answer to this perennial dilemma?