Question: How do offshore resources fit into agile?
Agile is heavily reliant on team communication and collaboration. The most effective means of communication is face to face, at a white board because you have the most means of transmitting information – the words, the nonverbals, and tone of voice. An ideal situation is for all the members of a team to be in the same building, ideally the same room. This is rarely reality (I’m not going to say it’s not possible, but it may not be feasible given other organizational constraints). When you separate team members from one another this communication and collaboration becomes more difficult. When you also place them in widely varying time zones, the communication becomes even more complicated.
To work in an agile manner with offshore teams, you have to facilitate the communication. Here are a few ideas I have used in those occasions where I have worked with people in other geographic locations and other time zones.
- Get the entire team together in person at the start of the project. If this is the team’s first agile project, do some agile training. Incorporate work on the vision and planning into the time spent together. Most important, give the team some time together in a non work setting to get to know one another better.
- Consider where the team members are located. If each location has a full compliment of skill sets, set your teams up around geographic locations and have each team work on a set of the backlog. Do not, however have a team of developers in India, a team of testers in China, and a team of analysts in the US. This separation of roles will cause more problems than it solves.
- Utilize as many technologies as possible to facilitate communication such as Instant Messaging, Skype, and the good old telephone. Also establish some norms for your team as to when to use which particular methods.
- Think of ways to build information radiators electronically so that information can be shared easily. Wikis, Google Docs, and SharePoint sites work great for these purposes.
- Consider everyone’s schedules when identifying meeting times. Make it equally convenient or equally inconvenient for everyone on the team.