The other day I had a discussion about leadership and management. When we came to an argument that there’s no chance to advance to a position where you can facilitate leadership and management skills in discussed organization several people (from present and from past) automatically came to my mind. They all have the same problem which they may overlook.
They all are (or were) great engineers. People you’d love to have on your team. But at some point of their careers they started to think about having their own teams, managing their own people. Hey, that’s natural career path for great engineers, isn’t it?
Well, actually it is not.
Do a simple exercise. Think who you consider as a great engineer, no matter if he’s a star book author or your colleague no one outside your company knows about. Now what do they do to pay the rent? I guess they are (surprise, surprise) engineers, tech leads, freelancers, independent consultants or entrepreneurs. I guess there are none who would be called a manager in the first place, even when they happen to do some managerial work from time to time.
Why? Because these two paths are mutually exclusive. You can’t keep your technical expertise on respected level in the meantime, between performance review of your team member and 3-hour status meeting with your manager. You either keep your hands busy with writing code or you get disconnected with other developers out there.
On the other hand what makes you a great engineer usually makes you a poor manager at the same time. If you spend all day long coding, you don’t have enough time for people in your team. And they do need your attention. They do much more often than you’d think. If you’re going to be a decent manager big part of your time will be reserved on managerial tasks. There won’t be enough time left to keep on technical track. Sorry.
That’s why all these people who I thought of have to (or had to) make a decision which way they are (were) going to choose. Technical leadership path means most of the time you won’t have people to manage but you may be respected as an architect, designer, senior engineer. If you’re lucky enough you can even get one of these fancy business cards with title of Chief Scientist or Chief Guru or maybe just a simple Co-Owner.
Managerial path on the other hand will make you feel lame during basically every technical discussion out there but yes, you will have people to manage. If you’re lucky, and I mean lucky, not competent, you’ll become VP or something.
You have to choose. Or you had to some time ago. What’s your choice? What do you regret about it?

Subscribe RSS feed
Follow on Twitter
Subscribe by email
{ 8 comments… read them below or add one }
Agree
I fear that you are right and that this is programmer's horrible truth :)
One thing I am sure for now, you can't be architect/leader etc. and not be a active programmer.
Still I will try to walk this impossible road of half manager/half programmer…
Vukoje,
I fully agree you can't be a competent architect while not being a programmer any more. E.g. I can say a lot about architecture, I can have great advice on the subject but I won't work out whole architecture There's too much about modern technologies I just don't know since I don't code any more.
Talking about trying to be half programmer and half manager, well, soon you'll just have to make a decision which one you like more. Other way you'll struggle to have enough time for either one.
Yap, you were right, it can’t be done :(
I guess that one programmer can become so valuable that having him just write code isn’t efficient enough. You have to fin a way to scale his knowledge/influence and that can be done through some sort of delegation/leadership/managing.
So the trick is to add some management but to stay strong in technology or it will all lose sense. I have tried to be Scrum Master, Product Owner and Technical Leader. The result is that I suck in every area.
But I have in my mind a combination that would work. :)
Vukoje,
If you look for a way to leverage knowledge and experience you shouldn’t think about management but about technical leadership. This doesn’t have to (and shouldn’t if you ask me) be done through promoting a person to management position where he gets a team to supervise. You should rather think about all kind of guru roles, where a person has all the engineering tasks but is also a go-to guy when itcomes to technical advice or even decisions.
Call them tech leads, architects or whatever, but don’t give them teams to manage since all these administrative tasks (like performance reviews, budgeting etc) steal a lot of time. Time which you could use either on coaching others or on engineering tasks.
I was thinking more coaching, task distribution, code checking/testing, maybe motivation… not budgeting and reviews.
Does this make any difference in you opinion?
Yes, at least partially. If you avoid being a manager of a group (formally) you save a lot of time which you’d spend on non-engineering-related tasks. If you want to make much use of your technical expertise make as much of your duties as possible engineering-related. This basically means you should prefer not to manage people directly.
But choosing to stay away from management also means you won’t distribute tasks or motivate people (at least not the way most people consider it should be done).
From what you write I understand you have power to decide what exactly you’re going to do. If I were you I’d choose one side, either people management or technical leadership, and stick with it as much as possible. If your choice is technical leadership you can always switch to people management later. The other way around it’s much harder.
Thanks Pawel, I have a much clearer picture now.
I think that the reason why I am under impression that I can do this is because I have really really good and close collaboration with my HR manager and Product Manager.