Why is co-location so important?
- Communication is easier. People talking to each other to work through problems is the quickest way to resolve blocks. I see it all the time, developers talking to developers, developers talking to testers, testers talking to product management etc. I've yet to experience a major block which hasn't been resolved within a day and that is due to people simply talking to each other.
- Communication is faster - who you need to speak to is right there next to you.
- Agile is about working as a team, and for a team to work well you need to feel like a team. Co-location helps improve team spirit, keeps people in the loop as they can hear what is going on, and all this helps to increase each team members empowerment. People being empowered in an agile team is the key to success. Remember all the key stakeholders when co-locating - developers, testers, technical writers, product management, project management...
- Peer reviews are instantaneous. Regularly developers will gather round a monitor to review code, and testers sit with developers to talk through latest changes and any issues found. This speeds up development dramatically.
This simple change can be complex for some teams - you may be an international team, need to re-shuffle other teams to get the space or may need to re-organize your full organization - but if you want an efficient team this is the place to start!