Communication in Distributed Teams
Face to Face is the best method of communication and that’s the method that Agile promotes. The benefits of Co-located teams are numerous- streamlines product development, promotes trust , accelerates communication among the team members, provides opportunities to collaborate, promotes reliability, fosters closer working relationship and the list of benefits can go on and on…..
Teams should co-locate as often as possible, because of the benefits of Osmotic communication. Osmotic communication was coined by Alistair Cockburn, one of the originators of Agile. “Osmotic communication means that information flows into the background hearing of members of the team, so that they pick up relevant information by osmosis. This is normally accomplished by seating them in the same room. Then, when one person asks a question, others in the room can either tune in or tune out, contributing to the discussion or continuing with their work”.
But in reality, not many of us have the luxury of working with our entire team in a single location. For most of the organizations I work with, the teams are all over the world. Many of these teams work with team members not only in different locations but sometimes in different continents.
So how do these Agile teams communicate and work with each other effectively?
Here are some simple ways to engage the entire team and not let any team members go in dark:
- Establish team core hours for facilitated discussions and working sessions. The team can establish a certain time of day when the entire team is available for group discussions: talk about the backlog, have design reviews or delayed discussions on any topic and dedicate that hour or two hours just for the team. The team members can be available on tools like Skype, or phone, and they can work on different things if the team doesn’t have any discussion items for the day. The idea is to have all team members available and ready to talk as if they are in the same room.
- Establish Team norms or working agreements. The team must decide on rules for working together and communicating with each other and these rules or working agreements should be followed by all team members and fair to all team members. So for example, don’t have meetings that require one group in a certain time-zone to always be the ones to get up early or stay late. Switch it around and make it fair. Include things like phone etiquette in your norms.
- Utilize the Scrum of Scrum technique. A technique to scale Scrum up for large groups, consisting of dividing the groups into Agile teams of 5-10. Each daily scrum within a sub-team ends by designating one member as “ambassador” to participate in a daily meeting with ambassadors from other teams, called the Scrum of Scrums. This same technique can be used when the team members are across continents and time zones and therefore cannot be available for Daily team ceremonies. Each holds their own daily Scrum and then participates in a Scrum of Scums later on.
- Involve the entire team for Ceremonies. As much as possible, always involve all locations for ceremonies, such as Sprint planning, review, retrospectives, and daily stand-ups. Daily stand-ups or handoffs between remote teams bridge communications and establish a framework for frequent synchronization and collaboration. If you have access to video conferencing, great! If not cheap portable cameras attached to a chair and a laptop make a great improvisation.
- Rotate members around – cross pollinate. Rotate team members between various locations, this might be expensive but leads to a cross trained and fungible team. Even sending one person from each location to work with other groups will help build stronger working relationships and create cultural understanding.
- Use On-line collaboration tools. In the absence of co-location, teams will have to rely heavily on automated tools for collaboration and to create a single repository that keeps the efforts of the teams in full view for all team members. The osmotic communication flow can be somewhat replicated for the distributed team using the virtual tools such as IM, Skype, Webex, and other on-line collaborative tools.
At a team-level, use automated tools like Jira, Planbox, LeanKit, other shareware or low-cost options to maintain synchronization and visibility into work. At the cross-team or program level, tools like Version One, Rally, other enterprise-level options can be used.
- Use a common document repository (ex. Sharepoint, Knowledgelink) for sharing information.
- Develop a shared team vocabulary and a team website
- Hold in person team meetings at regular cadence. Team members should meet others in person at regular intervals. While sometimes costly, this investment is worthwhile. People are the most important part of the team, they work really well together when they know and understand the person they work with just not a name. So setting up a regular cadence of team members meeting face to face helps improve the distributed team dynamics.
- Establish Clear Sprint goals and expectations. The team members should have clarity on the work they have to complete to meet the team’s objectives. Daily Scrums can be used by the team members to be mutually accountable and to set clear expectations for each other.
- Over communicate – When the team members are distributed sending in a quick summary of the discussions makes sure that everyone is on the same page.
- Be knowledgeable and respectful of the different cultures making up your distributed teams, such as holidays and working hours.
Lastly: Be patient.
If the team members are in different time zones being respectful and cognizant of the time difference is extremely helpful. Unless a decision needs to be made immediately, the team members should be given time to respond because they might be working on a different schedule or in a different time zone.
I’ve been working with large organizations where team members are in multiple locations quite a bit lately. This environment can be challenging, especially in ensuring everyone is engaged and not multitasking during Sprint Events. While there are a number of things I’ve covered in my blog “The Reality of Distributed Teams”, here are 4 specific things you can do to help build better agility with your remote teams.
- Encourage team members in similar locations to meet in a room, and not just “dial-in” from their desk.
- Builds team continuity
- Reduces the urge to multi-task
- Follows the Agile Principle “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
- Follow Sprint Event Agendas
- Ensures the team keeps on task and is not sidetracked
- Ensures we have a clear outcome to strive to for each event
- Keep to a time-box, and don’t create extra meetings to make up for not reaching the desired outcome at the end of a prescribed Sprint Event
- Use a tool like planningpoker.com to size stories
- Simultaneous Pointing – reduce influence by more senior members
- Encourages discussion to get complete understanding of stories
- Supports “team sizing” instead of “individual” sizing
- Allow for silence
- Creates an opportunity for the team to talk
- Product Owner and Scrum Master should not be doing all the talking, especially during planning. In Sprint Planning or Story Grooming/Refinement once the PO has introduced a new story, turn the meeting over to the team for questions and discussion amongst themselves. If there is awkward silence for a bit, it’s OK. Before moving on, be sure and ask if the team needs more time to discuss.
Whether your team has been together a long time or is just starting out, creating an environment for success by actively addressing remote issues is sure to add value to your team. Give these suggestions a try and let me know your successes!
Scrum purists will tell you co-located teams are the way to go. If only it was that easy!
As large organizations adopt scrum, they find themselves struggling with how to be more Agile when many of their teams are distributed. As coaches and trainers, it is our responsibility to support this reality.
There are many blogs and articles like this one on the web that talk about working with remote teams.
Many of the articles I see offer common sense tips like:
- Make the most of tools for instant messaging, video conferencing, and shared content.
- For ceremonies, use video conferencing whenever possible.
- Ensure Team Agreements, Definition of Done, and Definition of Ready are in a shared location.
- Team Agreements need to include core hours when everyone will be on instant messaging.
Here are some of my own more unique suggestions:
- Dealing with time zone differences – Although ceremonies should be at the same time/place whenever possible, consider alternating times by month, or sprint. For example, on odd months favor east coast times, while in even months favor west coast times. Don’t do too small of an increment (like daily).
- Time for a celebration – Ensure everyone on the team, regardless of location, goes out and celebrates. Schedule an extra 15 minutes post scrum to discuss what everyone did. Get creative….hold virtual “coffee breaks” or “pot lucks”; celebrate personal events (such as birthdays, births, leaving, etc) as well as team accomplishments.
- Tracking Sprint Progress – Utilize your tools’ dashboard during daily scrums to show the teams burn-down. Don’t micro-manage tasks. Insist team members keep tasks up-to-date reducing ETC to keep burn-downs current.
- Product Owner – As a Product Owner (PO), engage fully with the team to ensure collaboration leads to comprehensive understanding of each story. Ask questions. Update stories in real-time during team grooming to clarify understanding. It is easy to leave PO acceptance of stories until it is too late for developers to make changes. Instead keep an eye on story progression, review stories as soon as they are ‘done’.
- ScrumMaster as team facilitator – As a Scrum Master (SM), your role is especially important with distributed teams. Pay attention to how members interact. Is everyone participating in ceremonies like grooming and planning? Ask questions to draw out quiet members. Also, just because you are the facilitator, doesn’t mean you have to “be in charge”. Don’t forget to turn items like tasking stories over to developers. Just sit back and listen while they do the work. Consider a SM for each location (e.g., if you have part of the team together on the east coast and another part together on the west coast, use a SM in both places).
There’s no doubt about it…..it’s harder for remote teams to achieve the same collaborative environment that co-located teams can. But it’s not impossible….with a little elbow grease and TLC, your distributed team will shine!”