No two teams are the same. However, high-performing teams have many common traits. Through examining these, we as leaders may discover insights that allow us to help more teams become high-performing.
1. The team uses merge requests
High-performing teams use merge requests. They are standard practice since the advent of GitHub, and for good reason.
- Increased visibility
- Better communication and collaboration
- Explicit working agreement around code changes
High-performing teams understand that the key to the successful use of merge requests is a pragmatic and respectful culture of high-quality feedback that focuses on substance.
Anything that can better be done by a linter or an automated test, should be done by a linter or an automated test. There is no point nitpicking on someone’s style while letting actual bugs slip through the cracks. This is being penny-wise and pound-foolish. As the saying goes: People believe all styles are ugly except their own. If they subtract their own, they might be right.
2. Team members own team processes and hold each other accountable
High-performing teams hold their own ceremonies and autonomously undertake the necessary processes and hygiene which they need to in order to remain highly-performant and continuously-improving.
For example, the team is able to self-organise and host:
- Long- and short-term planning meetings
- Product and technical design sessions
- Customer research and user testing
If you as the leader are the primary driver of these activities, your goal should be to create a team culture where the team itself has the necessary skills and engagement to self-organise, making yourself more redundant.
3. People fulfil many roles
People on high-performing teams wear many hats. Although people have their individual specialisations and core strengths, they are able to switch roles, fill gaps and do whatever needs to be done to achieve customer satisfaction and business success.
For example, should the need somehow arise, everyone on the team should be able to:
- Handle customer support for an hour
- Deal with an incoming high-severity issue
- Take a meeting with a business partner
High-performing teams are multi-disciplinary and represent a diversity of skills, approaches and opinions.
4. Deployment pipelines and continuous delivery
High-performing teams have highly-streamlined deployment processes. This is key, since deployments occur so frequently and are the primary barrier between making a code change and delivering value to the customer.
Ask yourself these questions:
- How time-consuming is it to deploy a change to production?
- How safe is it?
Removing friction in the deployment process is one of the best gifts that you can give your team and is an area that you should focus on ‘by default’.
5. Automated tests
All high-performing teams perform some kind of automated testing at some stage in their development process.
A few quick tests that are not too tied into the actual implementation, and that are fast, reliable, end-to-end, representative of a real, primary use case and built somewhere into the development process, punch above their weight in efficacy.
6. Clear and reliable monitoring and alerting
High-performing teams know the state of their systems. They do not rely on manual monitoring at all for discovering outages and confidently rely on the effective alerting that they have established.
They still pro-actively monitor key technical and business metrics in an exploratory fashion in order to discover previously-unknown issues through curiosity and intuition.
7. Outage investigations with root cause analysis
High-performing teams are focused on the availability of their products and services. They are relentlessly self-improving. They are motivated by learning more about their systems and are continuously making them more robust.
They understand that the best way to learn about your systems is to perform a root cause analysis whenever they fail. This forces them to get to the bottom of the issue, in such a way that they can actually fix it once and for all.
One exercise that can help is the Five why’s: Pretend you are a child. Children love to ask why. Ask ‘Why did the outage happen?’ Well, because something broke. But why did it break? Because something else happened. Well, why did that happen? In this fashion, keep going until you have asked why at least five times. Then you might be getting close to the root cause.
8. Operations guides
High-performing teams understand that a bit of excellent documentation in a key area can be more valuable than a general proliferation. One area where documentation is highly effective is around any operations that the team needs to perform regularly in a standard fashion. This could be anything from the running of a planning meeting, to the deployment process, to what to do when you are sick. High-performing teams have standardised and agreed-upon operating procedures.
Effective procedures are:
- Easy to edit and keep up-to-date
Most importantly, whenever a high-performing team finds itself documenting manual procedures, they consider whether an automated process could be used instead.
9. Engagement and lively debate
High-performing teams communicate vociferously. A team that is rowdy and lively is more likely to be high-performing than one which is quiet and non-confrontational. Steve Jobs makes the anology of a rock polishing machine. It makes a lot of noise and uses a lot of energy, but produces beautifully-polished stones.
An undercommunicative team could signal:
- Boredom or disengagement
- Lack of psychological safety
- Fear of giving candid feedback
Ask yourself: Are team discussions usually boring, with no one speaking up? If so, your goal might be to stimulate the team to become more outspoken, informed and opinionated.
Often, allowing the team to communicate vigorously can feel like losing control, but you should embrace this feeling. As long as the conversation is respectful and productive, your main input as a leader may be to guide rather than to dictate, and ensure that the minority opinion in the room is heard. Rejoice in that you have created the environment for the team discussion to take place. It is humbling to realise that this is often a more valuable than your own personal opinion.
10. Team can influence own composition
High-performing people deserve to work with other high-performing people. They are often the ones best positioned to determine who fits the bill and who, unfortunately, does not.
For example, ask yourself these questions:
- Which people and skills would your top performers like to have on the team?
- Does your team have the right people today in order to be successful in one year’s time?
Your top performers can work anywhere that they please. Why would they choose to work on a team where they cannot work with other (even more) brilliant people? They have high bars for themselves and others, and understand that being the smartest person in the room is a sign that they are in the wrong room.
Bonus: 11. The team works to its strengths
People frequently have complimentary strengths. Not everyone is equally good at all things. High performing teams focus more on working into people’s strengths than they do on shoring up people’s weaknesses. They distribute work with a pragmatic fairness that reflects, for example, that some experienced people can take on more work, whereas others are best placed on specific projects with the right support structure in place, in order to grow.