Since I’m working in a distributed team for nearly 3 years I can share some thoughts
Scrum is simple, but is not easy to apply
let me add
…and it’s even more evident in a distributed team.
Let’s first take a look at the situation:
- different timezones
- non-native language speakers
- different environment/infrastructure
- poor communication
It could impact on meeting schedule, I had many headache scheduling meetings for just 3 timezones from -1 to +2 hour time shift. Daily in one office was around 9.30 in the other was at 12.30. It sounds very strange have the daily at lunch time.
We all can speak english, but since isn’t our mother-tongue we cannot express at 100% of our potential. And we cannot count on those subtle idioms that can say much more than the word itself. We have to relay on a common language and dictionary we understand. It’s easy to generate confusion and it could be awkward moments when someone doesn’t know a term. And it’s not just a common language we miss but a common culture.
I like home-office, i think developers could focus much better in home environment, they could also be more happy, less stressed, so I think in the end it’s very cool. On the other side they cannot relay on the office environment, cannot access the board and it’s hard to ask them to install a tv screen to monitor continuous integration builds and even a webcam to have face to face conference calls could be a privacy problem.
In other offices there could be a different environment, a slower connection or a crappy firewall blocks video streaming, slower access to the intranet, higher ping and so on.
The fact we are not in the same room drives to poor communication, it’s a fact we communicate more with body language than with words. We have to relay on conference calls, Skype or Google-hangout for example. Having webcams and multiple screens is essential, even if not optimal, at least we can improve communication. But we evolved able to capture even small signals all around us, and in a room full of people we can “see” and decode a subtle movement or face expression of our seat neighbour, while using conference call we can focus on just one person at time. We have to maximise speech communication during those meetings and using text chats like Skype or Slack channels during the day. On one side is less distractive during the day but there are less opportunities to just take a coffee together and express an idea to a colleague.
All of the above situations make communication very difficult and even a 1h meeting needs a lot of energy and focus. People get tired easily and frustration become a constant.
Last but not least it’s very difficult to “read the room temperature”, which is very important for a Scrum Master.
So how can we improve the communication in order to apply scrum in a distributed team?
- Be patient.
- Be aware it will take more time, energy, focus, preparation than a normal face to face meeting.
- All of your team need a bit more of things above in order to communicate properly.
- As you can imagine you need to relay more on online tools than paper and boards. But please don’t become a tool maniac, remember the agile value: “Individuals and interaction over processes and tools”.
- Use conference calls with webcams.
- Install IP-cameras in all offices and tv screens to watch other offices, I lost a lot of time just because my colleague in another town was not answering my calls or messages, just to discover he was at lunch. It’s a not very expensive and ip-cameras use low bandwidth.
- Use a multi-channel message chat like slack and create channels for different topics, and ask (force) people to use it coherently.
- Be precise, extremely precise on word/phrase choice.
- Do essential communication, prepare the meeting and don’t waste time discussing useless things.
- Use text chat to remark something when is not clear.
- Use a shared document to write important notes during the calls.
- Ask people to have face-to-face at main meetings like planning, review, retrospective. If is possible, at least for close offices colleagues to meet in the same office. In this way you can maximise the number of in-house communications.
- Organise regular retreats.
- Avoid distraction, ask before starting a sudden call.
- Avoid distraction, don’t write too much in the text chat, try to write what is important.
- Use humor from time to time. It’s not just you having difficult time, so try to relief the situation.
- Remember that humor, jokes and metaphors need a common culture, not just a common language.
Remote versus Distributed
Consider to group people based on location, encourage remote teams instead of distributed teams.
If you have one office in Rome, one in Beijing and the headquarter in New York, it’s better to build remote teams in Rome and Beijing instead of distributed teams with developers from different offices.
If you have multiple offices in the same area consider to build a team with developers from those offices in order to minimise time offsets and travel time. For example you have multiple offices in USA and Europe, build distinct teams of American developers and Europeans developers.