In the past my project teams were organized as a hierarchy. I now like to think of this as the 'pyramid of power' that had me at the top of the IT part of the team, reporting directly to the project sponsor. It was great in my mind as it made me a very important and in demand.
The problem with this org structure is how disconnected some of the people at the bottom of the chart become with significant portions of the team. I've been on many teams where only the core part of the project team meet on a regular basis, and would devise what needs to be done. The definition of work to be performed is then passed along to the others in the hierarchy.
In the past year my view of team structure has changed considerably. The change I've made in the past year is really quite simple. The primary change is to bring everyone up to the same level on the org chart:
There are many advantage to this type of organization some of which are:
- Reduces hand-offs - did you ever play telephone as a kid? You know the game where you pass a message from one person to another? How much did the message change by the time it made it around the circle? Now imagine if the message was just given directly to the whole circle? Everyone would hear the correct message directly from the source. The same idea applies to our teams, and we should be looking to reduce the number of hand-offs for information whenever possible.
- Team can self organize - the Agile Principles tell us the best architectures, requirements and designs emerge from self-organizing teams. The symmetrical team structure can certainly help enable a self organizing team as it creates an environment where everyone is working and collaborating together. For me the organization structure is one of the keys to the team being able to self organize.
- Find defects early - in a recent project my team found a significant defect early while still in development. The best part was the fact the team found the defect while we were still in development, which meant it was very easy to correct. This happened simply because the developer was talking to customer directly, which goes back to #1 above -- reduce the hand-offs!
- Creates an environment of trust - the best way to earn trust is to extend trust. Trust your team to do the job they're good at without you hanging over them at every step and you would be amazed what they can do!
- Reduces the need for extensive documentation - documents are necessary, but when teams don't collaborate effectively it means we have to create very thick documents to try and capture the complete set of information. However, it is never possible to capture all information in a manner that it is accurately interpreted. The best way to convey information is face to face, and that's exactly what a symmetrical team structure encourages.
In my next blog I will talk about The Five Dysfunctions of a Team. If you haven't read the book I highly suggest it.
Until then ... Be Agile!
Mike