Background
There’s a lot written about this, and rightly so. It’s probably the biggest decision a developer makes during their career. I’ve been backwards and forwards between the two, never quite knowing which is best. So I’ll write up some of my observations for those thinking of making the change.
First of all, the job. As a developer, you are a ‘doer’: you have a trade, you have skills, you are probably interested in learning the latest technology. So what’s nagging away at you? Well, you are possibly tired of seeing colleagues who switched to management climbing the ladder, potentially with more pay. They receive the respect from peers, friends and family. You have to listen to ‘person x has done really well!’. So, first of all, step back from all this and start thinking about your long term goal - not other people’s goal, but your goal. Take yourself off somewhere with a notebook and pen, no internet, phone off, and write down furiously all the things flying around your head and come up with your long term dream or goal. Don’t google for other people’s, just write your own. If you can’t do this within the hour, do the same thing next day or next week. Just don’t make any career decisions before you do this.
All done? Good. Now go to google or duckduckgo and type in ‘what do people regret the most before they die’. After you browse some of these articles, are you still happy that your goal sticks.
Why am I being so long term about this? Well, if you change to being a manager you are changing for good! Why - well you exchange your skill set.
I once interviewed for a company and was incredibly impressed - they had a team of technical people who sometimes managed projects. After managing a project they had to do a technical project. This is truly enlightened, but very rare. In most companies, you transition and that’s it. And your skills have to transition with you.
So, are you still looking at being a manager? Yes! Now, do you answer yes to these sub-sections?
I want to work directly with the business and clients
As a developer you probably do everything you can to not give times and cost estimates. Why? Well it’s complex and disturbs your thought process. But if you are a manager that is no good. The client needs to know what, when and how much. You have to translate that backwards and forwards between the client and development team. It’s a skill you need to learn and must be happy devoting time to it.
I want to learn how to influence
People tend to be good at one of upwards or downwards management. But you need to learn both. One may come naturally to you. In my case, I struggled with upwards management i.e. being comfortable around senior people. Isn’t this really just sucking up? Well, this is something you have to learn. And it’s actually selling. Start here http://www.danpink.com/ with an open mind to selling. Now if you are struggling with downwards management, then see below!
I want to devote time to mentoring my team
A great quote: ‘Delivery through the team’
You probably got to being a manager because your technical expertise was recognized. Now, you must deliver through your team, empowering them to deliver. You must not be hands on in the code: your job is to manage the team to deliver, and if they don’t you need to fix the team, not the code. This might really anger some people, so apologies in advance. I have made this mistake (I see it like this now) because I was bored not coding. I missed the intellectual buzz. But management is different.
I want to improve my network
Horror! You are a developer and now you think you have to go to functions and introduce yourself to strangers. Not true! But you do need a network. You need to take people with you on projects or roles, you need to hire good people, you need to be industry aware of changes. This very often means meeting with people you already know, and being open to meeting people who ask for your time. So don’t panic, but you will have to get out there!
Summary
These are observations from someone who has been back and forth, seen lots of different managers and tried a few things with success and failure. I had a happy team when I managed (so they said) but failed to manage upwards. In hindsight, the difference between me and a colleague who went to the C-suite: he wanted it, and I was never really sure.