How to Become a Software Engineering Manager in 2024: An Essential Guide
If you are a Software Engineer interested in transitioning to an Engineering Manager position, you are in the right place!
We're here to demystify that process. Discover the skills we'll need and the mindset shift essential for success. Whether deep in code or already mentoring peers, this guide is our first step toward leadership. Let's explore how to become an engineering manager without the fluff – just the facts we need.
💡 Key Takeaways
1. We don't need a proper degree to be a Software Engineering Manager (but it's a plus if we have one). Skills and experience are more important.
2. It is easier to transition to an Engineering Manager role within the organization. Look for internal opportunities.
3. Before seeing any transition opportunity, we prepare ourselves by gaining more software engineering experience, finding leadership opportunities, and demonstrating a proactive mindset and management capabilities.
4. Identifying the gap between our current and an Engineering Manager position is also essential. Understand the process and requirements. Use those requirements (if there are any) to build a strong track record. It makes us stand out when the opportunity arises.
Identifying the Requirements of Engineering Managers
First, let's define our end goal. We want to be qualified as an Engineering Manager. However, there are specific skills required for this position. Unlike software engineers, every company has a different definition for the role of Engineering Managers. Some require specific technical skills, such as blockchain, and some need the role to do hands-on coding. However, the following are the essential skills and experience required by most positions:
Strategic Thinking and Problem Solving
These skills are very similar to working on technical projects, but one key difference is that engineering managers work on people and organizational problems.
Strategy thinking and problem-solving involve:
Identifying the problem (this is the key!)
Finding multiple solutions and knowing their tradeoffs
Making a decision
Getting feedback and adjusting executions
One classic example of problem-solving is handling low performers. The most straightforward way to resolve this is to jump right into the solutions. However, it's equally important to understand the problem first.
Consider David's example: David is assigned the development task of adding the payment function on the checkout page. It takes him one week, and there is almost zero progress. Colleagues complain that David is not making progress. As managers, how should we cope with this situation?
A premature manager might rush to find a solution, asking David to speed up, pass the task to another member, or check for any motivation issues.
However, a sound engineering manager would sit down with David and see how he navigates through the problem. He might find that there needs to be more documentation on the checkout page codebase, and it's challenging for David to move forward without understanding the codebase. Thus, the problem is not on David anymore. Adding more documentation to the codebase is the issue. A problem-solving skill like this is essential to distinguish between a Software Engineer and an Engineering Manager.
People Management
For engineering managers, people management is a balancing act that involves
Aligning individual goals with the objectives of the team and project
Building trust
Understanding personal career goals through regular one-to-one meetings
Encouraging and providing growth opportunities
Project Management
Project management is an overlapping area with the Product/Project Manager role. However, Engineering Managers are usually required to have the same sensitivity and skills in project management to move the project forward.
Good project management skills include choosing the right tools and patterns for the development process. For example, everyone loves Scrum and Agile methodology, but only some teams can implement 100% scrum patterns. Some projects use a Kanban method, some use 2-week sprints, and most don't use story points. Managers oversee the process and find the best approach for the team to move forward.
Technical Expertise
Although many engineering managers no longer need to code, they should still be skilled in technical skills. Most managers still need to understand the domain and the technology to make the right decisions when facing problems.
For example, if the engineering team has a problem choosing whether to build their new entity in service A or B, managers should be able to jump in and make the call for the team. To do this, managers need to know what questions to ask (e.g., which approach is faster and whether it provides better system stability) and what technical debts might emerge when using different approaches.
On the other hand, if we are managers that need to code, technical skills would be required.
How to Become an Engineering Manager?
Transitioning from a hands-on software engineer to an engineering manager can be challenging but rewarding. This shift often requires technical skills, a change in mindset, and the development of a new set of skills.
These are some aspects I consider essential:
Internal or External Opportunities?
When considering a move to a management role, it's important to note that companies often prefer promoting from within rather than hiring external candidates because management abilities are more challenging to assess in an interview than technical skills. Therefore, it's usually more feasible to aim for a managerial position at our current workplace before looking elsewhere.
Finding Out The Recommendation Process
The transition from a Software Engineer to an Engineering Manager within an organization typically involves a recommendation process, necessitating a set of specific qualifications. These qualifications range from rigid criteria, such as job level, to soft qualifications, like the ability to resolve conflicts.
Software Engineers usually need to be made aware of these criteria. It's best to talk to an Engineering Manager to understand the responsibilities, requirements, and recommendation process. Every organization has a different process.
After finding the recommendation process, we could talk to our manager to set up a career plan.
Build a Leadership Track Record
Gaining several years of experience in software development is generally a prerequisite before considering a managerial role. Some say having a bachelor's or master's degree is more advantageous, but I don't think it's necessary.
Being in the same organization for a while could also contribute to a good leadership track record. It allows us to understand the technical aspects of the job, the challenges faced by our team, and the processes involved in the project lifecycle. During this period, it's also essential to cultivate soft skills, such as communication and teamwork. As software engineers, we rarely have opportunities to manage people directly. However, having other leadership responsibilities, such as leading cross-team communications or process revamping, would be a big plus for this track record.
How to Build Leadership Track Records as a Software Engineer?
The opportunities to transition to Engineering Managers are usually less than expected. We want to be ready when they arise. We can achieve this by seeking leadership opportunities, learning from engineering leaders, and gaining experience outside our current organization.
Taking Leadership Opportunities When Possible
To prepare for a management role as a software engineer, seek out leadership opportunities within our team. Some examples:
Taking the lead on a big project: Be that person to take the lead and gain experience by communicating with multiple team members, finding a solution that stakeholders are happy about, and delivering the result through teamwork.
Mentoring junior team members: It could be in a casual form where we always reply to their messages on Slack or in meetings. It could also be arranging regular check-ins with them to see how things go.
Proposing and implementing a new process: Basic agile approaches such as daily standup, retrospective meetings, or technical processes, including CD or load testing.
Leading by example to build a healthy team culture: There are many theories and practical steps to creating a good engineering culture in the team. Find the improvement points, discuss them with our manager, and implement them.
Observing and Learning from Engineering Leaders
We can learn insights into effective management practices from experienced engineering managers. Here are some steps we can take to learn from them and progress in our careers:
Engage in high-visibility projects to provide opportunities to observe and learn from experienced engineering managers.
Don't hesitate to contact them and express our interest in transitioning to a managerial role.
Seek their advice on progressing in our careers.
Gaining Experience Outside of the Organization
Note that in most organizations, leadership experience outside the organization is usually disregarded in our track record. However, the point of gaining such experience outside the organization is to learn and practice leadership skills for similar situations inside the organization. Some examples include:
Leadership Programs
Participating in a short-term course (example) or program could enhance our understanding of leadership experience. These experiences are organized as learning materials so we can absorb them quickly (i.e., there is no need to reinvent the wheel!).
Working with a career coach
If we ever feel lost in our pursuit of a management position, aside from talking to our manager, it's also helpful to find a career coach to work with. If you're unfamiliar with the concept, career coaching is a series of one-on-one sessions where we work with our coach to define our goals, identify gaps, and create an action plan. It's a very similar process to working with our manager.
However, the difference from doing it with our manager is that sometimes our manager has their agenda. Some managers want to achieve specific goals, so they may not prioritize our career goals. This situation is more common in smaller organizations where resources are limited. Working with a career coach ensures they are 100% devoted to helping us achieve our career goals (partially because career coaching is quite expensive 💸).
Despite going for career coaching, an ideal scenario is having a good manager willing to help and support us in our career path. I hope that is true in all cases.
Make Ourselves Standout when Opportunities Arise
When opportunities present themselves, it is essential to make ourselves stand out from the crowd. Establishing a strong track record in people and team management, engineering project management, and developing a strong professional network are key to distinguishing ourselves in the field.
Track Record in People and Team Management
Possessing a solid track record in people and team management signals our readiness for an engineering management role. Keeping a record of achievements that match the requirements of an engineering manager can be beneficial.
Sometimes, it is not very clear which achievements we are after. In principle, we want to have supporting materials that help them understand that we have the core skills of engineering managers. Some good examples include:
Lead the team to create the team OKR for the next year: This is usually the Engineering Manager's task, but from my experience, they are usually open to letting someone else do it for them. Ask them for this opportunity.
Lead a complex discussion and find the best solution: In technical discussions, team members may have different opinions. It would be helpful to write down a specific discussion, listing all possible solutions suggested by different members and how we successfully found the best solution.
It has to be in written form so that it is presentable to those who have impacts during the recommendation process. Our manager might be able to do it, too, but we know our track record best.
Developing a Leadership Network
A robust professional network can prove invaluable when preparing for transitioning to a managerial role. Establishing relationships and being seen by senior and successful individuals can lead to being perceived as a peer among high-level professionals.
I suggest reaching out to different engineering leaders in the organization to casually talk about their experience in moving to the management path and whether they have any suggestions for us. This will leave an impression on our motivation to move to the management path, and it could work as a reminder when opportunities arise.
It would be even better to have regular check-ins with leaders closely working with us on specific projects. This way, we enhance our motivation in their mind and get practical suggestions on improving our leadership skills.
Ask for Them when Opportunities Arise
Once we have a well-connected professional network, it is natural for someone in the network to think of us when an opportunity arises. However, everyone has a lot on their plate, so we have to be active in this process. As soon as we hear anything, it's critical to express our interest.
Summary
To wrap things up, the leap from being a software engineer to an engineering manager is a whole new game. It's about more than just coding; it's about learning new skills, stepping up to lead, and being ready to take charge when the time comes. Yes, it's a tough climb, but it's also the kind of challenge that can be incredibly fulfilling for those who are up for it. Every Engineering Manager began their career somewhere, and with the right strategy, that starting point could very well be where we are right now.
So, if we want to make that shift, start by plotting our course and actively seeking out leadership roles, even small ones. Build up skills in managing projects and people. And remember, it's about being proactive—don't wait for opportunities to find us; go out and grab them. With determination and a clear focus on our goals, we can transition from the world of software engineering into management and leadership.
Frequently Asked Questions
What degree or experience do we need to be a software engineering manager?
An engineering manager typically requires 5+ years of experience in software engineering. A degree is entirely optional. Skills are more important than having a degree. The vital part is possessing the skill set that the organization requires from an Engineering Manager. Nevertheless, a relevant degree would lay a good foundation for demonstrating essential skills, such as problem-solving and stakeholder communication.
Is it easier to transition to a management role within my current organization or to seek opportunities elsewhere?
It is generally easier to transition to a management role within our current organization before seeking opportunities elsewhere. Transitioning within the organization allows us to leverage our existing experience and network. Also, organizations don't usually hire someone as an Engineering Manager without prior leadership experience (a Tech Lead role might count).
How do I become an Engineering Manager without any Software Engineer experience?
An engineering manager's job is essentially managing a group of software engineers, so performing well would be very challenging if we did not understand the technical knowledge, working patterns, and challenges. We have already seen so many Software Engineers complaining about the ignorance of Product Managers if they lack experience in software development. Having software development experience is almost always a requirement for Engineering Managers.
How can I stand out when opportunities for a managerial role emerge?
To stand out when opportunities for a managerial role emerge, focus on building a solid track record in people and team management, engineering project management, and developing a professional network. Write these down to match the requirements of the management role's responsibilities. This will help us distinguish ourselves in front of our manager and those who evaluate us.