| It depends what you want to do but as a manager I'd like to say a few things I found making the move: 1) It's obviously very different. It's primarily about organisation and co-ordination - you need to understand all the moving parts of a project, know what's important, what might need your attention and what can be left alone. You might want to ask yourself whether after 3 years experience you feel you're equipped to do that - some people have a feel for it and are, others need more first hand experience of projects. More importantly you want to think if you're going to be happy doing that. 2) There is a temptation to think when you're a programmer that the reason things aren't going well are that the manager is doing his job badly and you're going to do better. This may be the case but in my experience that's often not the case. Organisational cultures and how projects are run tends to be driven from the top of the organisation down and you may find that the things ultimately causing the problems are far higher up the chain. Where things are bad for programmers they're often bad for managers (or at least middle managers) too. Moving into management because you think you can fix the world is probably misguided. 3) Following on from that, you'll probably have a lot less power / authority than you think. It's best to think of managing at this middle level as working with programmers but doing a different job rather than them working for you. Generally, as when you're a programmer, you're a middle man turning the wishes of those above you into reality. Yes you might get a say / some influence but probably not anywhere near as much as you'd like. People will tell you to do stuff, you'll do it. 4) Learn to delegate. This is key. When you're given things your first instinct will be the one you have now - to do it yourself. That approach is going to kill you. You need to learn to give other people work. 5) If being friends with the people in your team is important, you might want to think twice. That's not to say you can't be friends with someone who works for you, just that there is always the potential for problems. If your friend starts coming in late are you willing to pull them up on it and risk the friendship? 6) It is hard to go back. Some roles keep you hands-on to an extent but once you're not coding at least 20 hours a week, you've got a year, maybe two at most, before your skills have significantly atrophied at which point moving back will be a problem. 7) With regard to skills decay, you also need to understand this is happening when you're making decisions on the project. You may be the best programmer in your team but if you spend 0 hours a week programming and the graduate entry level guy spends 45 hours, how long before he knows more than you do? |
After having been a manager for a few years now, I realize my tech skills have degraded. So I do side projects programming things I want to do, the way I want to do it to keep my skills up to date.
The other thing I think I'm realizing is that being a manager is sort of generic role. Most career paths forward at this point look rather boring and mundane. Even if it is a new project - some sort of skunkworks effort - using some new tech and solving really cool problems - managing that isn't much different than managing a team maintaining a 10 year old system. Maybe morale is easier to manage.
Think about what your next position would be after taking a management role - your options become limited. Other companies may see you as "manager" and not as "developer" regardless of skills, perhaps thinking subconsciously that "if I hire this guy, he is going to want my job".