Whether you’re a new or experienced engineering manager, here are some essential practical, technical, and interpersonal tools to have in your arsenal.
Many software engineers are reluctant to move into management because they lament the loss of being technical. As an engineering manager who started out as a software developer, I often miss the single-minded focus of heads-down coding and getting lost in a particularly gnarly logic problem.
Today, I lean back on a more structured approach to problem-solving which allows me to apply logic to the challenges I face in my role as an engineering manager. A mix of technical and managerial tools can be indispensable aids in facing these challenges.
Getting to grips with the technology
Coming from a technical background is not a strict requirement, but it is a strong plus when moving into engineering management. Having a foundation of technical knowledge will help you understand what your engineers are working on and empathize with their role.
If you don’t have this baseline of proficiency, start looking into how you can become better versed in software development concepts, design patterns, security concerns, and the entire software lifecycle. This contextual experience will place managers in prime position to remove developers’ obstacles, spot issues coming ahead of time, and deflect unrealistic demands. For example, a product manager may request certain capabilities that are difficult to execute given an engineering team’s expertise which the engineering manager identifies and heads off before the request even gets to the development team.
If you are unfamiliar with technical domains, there are a few tools you can lean on to develop a deeper understanding.
- Learning platforms – Tech moves fast, and while engineering managers don’t need to know every detail of the newest tech, having access to a learning platform can supply the broader knowledge needed to participate in those high-level design meetings. Examples include LinkedIn Learning, or Massive Open Online Courses (MOOC) like edX or Coursera.
- The bookshelf – Once you’ve taken that introductory course, and know what questions to ask, deep diving into a topic with a good book is invaluable. Looking at the catalog of technical publishers is an easy way to see the breadth of relevant books available.
A couple of books that really helped me are The Manager’s Path by Camille Fournier, and Team Topologies by Matthew Skelton, Manuel Pais, et al. If you want to have a more general deep dive into the subject, publishers to check out include O’Reilly, Manning, and Addison Wesley.
- Podcasts – Podcasts are a convenient medium of learning during a commute or other activities that don’t require full focus. Sometimes you can glean knowledge and inspiration from just listening to a conversation, or hearing about someone else’s experience. A few management-focused podcasts include: Level-up Engineering, Legacy Code Rocks, and Dev Interrupted.
Methodologies and metrics
Engineering managers often have a good handle on their team’s metrics and methodologies. While there may be people on hand to help in this area, such as scrum masters guiding teams through agile processes, engineering managers also need to know how to interpret and use metrics like burndown charts, velocity, and control charts.
DevOps Research and Assessment (DORA) is a research program that surveys engineering professionals and produces metrics that are another useful tool for measuring the performance of teams. For example, time to restore service is a measurement used to determine how quickly a team is able to recover from an unplanned outage. Engineering managers must understand all of the factors that go into restoring a system quickly (observability, monitoring, and alerting, etc.) in order to allocate resources effectively.
Here are some tools that assist with the gathering and interpretation of metrics:
- Issue trackers – These are essential for any engineering team to keep a handle on the many tasks required to build software. There are a ton of tools out there, but some of the most popular include: Jira, Asana, Basecamp, and GitHub.
- Analytics platforms – These tools allow engineering leaders insight into how the team is performing based on a plethora of metrics derived from various sources, like issue trackers and code repositories. These metrics can help pinpoint areas where the team needs to adjust. Examples: Jellyfish, Pluralsight Flow, Code Climate Velocity.
- Monitoring dashboards – After the software is out in production, it’s important to be able to figure out how well it works. Monitoring dashboards can give you quick overviews of application health with visualizations that show usage, error rates, and other custom metrics derived from raw data. Examples: Splunk, Dynatrace, Datadog, and New Relic.
- Financials –- When planning software projects engineering managers are called to evaluate if they’re worth the effort or money. Metrics like revenue per engineer or return on investment (ROI) should be tracked consistently to show the value being produced by the engineering team. Financial knowledge enables smooth oversight of long-lived projects, which require the understanding of important concepts like operational expenditure (OpEx) and capital expenditure (CapEx) in the allocation of resources. Understanding value stream mapping (VSM), and financial forecasting can distinguish you as a manager who can improve the bottom line.
First-time manager tools
If you’re an individual contributor moving into the role of an engineering manager, you may find the leadership and team responsibilities a daunting prospect. Obviously, metrics cannot be applied to people in the same way they are to software and processes. However, teams and team communication can be guided by structured principles. This approach can lead to leveraging the intersection of customer needs and team capabilities to drive efficiency.
- Contact lists – Sometimes simple tools are best. Having a good old Rolodex full of peer managers is a useful tool you can depend on. Keeping those relationships fresh by checking in regularly can mean the difference in how quickly you can get your request for enhancement (RFE) addressed.
Other important relationships to cultivate include customers, product managers, project managers, chiefs of staff, and the almighty administrative assistant. Build these relationships by engaging with their content (e.g., internal blog posts), attending quarterly business reviews (QBR), responding promptly to their requests, or simply inviting them to coffee – which may have to be virtual. In a post-pandemic world, hallway conversations are rare, so be intentional about engagement opportunities.
- Strategy documents – These include strategic plans, 6-pagers, etc. These documents give insight into the company or team’s direction and their concerns and challenges. Read these documents with an eye towards identifying where you or your team can assist with expertise, shared roadmap, or some other area of synergy. Addressing another team’s concerns is an incredible way to position yourself and your team positively. Sometimes just demonstrating that you understand the strategic challenges generates the goodwill needed to really get things done and grow your influence.
- Tough conversations – In some ways, this is the scariest part of becoming a manager – realizing you are the one addressing poor performance issues. But, having a step-by-step framework for difficult conversations can remove some of the fear. One example is the SBI feedback model, which walks through how to frame a difficult conversation in terms of communicating the situation, discussing the behavior that led to the situation, and then expressing the impact. It’s a very structured approach that any engineer can appreciate. I’ve learned some of these structured approaches by reading Crucial Conversations and Crucial Accountability (both by Joseph Grenny, Kerry Patterson, et.al.), which give practical ways to approach difficult conversations.
Engineering managers face a large array of technical challenges outside of coding. Many of these challenges build on technical skills and integrate the effective management of people and team dynamics to facilitate software delivery. Understanding the technology, knowing how to gather and interpret the metrics, and cultivating relationships within the company are all practical skills that can be developed and aided with a fully stocked toolbox.