I finished my undergraduate work in computer science about five years ago. I like programming, and I'd like to continue doing it, but I'd also like to start getting into project- or people management. What things should I do at work to make this transition (a) easier and (b) happen faster?

It seems to me that it's hard to get upper management to trust you to manage people or projects until you've done it, which is a classic Catch 22.

This question and this one have some related information, but aren't exactly what I'm looking for.

(PS: After college, I did a couple of years of programming, then went back to school to get an IT management degree. I didn't put this in the question up front because I thought other people might not have the opportunity to do graduate work in management, and I'd like this thread to be useful to them, too.)

+7  A: 

You can't wait for people to hand responsibility to you, you have to take it. Start taking initiative and show leadership, and people will start to notice.

But do you really want to manage people? Coding is so much fun! ;)

Seriously though, I do recommend reading up on some books. I liked:

  • One Minute Manager
  • Rapid Development
  • ... (I'm blanking here)
+5  A: 
  • Read all of the recommended books in Joel's Management Training Program

  • Pick your favorite open source project, organize a local volunteer dev team by posting to that project's mailing list or use or whatever, have regular meetings at a Starbucks and hack/manage away.

  • Network and work with as many developers as you can. I find that most managers have no idea how to manage developers and most good developers have no desire to become managers. When a developer meets someone who understands them and exhibits good management potential, they tend to want to help that person get into a management role for the good of developers suffering under poor management everywhere.

  • Take on freelance/side gigs and "outsource" it back out to a local University student or recent grad.

go minimal

This is a cheap reply, but I think Steve Yegge's article on software managers is both insightful and short - the defining qualities of any must read.

John Richardson
+4  A: 

I've see this a lot:

Do well on your current project, so there is some part of it that you own. When that needs more resources to further develop, ask for other resources to assist you. That makes you a team lead or a project lead, which gives you that first step you need.

Mark Harrison
+3  A: 

The right answer to this will depend largely on the organization you're in.

A lot of the larger companies will have a path to management, usually involving time and possibly further training. If that sounds like you, make sure you're supervisor knows you're keen to take on more responsibility and find out from him/her what you need to do to start taking on more team and project management roles.

For smaller companies, the best answer is usually just 'do it'. Jump in and start managing people and projects. Most companies are stretched thin, and it's pretty common for the management of projects (or parts of projects) to get neglected. Be the person that steps up.

It's generally easier to start with taking the technical lead on projects. Be the person who knows exactly what needs doing and have strong opinions on how it should be done and start taking ownership. Once your team and management know you're the 'go to guy' for that project it will be easy to transition that into an project management role. Once you're looking after what needs to be done and when, it's not a big jump to start organizing and chasing up the people who should be doing it. Voila. You're the informal team leader.

(Unfortunate side effect of this is you'll be effectively doing three jobs. But then it's up to your management skills to deal with that challenge.)

Do this sort of thing regularly, and when you go to upper management and ask for a management role you can point to this (informal) stuff as your management experience.

Reto Meier
+1  A: 

learn about management as an activity - when i started the tranistion the imperative seemed to be "be the best in the team and people will come to you for advise" that is the tech lead not the manager.

Management is a skill set, may not seem it, but it is! Requires you to look at your self the communication style, learning style etc as you have to help others see these!

Undestand that the definition of management - is the art of getting tasks done through other people!

I would look at starting a MBA => Helped me.

+1  A: 

You have to have some project management skills and experience to get 'into' project management. But that doesn't mean you need to have managed an entire project. If you are on a big enough team, take on some leadership responsibility (almost) without asking. Check up on how your collegues are doing and offer to help resolve dependencies or help them create estimates - if you have the knack you will find very quickly that people will offload managementy tasks to you (even if it is just with 3 or 4 people) and you work it from there. Expand that 3 or 4 to include having influence on (say) testers or business analysts and before long you will find yourself a manager of a module or subproject. Rinse, repeat and expand.

Simon Munro

If you want to be serious about taking the management career direction then you have to be prepared to give up programming (except at home on hobby or open source projects)

One of my worse managers was a programmer who was promoted but didn't want to do the management "stuff" so I was left sitting about with nothing to do while he tried to do the programming of a whole team.

If you get beyond the first level of management (just above technical lead in my opinion) you will spend most of your days in meetings and writing emails and documents