Featured Whitepapers
- Apples, Oranges, and Acorns - All Agile Development Tools Are Not the Same
- One's Enough for Agile Application Development Management
- Requirements Management 101 – 4 Basics Everyone Should Know
- Tips on Requirements Traceability – Learn How to Control Change and Improve Quality
- Scaling Continuous Integration to Large and Distributed Teams
|
Setting up the teams However, for various reasons, many software development teams are now distributed with members in many different locations. Depending on the geographical locations of these different teams, they will work in one of the following distribution levels:
Figure 1 – Working hours for a project team with members in four different location Figure 1 above shows a project team with members in four different locations. When setting up your teams, you want to reduce the distribution level between team members as much as possible to encourage collaboration and communication. In order of lowest to highest distribution level, here are some team configurations to consider:
Skills are also an important consideration when building teams. You need teams to have all the skills needed to deliver features for the project. This is desirable because ideally, you want any team to be able to pull the next highest priority work off the product backlog in their sprint planning meeting. When a team in one location is lacking some skills, you must find ways to help them build up the expertise to help make them more independent. From our example in Figure 1, let’s assume the team in California is lacking some expertise for the project. They could identify a team member to pick up this knowledge and pair that person with a subject matter expert in another team to do some knowledge transfer. You can speed up the learning process by sending the team member to work face-to-face with the expert for a fixed amount of time. Organizing the Product Backlog for Multiple Teams A common anti-pattern that we have seen with large-scale teams transitioning to agile development is that they will break down a single product backlog into multiple, independent product backlogs each for a different agile team.
Figure 2 –A single backlog broken in five separate backlogs for five teams Figure 2 shows a product backlog with five themes and five scrum teams. Because each team will focus on a different theme, they decide to split up the original backlog into five different smaller ones to have one per theme. This approach gives greater autonomy to each team, reduces dependencies and limits the need for the different teams to communicate and coordinate. Essentially, they are doing this because they want to reduce the pain of working in a large-scale distributed environment. The truth is they are more likely to have slight differences across the product, duplicate effort and they may face issues when integrating their work. Distributed teams need to communicate effectively and work together to deliver good quality working code that meets the needs of their stakeholders. Splitting the product backlog into multiple product backlogs will not solve any communication and collaboration issues the team is having. As is true for a single scrum team, multiple scrum teams coordinating to deliver a product should use a single product backlog to hold all the work items for the product. Ideally, as in figure-3 below, each agile team will pull the next highest priority work off the top of the product backlog and into their sprint backlog during sprint planning.
Figure 3 –Multiple teams working from a single backlog Agile Estimation In a simple agile scenario, all 5-9 agile team members directly take part in discussing and estimating every user story as well as coming to agreement on their relative sizes. In a large-scale environment, teams can easily diverge in their understanding of a story point. It is not practical, efficient or effective for all 150 members of a project team to discuss and play planning poker for every story in the Product Backlog. There are some techniques large teams can use to overcome these challenges. When multiple teams are working with a single product backlog, all teams do need to have a common understanding of the sizing of their work items. Teams need a common understanding of relative size to be able to confidently pull work from the product backlog and the Product Owner needs the same understanding to set the priorities in it. Why the Team Needs a Common Understanding of Relative Size
If Team B picks a five point user story from the backlog estimated by Team C, then based on their scale, they will believe there is less work involved. They may not realize that for them, the equivalent is a thirteen point story. For Team C, the reverse is true, based on their scale, they will believe there is much more work involved if they pick a five point story estimated by Team B as this is a two-point story for them. Why the Product Owner Needs Consistency in Relative Sizes Creating Consistency The project team size and distribution level can help decide on the approach to use to build the common understanding of story points. There are two approaches teams can use:
Full project team estimation workshops It is easier to use this approach with collocated project teams but distributed project teams with overlapping hours can use it as well. They can use conference call where team members dial-in either independently or grouped by location. Grouping the team members from the different sites together will increase their collaboration during the workshop. For the voting during the workshop, teams can open a group chat session in an instant messaging tool. Distributed teams with no overlapping hours need to negotiate a time that will allow all team members to take part in the workshop. Depending on the number of remote team members, it can make the workshop more challenging to schedule. You can review the pros and cons of this approach in Table-2.
Partial project team estimation workshops During the workshop, the participants need to look through the project product backlog, identify and estimate a common set of reference user stories. After the workshop, the representatives will bring these reference stories to their teams and will coach them to use the common estimation scale. The key is looking for ways to bring the larger teams together to ensure a common understanding. Very large teams are typically not collocated, but if they are, it makes the meeting easier to organize. Distributed project teams with overlapping working hours can identify a common time and use a conference call. To vote during the workshop, the teams can use a group chat session in an instant messaging tool. Distributed teams with no overlapping hours need to negotiate a time that will allow all the representatives to take part in the workshop. Because of the smaller number of participants (relative to using the full team approach), it can help make the workshop easier to schedule. You can review the pros and cons of this approach in Table-3.
Estimating using Planning Poker The numbers on the playing cards represent abstract story points or ideal days (Cohn 2006). Story points are an abstract, relative unit of measure. The team asks itself, "Is Story B half the effort of story A? Is story C bigger than both A and B combined? Where does Story D fit? Story D is similar effort to story B". A user story worth two story points is about one-fourth the size of one worth eight story points and twice as big as one worth a single story point. Ideal days are the second method for measuring size. Ideal days represent the time something would take without any interruptions. E-mail, meetings, and other corporate overhead aside, a story estimated at 1 ideal day may take around 2 "real" days to complete. To apply Planning Poker in a distributed environment, the ScrumMaster can read a user story, the team then discusses it and the team types a number into a group chat window. For new teams, calling out, “Ready, set, go!” will help get team members to type their values into the chat window simultaneously. Getting the estimates together prevents the estimate from one team member from influencing other team members. Teams more comfortable sharing their opinions with one another do not need the “Ready, set, go!” The ScrumMaster can just ask team members directly for their estimates they will respond with their numbers. When using a group chat window, you need to define clearly where the set of new estimates begins because a long list of numbers in the chat makes it difficult to understand to which story the estimates apply to. As an alternative, you can use PlanningPoker.com (Cohn Play. Estimate. Plan. http://www.planningpoker.com/). You may not be able to enter your user stories if security is an issue for your organization; however, the ScrumMaster can verbally identify the stories and the team can respond by selecting cards. PlanningPoker.com has a built-in timer the team can set after discussing the user story to limit time spent on it. Conclusion While it is tempting for large-scale, distributed teams to use multiple product backlogs, we have found that teams that are working together and coordinating to deliver a product are more successful when they use a single product backlog. Teams also need a common understanding of what a story point is. Depending on the size of the team, they can use full team estimation workshops or partial team estimation workshops to create and maintain a common understanding of story points. Distributed teams can use online planning poker tools or a simple chat to estimate their stories in a virtual environment. About the Authors
Elizabeth Woodward is a Senior Software Consultant with IBM Quality Software Engineering under the Corporate Headquarters Office of Innovation and Technology. Elizabeth coaches software development teams to improve efficiency and effectiveness of their development practices. She has co-chaired the IBM Academy of Technology Conference on Agile Methods, teaches courses on Disciplined Agile Development, and co-leads the IBM Agile Community.
Steffan Surdek is an Agile Coach in Montreal. In his previous life, he worked as a User Experience Lead and Agile coach at IBM Canada where he facilitated the internal two day disciplined agile workshops and was one of the co-leads of their Agile Community. Steffan has spoken at various conferences and user groups about using agile practices with distributed teams.
Set as favorite
Bookmark
Email this
Hits: 4701 Trackback(0)Comments (0)
|
| Last Updated on Monday, 15 November 2010 21:52 |
Agile Marketplace - Announcements and Special Offers
The Business Case for ALM Transformation
Are legacy systems holding your company back? Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper


Introduction






