From what I have seen, the following four attributes are key to highly productive Agile software development teams:
- A desire for continuous learning
- Highly evolved engineering practices
- Clearly understood practices
- Working well together
However, no matter how good your methods, if you do not have the "horses" -- i.e. bright and dedicated team members -- you will not have a top notch team. Good teams need good people.
With the understanding that good teams need good people, good practices become the focus. There are more than a few good Agile practices a team can explore. These practices include but are not limited to test driven development (TDD), continuous integration, automated acceptance tests, and collaborative team rooms. Because good teams are usually highly collaborative, it makes sense to focus on team rooms and how they can help teams become highly productive.
Highly productive or hyper productive teams have been described in Scrum as "… teams that have achieved a state of ownership, commitment and collaboration that allows them to be far more productive in creating 'product value' on a regular basis."
For our purposes, hyper productive teams are performing at a significantly higher level than they were previously. I would categorize this improvement as 2 to 3 times greater productivity than previously measured productivity. A team that is completing an average of seven stories per iteration or release cycle would achieve 14 - 21 stories per iteration or release cycle -- without any impact to quality. The releases should remain high-quality.
Agile Team Rooms Defined
The team room as defined in this article is an open area where the entire team does their work. It is a space for open collaboration without a lot of impediments. The team should have a large amount of input into how the room is configured as well.
Many folks believe that having half walls between team members in a cube farm meets the team room definition of collaboration. In most cases, however, this does not give a team the widest communication bandwidth available. When a team has walls between them, they are less likely to seek face-to-face meetings with team members -- especially in high tech teams, where the tendency is to use electronic communication. On the scale of communication levels, email is least desirable and face-to-face is most. Team rooms provide the highest level of communication available.
For instance, a team of eight may have a cube area where the developers are next to each other, and the QA folks are one wall behind them. There have been cases where the only face-to-face meetings that occurred were scheduled meetings. Having an open collaborative area encourages spontaneous face-to-face meetings, which are the hallmark of great teams.