What Makes a Team High Performing
Leadership discussions about high performance tend to either get very abstract - "culture," "talent," "alignment" - or very narrow - "velocity," "DORA metrics," "deployment frequency." Both miss the more complete picture.
High performance is not primarily a function of individual talent. Research consistently shows that the composition of a team explains less variance in performance than the dynamics of the team - how it operates, how it communicates, how it handles uncertainty and disagreement.
This matters because it points at the right levers. Hiring more senior engineers helps. Creating the conditions in which engineers of all levels perform at their best - and continue to improve - helps more, and is more sustainable.
The Four Conditions
Based on both research and observed patterns in engineering organisations, high-performing teams reliably have four things:
1. Clarity of purpose and direction - every team member can articulate what the team exists to do, why it matters, and how current work connects to that purpose. This is not a mission statement on a wall. It is a shared understanding that can be accessed in the middle of a trade-off decision.
2. Psychological safety - people can speak up, admit mistakes, surface problems, and challenge ideas without fear of punishment or humiliation. This enables learning and error correction at the rate the work demands.
3. Autonomy with accountability - the team has real authority over meaningful decisions within their domain, and they are genuinely accountable for outcomes. Not nominal autonomy with actual oversight, and not freedom without accountability.
4. Feedback loops - the team gets signal about how it is performing, both from its own retrospection and from external sources. Without feedback loops, improvement cannot happen systematically.
What Research Says vs What Leaders Assume
The common assumption is that adding more senior engineers, paying better, or reducing process overhead is the primary lever for high performance. These things matter - but not as much as most leaders think.
Google's Project Aristotle found that who is on the team matters less than how the team operates. Microsoft's research on their engineering teams reached similar conclusions. The consistent finding is that the psychological conditions - safety, clarity, meaning - explain more variance in team performance than the technical or experience profile.
The implication for leaders: if your team is underperforming, look at the conditions before you look at the people.
Team Rituals That Work
Rituals are the recurring practices that organise a team's work and communication. Done well, they create rhythm, surface problems early, and maintain shared understanding. Done badly - or maintained past the point where they add value - they become overhead that the team tolerates and then learns to use as status theatre.
Standups That Are Not Status Theatre
The daily standup exists to coordinate - to surface blockers, flag dependencies, and adjust plans based on what happened yesterday. It does not exist to prove that everyone is working.
A standup that is working:
- Surfaces blockers and someone acts on them within the day
- Reveals dependencies that change someone's plan
- Takes less than fifteen minutes
- Generates follow-up conversations between pairs of people, not group discussions
A standup that is not working:
- Is a round of "I did X yesterday, today I'm doing Y, no blockers" repeated per person
- Runs to thirty minutes because every update triggers group discussion
- Has the same people reporting blockers week after week without resolution
- Attendance is high but attention is low - people are checking phones or Slack
The diagnostic question: after last week's standups, what changed? If the answer is "nothing" - if the standups produced no coordination, no block removal, no plan adjustment - the standup is not functioning. Reform it or end it.
Common reforms:
- Walk the board, not the people - discuss tickets not individuals, which naturally focuses conversation on flow and blockers
- End standups with an explicit "what needs to happen today?" rather than "any questions?"
- Move to async standups for teams that are genuinely not time-critical in their coordination
Retrospectives That Produce Real Change
The retrospective is the team's primary learning ritual. It fails in two ways: it produces the same themes every time without action, or it produces action items that are forgotten by the next session.
A retrospective that is working:
- Surfaces issues that people do not raise in other forums
- Produces one or two specific, owned, actionable changes
- Has visible follow-through on previous actions
- Generates genuine reflection rather than rehearsed positions
A retrospective that is not working:
- The "went well / went badly / actions" format produces the same output every quarter
- Actions are assigned but not owned - no single person is accountable
- The team is agreeable in the session and nothing changes
- The same themes appear in every retro for months
The key structural requirement: every action item needs a single owner and a completion date. "The team will improve our on-call process" is not an action item. "Priya will draft a revised on-call runbook by Friday and share it with the team for comment" is an action item.
The facilitator's role: The leader should not facilitate their own team's retrospectives regularly. When the leader facilitates, the team moderates what they say. Rotating facilitation, or using an external facilitator occasionally, produces significantly more honest output.
Planning Sessions That Create Genuine Commitment
Sprint planning or iteration planning exists to create shared understanding of what the team is committing to and why, so that commitment is real rather than nominal. It fails when it is a leader distributing work and engineers nodding.
A planning session that is working:
- Engineers understand what they are signing up for and why it is prioritised
- The scope is realistic - not optimistic theatre
- Risks and dependencies are surfaced during the session, not discovered during the iteration
- There is visible ownership of items, not just assignment
A planning session that is not working:
- The backlog is the backlog - items are pulled in by whoever shouts loudest or is most senior
- Engineers do not feel genuine ownership over the plan
- Estimates are padded or not examined, and nobody is sure what "done" means for complex items
- The plan is set by one person and communicated to others as a fait accompli
The most important question to ask in planning: "What do we know now that might make this harder than we think?" Asking this explicitly surfaces the risks that individuals are holding privately and creates space to address them before the sprint rather than during it.
Demos That Connect Work to Impact
A sprint demo or showcase has one purpose: connecting the work the team did to the impact it creates. This is not a technical presentation - it is a story about what changed for a user, a customer, or the system.
Demos that are working:
- Show the feature from the user's perspective, not the developer's
- Include what was learned, not just what was built
- Have stakeholders present who can respond to what they see
- Occasionally show "we tried X and it didn't work, here's what we learned"
Demos that are not working:
- Are a technical walkthrough that non-technical stakeholders cannot engage with
- Feel like a compliance exercise - done because the process requires it
- Show the minimum viable deliverable with no context about what it solves
- Happen in a room with nobody who cares about the outcome
Clarity of Purpose and Direction
A team that cannot articulate its purpose will make poor decisions in the gaps between explicit direction. When the sprint backlog runs out, when a dependency fails and the original plan is not possible, when a new stakeholder request arrives mid-iteration - the team needs a clear sense of what they are optimising for to navigate these situations well.
Creating and Communicating Purpose
Purpose is not a mission statement. It is a specific answer to: what problem does this team exist to solve, for whom, and how do we know if we are solving it?
Good team purpose:
- "We exist to make it safe and fast to deploy code to production. The measure is deployment frequency and change failure rate."
- "We exist to ensure that product teams can access customer data reliably and at scale. The measure is API availability and query performance SLAs."
Not useful:
- "We deliver high-quality software that delights our customers."
- "We enable the business to achieve its strategic goals."
The test: if two engineers on your team were making a trade-off decision about prioritisation and they disagreed, could they resolve the disagreement by reference to the team's purpose? If the purpose is too vague to serve as a decision tool, it is not doing its job.
Direction Requires Repetition
A direction communicated once is forgotten. Direction requires consistent repetition across contexts - in planning, in 1:1s, in demos, in the decisions you make. "We are deprioritising this because it does not move our deployment frequency" reinforces direction every time you say it. Over time, the team internalises the direction and applies it themselves.
The leader's job is not to communicate the direction once and expect it to stick. It is to be consistent and repetitive enough that the direction becomes part of how the team thinks.
Managing Team Health
Team health is not about whether the team is happy. It is about whether the team has the conditions to sustain high performance over time. A team can be unhappy for legitimate reasons - a difficult period, a painful restructure, a lot of ambiguity - and still be healthy in the sense that the conditions for good work are intact.
A team can appear happy - good vibes in standups, no raised voices, high satisfaction scores - and be deeply unhealthy: problems not being surfaced, work not being challenged, people being nice to each other and not doing their best work.
Signals That a Team Is Struggling
Watch for these before they become crises:
| Signal | What It Might Mean |
|---|---|
| Low energy or short answers in retrospectives | People have stopped believing the retro changes anything, or feel unsafe being honest |
| No disagreement in planning | Team is compliant rather than engaged; estimates may be sandbagged |
| Declining code quality (more bugs, more rushed PRs) | Pace pressure is creating debt, or morale is low |
| People going quiet in meetings | Someone has said something that reduced safety, or relationships have shifted |
| Same people working late repeatedly | Workload is unsustainable, or some are carrying the team |
| Increased sick days or unplanned leave | Burnout signal; worth taking seriously before it cascades |
| Engineers avoiding each other's pull requests | Relationship friction or quality disagreements not being addressed |
| Key engineers interviewing elsewhere | Often a lagging indicator; the signal is present much earlier |
None of these signals is definitive on its own. What matters is patterns, changes from baseline, and your ability to ask directly and receive honest answers.
The Leader's Role in Monitoring Health
The 1:1 is the primary tool. Regular, quality 1:1s where the engineer's experience is genuinely explored are how leaders get accurate signal about team health before it becomes a crisis. The leaders who are consistently surprised by team health problems are usually leaders who have been running poor 1:1s or skipping them under pressure.
A direct question, asked regularly: "On a scale of one to ten, how good is it to work on this team right now? What's moving it up or down?" The number matters less than whether it is changing and whether the answer is honest.
Handling Conflict in Teams
Conflict in teams is not inherently bad. The absence of conflict is often a stronger negative signal than the presence of it. Teams that never disagree are either working on things that do not matter, or have learned that disagreement is unsafe. Neither is good.
Productive Disagreement vs Corrosive Conflict
Productive disagreement is about ideas and approaches. It is direct, specific, and focused on the work. "I think this approach has a performance problem at the scale we'll need" is productive disagreement. It has a specific technical claim that can be tested. The people involved can argue the point, generate evidence, and reach a better outcome than either would have alone.
Corrosive conflict is about people. It involves personal judgements, attribution of motives, and relationship damage that persists beyond the specific disagreement. It erodes trust, reduces psychological safety, and makes future collaboration harder.
The leader's role is to enable the first and address the second - not to eliminate all conflict.
How Leaders Handle Conflict Sets the Team Norm
The way you respond to visible conflict in the team is the most powerful communication you make about what conflict is acceptable. If you smooth over hard disagreements to restore harmony, you teach the team that disagreement is unwelcome. If you let corrosive personal conflict persist without addressing it, you teach the team that this is the norm.
The specific moves:
For productive disagreement: Stay out of it unless asked. Let the engineers argue the technical question. If it escalates beyond a round or two, ask them to write up their respective positions and reconvene. If they cannot resolve it, offer to help them develop and apply a decision framework - not to arbitrate.
For corrosive conflict: Address it directly and quickly. The longer corrosive conflict runs, the more the team around it adapts to it (by taking sides, avoiding the affected people, or becoming more conflict-avoidant themselves). A direct conversation with the individuals involved - separate, then together - is better than waiting for it to resolve itself.
The norm to set: "We argue about ideas hard and we treat people respectfully. Both of these are non-negotiable."
Protecting the Team
One of the least discussed and most important functions of an engineering leader is acting as a buffer between the team and the organisational noise that would otherwise consume their attention and fragment their work.
From What
Scope creep - the mid-sprint "quick ask" that is not quick, the stakeholder request that arrives outside the normal channel, the "while you're in there" addition. These are individually small and collectively significant. The leader's job is to apply genuine scrutiny to what enters the team's work, and to push back when the volume or timing is wrong.
Stakeholder overload - too many stakeholders with direct access to the team creates a fractured priority list. Every stakeholder believes their need is urgent; the team is trying to satisfy all of them simultaneously and satisfying none of them well. The leader acts as the single point of coordination, not to prevent stakeholder relationships but to ensure that requests are properly prioritised and the team is not being pulled in five directions at once.
Organisational noise - reorganisations, strategic pivots, political tensions, leadership changes. The team cannot control these and cannot ignore them completely - but their attention can be partially protected from noise that has no actionable implication for them yet. "I know there are rumours - here is what I know, here is what I don't, and here is when I expect to have more. Until then, here is what I need you to focus on" is a useful leadership move.
Interruptions that destroy flow - engineering work requires sustained concentration. Environments with high interrupt rates have low output quality, regardless of hours worked. The leader who schedules unnecessary meetings, pings constantly on Slack, or drops by to ask quick questions is actively degrading the team's capacity.
The Leader as Shield and Conductor
The shield function - protecting the team from external pressures - needs to be balanced with the conductor function: making sure the team has the context and direction it needs. A team perfectly protected from all external input is a team that is disconnected from reality. The leader is filtering, not blocking - passing through the signals that matter and absorbing the noise.
Onboarding New Team Members
The first 90 days of a new team member's time sets the trajectory. Engineers who are onboarded well - who understand the codebase, the team norms, the purpose, and the people quickly - contribute meaningfully faster and stay longer. Engineers who are dropped into a team with a laptop, a ticket queue, and a "let me know if you need anything" have a much harder time.
The First 90 Days Framework
Days 1-30: Orient
The goal is understanding, not contribution. The new engineer should:
- Complete a structured onboarding path covering the architecture, the deployment process, the team norms, and the tooling
- Have regular 1:1s with the team lead (daily for the first week, tapering)
- Shadow experienced team members before taking independent work
- Have a named buddy - one person specifically responsible for answering questions
The leader's expectation in this period should be zero delivery pressure. The investment in proper orientation pays back in months of more effective contribution.
Days 31-60: Contribute
The new engineer takes on real work, with support. Tasks should be sized for success - not trivial, but not the most complex thing on the backlog. They should be given clear context and a named point of contact for questions.
In this phase, the leader explicitly invites feedback on the team and the onboarding: "What's confusing that should be documented? What have you noticed about how we work that surprised you?" New team members have a brief window where they see the team clearly, before they normalise to it. Their perspective is valuable.
Days 61-90: Integrate
The engineer is operating independently on meaningful work. The leader reviews with them: what they have learned, where they want to grow, what they need to be effective. The structured onboarding ends but the development conversation begins.
The Buddy System
The buddy should be a peer, not the manager. The buddy's job is:
- To be the first point of contact for all questions - including the ones the new engineer would not want to bring to the manager
- To give honest context about how the team works in practice, not just in theory
- To check in regularly during the first month
The buddy should be selected deliberately - someone with good communication skills and patience for questions, and genuine knowledge of the codebase and team norms.
Common Failures
Teams Without a Clear Purpose
The team exists because of a legacy structure, or a project that became permanent, or an organisational design decision that no longer reflects reality. The team members cannot agree on what they are responsible for. Priorities are contested. Stakeholders have different and conflicting expectations.
The symptom is often constant reprioritisation debates, confusion about ownership boundaries, and engineers who cannot say what success looks like for their work.
The fix requires the leader to go above the team level - the purpose cannot be set within the team if the ambiguity comes from the organisation above it.
Rituals That Became Habits With No Value
The standup that started because the team was struggling to coordinate and is now a 30-minute status ritual that nobody looks forward to. The retrospective that used to produce change and now produces the same list of themes every month. The planning session that was collaborative and is now a manager distributing work.
The symptom: rituals are attended but not engaged with. The energy is low. People are present physically and absent mentally.
The fix is not always to reform the ritual. Sometimes it is to end it and start something different. Teams that have been through a year of ineffective retrospectives need a different format, a different facilitator, or a deliberate reset - not a tweaked version of the same ritual.
Leaders Who Mistake Team Harmony for Team Health
The team is pleasant. Nobody argues. The leader gets positive vibes in their 1:1s. Satisfaction surveys are good.
Under the surface: problems are not surfaced, disagreements are not had, the best ideas are not proposed because the risk of being challenged is not taken. The team is comfortable and mediocre.
The leader in this situation has often created the conditions for it - by over-valuing harmony, by responding to conflict by smoothing it over, by creating a culture where the premium is on getting along rather than on doing great work.
The signal is in the output quality. A team that is high-safety and high-harmony but producing ordinary work has low standards, not a healthy culture. The fix requires raising standards and being willing to have the conversations that become necessary when that happens.
Connection to Your Operating Model
Running effective teams is not a soft-skills topic. It is an operational one. The rituals, the health monitoring, the conflict norms, the protection of flow - all of these are the mechanisms through which the structural commitments of an operating model (team autonomy, clear ownership, continuous improvement) are either realised or remain theoretical.
A team with clear purpose, honest retrospectives, and strong onboarding will contribute to the operating model's goals - improving over time, owning their domain, making good decisions. A team with confused purpose, hollow retrospectives, and poor onboarding will struggle regardless of how good the structural design is.
The operating model creates the conditions. Running effective teams is how those conditions are inhabited and maintained. The two depend on each other. Neither is sufficient alone.
If you lead a team and want to know whether your operating model is working, the answer is in the team's daily experience of their work - not in the documentation of the model.
Team Agreements and Working Norms
High-performing teams are not just collections of individuals who happen to share a Jira board. They are groups of people with shared understandings about how they work together, how they make decisions, how they handle disagreement, and what they hold each other accountable to.
Most teams have implicit working norms - patterns of behaviour that everyone follows without having agreed to them. The problem with implicit norms is that they are invisible to new joiners, inconsistently enforced, and very hard to change when they stop serving the team.
Making working norms explicit - as a team exercise, not as a manager dictate - creates shared ownership of the agreements and makes it much easier to have a direct conversation when the norms are not being followed.
What Good Team Agreements Cover
Communication norms:
- What does "urgent" mean, and how do we signal it?
- What is the expected response time for non-urgent Slack messages?
- Which decisions get made async and which warrant a call?
- How do we communicate blockers, and what is the expectation for help response?
Work norms:
- What is the definition of done for a ticket?
- What goes in a pull request description?
- How do we handle a PR that has been waiting more than X days?
- What is our approach to technical debt - when do we take it and when do we pay it?
Meeting norms:
- Which meetings are optional and which are expected?
- What does "prepared" mean for a planning session?
- How do we handle phones and laptops in meetings?
Conflict and feedback norms:
- How do we handle technical disagreements that do not resolve quickly?
- How do we give each other direct feedback?
- What do we do when someone is not pulling their weight?
These are not policies to be handed down. They are agreements to be made together, maintained openly, and revisited when they stop working.
Creating the Agreement
The process matters. A manager-written "team charter" that is presented to the team is not a team agreement - it is a set of rules. A set of norms that the team wrote together, that everyone had the chance to shape, and that people feel genuine ownership over is a fundamentally different artifact.
A simple facilitation approach:
- In a 90-minute session, each person writes down: "What makes it easy to do my best work here?" and "What gets in the way?"
- Cluster the responses into themes.
- For each theme, agree on a norm that addresses both the positive and the barrier.
- Record the agreements in a shared, visible document.
- Revisit them every quarter.
The quarterly revisit is the part most teams skip. Norms that made sense six months ago may not serve the team today, particularly after significant change in membership, scope, or context.
Distributed and Remote Teams
The principles of effective teams apply regardless of location, but the practice requires adjustment. The natural coordination mechanisms of physical co-location - the overheard conversation, the informal whiteboard session, the visibility of who is struggling - are absent in distributed settings, and the intentional practices that replace them require more effort.
The Visibility Problem
In a co-located team, a lot of information flows without effort. You can see who is heads-down, who is in a conversation, who is having a frustrating day. In a distributed team, all of this becomes invisible unless someone makes it visible.
The implication: distributed teams need more explicit communication about status, blockers, and context than co-located teams. Not as surveillance - as coordination. The standup that is slightly superfluous in a co-located team is more important in a distributed one.
Ritual Design for Distributed Teams
The standard rituals need adaptation:
Standups - async standups often work better for distributed teams than synchronous ones. A brief written update in a shared channel (what I did, what I'm doing, any blockers) is accessible across time zones and does not require everyone to be available at the same time. The synchronous element - when needed - can happen at a regular but less frequent cadence.
Retrospectives - require more facilitation attention in distributed settings because the absence of physical presence makes it harder to read the room and easier to disengage. Consider: pre-session async reflection (people submit thoughts before the session), a facilitator whose job is specifically to draw out quieter voices, and a shorter-than-normal session with more focused questions.
1:1s - become even more important in distributed settings because the informal connection is harder to create. The leader of a distributed team needs to invest more deliberately in the relationship built through 1:1s because there are fewer casual opportunities to build it.
Team socials - undervalued and underinvested in distributed teams. The investment in occasional in-person time - even infrequent - has disproportionate returns in distributed teams, because the relationships built in person sustain much more effective remote working.
The Time Zone Problem
Teams distributed across more than two or three time zones face a specific challenge: the overlap window for synchronous collaboration may be very small or non-existent. The operational consequences:
- Decisions that require synchronous discussion become bottlenecks
- Reviews and approvals that sit in someone's "tomorrow" pile create daily delays
- Team members in minority time zones feel isolated from the team's core activity
The response is to design for async-first deliberately rather than as a compromise. Written decision-making, documented context, transparent work-in-progress, and an explicit norm that decisions should be made in the async channel before the synchronous window are not just accommodations - they are often better practices than the synchronous-first defaults of co-located teams.
The Team Leader's Time
The most underexamined resource in running an effective team is the leader's own time. Leaders who are not deliberate about where their time goes find it consumed by meetings, reactive conversations, and organisational noise - leaving insufficient space for the activities that actually build team capability and performance.
The Time Audit
Before changing how you spend time, understand how you actually spend it. Track your time for two weeks with honest categories:
| Category | Examples | Target Range |
|---|---|---|
| People development | 1:1s, coaching conversations, career conversations | 20-30% |
| Team coordination | Planning, retrospectives, standups | 15-20% |
| Stakeholder management | Cross-functional meetings, status updates upward | 10-20% |
| Technical contribution | Design reviews, architecture input, pairing | 10-20% |
| Reactive/unplanned | Slack interruptions, escalations, ad-hoc requests | aim to reduce |
| Strategy and thinking | Heads-down time for planning, problem-solving | 10-15% |
The categories and targets will vary by role and context. The point is not the specific numbers - it is that most leaders who do this exercise discover that the distribution looks very different from what they intended, and that the most important categories are often the most compressed ones.
Protecting Development Time
1:1s and development conversations are the first thing to get cancelled under delivery pressure, because they feel like they can be deferred. This is exactly wrong. Development conversations are the investment that reduces delivery pressure over time. Cancelling them is borrowing against the future.
A simple rule: 1:1s do not get cancelled except for genuine emergencies. "I'm too busy" is not an emergency. "The production system is down" is an emergency.
The Meeting Load
Engineering leaders often find that their calendars are substantially consumed by meetings, leaving little space for the heads-down thinking that strategy and problem-solving require.
Useful interventions:
- Audit recurring meetings quarterly: "Is this still the right group, at the right frequency, for the right purpose?"
- Block focus time in the calendar before the week fills with meetings.
- Default to being a selective attendee in large cross-functional meetings - send a representative or read the notes rather than attending every one.
- Be explicit with the team about when you are in focus mode and not interruptible.
The leader's time is the most visible signal about what the organisation values. If your calendar is full of meetings and empty of development conversations, you are communicating - whether you intend to or not - that meetings matter more than people do.