This is a common issue: Scrum is best executed with co-located teams, but teams are often geographically distributed.
What is the best way to tackle this?
What are the problems that can arise when implementing Scrum with distributed teams?
Here are some of the problems:
Problem: Time difference
The Scrum Master has to manage this carefully. Ideally everyone should work the same hours, but with remote teams this is generally not possible. If an Australian team is working with a team in India or the Ukraine there is a flurry of activity very late in the day for the Australian team.
This is a problem because the Australian team are not at their best late in the day after a full day of work, so it is difficult to be as focussed and fresh.
Let the Australian team start later than usual and work a little later (assuming they are comfortable doing this). This isn’t going to work for everyone, but it does make a significant difference to productivity when it is applied.
Sitting on the phone at 10pm is not pleasant or desirable.
Problem: Cultural Differences
Certain cultures have very specific etiquette around mode of communication, the tone of communication, mode of address and so on. It is fairly easy to inadvertently offend a team member without knowing it.
To make matters worse, the team member may not offer up any kind of feedback on any offence taken, and may exhibit other forms behaviour that make working with this person difficult.
Get to know the team members well enough that they will feel comfortable confiding in you if the behaviour of a team member is not acceptable. This needs to be discussed with the team explicitly early in the team’s relationship.
If there is an incident, address it with the parties immediately.
There are books and websites that talk about cultural etiquette. These are always worth a look. If nothing else you can avoid the most egregious faux pas.
This has helped me in the past.
For example; in certain cultures it is completely unacceptable to dress someone down in front of the team, get angry, or be abusive to a colleague. If you behave in this way, you may find that the team member is totally resistant to working with you going forward.
Not all team members will be accustomed to a collaborative Scrum environment. They may not be comfortable contributing to the level required. As the Scrum Master you will have to mentor these team members, describe the collaborative nature of Scrum, and nurture their participation.
Make sure everyone is treated with respect and as equals. This is especially true where a team member does not speak English as a first language. Again, as Scrum Master, you must stay on top of this and address any issues immediately if they should arise.
Problem: Distributed teams make it is difficult for team members to get to know each other personally.
This is important as teams function much better if there is personal rapport between the members of the team.
If possible, get the team together physically in one location and let them work as a team for a few weeks at that location. During this time, organise informal social activities to allow the team members to get to know each other.
When the visitors return to their home location, communication will improve as the personal common ground that has been established through the visit will add another dimension to communication going forward.
Organise these visits every six to eight months for best results.
Problem: Impediments that stop progress out of office hours
If these impediments or questions are not dealt with you can lose productivity while the team member waits for a response.
Team members need to think ahead so that they can bring any impediments up at the stand up.
If this isn’t possible, they need to make an assessment as to how critical the issue is.
If the issue is critical and there really isn’t anything they can work on, they must contact the Scrum Master. The Scrum Master can decide what to do from there. Sorry Scrum Masters, but this is one of the perils of managing a distributed team!
In order to manage your distributed Scrum team effectively you will also need to do the following:
Choose a great Scrum hosted software tool
This is crucial for any number of reasons, but primarily:
- so that everyone knows their responsibilities
- to manage the tasks and the product backlog
- reporting on progress
- managing sprints, burns downs and other Scrum artefacts
There are many great hosted Scrum tools out there, but the most popular include:
- Scrum Works
- Microsoft TFS with Scrum
- Jira and Greenhopper
Run a stand up every day at a time when everyone can attend
This may seem obvious, but not all teams adhere to this and it undermines the Scrum process. Make sure everyone does attend.
Use the best and most reliable communication tools
This is important as many meetings fail because a team member couldn’t join in.
Make this someone’s responsibility (Scrum Master?) to make sure that everyone has the necessary software and access so that they can participate unhindered.
The obvious software tools would include Skype (or equivalent), desktop share, and video conferencing (if appropriate).
I hope you found these tips on running distributed Scrum teams are helpful. If you have any tips of your own, please add them as a comment to projects [at] onedot.com.au. Thanks.