How can managers navigate the changes in our industry and make sure their teams stay efficient?
After years of growth in the industry, we are seeing retraction and layoffs in most technology companies, rapidly shifting the landscape for engineering managers (EMs). Without the capacity to add more people, companies have been focusing on their engineering departments’ efficiency and performance.
Even if forced by unfavorable circumstances, changes enacted as a reaction to the current landscape could lead to improved work environments, but only if approached strategically. Often companies lean on outdated concepts to achieve this: more initiative, motivation, energy, and hours. “Doing more with less”.
But being successful at producing a desired result can, and should, be empowering instead of stress-inducing. So how can EMs take their teams through the current period with innovation, fulfillment, and respect for the software craft?
Before diving into that, let's take a broader look at the current software engineering industry.
The challenge of software engineering and how it affects performance
As an industry, we have a shared understanding of what makes good software delivery. While context varies, most modern organizations follow similar principles: build iteratively, integrate continuously, write tests, focus on outcomes, collaborate, and build with high quality.
One would think that having these shared principles would lead to a high-performing industry. Yet teams and companies face challenges. Most engineering managers are unaware of where their team's time is spent. Quality issues burden numerous teams and companies. Project failures remain prevalent.
Improving software teams is not easy. Adding a simple feature to a large-scale production system without issues is challenging. And aligning product, design, and engineering to overcome these challenges involves iterative efforts.
Overlooking the complexity of these situations leads to a vicious cycle of low quality and pressure, ultimately resulting in failure.
Improving effectiveness for greater company success
In order to improve their teams, EMs must first embrace how central their role is to cultivating outstanding results. This is achieved through creating a system where individuals can work to achieve the team’s goals in an effective manner.
As with all systems, EMs will have to take a step back to understand how various groups engage in their regular operations and under what specific rules. Some will be formal, defined as procedures, while others will be informal, also dubbed as habits. Some of these systems will be broader processes, as in how requirements are defined, and others will be more technical, as in the team's practices for automated testing.
Focusing on systems can, unfortunately, create concern about leaders falling into micromanagement. Will excessive focus on process stifle innovation? Does viewing everything as a system reduce us to mere task-oriented cogs?
This is a valid concern. EMs should not be micromanagers, overly defining exactly how to finish tasks. However, they must also avoid being passive observers, because teams without clear processes create informal working methods, usually determined by the members with more power (i.e., tenure and experience). Those that fall into this pattern will feel their overall productivity suffer.
Finding a happy medium is the answer. A well-designed system doesn't mean excessive processes. It means having just enough structure to achieve the best results.
How to get there
There is no set of rules for effective teams. Mostly, it is the context that informs a lot of the paths toward productive teams, and this may vary according to different companies, environments, and individuals. Even within the same organization, teams will have better results adapting to different systems based on their specific situations.
However, there are a set of principles that EMs can adopt in their work to lay foundations and encourage the emergence of effective teams.
Know how everything works
The EM needs to be an expert in how work gets delivered in their team. That means understanding how concepts go from idea to production, identifying bottlenecks within the system.
Having a solid grasp of the work and processes doesn’t mean knowing about everyone’s individual performance or the weight they’re pulling (e.g., Alice completing more pull requests than Bob). Instead, the focus is on the entire flow of work itself. For example, what areas consume the most time between the conceptualization of ideas and customers finally interacting with products? Are there quality issues arising from back-and-forth exchanges? Where is there wastage i.e., with work awaiting someone to act on it?
Only through a deep understanding of the work system can the EM allocate their time effectively, targeting areas with the most significant potential for improvement.
Visualize and define the work
Inefficiency in software teams often stems from a need for more alignment regarding ongoing tasks. For example, who is responsible for what? When is a task considered complete? Who needs help?
The better a team can visualize and align on what their projects entail, the less rework will be required and the more effective everyone will be. This is particularly important in a remote and asynchronous setting, where the rarity of people talking to each other about tasks could bring about misunderstandings. Good team hygiene (i.e., up-to-date boards, effective meetings, and well-defined tickets and processes) will eliminate an incredible amount of headaches in this area.
Understand people and their strengths
To create an effective team, EMs need to understand the people within their team, their strengths, and their aspirations. In doing so, they will be able to enable individuals to leverage their strengths.
Different groups will perform differently depending on the environment they are in. For example, if the team is low in experience, having a tech lead that can define work more formally could be helpful. If the group is highly experienced, having less documentation and more autonomy could be more productive. Emphasizing written communication could increase the effectiveness of a distributed team.
Ultimately, the challenge for the EM is to fit the people to the job in a way that leads to effective results (the job getting done) and play to every individual's strengths.
Be accountable for team results
EMs must embrace responsibility for the team's outcomes, taking ownership and intervening as necessary. They don’t have to be well-versed in every detail of ongoing projects but should have enough understanding to assess work quality across different aspects.
Having a broader view of all the work done allows them to make changes as they see fit, setting the system for the work and choosing the people who do it. This, by no means, makes them the most senior or most important member of the team.
“Not all team members will identify the same critical issues, nor will they think of the same solutions, even if they did. Some solutions will result in more critical issues. Out of this intellectual cacophony, the leader has to do the work of comparing and contrasting concepts, integrating proposals, answering and asking questions, correcting misunderstandings, providing due recognition, sequencing input, and finally, producing a plan of action to achieve the purpose.” — Systems Leadership: Creating Positive Organizations
While delegation is essential to the role, what and who to delegate to is a decision for the EM to make, with the perspective of owning its outcome. A common anti-pattern is for managers to separate themselves from failures, attributing them to an engineer's inadequate performance – which is never the case, as the EM is accountable for the result of their team’s work.
Find time for active leadership
Lastly, EMs need time to lead their team to do the above. A packed schedule of 1:1s and regular meetings will not leave time for understanding and acting on the system.
The main challenge of any management role is the fact that you are responsible for your own time. There’s nobody to guide managers or dictate how they spend their working hours. Because of that, assuming control over time is crucial so that EMs can focus on the highest leverage areas instead of just trying to keep up to date.
In order to do that, a few practices I have found useful are:
- Proactively managing my calendar by creating focused blocks and questioning the necessity of each meeting I’m a part of.
- Ensuring every meeting is effective, intervening if needed. Cultivating a culture of efficient meetings saves substantial time for everyone.
- Creating systems to replace meetings. For example, status updates are less necessary if the team's board is up to date.
- Regularly reviewing and resetting my calendar. Any structure that is created in my calendar will degrade with time as new meetings are added. Having a regular practice of reviewing it and cleaning it up will help protect a manager's time.
Effectiveness is worthwhile
Improving effectiveness is a good thing. If approached correctly, it will ultimately lead to better results and more fulfilled individuals. Efficiency also results in a more stable and less stressful work environment, where working smarter trumps working harder, even in our industry’s current constrained situations.