5 strategies to turn underperforming groups of engineers into top-performing teams
James Samuel, a seasoned software engineering team manager from Reddit, provided key insights into building high-performance software teams at the Shift developer conference. After over a decade of experience leading engineering teams across different industries, James shared five strategies to transform underperforming groups into top-tier performers.
Create Clarity
Confused teams need help achieving their goals. As James emphasized, clarity is essential for any high-functioning team. This begins with a clear sense of purpose — understanding the “why” behind the work. A team must know its mission and how its contributions align with the company’s broader goals.
The second pillar of clarity is having a well-defined plan:
Teams need direction from point A to point B, which requires a strategic plan that everyone can rally behind.
The plan should clearly outline the tasks’ priorities, trade-offs, and motivation. Finally, clarity of responsibility is crucial. Every team member should understand their role and how it contributes to the project’s success. Leaders must continuously communicate this clarity — not as a one-off but as a constant guiding force throughout the team’s journey.
Compose a Strong Team
Building a solid team goes beyond just hiring talented individuals. While talent is essential, leaders must also consider the optimal size and stability of the team. James pointed out that an undersized team might need help with workloads, while an oversized team could face communication breakdowns and miscoordination.
Stability is key. Frequent changes within the team—such as rotating members in and out—disrupt cohesion and performance.
It takes time for a team to set up, and James recommended that teams work together for at least 4 to 6 months to achieve optimal collaboration.
Create Synergy
Synergy allows a team to outperform even its best individual members. James compared this to a rowing team, where synchronized efforts lead to better performance.
As a leader, your role is to create an environment where everyone is aligned and moving toward a common goal.
Setting well-defined shared team goals and breaking down communication barriers is essential to build synergy. Transparency in communication fosters trust and allows the team to operate as a cohesive unit. James also highlighted the importance of trust, both compelling (emotional) and cognitive (based on competence), to ensure strong team collaboration.
Empower
Empowering a team means creating an environment where individuals can take ownership and drive their work forward. James shared his experience of initially trying to solve every problem for his team, which led to dependency and hindered others’ growth.
Authentic leadership is about empowering others to take the lead. Inherent motivation plays a crucial role in this empowerment.
James emphasized the need for autonomy, where team members have control over approaching and solving problems. Leaders should coach and develop every team member, ensuring they grow into leadership roles.
Continuous Improvement
Finally, fostering a culture of continuous improvement is critical to sustaining high performance. James stressed that teams should constantly reflect on their processes and outcomes. Regular retrospective meetings offer an opportunity to discuss what worked well, what didn’t, and what can be improved.
Open communication is vital in creating an environment where team members feel psychologically safe to voice their concerns and suggest improvements.
Flexibility is essential, too — processes that work today may not work tomorrow, and teams should always be ready to adapt.
James wrapped up his session with a notable takeaway: high-performing teams don’t just happen; they are deliberately built through clarity, collaboration, empowerment, and continuous improvement. Following these strategies can help build high-performance software teams that consistently deliver exceptional results.