Software engineers have a few different options for career advancement. How should companies structure these opportunities to help their engineers do the best work of their lives?
As we progress in our careers, our motivations to work and what excites us will naturally evolve. In fact, a 2016 survey found that 52% of people leave their jobs because of the lack of development opportunities. Software developers are no different.
Stackoverflow’s 2020 developer survey asked what led developers to look for new jobs, and “Wanting to work with new technologies” came in second while “Growth or leadership opportunities” came in fourth. “Opportunities for professional development” was also the fourth most influential factor when choosing between job offers.
When we think about career advancements, most people think about climbing the managerial ladder and becoming proficient in people management and strategy. While some might find these advancements exciting, it’s definitely not everyone’s cup of tea.
So what do growth opportunities look like for software engineers? How do we create exciting and engaging opportunities for everyone, at every level?
The dual career ladder for software engineers
Most companies adopt a “dual career ladder” where engineers can choose a managerial or non-managerial path that offers similar raises, bonuses, and other upgrades that come with a promotion.
Engineers who thrive on learning new technology and want to stay close to development and coding work can opt to remain as individual contributors. While job titles might vary, it typically goes from junior to intermediate to senior engineer to head engineer, with more leadership skills and technical expertise required from each level of contributor.
There are also lateral moves that contributors can make to advance their careers, for example venturing into DevOps, data science, or machine learning. The lateral move chosen will depend on your skills and interest.
Side note: The software architect
As contributors progress in their careers, they’re more likely to take on larger projects and may venture into software architecture where they get to coordinate large-scale systems. According to Mayuko Inoue, this is not always a formal role in every company but is definitely present in larger companies.
While software architects do not spend a lot of time on execution or building, the role still requires deep technical skills and knowledge, as architects need to make sure that different systems can work well together.
Engineers interested in the management track are typically interested in developing high-level strategies and pushing a company’s vision forward. They tend to go from software engineer to team lead or engineering manager, to Head of Engineering, to VP of Engineering or CTO. Again, the exact title might change from company to company.
Managers tend to spend more time managing teams and rallying everyone around a shared goal. Their main job is to get teams to execute strategies, which could include supporting and developing team members to get the job done. Managers, therefore, spend less time actually coding and building things.
Alternative personal development options
Apart from upward or lateral movements, there are a couple more options for employees to advance their careers, as outlined by SHRM:
Job redesign can either take the form of job enlargement, where more tasks are added to the role, or job enrichment, where more depth is added to the role in the form of planning, strategy, and organizing tasks. While job redesign can be used to add variety and challenge to help the individual grow, job enlargement without job enrichment could dampen employee motivation.
Job rotation allows employees to join other teams within the organization, offers them a wider variety of tasks, and exposes them to different perspectives in the company. For managers, rotations can broaden their expertise and prepare them for the next level. However, job rotations may increase an employee’s workload without necessarily improving their productivity. Successful job rotations require careful planning, open communication, and clear goals for all stakeholders to benefit.
How should companies develop these tracks?
Step 1: Review your organizational chart
Before we even dive into the details of creating career tracks for engineers, your company first needs to have a clear organizational chart that shows how the company is structured, including the different hierarchies or levels in each team.
Step 2: List skills and competencies for each role
The next step is to clarify job descriptions for each role within the team, outlining the roles and responsibilities for each engineer according to seniority, and the technical and leadership skills required to get the job done well.
When you’re listing the skills you’d like to see from each engineer, it is best to highlight specific behaviors that people with these skills exhibit.
Take this example from GitLab’s individual contributor track concerning business development and organizational understanding:
- Intermediate - Understands organization structure and processes.
- Senior - Demonstrates knowledge about how their group and stage fit into the larger business.
- Staff - Looks for opportunities for process improvements and opportunities to exhibit leadership for organizational initiatives.
We can see that as engineers move up, GitLab wants its engineers to assume more collaborative roles to help the company achieve its goals.
Step 3: Create a roadmap for each track
Now that you know which skills are needed at each level, whether as an individual contributor or manager, put it all together in a roadmap that outlines the skills required as someone progresses through the ranks at your company.
Apart from technical skills, these are the top 5 soft skills you should look out for according to LinkedIn:
- Creativity - People who can bring new perspectives, ideas, and solutions to the table will be valuable as we face increasingly uncertain business environments.
- Persuasion - Individuals who can communicate effectively and explain the “why” behind an idea or solution are more likely to win over their colleagues and other stakeholders.
- Collaboration - Working effectively includes leveraging each others’ strengths and weaknesses to improve the team’s overall productivity and performance.
- Adaptability - If anything, the past year has shown us that the ability to embrace change and adapt to new challenges will set individuals and companies apart from the rest.
- Emotional Intelligence - The ability to perceive, evaluate, and respond to your own emotions and the emotions of others is an important skill that fosters better collaboration, especially amidst constant change.
Your roadmap should also include recommendations for internal and outsourced training and courses to upskill and support your team. Here are some forms of support you can offer team members:
- Career coaching
- Job shadowing
- Technical bootcamps
- Online courses
Step 4: Map your career advancement process
Of course not everyone is going to be up for promotions all the time. There needs to be a repeatable process in place to help managers and employees identify who to promote and when.
While companies are complex and there is no one-size-fits-all template, your career advancement process should answer the following:
- When can someone apply for a promotion? Is this an annual process that comes together with the annual performance review? The process is likely to be different for different tracks, so be sure to define both.
- What does the selection process look like? Do they need to go through an interview process if there are other applicants for this role? Does the rest of the team have a say in who gets promoted?
- What are the required skills and experience to advance to the next level? For example, GitLab recommends engineers take on temporary manager roles before committing to the management track.
- What do managers need to do to facilitate the process? Are there any forms or development plans that need to be submitted to HR? Are managers aware of the opportunities available to their team? How do managers secure the support they need for their direct reports' advancement?
Nikos from TalentLMS also highlights a few key characteristics that your promotions process should definitely include:
- Reward results - Career upgrades should take into account key performance metrics such as lead or cycle time, number of story points, and the usefulness of code reviews. It should also take into account employees who consistently demonstrate your company’s values in their day-to-day actions.
- Engage employees - The process should encourage employees to take charge of their career development and encourage career conversations with managers and HR. You should provide employees with opportunities to learn new things and offer training opportunities to help them level up.
- Track top talent - You want to retain your top talent and prepare them for future leadership positions. HR teams should pay attention to high-performing employees, provide them with coaching and, when necessary, offer fast-track advancements to leadership roles.
- Avoid bias and promote diversity - Even in 2021, diversity remains a big problem in engineering teams. To combat this, companies should constantly check their biases and assumptions when deciding who to promote and review existing promotions processes for discriminatory practices.
Step 5: Spread the word!
With a clear roadmap for each career track and a process in place for employees to embark on the next chapter of their careers, HR teams need to actively communicate these opportunities to the team.
Offer employees a breakdown of the different career tracks available and the steps they need to take to get there. You can also provide typical promotion scenarios to help your team understand the opportunities available.
You should also promote career advancement opportunities in your recruitment and onboarding processes to help attract and engage new employees.
Everyone has a role to play
While HR teams can set up career tracks and advancement processes and managers are expected to support their teams, a lot of the work needs to be owned and driven by individuals themselves.
What do you really want to do? Before setting up a meeting with your manager about your career development, be clear about what you’d like to do in the future.
You might already be in your element coding, building, and learning new languages, frameworks, or architectures, and you may want to continue this work for a while longer. Perhaps you’re interested in managing other people, developing long-term strategies, and getting everyone excited about the future of what you’re building. On the other hand, you might also be at that stage of life where your career does not drive you as much, and you’d much rather spend more time with your family.
Whatever your goals may be, it’s on you to be clear about where you want your career to go, and then work with your manager and HR to make it happen in a timely manner. Waiting for leadership to approach you about your next promotion is not a strong strategy!
If you’re not sure what opportunities are available to you, ask your manager or HR. You could also set up a meeting with your manager to discuss career goals and expectations and work together to create a development plan to outline the different forms of support, training, and exposure you would like to receive to achieve your goals.
It’s important that managers have regular career conversations with their teams, not just during annual performance reviews. Apart from delivering useful feedback and supporting your team with their day-to-day tasks, you should have open discussions about their long-term career aspirations.
If you’ve yet to have career planning conversations with your team, it’s time to do so. Here’s how to get started:
Before the meeting
- Schedule a meeting with your direct report and ask them to think about their career goals. You can provide relevant company resources like the roadmaps for various tracks so they know about the opportunities that exist within the company.
- On your own, outline the goals and skills your team members can work towards to improve their current job performance. Also, prepare recommendations on what they can do to ensure that they’re progressing along their career tracks.
- Lastly, make sure you’re updated on all the different avenues of support offered to employees at your company. If you’re unsure, check with HR.
During the meeting
- Be open and listen to what your team member has to say about their goals and aspirations. Ask clarifying questions to make sure you’re both on the same page.
- You should also provide feedback about their goals and guidance to help them achieve them. Be sure that your expectations as a manager are clearly defined and that your direct report knows what they have to do to qualify for their next promotion or lateral move.
- Sketch out a plan with actionable steps, measurable outcomes, clear timelines, and relevant milestones. Your plan should include any additional training or support to help your direct report grow.
- Create or fill out any HR forms relevant to the employee’s career development.
- Be careful not to guarantee or promise your team members a promotion, even if they are able to meet the goals. Manage expectations in a realistic way while still being supportive.
After the meeting
- Arrange for your direct report to receive the necessary support based on the development plan you have both outlined.
- In your check-ins, make time to review their career development plans to track progress and identify blockers.
Human Resource is responsible for creating structure and processes to help individuals across the organization get the support they need to do their best work. They’re also responsible for forecasting the organization’s talent needs, securing a budget for hiring and training, and ensuring continuous improvement across the board.
When it comes to developing tracks for software engineers, HR will need to rely on field experts to keep roadmaps updated and relevant. They should also pay attention to equipping new managers with the skills and techniques required to be good career coaches and mentors.
Professional development is very much about personal growth, too. It’s about having a clear understanding of where your strengths and weaknesses lie, what your goals are, and what drives and motivates you to do your best work.
The good news is that your career pathway does not always have to be linear. The path you choose now does not have to be the one you stay on for the rest of your life. It’s not uncommon for engineers to try out managerial roles or join different teams to get a feel for the role before committing fully to it. Life can also get in the way of career advancements, and it’s okay to take a step back to spend more time on life outside of work.
At the end of the day, it’s up to you to define what success means to you and how you’d like to shape your career to get you there.
- Career Paths for Software Engineers and how to navigate it
- The Career Paths in Software Engineering
- GitLab Handbook - Career Development
- Developing a Career Path Framework in 7 Steps for Your Employees
- 5 Tips to Improve Your Career Development | Balance Careers
- "Dual Career Ladder" image from Kashif Razzaqui via Medium