The importance of Stable Teams

The importance of Stable Teams

One of the most valuable things we can do for any Software development organisation trying to focus on teamwork, is actually to create an organizational structure that enables stable teams. This means permanent, lasting teams; not teams where members are taken away from the teams whenever there is yet another important thing that needs attention.
The core idea is simply to be assigning work to the established teams, rather than assigning people to work. With this approach you get the full benefit of already optimized relationships, processes and velocity.

 “…assigning work to the established teams, rather than assigning people to work…”

We should acknowledge the fact that it’s important to give teams enough time to get to know each other, and learn how to work well together.  When the people in a team have worked together for a while, they will have learnt how to optimize their skills and working relationships, and they will (hopefully) develop a real sense of team spirit, because they actually care about each other as long-standing team members.

Not only in terms of their relationships, but the team will also gradually learn over time how best to optimize their processes.  Agile methods help with this by encouraging regular retrospectives where the team regularly discusses (and actions) what went well, what didn’t and what they can do better/differently next time around.  This process of continuous improvement helps a team to optimize its performance by eliminating, or at least minimizing, recurring issues that hinder the team’s progress.

Another benefit of keeping teams stable and together long enough to optimize their relationships and processes is that they will have a known velocity.  Velocity in agile methods is a measure of the speed the team is delivering at, usually measured in points.  With new teams, velocity can fluctuate wildly for a little while until it settles down, and at the outset is completely unknown.  Knowing the velocity of an established team helps to plan projects and releases more reliably.

 “…Knowing the velocity of an established team helps to plan projects and releases more reliably…”

I believe that stable teams are a fundamental prerequisite of creating an efficient, agile delivery model, and it is crucial that everyone, including management and project managers, is aware of this.

I can’t even begin to count how many times I have had this talk with managers and the talk goes something like this;

Project Manager: Yes, I agree…working in teams is great! BUT, sometimes we just have to pull people out of the teams to get important work done.

Me: Why?

Project Manager: Really? Because we have a deadline! I need to get the job done straight away!

Me: Ok, I understand…Could you not just assign the task to the team then and let the team decide how to get the job done?

Project Manager: No, that is not efficient! Some tasks are a one man job!

Me: Could we not let the team decide that?

Project Manager: No, I want one person to relate to…not a whole team!!

Me: Ok, but there is no problem having one person from the team that you can relate to…But I see your point…if for some reason your contact person gets sick, you might have a completely new person from the team updating you about how the team have still produced progress even if your contact person is away…you would probably not want that?

Project Manager:
Yes, but come on! I have done this countless times, and I know it works. Pulling people away from teams is not a bad thing. It is very efficient and we get the job done!

Me:
I understand. And it is really good that your project is able to deliver as planned. But to what expense? Have you considered the consequences outside your project?

Untitled

This figure is showing the velocity of a stable team compared with an unstable team. They start out on the same level, but as the stable team gets to increase their velocity through optimizing their skills, working relationships, and optimizing their processes, the velocity of the unstable team suffers from having team members in and out of the team.

I find it very strange that many managers tend to have this idea that in a team everyone is always working together on every task…That is not very likely, is it?

But as part of an agile team, others in the team will have a shared knowledge about who is working on what, how work is proceeding and if there is any impediments. And with this, they have the option to help each other delivering on the tasks. Sometimes they work alone on tasks, and sometimes they work together. But since they are a team, they can actually decide what is most efficient, and they even have the possibility to assess when the team should be cross-functional within certain areas to avoid being dependent on individuals.

In the long run, having teams, and stable teams with that, well, it’s just smarter. It is more efficient. And it is more fun!

Leave a comment