The first agile principle is about “individuals and interactions over processes and tools”. How can it be managed when people are not all in the same place?
Dave Churchville wrote about it and classified distributed team as:
- Type A: All developers are together, all customers are remote
- Type B: Multiple development teams in different locations (but each team is together)
- Type C: “Virtual” team where nearly everyone works remotely (e.g. from home, in various offices, etc.)
I’ve been working in the last years mostly with Type A and Type C teams, and I believe the main goal in these cases should be improving the communication channels between people to be as effective as if everyone was in the same room. Long story short, this isn’t possible, but we can still make it work.
For remote customers, the first challenge is having they available to talk with the development team. It can be painful at the beginning because “build software” normally is not their priority, but as long as they realize how their contribution is important to get the best results, they will probably change. And in this case, cellphone, skype, IM or even e-mail will become very important for their collaboration, and both customer and team should not underrate these communication tools.
Here’s some tips to work with remote customer:
- Try to build commitment since the first day.
- Ask for their oppinion during the development and show how their collaboration affect the results.
- Define open communication channels. Give preference for phone calls and instant message over e-mail.
The “virtual” team is an extension of the previous scenario, and beside there’s less people together, it can be surpassed easier if the team already realize how communication is important in an agile project. That’s because in this case the communication channels are already open. They can use Skype/IM/e-mail to talk to each other, and even VNC to share their desktops during coding sessions.
This means that if there’s lack of communication among team members, the challenges will be similar to the faced with the customer. And probably the approaches to fix it will be similar.