I wrote a short article for the XPDay 2011 magazine, I thought I’d republish it here:
Software development teams usually have a number of different goals, some defined externally and some by the team itself. A key part of a team’s effectiveness is its ability to make decisions consistent with its goals. These decisions are often heavily context sensitive and need sufficient knowledge of the situation for them to be made well.
Ideally we want all of the team members to have the skills, experience and knowledge available for them to be empowered to make decisions about the work they are doing, as this allows the team to adapt and self organise. In reality, this is often not the case, knowledge seems to collect in pools around certain roles or people.
Developers often know the most about how the software work, QA’s about what the software does, BA’s why the software is being built. In particular it seems typical that the technical leader or project manager knows the most about the broader context of the project and the organisation due to the nature of the roles they play. This often means that for good decisions to be made we need involvement from the PM, tech lead, BA, QA and developers.
Spreading the knowledge in these roles further brings a number of advantages, the team is more resilient to people in other roles being unavailable and understanding the different roles can help the team adapt better to change.
We also need to be aware of the pitfalls. It is crucial that we tune the amount of information we share and we need to learn to better filter the information we receive. This would allow us to feel safer to broadcast more information we learn and rely on other team members to do the filtering, rather than holding onto it for fear of information overload.
Even considering these pitfalls, I believe most teams would benefit from more communication to help us better understand the context we are working in. By focussing on sharing more information, we can allow it to reach the parts of the team closest to where it is needed the most. Much of my thinking on this topic, has been influenced by Management 3.0 by Jurgen Appelo, which I would thoroughly recommend to anyone interested in how teams work.