Take the 2-minute tour ×
The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. It's 100% free, no registration required.

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.

share|improve this question
27  
There is a big difference between "I never want a promotion" and "I never want to do management". –  DJClayworth Nov 8 '12 at 19:52
4  
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 Nov 13 '12 at 22:22
show 3 more comments

17 Answers

up vote 29 down vote accepted

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.

share|improve this answer
1  
+1 for making sure your desires and your employers company culture are a good fit. –  Dan Neely Nov 8 '12 at 21:23
show 1 more comment

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.

share|improve this answer
1  
@KeithS not always true. I've seen Senior Dev->Architect->Senior Architect. Senior Architect was hierarchically above PMs and most middle managers. –  MrFox Nov 8 '12 at 20:37
3  
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 Nov 8 '12 at 21:11
show 2 more comments

In my career at Microsoft, my managers asked 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 was always writing code, solving engineering problems, optimizing things.

However today I regret that decision 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 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.

share|improve this answer
2  
Fantastic answer. Thanks for your insight –  amphibient Nov 9 '12 at 19:19
add comment

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.

share|improve this answer
add comment

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".

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
show 2 more comments

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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!

share|improve this answer
add comment

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.

share|improve this answer
show 2 more comments

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

First and foremost be honest.

Do keep in mind your decisions are to actively cause career stagnation. You should expect to never see any significant pay increases or promotions ever again.

All developers who wish to rise to senior roles by definition will become responsible for people. There are not senior developers who code in a box, that's by definition a low level developer. Senior developers are people who engage peers, colleagues and many other resources to stay at the top of their game along with working with their team members in sharing that knowledge and pulling those members up with them.

If you're comfortable with a career that never progressives mid-level developer that is fine for you to make. Just understand that no number of notches on your belt will ever transition you into a senior developer.

Source: I'm a developer who in my professional career span of approximately 6 years that at my 3rd place of employment I am the Lead Architect and have been responsible for all hiring, salary, and career advancement decisions of my team.

One final note, theoretically you could look to expand your career track into software architect however that role is very PMO and people centric even if you aren't directly responsible for a team underneath you.

share|improve this answer
1  
On a related note, I'm actually currently hiring mid-level developers careers.stackoverflow.com/jobs/11832/… –  Chris Marisic Nov 9 '12 at 14:31
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
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 Nov 11 '12 at 1:29
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.