to determine dependencies. For example, the first session focuses on identifying major tasks, deliverables, and high-level dependencies. During the second session, each team member defines activities and provides estimates for each task he accepted while identifying dependencies (on other activities) to start and complete his tasks. This results in better alignment of Sprint teams and more accurate Sprint plans.
5. Daily Scrum Meetings
Daily Scrum meetings are generally held in one common room and include Product Owner and Scrum teams that handle issues in real time. Because of time-differences, the offshore team doesn't get real time input from the U.S. on requirements changes and technical issues. Even a one day wait time in the Sprint cycle will result in lower productivity. It can be beneficial for the Product Owner ("chicken") from the onshore team to be part of the daily Scrum meeting for some period with the offshore team to help resolve the impediments online. If timing for the morning Scrum meetings in India is inconvenient for U.S. team members to attend, then a shortened session is scheduled at the end of the day in India with the specific person from the onshore team like a domain expert ("pig"), technical or QA lead, depending on the nature of the impediments. Gaining real time inputs allows greater flexibility and response to requirements changes and cross-team dependency issues.
6. Offshore Development Manager as Scrum Champion
Agile is a type of iterative development process, but not every iterative development process is Agile. More than being time-boxed iterations, there are lot of other aspects to Agile methodologies such as self-managed teams, adaptability, and less command and control. So, it is absolutely necessary to have a Scrum champion offshore to guide the team. Preferably, the Scrum Champion on the offshore team has prior experience using Scrum or can undergo Certified Scrum Master training through a company like Boulder, Colorado-based Rally Software Development. Otherwise, the offshore team will end up running mini-waterfall projects inside the iterations, not Agile Scrum.
7. Configuration and Build Management
Builds are usually completed in one location with a single code base, several times a day. However, with teams located 8,000 miles apart, bandwidth challenges make it difficult to ask the offshore team to check code into an onshore code base directly and to create builds from that code base. In a successful global Agile environment, onshore and offshore teams will work on the same code base by setting up replicas that get merged both ways daily. For example, the India team takes ownership for the code base in their morning, and hands over the code base to the U.S. team at the end of the day with a successful build, using build manage/software configuration management tools such as Perforce, Rational and Subversion. This approach helps the continuous integration of multi-shore teams.
8. Sprint Demonstration
Onshore Scrum teams usually demonstrate software at the end of each Sprint. In most cases, the Product Manager is situated onshore and the Business Analyst on the offshore team acts as pseudo Product Owner. When functionality changes or additions occur during a Sprint late in the process (due to lesser communication with Product Owner compared to the onshore teams), there is not much time for the team to respond. As a result, the Sprint backlog overflows into the next Sprint. We suggest modifying this process by inserting an informal "Mid-Sprint review/demo" with the Product Owner after approximately two weeks. This gives the offshore team time to react to changes in the specification while there is still time remaining in the current Sprint cycle, thereby reducing the backlog