Hello All,

One of the readers of my blog recently asked a very good question.

“Can Agile be combined with offshore?”

Although my initial response is “Yes” it comes with some conditions.  One of our projects recently utilized a partner in India.  We had used this partner successfully in the past for some non-Agile development work, but we quickly discovered that Agile, and in particular Scrum, was a game changer. Our first few Sprints did not go very smoothly.  We found out that blending offshore with an Agile project being run domestically took a greater degree of management and communication than we would normally apply.  Once we realized that there was a higher level of overhead required to make this work we were able to get the project back on track.

I sat down with the development manager responsible for this project and asked him what the critical success factors were in managing a project that had some component of offshore.  He provided a set of 12 “key lessons learned” that might be of some help if you are embarking on using an offshore team for your Agile/Scrum development efforts.

Lesson 1: Make sure you have an overlap of at least 2 hours for your onshore and offshore teams’ working day, if possible.  Since India is nine and a half  hours ahead of us during daylight savings time, we were able to construct a two hour overlap in our schedules in order to conduct the daily stand up meetings and resolve any outstanding issues.  This greatly increased the communication flow and cohesiveness of the teams.

Lesson 2: Create a robust repository and collaboration site that will be the site of record for all specifications, test cases and discussions.  We used SharePoint for this which became the repository of record for all communication, collaboration and storage of critical artifacts of the project.

Lesson 3: Do not use email as your primary method of communication (email is still a good mechanism for communication, but should not be used for discussing important topics such as requirements clarification or design decisions).  Ensure that all communication is conducted through the repository so that it becomes a permanent record of events, artifacts and communication.

Lesson 4: You should implement web conferencing to create a sense of proximity of team members.  We used this on a daily basis to conduct stand ups, review wireframes and specifications, walk through requirements and conduct Sprint reviews.

Lesson 5: Have one central point of entry for project status.  All team members would record their progress via a central Scrum management tool.  We used ScrumWorks as our tool of choice and were able to create accurate product backlogs, Sprint backlogs and burn-downs on a daily basis.

Lesson 6: Ensure that your offshore team has their own development and test environments, bug reporting tools (Bugzilla in our case) and source code repository.  In our case, all of the development was being conducted offshore, so we found it better to have the offshore team in complete control of the development and test environments.

Lesson 7: Shorten your Sprints.  We typically do 4 week Sprints when we conduct a project domestically. We discovered that we needed more frequent inspection and visibility into progress so we shortened the Sprints to 2 weeks.  This made course corrections much easier and facilitated greater communication of requirements, more accurate status reporting and more meaningful reviews with the customer.

Lesson 8: The Scrum Master must be top notch.  Our Scrum Master was located in the United States as well as the Product Owner.  The Scrum Master is the key arbitrator in all Scrum projects but we discovered that it took a greater level of skill and experience to facilitate a Scrum when using offshore resources.  This cannot be a training ground for aspiring Scrum Masters.  You must assign your best to handle an offshore project.

Lesson 9: If possible, your Scrum Master should speak the languages of both your onshore and offshore team.  The more they understand the language and culture of the dual teams, the greater the communication flow and understanding of the project requirements.

Lesson 10: The Product Owner must clearly define what “done” means for each of your user stories.  In an offshore model we do not have the luxury of walking down the hall to refine and iterate.  Well- defined acceptance criteria should be included in all of your user stories.

Lesson 11: There must be a strong technical leader on the offshore team.  Your offshore team must possess all of the technical skills to be self sufficient.

Lesson 12: The offshore team must be properly trained in Scrum and specifically in your particular implementation of Scrum.  It is worth the cost and time to travel to the offshore site, get to know the teams and properly train them for one or two Sprints to ensure that all expectations and processes are well understood by the offshore team.

Additional thoughts on running an Agile project using offshore resources can be found in an article written by Martin Fowler.  The article can be accessed at:

http://martinfowler.com/articles/agileOffshore.html

I welcome the thoughts and experiences of others that have utilized offshore resources in an Agile development framework.

Have a great day!

Pete

————————————————————————–

Special thanks for Mr. Jim Dempsey for his contribution to this article.  Jim is an Account Manager and Practice Manager for Application Development and Quality Assurance at CAI.  See his profile on LinkedIn.

  1. Krupal says:

    Peter, isn’t Email a permanent record of events?

    • Peter DeYoe says:

      Yes, I suppose it is. And yet email allows a lot of “private conversations” to occur. We wanted the communication (relevant to the project discussions and decisions) to be shared/accessible by all. We found that too many email conversations were occurring regarding design issues and requirements assessment that were not being shared by the team. Therefore we found that a common area where all design and requirement considerations were being logged and visible to all was better for our purposes.

      Pete

  2. Paul Jackson says:

    Hi Pete,

    Great article. He’s a really good presentation from Guido Schoonheim about Agile Development with Distributed Scrum Teams – well worth viewing: http://www.infoq.com/presentations/fully-distributed-scrum

  3. Hey Peter,

    When you said the Scrum Master must be top notch, I was surprised. I’d always assumed no more than one continent per Scrum!

    Have you worked with a combination of an offshore Scrum with its own SM plus a domestic Scrum with its own SM? I just wonder how well that would work.

    I love the idea of having a fully bilingual Scrum Master where possible. I don’t know much Hindi or any other language of India, but I cook a mean aloogobi and food is kind of a universal language. :-)

  4. Social comments and analytics for this post…

    This post was mentioned on Twitter by vincentbir: Can Agile be Combined with Offshore? 12 Lessons Learned.: http://wp.me/pD8kW-3o...

  5. Iain Cruickshank says:

    Given that Scrum teams should be relatively small, using an off-shore partner probably creates a team too large even for local development. If I was in that situation, my initial approach would be to consider 2 Scrum teams (one local and one off-shore) with myself as Scrum Master for both to provide a common connection between the teams. It would enable each team to make the best use of their capacity.
    I would start the project at the off-shore team’s site to develop a strong relationship with that group and then utilize conference calls and IM from home to maintain a presence for the balance of the project.
    Each team would create their own Sprint Backlogs with an awareness of what the other team was working on. When integration was needed between the Sprint demos, that task is added to the Product Backlog for selection in an upcoming Sprint.
    I have not tried this, so I would interested in hearing from others about this.
    Thank you.

  6. [...] This post was mentioned on Twitter by Vincent Birlouez and Kevin E. Schlabach, Agile Topic. Agile Topic said: Agile #Agile: Can Agile be Combined with Offshore? 12 Lessons Learned…. http://bit.ly/4tZo3i [...]

  7. Michael says:

    Thanks Pete for this post. I’m researching this topic at present for our Blog. Another useful resource is Martin Fowler’s article:

    http://martinfowler.com/articles/agileOffshore.html

  8. Kevin Thompson says:

    Peter, I agree completely with everything you’ve said. If I were to single out any one point as the most likely point of failure, it is Lesson 1: Make sure you have at least a two-hour overlap in working hours, for real-time collaboration. If you don’t have that, the pain goes way up.

  9. JH says:

    Peter,
    Good article.
    I have a question for you on your lesson #1 (time overlap). How much productivity do you estimate is “lost” due to the time zone difference and the small overlap?
    If the offshore team was located in a country with little time zone difference (practically nearshore), would this improve your ability to do Distributed Agile?
    Thanks

    • Peter DeYoe says:

      Hi JH and thanks for your comment.

      The overlap in the days does not decrease productivity at all. This overlap is used for the 15 minute standup meeting and for the clarification of issues/requirements with the Scrum Master and/or Product Owner so that if there are any points of clarification that need to be made they have ample opportunity to resolve them. These are all things that a co-located team would also do. The only time we see a decrease in productivity is if the development team is “stumped” on an issue when the domestic resources have all gone home. But if it is a real show-stopper, they know that they can call the Scrum Master immediately anytime day or night (but it has rarely happened). Normally they will just move on to another task until the next days meeting.

      Thanks,

      Pete

  10. Govind says:

    Great information. The overlap of two hours beween onshore and offshore , I think is critical. Email should definetly be limited as the primary means of communication. Offshore resources should have a direct contact with the onshore team in the initial stages of the project as the “understanding” of the project remains the key for them to deliver. “we understand” should never be taken on face value with offshore partners. As the initial code gets released, adjustments to the project “understanding” are feasible.I worked recently with China partner, and was difficult for the offshore to “get it”. We struggled and flew in the team leads to do the knowledge transfer. Even then with so so success.

    Thanks
    GB

  11. Walid Assem says:

    Good post, thank you

  12. Mike Kireev says:

    Peter,
    I agree with Mark W. Schumann. We practiced distributed Scrum and found very helpful to have a local SM. Even if onshore SM is top-notch offshore SM is not only removing local impediments but enforcing better communication between offshore and onshore teams.

  13. Tom says:

    Great post, thanks for sharing these tips. Agile and offshore are things we were thinking about going into, so some good pointers and things to watch out for there.

  14. Thanks for sharing the lessons you learned on this project Peter. We’ve had great success with using onshore and offshore Agile teams. The central repository of knowledge as well as the time overlap is critical. I agree with other commenters here in that if you can have an SM in each location and then hold a mini Scrum of Scrums that can work out really well. Of course it depends on the situation with the product you are building. I would also add that having the team that will be doing the work estimate the work is very key. So if the offshore team is doing part A, they should estimate part A, rather than have the onshore team do it.

    One question – how are you measuring the velocities of the teams? Are you looking at both as one big team with a single velocity, or does each have it’s own velocity measure? Thanks for the reply.

    • Peter DeYoe says:

      Hi Robert,

      Thanks for your comment! To answer your question, I think it is best to measure the velocity of each individual team. You definitely need to have that kind of performance information so you can know what to expect from each individual team.

      Pete

  15. Kane Mar says:

    Hi Peter.

    Interesting reading. These are all good lessons, and I especially agree with Lesson #3! I wrote a similar article a while ago:

    http://kanemar.com/2009/01/27/distributed-scrum/

    It includes a few more lessons that you haven’t touched upon and might be a good compliment to your 12 lessons.

    All the best,
    Kane.

  16. Tarang says:

    I agree with all you say about need for good collaborative tools. As far as the notion of offshore teams, this is overstated with emphasis on “offshore”. You know the issues of working across multiple times zones are very real within a single corporate office that spans the across any continent – such is the nature of “national” companies.

    Clearly this calls for environments that have strong practices in collaboration. This can only be supported by having weaved a set of tools that unify the modes of communication and sharing of information (design, plan and test documents). You share a “single pane of glass” as the team board across multiple time zones and coordinate your meetings to a common time – this is needed no matter how dispersed the team is. The one issue is that you can’t walk down the corridor to resolve issue/conflict over a story – This requires the team to work at achieving clarity in their communications – a practice one wants from a team whether collocated or distributed. After all the “customers” aren’t collocated!

  17. Thank you Peter for the information. Can you tell us a little more about the team composition? So you had the development team offshore. How about the testing team members? Other than the SM and PO onshore, who else did you have onshore?

    Thanks
    Manoj

    • Peter DeYoe says:

      Hi Manoj,

      Thanks for your comment. We had the developers and testers in India, and the Scrum Master, Business Analyst, UI Designer and Product Owner in the U.S.

      Pete

  18. This is a great summary, and I am going to link to this advice.

    There is one thing that I might not agree with. I think that if you require strong technical leadership at every location, you are not using your existing leadership to its fullest, or the idea of fully distributed teams. It should be possible to make everything work for senior and junior team members, with purely online communication. We study this (and practice it) at Assembla. I posted a couple of “6 things to do / not do” that are mostly new and different, compared with this list.

    Six things you can skip – interesting
    http://blog.assembla.com/assemblablog/tabid/12618/bid/9148/Stick-your-con-call-up-your-estimate-6-things-you-can-skip-to-save-time-in-a-software-project.aspx

    Six things you should do – more vanilla
    http://blog.assembla.com/assemblablog/tabid/12618/bid/9025/6-keys-to-succeeding-with-distributed-agile-development.aspx

  19. Nice and practical thoughts, Pete!! I would strongly say that a face to face connect with the offshore and onshore team is of great help. I fully agree on the strong techlead front.

  20. [...] Can Agile be Combined with Offshore? 12 Lessons Learned. [...]

  21. [...] Recent Comments katayoon on Scrum in Under 10 Minutes! You…Rules for Radicals a… on Agile Software Development and…Mark W. Schumann on Agile Software Development and…mouneer on Agile Software Development and…Peter DeYoe's Bl… on Can Agile be Combined with Off… [...]