This isn’t an original idea of mine. It actually comes straight from I spend a lot of time as a leader researching how others lead their teams, and @RoyOsherove’s writings are worth your time.

There are 3 maturity stages of a software team. This may be true for other industries as well, but for my purposes we’ll be focusing on software. Roy defines these stages as:

  1. Chaos

  2. Mid-Life

  3. Mature

but I actually like to describe them as

  1. Chaos

  2. Learning

  3. Self-Organizing

This is only semantics, but when I talk to others about the different stages, people tend to understand the stages more inherently when I talk about the focal point of that stage.

There are some critically important things that as a lead you need to understand about these stages.

The most important thing a lead needs to understand is your role as a leader is completely different depending on what stage your team is in. We’ll get into how your role changes based on each stage is later posts, but keep this in mind.

Secondly, from my experience, a team can go in and out of these stages. It can be cyclic, or they can jump around. It tends to be more of the former rather than the latter, but I have seen it happen both ways. As a leader, you need to keep an eye on your team and be able to identify when this change happens so that you can change your role within the team to get them back on track.

The goal is to grow mature, self-organizing teams. We’ll cover more on this later, but if you can’t wait you can always jump over to 5 whys. Roy has some great content that goes into great detail about each of these stages and how to manage them.