Wednesday, December 17, 2014

Distributed Scrum

Nowadays many organizations are following the Scrum methodology for software development projects. One of the principles of Scrum is to have a co-located team for better communication and increased productivity. But because of their business needs, many organizations have teams distributed across the globe.

Business Need

The key advantages of having distributed teams are:

  • Lower Cost of Labor
  • Capture of talent which is not available locally
  • Ramp down of vendor Project Team without layoff

In a traditional approach, team located at one location works on a specific functionality of the application. Ramp down of offshore team usually results in loss of critical knowledge on the area on which that team was working. Special efforts have to be taken to transfer that knowledge to the onsite team before the ramp down. Many a times the fear of this loss of knowledge influences the decision of offshorization. But if team follows the Totally Integrated Scrum model, where resources working on different locations work on all the functionalities, then knowledge resides  at all locations. In the next section we will discuss the Totally Integrated Scrum model in detail.

Distributed Team Models

There are three different models for distributed teams.

Isolated Scrums – In Isolated Scrums, the teams are isolated across geographies. In many cases, only the onsite teams are following the Scrum and the offshore teams are following the traditional waterfall model. In this scenario, the velocity of the offshore team is very less as compared to the onsite team, which causes overall less velocity of the entire team. This model is not recommended for Distributed Teams.

Distributed Scrum of Scrums – In this model, the work is partitioned across cross-functional, isolated Scrum Teams by eliminating dependencies between the isolated teams. Isolated teams are interlinked by Scrum of Scrums where Scrum Masters from the isolated team meet regularly to exchange the updates of their Scrum Teams.

Totally Integrated Scrums –The Totally Integrated Scrum model has fully distributed teams with members of each team located at multiple locations. While distributed nature of this model may create communication and execution challenges but by having Daily Scrum Meetings and using good communication practices one can overcome these challenges.

The Totally Integrated Scrum Model is the recommended model for experienced Scrum teams at multiple locations.


Challenges with Distributed Scrum

While there are many advantages of having Distributed Scrum Teams, there are certain challenges, which need to be addressed for successful execution of the project. Some of the challenges are:

  • Communication
  • Building Trust
  • Overlapping Hours

Communication

Effective communication is the most important factor in delivering quality software. 

When an idea is generated at business, it is communicated to the development team. The development team asks questions and gets a feedback from the Product Owner. If there is a misunderstanding of a requirement then the product developed by the development team will not give complete business value. The cost of fixing the issues of a delivered product is very high.

In a distributed environment where Product Owner, Scrum Master and the Development Team are located at different locations, the team faces many challenges in communication. For example if the Product Owner is not available for query resolution then the Team has to wait and this waiting time affects the team’s velocity. So special efforts have to be taken to make sure there is effective communication between all the stake holders.

There are various modes of communication e.g. Face to Face communication, Telephonic communication, Emails etc. If we place these modes of communications on richness scale, richness of communication of each method will be as mentioned in the diagram below.




In general practice, email is the primary mode of communication. But if you see the above diagram, it is at the bottom of richness scale. The discussion which might take 5 minutes of verbal communication might need back and forth 10 emails. Therefore the Scrum Master should educate the team to move away from email communication and adopt the direct conversation.

In a distributed model there might be a case where the Product Owner is not always available to the offshore team. So the Product Owner should make himself available to the offshore Team in the overlapping hours. He should communicate to the team that it is okay to call him without a pre-scheduled meeting. His phone number and availability hours should be placed on wiki. In fact, the phone numbers and availability of hours of all the team members should be published on Wiki as well as should be placed on the desk of each of the team members.

The Team should be equipped with high quality communication equipment. Every team member should be equipped with a high quality speaker phone as well as Skype on his desktop. It will help all the team members to communicate with each other by audio-video conference. The problem with Audio only mode is that the facial expressions as well as body language is missing and the body language plays a very important role in our communication.

A High resolution Video Conference facility should be available at all the locations. All the important Scrum Events like Sprint Planning, Sprint Review, Retrospective, and Daily Scrum should be conducted using the Video Conferencing facility.



In addition to the Video Conferencing facility, it is recommended to have an “Always on Skype Video Streaming” at two locations. It will act like a window between the two locations. As it uses Skype, it is a low cost solution.



Sometimes there is a resistance from the Senior Management on the investment of these equipment. But if we consider the overall cost of the project then the cost of these equipments would be hardly 1% of the total cost of the project.

Building Trust

Another critical factor in the success of a project is Transparency and Building a trust between teams at different locations. This trust can be built by more human interactions. In a Distributed Team model there are many chances of misunderstandings and miscommunications. If there is a strong human bond between team members at different locations then these things will be taken as a regular miscommunication incident but if there is no human bond then these things might be considered as an evidence of incompetency of the other side. So building one to one connection between Distributed Teams is the most important activity.

At the beginning of a major project, it is recommended that the Product Owner and the Scrum Master travel to offshore for the duration of 1-2 Sprints. During this visit, the Product Owner can give details of Overall Vision, Purpose and Goals of the project to the Team. It will set a strong foundation for the team’s day to day work. This is an opportunity for a Product Owner and Scrum Master to understand the team and the challenges the team faces from the other locations. For a team, it will be a chance to build a one to one connection with the Product Owner and the Scrum Master so that in future the team won’t hesitate to communicate with them openly.

Along with the Product Owner’s visit to offshore, it is also recommended that the offshore team travel to onsite for 2-3 Sprints. This visit will give an opportunity for the offshore team to understand the customer environment and establish a personal bond with the onsite team members.

It is also recommended to have an offshore ambassador at onsite. This person will be a link between the offshore team and the onsite team. It is recommended to keep this position rotating so that many offshore team members will get an opportunity to work closely with the customer.

The second part of building trust is developing an Openness and Transparency. The Offshore teams are often fearful about being open to the onsite Product Owner. The Team fears that if they raised a concern then the onsite Product Owner will be upset and might complain to the Senior Management. There is also a fear that if they ask too many questions then they will be perceived as incompetent. As a result many questions go unanswered and the team makes assumptions. These wrong assumptions cause the delivery of wrong product.

To avoid these problems, the Product Owner/Scrum Master must communicate to the team that he would like to hear good news as well as bad news. It is always better to give bad news early so that corrective action can be taken in time.

Overlapping Hours

It is recommended to have some overlapping hours between the Distributed Teams. These overlapping hours will give an opportunity for the team members to interact with each other directly instead of only through emails. It is recommended to schedule all the major Scrum Events like Sprint Planning, Review, Retrospective and Daily Scrum during these overlapping hours. It is also recommended to use Video Conference for all the major meetings. Apart from Daily Scrum, the other meetings are longer and will need more overlapping hours. Meetings should be scheduled in early morning hours of the onsite team and early evening hours of the offshore team. So that only one side need not to stretch. If possible Planning Meeting 1 and 2 should be scheduled on two different days.

There are two scenarios of overlapping hours.

  • Onsite teams located in Europe
  • Onsite teams located in USA


 For a project where onsite team is located in Europe, there is a moderate overlap of working hours with offshore team in India. The Team can manage Daily Scrum meeting without difficulty but other meetings can stretch beyond the normal working hours. On these days, special transport can be arranged for the offshore team so that the offshore team can start their day late and stay late in the office. As there are only 3-4 long events in each Sprint, it won’t add much burden to the team.



For a team where the onsite team is located in US, there are some challenges in Overlapping Hours. But it can be addressed by changing the working hours of the offshore team. The Offshore team can start their day a little late and stay late in the office. In one of our projects the offshore team was starting their day at 10.30 in the morning and was working till 7.30 in the evening. This allowed around 2-3 hours of overlap between the onsite and offshore teams. On the days of long Sprint Meetings, special travel arrangements were made so that offshore team could stay late in the office.

Totally Integrated Scrum

There are three roles in Scrum – Team, Product Owner and Scrum Master. In a Totally Integrated Scrum model, special efforts need to be taken to make sure that all these roles at different locations work as a single integrated team.

One Team Engagement Model

Though the team members are located at different locations it should be treated as a single team. There should not be any differentiation between the onsite team members and the offshore team members. Special efforts should be made to make sure that the onsite as well as the offshore team members get a chance to work on all the functional and technical areas. This will help to retain the knowledge within the team if team at one location is ramped down.

Product Owner

It is recommended to have only one Product Owner for a Scrum Team located at multiple locations. Some teams have a “Proxy” Product Owner but many times the Proxy Product Owner does not have the depth of knowledge as of the “Real” Product Owner. It might create a confusion and sometimes the decisions made by the Proxy Owner needs to be reversed after a discussion with Real Product Owner. Offshore team can have domain experts who can guide rest of the team members in absence of Product Owner but there should be only one authority that will make the final decisions. In a Distributed Team there are less overlapping hours between teams at different locations. So the Product Owner needs to make his time available for question-answers during the overlapping hours.

Scrum Master

In a Distributed Team model, the role of the Scrum Master is more challenging and he needs to be involved more actively in team’s day to day activities. As there are more impediments and challenges due to the nature of the distributed team, the Scrum Master has to allocate more time to resolve these impediments.

In a Distributed Team model, the Scrum Master is located at one location and should be available to a team at different location in overlapping hours. In this scenario, the Scrum Master will be able to help the team on certain type of issues but most of the time when a remote team is working, he may not be available to help them on their day to day issues. So it is recommended to have a Secondary Scrum Master at a remote location. One of the team members from the remote location can play the role of a Secondary Scrum Master. The Secondary Scrum Master may not replace the Primary Scrum Master but he will certainly help the team to resolve day to day impediments.

Team Meetings

As discussed in the Overlapping Hours section, Daily Scrum should be organized at early morning of onsite team and evening time of offshore team. All the team members from different locations should attend this Daily Scrum Meeting. This meeting is an opportunity for team members from different locations to connect with each other. It is recommended to conduct this meeting through Video Conference.

Apart from this common Daily Scrum Meeting, it is recommended to have a Daily Scrum Meeting at a remote location at the local morning time. It helps team to remove local impediments.

For the team meetings which needs more time, the team can adjust the working hours on that particular day so that there will be more overlap between teams at different locations.

Use of Tools

In a Totally Integrated Scrum it is expected that all the team members are working on a Single Product Backlog and have only One Code Base. Also it is recommended to have a common wiki to share knowledge among the team members. Continuous Integration plays a vital role in Scrum, so team should use Continuous Integration Tools. Continuous integration will help to identify the problems early and fix them immediately.

There are many tools available in the market which will help the team on the areas mentioned above.

Conclusion

While Scrum recommends co-located teams but it is a business reality to have Distributed Teams. By implementing good engineering practices and excellent implementation of Scrum practices, it is possible to achieve same level of velocity and quality from Distributed teams as co-located teams. The entire team must function as a single team with a single Product Backlog, single code base and single reporting mechanism. Totally Integrated Scrum is the recommended model to utilize the full potential of remotely available talent.

6 comments: