15

There was a question about the ways a programmer can take to grow above programming job (What are possible career transitions for a seasoned software developer?) but I haven't found any information about what should a manager do with one who purposefully doesn't want to get away from programming yet asking for his/her career development.

One commonplace answer to that is so called horizontal growth when an employee sets his hands at more and more complex projects, and learn and apply new technologies to reach the business goals.

The peak point an employee can get to, in a traditional hierarchy, is a (programming) team lead.

In the company, the main career path is through team lead into management position, either product development (which I see as extremely business-related) or people management (which is too humanitarian thus may not be interesting to a software engineer). There are certain roles which are dedicated for deeply proficient and are related to engineering, such as software architect. The company structure is flexible (though not longing for anyone to claim oneself a made up title) and is capable of adding some roles in case those are dedicated to measurable results and show that the employee is an expert.

What career development path should I advice to such an employee? And maybe not just titles but new responsibilities (e.g. manage a knowledge database) and opportunities (contribute to open source, get 20% time off, etc.)?

  • 2
    Ever look into being a Software Architect? Those tend to require some expertise yet isn't a management position technically. – JB King Oct 22 '14 at 12:55
  • 5
    Architect. CTO, or path toward it. Standards and practices guru. Research, either technical or product. ... – keshlam Oct 22 '14 at 12:56
  • 1
    You cannot offer anything that your company does not provide - like a non-management path. We don't know anything about what your company offers, and you are asking us a question that requires knowledge of what your company offers. I am voting to close on the ground that your question is company-specific. – Vietnhi Phuvan Oct 22 '14 at 12:59
  • 1
    The organization is quite large to get to a CTO position right from software development circle. To reach that position, one should work well as a manager, be able to consume large amounts of business data (yes, there are business data even within engineering field), and, anyway, manage subordinates. So I don't really think CTO is a good example and would be fair to name. But architect, some specific topic guru, or research fellow are ok. – rishat Oct 22 '14 at 13:17
  • 5
    How is this company specific? There are boatloads of companies that have programmers who don't want to be managers. – Telastyn Oct 22 '14 at 13:32
9

Some Carrer Progression options:

Senior Programmer - This title indicates that the programmer has well above average experience and abilities.

Technology Specialist/Expert - This position denotes special skills and abilities that the company values in a professional capacity.

Architect - This position is more of a concept and design position for highly skilled and experienced programmer or engineer. This position is primarily planning and design but there is often a programming component especially for experimental and cutting edge solutions.

Fellow - This is a title bestowed to a very few experts that is intended to denote a long and successful career in a technical field. This position is often an advisor to management as well as contibuting to technical projects and defining standards for the organization. This position is a pinnacle of a storied career.

12

What career development path should I advice to such an employee?

What I have seen companies do is something like:

Associate/Junior Software Engineer
Software Engineer
Senior Software Engineer -> Lead/Manager/Project Manager/other semi-technical tracks
Principal Software Engineer
Software Architect
Senior Software Architect
Principal Software Architect
Fellow
Senior Fellow

But in the end, they're just titles to fit people into HR mandated salary tiers (and cube/office sizes). They're still programmers, though will naturally spend more time working with groups of people to help make those people better, or to get awesome stuff done.

As far as what to offer, every employee is different. Some will want money. Some will want prestige. Some will want privacy (an office). Some will want challenging problems. Some will simply want the freedom to invent awesome stuff.

6

Remember that "career development" doesn't have to be "a new job title."

At my last gig, there was indeed a "full techie" progression from programmer to staff to lead to architect to fellow. But each of those levels has some additional requirements, which, while not directly managing people, does require additional technical leadership and mentoring over and above a line programmer.

If you don't have a progression like that, you can try to put one together. But even if you do, you need to consider the specific employee's goals and whether even that is the right path for them. If by "I don't want to go into management" they mean that they don't want to manage people and wear a tie, that's fine, but if they mean they don't want to take on responsibility for being a technical influencer and communicating with management and other engineers, then they also are not cut out to be an architect or fellow.

In the end, if someone "just wants to code" then there's a cap on their value to the company. You can be the best report programmer in the world, but "Staff Programmer" is about where that tops out. And that's OK. If someone isn't able to make it through the junior levels to a solid staff level then you should manage them out, but there's also no harm in someone having reached their effective "job title" cap. It's not a punishment that they're not "moving up" - they don't want to do what "moving up" entails.

So then you figure out what it is that THEY see as developing their career, given their lack of interest in those things. Maybe it's as simple as opportunities to work on spiffier/newer technology. "Hey Senior Report Writer, we have someone in Analytics asking about R, want to go learn that with them?" Or new areas of the business. "Hey Senior Report Writer, want to go over and embed in Sales for 6 months and write them some reports? You'll learn about sales!"

Career development is about helping the employee figure out where they really want to go, and then helping them go there. "Not management" is not a destination. Work with him to figure out what his goals are, and then see what you can do to empower him to go there within the bounds of your business. Titles and salary increases are only two of dozens of levers you have to operate around that.

5

I think you need to go a route that is not traditional. The title doesn't matter. Offer the following to someone who wants to keep writing code:

  • Increase challenges
  • Allow first choice at projects
  • Offer training opportunities
  • Increase influence over technologies, tools and development procedures used
  • Time to experiment on newer technologies that may or may not get implemented
  • Supervise Jr. Devs in areas of technology only and not other supervisory roles.

The two of you should sit down and discuss these possibilities and be open for others. This person wants to be a better programmer working in a better job. The definition of this will constantly evolve as does technology, ability and development needs of the company.

Put this person into the position that they write code so well, it would be insane to have them do anything else. Convince the "powers that be" that this is a rare and priceless thing.

  • 3
    The US Army provides Master Sargeant and Command Sargent career roles for outstanding NCOs who don't want to be promoted into the officer corps. Unfortunately, we make very little provision in the private sector for outstanding software engineers who want to remain software engineers. I'd love it if say Google took the lead and created a Master Software Engineer or Software Engineer Fellow career role and put these people into projects where failure is not an option. – Vietnhi Phuvan Oct 22 '14 at 17:28
  • 3
    @VietnhiPhuvan - It's good to know there are examples in other fields. The industry complains of programmer shortages, but too many good coders are sitting meetings. – user8365 Oct 22 '14 at 18:12
3

Generally the nonmanagement career path is:

  • Junior Dev
  • Dev
  • Senior Dev
  • Tech Lead (although this should be more of a management postion and very little coding)

After that, he can specialize and go through the reach the senior spot in your specialty such as senior data analyst or senior embedded systems developer or go for an architect position (altough again the amount of devlopment will be reduced, architects design more than they develop) if the organization is large enough to have such things.

But for most devs who want to stay out of management, professional development is often not so much about title as it is about getting new challenges and learning new technologies and solving harder problems.

It is nice to get significant pay raises as well which do not have to be tied to job title. If you can get significant raises without having a new tilte, then most senior people are perfectly happy not to get the new title. You may have to work something out with your HR concerning this as they hate the concept of large raises without promotions.

But if your have a dev who wants to develop, ask him where he wants to go and what sort of career path he is interested in. Then see how that meshes with what the copmany has to offer. You may or may not be able to offer what the person really wants, but you may be able to offer a place of emplyment for him while he purseues getting addtional qualifications (such as a Masters or Doctorate). Or you may be able to offer him the chance to make proposals for the work he wants to do within your business enviroment (maybe he is interested in big data and you don't do that currently, if he can develop a proposal for how it would benefit your business, then both of you could win.)

  • 1
    Tech leads are more mentors than managers. The role of a tech lead is to help guide decision making and learning rather than managing their career or their time. It is definately more of a technical position than management. – IDrinkandIKnowThings Oct 23 '14 at 18:43
  • Not anywhere I ever worked. Nor should it be. If you are the lead on the project, you are a manager and it is your first duty. Coding is last place when you become a tech lead. – HLGEM Oct 23 '14 at 18:58
  • I think you are confusing Team Lead and Tech Lead. The Team lead is a junior management position. – IDrinkandIKnowThings Oct 23 '14 at 20:06
  • I am a Tech Lead in my current job and it is a mangement job. – HLGEM Oct 23 '14 at 20:28
3

Have you actually asked this person what it is they want to be doing in 5 years?

Rather than try to figure out what they want to do, just ask them. If all they want to do is program then you have your answer. They have decided that there is no "career path". Therefore you don't need to worry about it and just let them do what they like.

  • Of course, I did, and I got the answer like "I want to keep programming because it's what I love doing most in my life", but at the same time he indeed has some financial goals and wants to develop his life, raise kids, etc. – rishat Oct 23 '14 at 6:46
  • 1
    @RishatMuhametshin: The problem here is whether his desire to keep programming can earn him enough to meet his other goals. I presume you have upper limits on what you are willing to pay a programmer. It would be in both of your interests to let him know what that value is and how to attain it. If his financial goals are beyond that amount then he will need to do some soul searching to see what is more important to him. – NotMe Oct 23 '14 at 13:35
2

Do you really need to push them into a management role? To many techies, going into management is a demotion. They spend less time doing what they love.

A skilled programmer is a very powerful resource. While management often requires a thorough understanding of programming, it requires other skillsets as well, like project management, HR, conflict resolution, making lose-lose decisions. Which may not be the person's interests at all. You'll have a Peter Principle effect where they are promoted beyond their competency.

The obvious solution seems to just give a manager-level benefits to the same role. I don't see why a highly skilled programmer can't be paid more than a manager. They're certainly rarer!

You could still increase their responsibilities to have an advisory role. Force them to attend meetings regarding very important decisions to give their point of view and expertise. But they don't have to be responsible for the decisions made. And they don't have to be responsible for the success or failure of a project due to a poor team composition.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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