This is Part 1 of an indefinite series of posts centered on the topic of distributed development and using agile methodologies in distributed teams.
One of the principles of the Agile Manifesto is: “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” The manifesto was put together in 2001; a long time ago by software industry standard. At that time, offshore development (the primary scenario for distributed development) was beginning to gather momentum, but most such development occurred using the traditional heavy-weight development methodologies.
Today, there is a big shift to adopt agile techniques in distributed teams. How do such teams cope with being almost totally against the spirit of one of the principles of the Agile Manifesto? This post will highlight one of the many measures taken by teams around the world to achieve the spirit behind the mentioned principle:
“The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
Here are some ideas that you can use to remove/reduce the need for face-to-face communication:
- Use of Technology: VOIP, Webcams, Screen Sharing Software. Technology, it seems keeps advancing. While, futuristic video conferencing solutions are still beyond most organizations’ means, there are many ‘good enough’ substitutes available which make it very comfortable and give near ‘face-to-face’ experience. At work, we use a combination of Skype/Vonage, Web Cams, and GoToMeeting/Webex, to achieve this on a daily basis. There are teams who do their daily Scrums over Skype and a shared desktop.
- Take time out to get to know the teams: My organization strongly suggests all our clients to have visits back and forth between the two teams. Usually, someone from our office visits the client’s office at least twice a year, and we also invite team members from the client’s team to our office. What this does is that it allows the team members to know each other on a personal level (something that is very hard to achieve over phones and emails). This encourages a lot more participation during the Scrum calls for example (if you have met the person on the other side).
- Spread Cultural Awareness: It really helps to know about the people you are interacting with. It helps if the teams know a little bit about the culture of people on the other side. It avoids awkward situations during communication (for example, one of the problems faced by some of my team member is that they never know if the client is joking or not). We hold workshops, where we call-in experts to educate our teams about cross-cultural communication.
Although, nothing can replace a true ‘face-to-face’ conversation (yet), the true message of this principle of the agile manifesto is to eliminate the inefficiency ‘non-face-to-face’ communication: which is slow and prone to misinterpretations. But a mix of technology and best practices can definitely come very close to eliminating the inefficiencies of ‘non-face-to-face’ communication.
What are your experiences?