Sunday, May 10, 2009

Remote Team Members with Agile Scrum

Even under the best circumstances, not having Agile Scrum teams collocated is difficult. There are lots of issues some of which have fairly easy answers, and some don't. We have a partial team in Cost Rica and our teammates in CR have done a great job given the physical separation from the main teams, however it has been lots of issues and difficulties (which I'm sure they can attest to).
  • Scrum is about face to face problem solving, decision making, and team collaboration. Some collaboration can be done online and some just happens as talk goes back and forth in the team area. Going overboard with electronic communication in this area (in addition to regularly scheduled communication) is the only way to really address it. Setup web cams, chat clients, and even team area web cams (to catch banter, team play, team work, and all that happens). Of course meetings have to all be connected with audio and visual (use VOIP and remote sharing for low cost solutions). We also did bring the remote developers in-house for a month training. I would consider this essential to starting team relationships that will are ultra-critical for Agile (and three months would be a better time frame than the one month we used).

  • Ultra clear communication required. This is not indigenous to Agile, but applies to any type of non-collocated project team. Having worked at HP for over 10 years with multiple teams around the world, I know that working together with my remote partners required constant vigilance for changes, plans, retro's etc. The big problem is that, with traditional waterfall there is typically much more well defined requirements and milestones that remote teams can work from/toward. With Agile, we have only just enough of everything, including documentation, forcing frequent and face to face communication. This is a tough problem, no matter how good your people are. Of course there are other aspects of communication, from User Stories and Conditions of Satisfaction, to non-verbal communication (which is very difficult with remote teams), and team building. These all have to be addressed and solved.

  • Meetings. Scrum is lightweight. The meetings are essential and critical to success. This means that remote locations (or team members) need to be included for Sprint Planning, Scrums, Reviews/Demos, and Retrospectives. Scrum also requires frequent impromptu meetings, where decisions are made. (Our Product Owners sit with the teams, further increasing the potentially for quick change and decision making). If the team doesn't communicate or connect like it should, there could be serious consequences. The only real workable solution in my opinion lies in making the remote location a team(s) of their own, and they need to be co-located with each other. This can be difficult in terms of economies of scale if you only want to keep a few remote team members - with more team mates remotely together you can save on fixed costs.

From my experience with remote teams in both Traditional and Agile environments, having remote team members will require lots of additional work, usually money, and lots and lots of patience. If you must have remote teams using Scrum, I highly recommend having them be their own team, make sure they have the communications technology and protocols in place, and remain as consistently Agile "by the book" as possible. <><

References:

  1. http://tinyurl.com/non-it-scrum

No comments:

Post a Comment