When an engineering manager is too hands-off, giving excessive autonomy to the team, it creates misalignment and frustration for everyone involved.
The Pitfalls of Excessive Autonomy
Imagine an engineering team working on a complex software project. The team is diverse, with a mix of junior and senior engineers, each with unique strengths and weaknesses. The engineering manager believes in the power of autonomy and adopts a hands-off approach, hoping for the team to self-organize, choose their tasks, and work on them independently.
Initially, this approach seems to work well. The team enjoys the freedom to pick tasks and work at their own pace. However, as time passes, cracks begin to appear. Without the experience to prioritize effectively, junior engineers start working on unrefined tasks that take forever to complete. Meanwhile, senior engineers work on unimportant aspects of the project because they are drawn to challenging but less critical tasks. As a result, barely anything from the project roadmap our engineering manager has committed to gets done.
Still committed to his hands-off approach, the manager fails to intervene, allowing the situation to continue. The team’s focus drifts away from the project’s main objectives, leading to more delays and missed deadlines. The lack of direction and oversight creates a misalignment between the team’s efforts and the project’s goals, causing frustration among team members — everyone works hard, but the stakeholders aren’t happy.
I’ve been this engineering manager in the past. I always saw the hands-off approach as a sign of trust and empowerment. But nobody said the hand-off approach meant ignorance. When engineering managers ignore the responsibility to guide the team, it inevitably creates a chaotic environment. The team needs guidance to navigate the myriad of difficult project decisions.
The Consequences of Misalignment
When a team’s efforts are not aligned with the project’s objectives, it leads to a cascade of negative outcomes.
The first consequence is frustration among team members. The junior engineers, who are working on unrefined tasks, struggle to see the value of their work and feel their efforts are not contributing to the project’s success. Plus, they tend to work on those tasks forever without closure, which creates even more anxiety and annoys stakeholders.
On the other hand, the senior engineers are happy working on things they find interesting. But, from an engineering management perspective, their skills could be utilized more effectively as they work on less critical tasks. This is usually found out too late, and as a result, senior managers have to find quick solutions for critical problems within a short period of time. This creates nothing but frustration.
The misalignment results in missed opportunities and delays. As the team’s focus is not on the most important aspects of the project, the project’s timeline gets delayed. Furthermore, because junior engineers working without guidance build questionable solutions, and senior engineers are also forced to rely on quick and dirty approaches, the tech debt grows at the speed of light.
The consequences of misalignment extended beyond the team itself. Stakeholders who entrusted the team with the project’s success begin to lose confidence in the team’s ability to deliver. This damages the team’s reputation and impacts future work.
The Role of the Engineering Manager
In software engineering, the manager is pivotal in guiding the team and making sure everyone is aligned with the project’s goals. We all want to avoid being that terrible micromanaging boss. But a hands-off approach does not mean avoiding responsibility. In fact, it requires the manager to pay even more attention and be ready to step in when necessary to steer the team in the right direction.
In the realm of self-organizing agile teams, active management is vital. This doesn’t mean passing all the responsibility onto the team under the guise of self-organization. A manager needs to understand the team’s context and find ways to coach people instead of telling them what to do. He must also closely monitor everyone’s work and be ready to step in when he anticipates poor outcomes.
Coaching and support are a huge part of the role. Focus on helping your team members develop their skills and overcome challenges. Understand each team member’s strengths and weaknesses and provide constructive feedback. Ensure that you clearly communicate the goals and priorities and that all team members understand them. Schedule regular team meetings to re-visit and align the goals with everyone.
As an engineering manager, you should be good at analyzing complex situations, identifying potential risks and opportunities, and making informed decisions that align with the project’s objectives. When problems arise, you should know about them as soon as possible and be ready to step in and help the team solve them so the project stays on track.
It can be anything — from choosing the right technology or approach that will work long-term to resolving an ongoing conflict between the backend and the frontend team not being able to agree on the protocol or simply people going off the track and overengineering things.
Striking the right balance between autonomy and oversight is key for the success of an engineering manager and the team as a whole.
Excessive Autonomy is Dangerous
If you feel lucky and decide to let go of the steering wheel while pushing the gas pedal on a car, don’t be surprised that you don’t get very far. Autonomy works amazingly, but it needs to be balanced with effective management and oversight.
It’s true that an engineering manager’s role is to empower the team. “Hire great people and get out of their way,” but also make sure you check in weekly on progress to make sure the alignment on key project objectives is still there. Otherwise, don’t be surprised about inefficiency and frustration undermining the team’s success and repeatedly making deadlines slip.
Originally published on Medium.com