The times have become tougher in the software engineering industry with layoffs, budget cuts, and the end of the 0% interest rate period. One of the outcomes of this trend is the flattening of tech organizations, leading to either a reduced number of engineering managers or growing expectations for those who remain within the company.
In his latest articles,
from takes a closer look at this situation in The end of 0% interest rates: what the new normal means for engineering managers and tech leads.Gergely covers several very important points:
Reduction of Engineering Manager roles,
Changing responsibilities for Engineering Managers,
The rise of the Tech Lead role and a return to hands-on coding experience,
Strategies for enhancing job security and identifying opportunities, especially for individuals with some managerial experience.
To avoid repeating these points, let's explore some practical hints on what it means to be a good engineering manager.
The 1st-Level Managers Are the Most Important Roles in the Company
This statement drives the entire Practical Engineering Management philosophy. The first-level managers - Tech Leaders, Engineering Managers, Product Managers, or Team Leaders - are the most crucial roles in the company.
Their very difficult job is to blend hands-on experience with strategic thinking. They combine knowledge about products, business, and technology. They translate long-term objectives into day-to-day tasks. No one is closer to the customers. They have the power to deliver features directly to them.
The organization's success depends very directly on these first-level people managers. If a company decides to particularly reduce these roles, it most likely means the organization may not get enough value from these positions.
And why is that?
Here are a few common bad practices in engineering management:
Micromanaging - merely assigning tasks, not allowing collective decision-making, and not building overall awareness of why their engineers do what they do (reminder: the role of technology in a product company is to solve customers’ problems).
Not contributing to product discovery - the role of engineering is not only about delivering features. It's also about discovering the best way to solve customer problems.
Not being hands-on - it's not just about contributing to code development. Being hands-on also means stepping into an engineer's shoes - understanding their real struggles, developer experience, etc.
Not managing expectations - a semi-annual performance review is not enough. Engineering leaders must constantly work on course correction, growing teams’ skillsets, and finding the most impactful initiatives for their people.
Being gatekeepers, not enablers - a mix of the first and second points. Rather than finding a solution or trying to better understand the problem, they "protect" the team until they get 100% of the requirements for the work to be done.
Good engineering leaders should manage talent, potential, and growth, all with a focus on the organization's success. If they only manage "units" - assign people to tasks, manage timelines, dependencies - it's not enough anymore.
It's no surprise some companies try to convert these roles into something more hands-on. If managers cannot scale up teams' outcomes, let them build some value-added. If a company has strong senior engineers, those people already know what to do and don't need to be micromanaged.
How to Be a Good Manager Today
Let's start with the basics.
The Role of Engineering in an Organization
In a healthy tech organization, engineering is not a cost center but a profit center. This means it's the product (customers' needs) that drives technology, but the technology is what enables the product (its growth and/or expansion).
To make it work, leaders must ensure that engineers don't just write code. Because it’s super easy to do some coding activities that have little value to the product.
On the other hand, an organization must also ensure that the engineering team is not just a feature factory. Otherwise, it's easy to build a tech stack that doesn't scale in the right direction. "Ship it and forget it" may work in the short term, but in the long term, it'll be a disaster.
The Role of the Engineering Leader
To make the engineering team a good contributor to the organization's success, the company must ensure it's clear what problem needs to be solved by the technology. Assuming there are strong engineers, all they need is to understand the product context so they can pick the best possible solution.
In reality, product problems are complex. Most of the work companies plan to deliver are only hypotheses, not initiatives with guaranteed success. No matter how experienced engineering managers are, it's not enough if only they know the product context. No matter how knowledgeable they are about tech, collective thinking and decision-making will usually be more impactful.
If only the manager knows the product context and they control engineers, we end up with a team only writing code or producing features, without a broader understanding of the problem they are trying to solve.
On the contrary, good managers enable collective problem-solving. They ensure the product context is widely known by the team, so it's clear what problems they are trying to solve.
But the challenge here is multi-dimensional. Engineering leaders also need to:
Manage talent - challenge and grow engineers or fill gaps with good hiring.
Manage expectations - focus a team on outcomes, not inputs.
Manage people - make people feel valued, motivated, and productive.
Manage impact - allocate people to the best possible initiatives.
Manage technology - maintain technical debt, improve developer experience, align the tech stack with product strategy, set tech standards, KPIs or SLIs/SLOs, and more.
Tools and Techniques for Engineering Leaders
Here are some tools and practical hints I've shared over time to help engineering leaders maximize their impact and make their teams successful.
1:1s and Feedback Techniques
The most important thing for an engineering leader is to build a good, professional relationship with their teammates. Even now, when leaders are expected to be more hands-on or manage bigger teams, their success still mostly depends on people reporting to them.
A good relationship is the basis for expectation management, getting and delivering feedback, and growing teammates.
I recommend exploring these subjects on PEM:
Being More Hands-on
Today, more companies expect from engineering leaders to be hands-on. Fortunately, writing code is probably easier than ever before, as well. Thanks to tools like ChatGPT or GitHub Copilot, we can get a solid base for what we need - from bootstrapped projects to algorithms interpretation, tests, deployment instructions, and much more. Thanks to online environments (Google Colab, GitHub Codespaces), we don't have to maintain a programming environment on our machine. Workflow automations like GitHub Actions or highly automated cloud platforms like Vercel make deployment and the rest of the CI/CD process easy.
And even though code that comes from generative AI solutions is far from ideal, engineering leaders don't have to be Principal-level coders. They just need to be able to deliver value. If you are far from hands-on today, I recommend starting by just running your team's code, making a simple change, and deploying it. As a bonus point - you will see how easy it is to onboard to a project, what the documentation is like, and how much the SDLC process is automated.
For more, I recommend reading:
Go Back to Coding, Engineering Leader - one of the most popular articles on Practical Engineering Management.
Product Analytics for Engineering Leaders - an example project that was almost entirely created by ChatGPT and GitHub Copilot.
Managing Senior Engineers
Micromanaging makes work extremely hard for both leaders and engineers. As a leader who micromanages, you must always be on top of everything. As an engineer who is micromanaged, there is a constant feeling that your potential is not being used to its fullest. The situation is especially hard if an engineering leader manages a team of skillful senior engineers.
If you want to escape the micromanagement trap, you must realize that as an engineering leader, your job is less about managing people and more about managing their talent, potential, and growth.
Here are a few ideas about how you can do this:
Manage through expectations - Intro to Expectations Management
Manage through problems, not solutions - The Problem Solving Framework
Manage through purpose - Build a Team of Missionaries, Not Mercenaries
Manage through principles - Principles - Guidelines for Your Team
Being More Strategic
As an engineering leader, apart from executing product development, you also need to have a more strategic plan. It may include improvements to the technical stack under your management or team growth. Your job is first to set the right goals and then to execute and track them over an extended time.
Depending on your needs, I recommend checking:
How to Be a High-Performing Leader
If you're thinking about how to be a high-performing leader, there are two concepts to which I often refer.
Transformational Leadership
According to DORA research, which has been led for over a decade, there are five characteristics of high-performing leaders:
Vision
Inspirational communication
Intellectual stimulation
Supportive leadership
Personal recognition
Building your leadership style on top of these should give you a solid base for improving your team's performance.
Read more: 5 Characteristics of a High-Performing Team Leader
Focus on What Matters and Only on That
One of the most essential things for engineering leaders is effective time management. With multiple priorities, many people, and a tech stack under their leadership, capturing the actual outcome of the work can be challenging.
To help with that, I created the framework Leader's Week - How to Maximize Your Weekly Impact, which will help you focus on the right things, pick initiatives that generate the most value for you, and earn trust to gain more autonomy and ownership in future projects.
Final Words
Recent times have certainly been tough for engineering leaders. However, they also present an opportunity for many. I strongly believe that rather than fewer engineering managers, many companies need better engineering managers. I hope the materials I've been publishing on Practical Engineering Management will help you become an influential and impactful leader.
As always, please let me know if there is anything else I can help you with in your demanding but also rewarding role as a software engineering leader.