Engineering Career Series: How we think about engineering management
Wing Yung and Alex Levy, Engineering VPs for Consumer and Biz
- Jul 1, 2021
In our last post we talked about technical leadership, one of the growth paths available to software engineers at Yelp. In this post we’d like to share more about engineering management, which is another path that some software engineers choose after some time in the industry. We’ll start with an explanation of what engineering management is (and isn’t), discuss our approach to management, and talk about what makes it different from engineering. We’ll also discuss how people get started on a management path at Yelp, and what we do to help our management team grow in their roles.
What’s an engineering manager?
At Yelp, every engineering manager is accountable for the overall health, execution, and vision of their team. Managers safeguard Yelp’s culture and values, ensuring that it’s a great place to work. We expect managers to make good decisions that are best for the company and to put the interests of the team ahead of themselves. Sometimes this means handing off an interesting project to another team that is better equipped, or finding a role on another team at Yelp for a senior engineer who’s ready for a new challenge.
Each of us on the management team is a technologist with a background in doing the work, whether that be software engineering, information technology, machine learning, or something else. This background knowledge gives us the ability to understand what our teams do on a day-to-day basis, to empathize with the challenges they face, and to entrust our team with most of the decision-making necessary to build and operate our product and its infrastructure.
What does it mean to be accountable for the health of a team?
Managers are responsible for the motivation, well-being, and career growth of their teammates. A manager’s first job is to build a trusting relationship with each person on the team, usually through weekly one-on-one meetings and quarterly career planning discussions. If someone is feeling excited or proud, the manager is there for a high five. If someone is stressed or upset, or not taking care of themselves, the manager is there to listen and support, first helping them to pinpoint what they are feeling.
We rely on managers to connect the right opportunities with the right people, and you can’t do that unless you know someone’s interests, aspirations, and concerns. Someone might want to get better at public speaking, so you find a project for them in a role that involves lots of presentations to other teams. Or they might have deep social anxiety, so you make sure they don’t have to present, or you can find alternate opportunities for them to build confidence and communication skills. As a teammate advances in their career, it’s important to work with them to find opportunities that will engage their desire for personal growth and learning. Managers need to establish a foundation of trust and open communication if they’re going to understand what each team member loves about their work.
Managers spend a lot of time listening and paying attention, especially in our one-on-ones with our team. We want to be there for people when they are worried, frustrated, or stuck. We don’t aim to solve all of their problems, but we will offer our perspective and feedback, ask questions, and connect with others who can help them. We also want to be there to celebrate wins alongside them, and to make sure their growth and achievements are recognized.
What is a manager’s role in a team’s execution?
Managers are responsible for ensuring the team has processes, norms, and guardrails that allow the team to operate effectively and for everyone to do their best work. Each team will have its own personalities and preferences, but teams always need to be inclusive to be effective. For example, the manager of a Scrum team might run sprint planning themselves, or they might delegate that responsibility to engineers, but in either case they need to ensure that every team member feels involved and is an active contributor. Managers are constantly on the lookout for ways to help their team improve execution, and the best managers enable their teams to do this effectively.
People do their best work when they feel a sense of agency and autonomy over what the work is and how it gets done. This often requires managers to delegate much of the day-to-day technical work, like actually building and shipping software. Although all managers need to be prepared to roll up our sleeves and help the team during an emergency, it’s important that we avoid trying to do the same day-to-day work as the team. Writing code is fun – some of us really miss it – but if a manager is regularly doing pull requests, it raises uncomfortable questions: Is it safe to leave critical feedback on their work? Does the manager not trust the team? Is it a sign the team is understaffed? Is there nothing else the manager could do that would help the team perform better?
It’s no different with higher-level technical decision-making: it’s almost always better if the engineering team can handle challenging decisions on its own, instead of relying on their manager to make the call. Should we move from one database platform to another? Is it time for us to rewrite that ancient module that nobody understands anymore? Is our time best spent trying to make the app faster, or in rewriting our app framework so more teams can work in parallel? When these questions come up, the manager’s job is not to decide but to put structure around the team’s decision-making, using our own experience to guide the discussion and keep things moving forward.
As former engineers, we might love wrestling with technical problems, but as managers we often need to set aside our own interests in writing and pushing code to better support everyone else on the team. We do, however, rely heavily on our technical backgrounds to guide conversations, validate the team’s direction and investments, support technical growth of our teammates, and ask the right questions along the way.
Is “vision” just a fancy word for fancy presentations?
Managers connect the dots between business value and engineering projects. Many teams have product managers to identify business opportunities and study what delivers the most value to our users. Meanwhile, engineers are most familiar with the product’s current technical capabilities and weaknesses, as well as which systems are incurring technical debt and cannot be easily extended or reused. Engineering managers facilitate an ongoing conversation that aligns the next set of technical investments with business value, whether it’s iterating on a feature or system in its current state, or taking on a bigger effort to refactor or rearchitect.
One of the key ways a manager supports their team is by planning ahead. Engineering managers need to see at least a few months into the future, beyond the current backlog, and ensure the team is prepared for what’s coming up. In addition to working closely with other Engineering teams, we collaborate with teams in Product Operations, Sales, and Customer Success to understand the business’s priorities and to help make sensible trade-offs. We try to strike a healthy balance between incremental improvements (where returns on investment might be clear, but limited), and big bets (where the uncertainty is higher, but for a bigger potential payoff). If we are going to make a big bet, we help the team to break it down into milestones to reduce risk.
In parallel, each Engineering team keeps track of its own prioritized backlog of technical investments and engineering opportunities; the team’s manager needs to make sure there is enough time and budget for the team to make meaningful progress on that backlog. Many teams will allocate time in each planning cycle to address maintenance issues and small refactors. Larger technical investments are motivated by patterns in bugs and failures, as well as developer velocity. Often iterating on a system over years will lead to difficulty in supporting it due to the accumulation of complexity, drift of business goals, and increases in both the volume of traffic to the system and number of engineers who interact with the system. In recent years, we’ve tracked our largest technical investments at an engineering-wide level to ensure that teams know they are priorities.
It’s important for every engineering manager to understand the bigger picture so that they can share context with the team on where things are going and how they fit together. Every Engineering team has more possible work that it can ever complete, so it’s critical for the manager to facilitate the conversation of investment levels in various areas.
Bringing it all together
Health, execution, and vision are interconnected. A healthy team with a good work-life balance requires clear, consistent processes for triaging issues and making commitments. A team that consistently makes high quality decisions in a collaborative fashion is only possible if the team believes their manager when they say, “This decision is yours to make.” A team where every engineer feels motivated and challenged requires a manager who is thinking ahead and anticipating what comes next.
One example that touches on all three of these areas is incident response. Over the years, we’ve become much better at dealing with emergency incidents, putting in place protocols that ensure that engineers communicate and support each other through the incident, then discuss and write a (blameless) postmortem with follow-up action items (which can include longer-term engineering investments). Following an incident, managers check in with engineers taking personal time to deal with incidents to offer some paid time off to recover. As a management team we’ve prioritized introspection by our teams and time set aside for continuous improvement.
How does someone become a manager?
Sometimes an engineer will express interest in management and explore it with their leadership team; other times, we’ll see potential in someone and encourage them to consider it. We know that there is a lot of variation in effective leadership styles, and in some cases it has taken years of coaching and encouraging an engineer for them to give management a try. To ensure that we’re being open-minded about who can be a manager, we continue to develop leadership training for all engineers, not just ones who have self-selected into the management path, and we are asking all managers to have deeper conversations with their level IC3 reports on career development options, since this is where we typically see branching between the management and technical leadership career paths.
In any case, we only consider engineers who’ve already demonstrated some of the skills required to be a good manager. That could be mentoring other engineers on the team and helping train new hires. It could be leading projects and keeping track of team initiatives. We want to be sure that anyone under consideration for management understands what the role means at Yelp and has shown themselves to be a role model for Yelp’s values.
Management roles are not unlimited; they become available through team growth, reorganizations, and (sometimes) departures. This means that stepping into a manager role often involves changing teams. We think this is healthy; it helps new managers avoid the trap of trying to manage the team and remain one of the key technical contributors. If you’re learning to manage people for the first time, you have to be able to focus on that new set of skills and challenges. That is easier if it’s a new set of systems than what you worked on as an engineer.
Through some trial and error, we developed a training program we call “proto-manager” to help individuals try out the management role without making it seem irreversible. We wanted to give them exposure to the role and a vote of confidence from leadership, but still allow for the option to say, “Not for me. I’d rather keep writing code.”
As a proto-manager, the engineer takes over one-on-ones with the engineers on the team and accountability for the team’s execution; compensation planning and performance review are still handled by the team’s manager. Over the next few months, the proto-manager will get regular feedback from their team and their manager, and will track their progress against the expectations laid out in the first level of our Engineering Manager leveling system.
Proto-managers enroll in a training program we’ve developed that details our philosophy, approach, and toolset for managers. They also gain access to all of the resources, documents, and meetings that their EMs have, so they can learn as quickly and effectively as possible. After a few months, the proto-manager and their manager decide whether to move forward and make it official.
How does someone grow as a manager?
Mountains of books about management get published every year, but most of the growth of a manager comes from doing the job. It’s unlikely you’ll suddenly become adept at having crucial conversations with someone who is on the path to burning out just by reading a book or attending a training. It takes experience and practice to unwind the reasons that a complex project with a strong team still isn’t running according to plan. However, we have several habits and programs to support new managers as they learn on the job.
New managers gain a lot by getting advice from their peers. Directors hold weekly meetings with small groups of peer managers, with a focus on knowledge sharing and support within the group. Every attendee contributes to the agenda with books, articles, or videos that they found useful or insightful, but the majority of discussion often centers around what we call “people stories.” Managers can bring interesting or challenging situations to the group and the other attendees will listen, ask questions, and offer suggestions. Many of these stories are about coaching, giving feedback to, or finding opportunities for a particular individual. There is absolute confidentiality within these meetings; the goal is for a manager to get advice on how to help their team and grow professionally. We’ve found that these meetings are most effective when they are kept small because we want them to create a sense of safety and trust, and for each manager to feel like they can seek advice from a trusted circle of peers.
We also run a monthly manager meeting with all engineering managers at Yelp, which is an information sharing meeting that covers topics like updates to our leveling system and compensation planning, updates from around the Engineering team, and talks given by managers (for example, about allyship). This also provides a regular forum to ask questions of senior managers.
Over the years we’ve done several versions of management training, creating cohorts of new managers (those new to management or new to Yelp) and scheduling a series of sessions focused on topics like decision-making, coaching, and career development for their reports. As we’ve progressed, we’ve worked to adapt this to align more with Yelp’s overall management and leadership training, refresh the content, and ensure that it scales to work across worldwide engineering offices and in a distributed team environment.
Finally, we implemented a manager mentorship program early on, finding that managers derived a lot of benefits from meeting with other managers. Many new managers find themselves with mentors both inside and outside of their current group.
How do we track manager career development?
Our manager leveling system mirrors the engineering leveling system, sharing a common set of five dimensions: Technical Skill, Ownership, Business Insight, Continuous Improvement, and Leadership. We expect most managers to be well-rounded across these different areas. Advancement in these areas is generally tied to having accountability for increased scope. Senior managers tend to deal with more ambiguity, think more about how technology can deliver business value, mentor and manage more senior reports, and manage budgets and hiring plans. They solve problems by putting processes and structures in place, pursuing opportunities to improve in a changing business landscape, and steering the growth and restructuring of our teams.
While some of these areas are self-explanatory, we have several subdimensions in Continuous Improvement and Leadership that we’d like to highlight: Mentorship, Well-Being, and Community. These reflect our values as a team, ensuring that managers are looking for opportunities to grow others, support their teams, and build strong relationships. At higher levels, we expect managers to build and scale programs that sustain Yelp Engineering.
Do I need to become a manager to keep growing?
Absolutely not! We understand that a management career is a separate path from becoming an excellent software engineer, and we strive for both of these career paths to be full of growth opportunities. Nobody should ever feel forced or compelled to step into management to advance their career, because they’ll wind up in a role they don’t enjoy while their team won’t get the support they need.
While we’ve supported engineers who have been interested in transitioning into other functions like Product Management and Data Science, many engineers choose to stay on the technical career path at Yelp. For more information, check out two other blog posts in this series: Career Paths for Engineers and Technical Leadership.
Building Yelp’s Management Team
Between the two of us, we have 19 years of management experience at Yelp. We’ve hired, mentored, and managed a lot of managers at Yelp, many of whom are in their first management roles. Over the years we’ve helped to define and articulate our management culture. It’s been incredibly rewarding to build the team and support it. While we know the management path is not for everyone, it brings together a lot of challenges in helping a team work effectively to define and achieve success together. Many things can go wrong when people come together to build software, and managers can help a team to overcome all sorts of challenges and celebrate both individual and team success along the way.
We’ve scaled our management culture to a team of more than 150 managers. In an earlier blog post we talked about our career growth framework, which has been a useful tool to standardize career conversations and compensation scales. In our next post we’ll discuss how we measure and ensure pay equity and fairness in career progression across Yelp Engineering.
If this all sounds good to you, and you’re excited to continue developing your management career, we’re hiring!