What makes a high performing team tick?

What makes a high performing team tick? What is it that takes a team from being medium or low performing into elite performance as defined by DORA? On demand deployments, single figure bug counts, next to no downtime. Having worked in high performing teams, as well as having built a few myself over the years, I feel that I have a unique perspective on what it is that allows a team to work effectively together. The "Secret Sauce". So what's the recipe? 

It's...."complicated". But it looks a bit like this:


At the top, unsurprisingly there is Technical Excellence. Team members need to be fully aware of and skilled in the various accepted best-of-breed tools and techniques that are out there. These currently include TDD, BDD, incremental design & architecture, refactoring, pairing/mobbing and so on. No excuses, these are all proven techniques that improve both quality and delivery, and should not be dropped unless there is a provable reason to. Even then it should be a last resort. They are the normal approach the team takes to build software.

Of course, not every team member will be 100% familiar with every tool or technique - the team will have natural specialists. But this is by design - the team consists of "T"-shaped people with broad knowledge and appreciation of many subjects, and with an in depth understanding of some.

Going clockwise, we come to Fast Feedback. So pipelines, testing and so on. High performing teams need this in order to be able to move quickly. They keep their builds and pipelines short, crisp and fast - 10 minutes or preferably less. Remember the Technical Excellence? That is the enabler for fast builds. Having well structured, unit testable designs makes them fast to test, so mistakes are picked up early and not compounded. Writing your tests first provides a proven, gentle but firm nudge towards this. Also top performing teams work in very small batches, limiting the work in progress. Again, this optimises the speed of the feedback.

Finally there is Psychological Safety. In my experience, oodles of it in an elite team. Everyone feels they can speak up and help things improve still further. Nobody feels left out, or ignored. The Team is the unit, not the individual*. Anyone can have a bad day, or a great day. Generally the Team has well defined norms for behaviour (for example, don't break the build, and if you do then fix it or back out the change within 10 minutes - more on andons in software development in a later article - promise!), and everyone holds everyone else accountable for them.

It is worth noting that having psychological safety does not mean everyone is quietly agreeing. Quite the opposite - it means everyone feels safe challenging a decision! As long as it remains respectful, discussions can get quite heated (trust me on this - been there, done that, got the T-shirt). 

Finally, a psychologically safe team is a happy team. They will socialise together, help each other, and just get along. 

Pull all three of these together and you will get an elite performing team. It is the interaction of these three things that works the magic. Exactly how they interact is something very unique to each team which is why nobody can provide a template that will make everything work. There is no pixie dust to sprinkle. There is no silver bullet. Just trust, skill and respect.

If all of this is sounding familiar, it should do - it is essentially Extreme Programming. The XP values of Communication, Simplicity, Feedback, Courage and Respect are all present. It does seem that the better a team is at delivering, the more XP-like their approach becomes.

Obligatory AI paragraph

Since AI is everywhere, it would be remiss to mention how AI helps with this. It doesn't. AI is not required to become elite, and is generally detrimental, holding teams back. It is perfectly feasible (and easier) to become a top tier team without it. In fact the latest DORA research seems to suggest that unless you have your engineering processes and practices right to start with (so are already in the elite category, or approaching it), AI is actually detrimental to performance. AI amplifies what is already there - if a team is average it will amplify the mediocrity. Basically a team needs to already be pretty good before they will gain any benefit from AI code tools. But here's the rub - if a team is already capable of releasing on demand multiple times per day, is the cost of AI worth it? They will likely already be outpacing the business ability to make decisions.

The role of the Technical Coach

So that's it. That's how I see the recipe for the Secret Sauce making elite teams elite. So how does a team get there? At the moment it is rare for a team to simply form and immediately fall into these patterns of behaviour - an artificial focus on big-A Agile certification and less emphasis on the technical and practical team skills has ensured that. So usually there needs to be an intervention. Someone who can pull the technical, feedback and safety threads together. Someone who can show teams how to build good pipelines, how to manage work, and how to improve their technical skills. A Jack of All Trades.

A Technical Coach!

A Technical Coach can certainly teach technical excellence and practical pipelines. They will have a good practical understanding of process and workflow. And they can help teams with the soft skills needed to build psychological safety. Having worked in Elite teams, it's in their DNA. It's what they do!

Sounds interesting? 

Finally, a shameless plug: If you want to know more about how to improve your team's game towards DORA elite standards, drop me a line and let's have a no obligation chat.

===

* It's worth noting that a bonus driven culture is the anathema to having a psychologically safe team. It sabotages teamwork in favour of individual heroism and firefighting (and burnout). Again, more on that one day. (And if you have succeeded in creating psychological safety in a bonus culture, I would love to have a chat about your experiences!)

Comments