122

I'm a developer and 100% happy being a developer writing code for the rest of my life. All I ever want to really do is just write code. Most certainly, I never want to be a project manager, which I liken to secretarial work, or anything involving people management.

At several points in my career, I have faced propositions to diverge my career onto project management. I really don't want to ever do anything other than write code, and am not interested in anything that does not involve programming most of the time.

How can I politely yet firmly communicate my career path preference to stay where I am and not move in the direction that most people perceive as "up" in my chosen career path?

One of my primary concerns is appearing unambitious, which is not the case. I am ambitious, but within the limits of my chosen career path, and am not interested in growing into what some perceive as its natural progression.

10
  • 81
    There is a big difference between "I never want a promotion" and "I never want to do management". Commented Nov 8, 2012 at 19:52
  • 13
    BTW if you think project management is secretarial work, then you have no idea what a project manager does. Just becasue you only want to code, doesn't mean other professionas aren't as challenging and difficult or more so than your chosen profession. Good project management is a much harder job than coding. Bad project management could be seen a secretarial work but so could bad coding (the cut&paste coders are just typing someone else's work without the need to understand it).
    – HLGEM
    Commented Nov 13, 2012 at 22:22
  • 15
    I don't see how being a PM is seen as a step forward. It is not even an extension of software development. It's more like herding cats. Commented Mar 16, 2017 at 15:20
  • 23
    @HLGEM I think your defensive approach is unnecessary. He never said PM was easier than coding. And there is indeed a parallel in secretarial work if you think about it. That doesn't mean PM is as easy as secretarial work. Well, who said secretarial work was easy? I never tried.
    – ranbo
    Commented Mar 16, 2017 at 19:26
  • 5
    @MatthewWhited - "It's more like herding cats." This made my day. Commented Mar 17, 2017 at 15:39

17 Answers 17

87

Very difficult to answer this one definitively. Every company has different reactions to it, in my experience.

I have worked for a company where there was no other path for a developer. If you didn't move to management then you never got a payrise beyond the inflation rate.

I have worked for several companies where developers were expected to want to remain developers. And they were rewarded well for being good developers and looked at strangely if they showed ambition to be anything else.

I have worked for a company where you could follow many paths from development into people management or project management, or just be a really good developer and get paid accordingly.

I suggest being honest about your aspirations and let them decide if you will fit with their philosophy. That way you don't get stuck in the first company I've mentioned above.

1
  • 1
    +1 for honesty. You should feel you can approach your manager at any time anyway. They're not there just to manage the business; managers manage people, too. Incidentally, I'm a developer who has become a 'product manager' (in the small company I work for, this is akin to a lead developer and line manager mix). I can assure you we don't get given magical powers to know what people are thinking. Although I think a good manager will already know, it's nice to be told.
    – m-smith
    Commented Nov 10, 2012 at 9:31
98

In my career at Microsoft, my managers asked me many times if I wanted to pursue a management role or stay on IC (individual contributor) path. Both were perfectly ok there. If you followed IC you'd end up being an architect and finally a technical fellow, and on the management path you'd end up being a VP for a business line.

I always answered that I wanted to stay on IC path because that was my passion like you. I had my opportunities for management, like backing up my team lead or creating a virtual team across departments and driving them for a side-project. But my main work had always been writing code, solving engineering problems, optimizing things.

However, I regret that decision today for two reasons: First, I could really use that experience today as the owner of my own startup. Microsoft puts great effort on training you, giving you the best resources to get you ramped up on your management role and I think I could have benefited from that more or less.

Second and more important one is that, management allows you to create software that you can't imagine creating by yourself. I think that's the part we miss in the picture of management path. It actually amplifies our ability to create software in orders of magnitude. I know how luring it is to work on the code yourself but when you see that with proper direction, guidance, you can achieve tenfold, hundredfold of your own throughput is so exciting. Think of a parallel universe where Linus Torvalds insisted on coding all of the Linux himself. How far would he have gone? Of course none of your developers will be coding like you, but some will code even better than you, and you'll learn to deal with occasional lack of quality or miscommunication. You'll be growing each of them to be a better you, multiplying your productivity and the quality of the product.

If your passion for creating good software beats your passion for solving technical problems, a management path may not be too far off.

Just my two cents.

1
  • 3
    That's a really good point. As a counterpoint I know co-founders of businesses who sold their interest in the company because they didn't want to manage. Sid Meier of Microprose did this. I'd be curious if Spielberg has done something similar. It appears from the outside he'd much rather direct a new movie than manage Dreamworks SKG (his company).
    – gman
    Commented Mar 19, 2017 at 2:32
43

Your sentiment is something that other developers may understand, but managers won't. Rather than saying what you don't want to do (and sounding negative) I suggest you emphasize what it is that you DO want to do.

Tell them you want to keep your hands 'dirty' and that you like to code. Maybe they will create an 'uber-senior-developer' position just for you as time goes on. I've seen similar things happen.

Promotion does not necessarily mean that you won't be a developer anymore, it might mean, for example, that you get to make more wide-reaching technical decisions.

4
  • +1: a lot of managers who worked up through the ranks were only too happy to stop coding and start managing. But, in most hierarchies I worked in, by necessity the Project Manager is a step above the Development Team Lead, who is above the gradient of senior to junior developers. Whether that superiority is reflected in the pay scales depends on the company, but as long as you want to code, hierarchically speaking, you will remain relatively low on the totem pole.
    – KeithS
    Commented Nov 8, 2012 at 20:22
  • 3
    @KeithS not always true. I've seen Senior Dev->Architect->Senior Architect. Senior Architect was hierarchically above PMs and most middle managers.
    – MrFox
    Commented Nov 8, 2012 at 20:37
  • 1
    Some companies even have a CTO, but even that title might involve more people management than the OP might like. Commented Nov 8, 2012 at 20:59
  • 6
    Most companies, in fact, have a CTO, and yes, it's all about people management. As far as "Architect", that position usually does less coding and more HW/SW A&D. Architects are "multi-project managers", working to tie projects together to make the best use of existing codebases and hosting hardware, etc.
    – KeithS
    Commented Nov 8, 2012 at 21:11
13

Just state your ambitions like you did here.

Having worked in several tech management positions, this is what I most appreciated: There's nothing easier to manage than employees who know what they want (if it's in-line with their capabilities).

Inexperienced managers often promote the best engineer they have to be a manager, assuming they're doing good. The result: They exchange the best engineer they have for an often mediocre manager. (Taking that concept further is often referred to as the Peter Principle). The reason is that management requires a different skill set than engineering, meaning experienced managers spent their working time on developing management skills rather than engineering skills.

Tell your manager that you want to become a senior developer / architect, and that he/she would be better of thinking about a career path for this direction if they want you to stay for a longer time.

11

Tell them that you want a technical-track rather than a management-track career. Even within software development, there are junior and senior roles. Junior team members tend to fix bugs and write code for modules that they are responsible for. Senior members design APIs and make architectural decisions. It takes many years of experience to be a senior software developer. For example, you have to

  • Acquire experience with a broad range of technologies
  • Spot industry trends (and recognize fads to ignore!)
  • Learn from technical mistakes and prevent your team from making them again
  • Design elegant solutions that also perform efficiently

In short, you can be valuable as a senior software developer who is not in management. If your present company doesn't have technical-track advancement opportunities, you may want to propose yourself for technical leadership (only if you believe you are ready!) or find a company that does have a technical track.

9

Never say never. Who knows where you'll be in ten years? Things change.

That said, other answers have addressed what to say, but just as important as what is when. You and your manager should be having periodic discussions about your career, at least as part of annual performance reviews. This is the time to lay out what you want and together identify opportunities and obstacles. When your manager is deciding how to staff projects, he should be considering the desires of his people, which he can't do if he doesn't know what they are.

If this isn't part of your performance-evaluation process, ask your manager for a meeting on this specific topic. At that meeting, talk about the things you're doing that you love, the skills you'd like the opportunity to further develop, the types of projects you want to work on, and so on. If he has other things in mind for you he'll probably bring them up, and then you can respond instead of having to pre-emptively say "don't wanna manage".

4

Personally I wouldn't make this statement at any time because A) It probably sounds bad to superiors, as if you don't have ambition/dedication to your job/career B) I have been told to never say you wouldn't consider becoming a manager someday in interviews and this would make you lie in a possible future and C) You never know if you will feel differently in the future. How do you know that you will NEVER in your life want to become a manager? I think it would be better to simply turn down promotions when they are offered.

2
  • 3
    +1 My 18 year old self would have been happy programming in assembly and COBOL forever(because when you are 18 that is till you are 21) but Today I would find physical torture less painful. Commented Nov 8, 2012 at 20:00
  • 2
    Depends on what you're coding. A job like my current one that gives you exposure to different technologies, where you do one thing, then the next thing you're given is very different, is challenging and interesting and something I'd enjoy for decades, as long as it remained so. I've worked jobs, on the other hand, that were 99.99% maintenance of the exact same piece of software. A brittle codebase coupled with a newly-found anal-retentive attention to detail by management (because they had let that lapse in the prior years) made that an extremely painful coding job.
    – KeithS
    Commented Nov 8, 2012 at 20:08
3

Stick with what you want and try to avoid negative statements about what you don't want. After all, any talks about promotions are probably something you would have with your manager, who is one of those homicidal maniacs who was just crazy enough to want to do people-management. Saying "only nutballs would do that job" may be accurate, but hardly politically savy.

Instead, outline the promotion you want, if I'm reading you right, that includes:

  • Evolving and increasting technical challenges
  • Responsibility and knowledge of larger parts of the technical solution you develop
  • A chance to learn and master new technologies as the business encounters needs for them
  • Eventually - the responsibility for figuring out future technical solutions and helping the company by becoming a technical expert in advance of the business drivers.

That IS a promotable career track. Maybe it's not obvious in your company, but most companies have a track for knowledge workers who want to get better at technical expertise without cost/schedule or people responsibilities. They may have to teach others or mentor, but that's very different from "managing" people.

Stick to what is good about your job and any future promotion.

2

The best thing you can do is wait until you have been offered a promotion, evaluate that offer, and if you do not want it turn the promotion down.

Most companies post open positions and want their employees to pursue the opportunities that interest them. After time if there is a position that your manager feels you would be good for they may suggest you apply for it. At that time you can communicate to your manager what your short term goals are. If it that you would rather stay in a position that is more technical then your manager can keep an eye out for positions that would challenge you more but might actually interest you. Or just let you stay where you are happy and productive. Companies need worker bees and if you are happy being one of those, and are good at your job, it is rare that you will be forced to do something where you are going to be unhappy and less productive.

2

I think many professional programmers are facing this "problem" some time in the course of their career. Not many will chose to stay "on the floor" coding, but those who do are the ones that eventually become true masters of the art.

But I think your ambitions should show naturally as you work in different teams and always being the one that uses new programming constructs, using the best patterns and creating the best algorithms among you. That way you signal to the others that you really are a pro coder and if you at the same time keep communicating your wish, to keep coding good solutions for ever, this will eventually spread and people will start looking at you like a true coding nerd and stop asking you if you want a position as administrative team leader or whatever.

Think of people like Bjarne Stroustrup, James Gosling, Dennis Ritchie, Larry Wall, Sergey Brin and Anders Hejlsberg among others, I don't think they did anything but coding, even though they could have moved along to more lucrative positions along their ways.

I think your main goal should be to make yourself indispensable. Create code that is so great that nobody in the company can do the same or better. Then you can apply for as many raises you'd like and still keep coding!

If you don't get the raise, you have failed in the step mentioned earlier about communicating your ambitions. The bosses doesn't understand your superiority. If that's the case, make sure you've got a lot of documentation confirming your skills and go work for Google or something!

1

Have it where in your contract or write up a new contract saying that until further notice, you would prefer to remain at such a title/class of employee, but in being there you forgo the ability of advancement.

While doing so, I'd also request at the same time that since you have forgone the ability to obtain a higher paying position, your income would be guaranteed to go up a percentage each year in leu of the job title increment, up to a monetary value has been agreed upon.

Because if you work for a specific type of person, they may keep you at the same pay scale since you have no interest of job advancement, and in their mind will never learn anything new. Although languages may change, to them they see it as still doing the same job you are doing now. Logic or illogical, I’m at a spot like that now, so I sort of speak out of experience in the last bit.

2
  • Thanks. I guess I should add to OP that one of my primary concerns is appearing unambitious, which is not the case -- I am ambitious but within the limits of my chosen career path, not to grow into what some perceive as its natural progression.
    – amphibient
    Commented Nov 8, 2012 at 19:25
  • I know what you mean, and I would state that outright as well, because in reality what you are looking to do is not only stay in a comfort zone, but a job that you know you enjoy. Which is far and few in-between right now. I'd make sure they understand this clearly, otherwise you may shoot yourself in the foot if you aren't careful.
    – Matt Ridge
    Commented Nov 8, 2012 at 19:52
1

What I think is important here is what Your Ambition Is and communicating that effectively. You say you're ambitious within your own career path, but "just coding" is not a career path. If you're being brought problems to solve, solving them, and then moving on to the next problem, that's a job description. There's nothing wrong with that, but what you need to think about is how you want to build on that to become more valuable to the company, and how to translate that value into something your manager can understand, which is where the career path aspect comes in.

As programmer, your ambition could be of the form: I want leverage my skills at understanding technology to be responsible for designing/building/enhancing tools that dramatically reduce the costs of our business, or that can be sold, or that in some way add value to an existing product, allowing it to be sold to a new market (e.g. a web-based app migrating to iOS, etc.)

It's for you to then look at opportunities or positions within your business that would allow you to leverage those skills most effectively. Note that this may mean working more on the design/architecture side than you would like, and depending on the structure of your company, it may be limiting.

You may have other ideas. But the key is to look at the people in our field you would like to be like, see where they are, and make your ambition to get there. Then describe their role in terms of what they bring to their business. And if you do find you're looking at people who have risen less high, there is nothing wrong with that.

1

All businesses value people who impact business, vision and profit. (not necessarily in any order). If you can communicate the value in you being an individual contributor and how that impact overall vision of your company/division, that will great.

You could definitively rephrase your career goal. For example writing code is really going to be only small part of the job, even for an individual role. Individual contributors who keep learning new things, spend most time in doing multiple language and technology and hence generally useful to many folks in my team. I believe there is a productivity gain to the team when there are folks who help others with superior knowledge. Books like Pragmatic Programmer and Clean Code emphasize the need for developers who are 'passionate' about development.

At any rate one cannot pure be a developer and avoid so called management angles. You will be asked to give estimate, put comments on priorities, creating emergency customer issues, communicate on new product ideas ... none of which are 'coding'

So my take will be create a new message, rehearse it and then tell that to your management.

1

You might consider contracting. If you are a competent (or better) software developer and willing to change jobs occasionally, then you can make very good money as a contractor. I found that move to be very freeing. I advertised myself as a senior software engineer (which I am) and was hired specifically for challenging development roles. There was no expectation that I would move into management precisely because I was contractor.

This not only avoids the pressure to change what you do, but I found it extremely enlightening to work in many different environments and see for myself how development is done in a variety of companies.

0

Show your ambition by selling your employer on the idea of creating a career path that has several levels of developer. Maybe you get a little more into design and have input for planning and take on more code review, but still focus on programming. For many, programming shouldn't be a introducty phase of their career, but a career itself. Now if your company is getting stale in their development needs and everything is the same support for the same codebase, this could be difficult to sell, but do it anyway.

0

I'd suggest a lot depends upon what you mean by management, and project management, as well as the management style in which you work.

Without wanting to get into a length debate (of which there are many on the net!), if as a technical professional you are interested/involved in Agile/Scrum development approaches then the concept of "project management" or "team leader" doesn't always fit into all of the interpretations of these techniques.

Two of my development team on a Scrum-Master certification cource recently commented that at least half of the attendees were "classical" waterfall "project managers" trying to figure out what their role was in Scrum...

In many organisations, the PM role no longer exists.

I have team members just like you - they choose to work for me because, in part, I don't expect them to do any formal management or leadership (other than within the flat structre of the Scrum), and I also have an endless(!) supply of extremely challenging technical problems, driven by an R+D hungry, cash-rich industry. The trade-off is that they have to work in a Scrum team, not be a "lone hero."

If your organisation is very much a hirearchical, command-and-control type affair you may find it challenging to create a technical career track along the lines that you are after; its well worth the discussion as people suggest, but if work in a large firm, change may be challenging.

Ultimately, you may have to find an organisational culture that suits your chosen career track, but if you understand what it is you are after, you are a long way towards making this happen.

With your other comments on specialist vs generalist skills, I'd suggest you'd be a strong asset in any Agile/Scrum environment.

-1

Only one thing in this world is constant and that is "CHANGE"!

In many companies, there is generally a position called "System Analyst", and people in these positions are always involved in writing high level code, like creating the structure of application.

What this means is that you can still progress upwards in a career path, but without necessarily heading away from the technical aspects you love about coding.

1
  • 1
    Hi Ali, I think your answer initially wasn't very clear, so I edited it with the intention of making it clear where you were heading with this. Please feel free to make another edit if I didn't capture the spirit of what you were trying to say. Hope this helps! :)
    – jmort253
    Commented Nov 11, 2012 at 1:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .