The Distributed Agile Game

room: Plaza Ballroom A — time: Thursday 14:45-15:30, Thursday 16:00-16:45, Thursday 14:00-14:45, Thursday 16:45-17:30
Level: Introductory

When it is achieved together, the combined benefits of both Agile and Offshore software development, can be multiples greater than either approach alone. During this interactive session, we will simulate a distributed project with some participants being onsite and the others offshore. With 4 teams of upto 8 people each, this game will draw out learning around the challenges of Distributed Agile and different methods to communicate successfully on such projects. The rules of the game help illustrate how to deal with travel, different timezones, delayed communication and other such hurdles.

Process/Mechanics

The game is meant to be played by people who will be involved in a distributed development environment. The participants may have prior experience in distributed development, but this is not required. In fact, prior software development experience is not even required. The game is played with small teams. Each team consists of Analysts and Developers, with one Customer located ‘onsite’.

Each team is divided into two parts. Team A and Team B. Team A is ‘onsite’, meaning the customer is present. Team B does not have the Customer present at the same location and can only communicate with the Customer and onsite Developers via email and telephone (talking through a partition).

Activity Elapsed Time
Set context of distributed development: Facilitators will explain here, what distributed development means and what the constraints usually tend to be. We will also talk about the possible benefits of distributing work and indicators of success/ failure. 0:10
Break into teams and explain exercise 0:20
Release Planning / I1 Acceptance Criteria: The project teams will now discuss the pre-written User Stories to draw up a Release Plan for the Product. This time will also be used to plan out Iteration 1 and decide on Acceptance Criteria for the Iteration 1 stories. 0:30
First Iteration: The game is played in fifteen minute iterations with standard limitations placed to indicate difference in timezones, travel constraints and client/ team communication issues. The Customer has final say in accepting the product that is delivered. The teams have to deliver the product to the client site in order to consider a successful delivery. The teams much accommodate the travel time required in order to deliver the developed product to the customer. If at the end of the allocated time the developed prototype is not shown to the customer at site, it is considered a failed deployment. 0:45
Showcase: At the end of each fifteen minute iteration, a showcase of functionality will occur. It will be led by either the onsite or offsite team depending on what team’s agree, but should show a ‘flow’ of the screens created, and a discussion of whether each screen meets the acceptance criteria. If the screens meet the criteria, the customer will ‘pass’ the card. If they don’t, the card must be played in the next iteration. If new requirements are found, new cards must be created and prioritised in the release plan. 0:50
Retrospective: At the end of each showcase, all Team A’s and all Team B’s will gather separately for a retrospective. Team A’s and Team B’s are responsible for communicating retrospective results to their opposite site team members after the fact. Customers will be honest about how they felt things went during the iteration, and it is expected that the next iteration will have learned from the previous retrospective. 1:00
Second Iteration: 1:15
Showcase 1:20
Retrospective 1:30
Third Iteration 1:45
Showcase 1:50
Project Retrospective: The teams will discuss their learning and dynamics during the exercise. Things to look out for -
  • How did the teams divide up the work?
  • How effective was the communication between the offsite and onsite team?
  • How effective were the visits between the offsite and onsite teams?
2:10
Game Conclusion & Summary of Learning: At the end of the game, the Customer subjectively grades the team for how much the final product conforms to the Customer’s requirements. The customers and coaches will share feedback on the patterns and antipatterns that they observed during the development process. 2:40
Close:
  • How is distributed development different from single location development?
  • Compare different ways of distributing work.
  • How should a distributed team manage change?
  • How should a distributed team manage communication delays?
  • How should a distributed team prioritize work?
  • How should a distributed team manage requirements granularity?
  • What are indicators of success?
  • What Agile practices might contribute positively to distributed development?
  • What Agile practices are challenged by distributed development?
3:00
Learning outcomes
    • By the end of this session, the participants should be able to:
    • Explain some of the logic that goes into deciding how to distribute work across locations
    • Explain how it is often easier to work at the ‘onsite’ location
    • Explain how increasing the distance between team members impedes opportunities for communication
    • Explain how lack of visual contact can be detrimental to relationship building
    • Explain how and why it is important to share information across team boundaries
    • Explain why it is important to continually build a good relationship with the customer
    • Explain why it is important to continually build a good relationship with other team(s)
    • Explain the different methods of communication that can be used in distributed projects and how to use them successfully
    • Explain different ways you can build relationships with customers and other teams that are not at your site
Featured participants
Primary target persona
Other target personas
Timmy, Trainer “How do I find an interesting way to introduce Agile practices and concepts?” Although Timmy's been a Training and Education practitioner for quite some time, he's spent only some time in an Agile firm. He's finding it really hard to represent Agile concepts in a classroom in an engaging, interesting fashion. He finds Agile methods quite interesting and wishes he could use a few interactive models to introduce Agile to new people joining the Agile development revolution.