Catherine Powell, principal at Abakas, a Boston based firm, spoke about agile team structures at Øredev, the software development conference in Sweden at the end of last year. She provided 5 sample team structures as examples that we could use them putting together Agile project teams of our own.
1. Team generalist
In this team, “anybody can pick up any task at any time,” Catherine said. This works most effectively on a well understood project and with people who are good in diverse roles. “The people are hard to find and kind of expensive,” she said. It works well if you avoid groupthink: no ‘us versus them’ because there is no ‘them’. This approach is hard to scale and works best in small companies with passionate people.
2. Team specialist
“Everyone on the team has a different specialty,” Catherine said. This gives you high quality software, tests and data analysis but in her experience project managers don’t find this structure easy to work within because there is no predictability. You often end up with resources with nothing to do. She said that specialist teams miss their Sprint target on 70% of sprints. “If you can avoid this level of specialty, avoid it,” she advised. It works most effectively with larger teams, and if you have to have this structure she recommended that you put in place some cross-training to minimise the periods where some team members are really busy and others have nothing to do.
3. Team relay
“This is common for teams that are transitioning to scrum,” Catherine said. It is seen in companies who are trying to move from the waterfall philosophy to an agile mentality. She recommended that this type of team do some test sprints where the sprints are broken down by discipline. Long-term, all this structure and approach to sprints does is extend the delivery timescales.
4. Team biathlon
In this team, everyone changes jobs per sprint. Everyone writes code, then everyone moves to test it. This set up is good for cross-training, but you have cross-sprint release cycles.
5. Team handoff
In this final team structure, the work is handed off between teams over time. You hand off the product from team to team. This works well when scrum is in use over the whole organisation. For example, the product is designed by one team and given to another team to do the implementation and installation. This is an organisational level team model and so it would work effectively in companies used to doing things in an agile way.
“Ask questions about your own organisation as that is key to a successful agile team,” Catherine said. “Everything you read is generic, so it is only kind of like your organisation.” Find out what you want from your team. “What is that shared goal?” she said. “How much can we change and still be agile?” She recommended building your agile team to meet you own organisational needs and to change whatever you wanted in order to achieve that.
Have you ever put together an agile project team? Which of these models was it most like, or did you come up with something totally different?