Extreme Programming: How to plan for iteration

 

Summary

Part of planning for an Extreme Programming (XP) project is deciding what content goes into specific iterations. A tool called the Planning Game can help.

Events

IBM Technology Conference & Expo 2012
May 23, 2012

Convention Centre B2 Room at 22nd Floor, Centara Grand @ Central World, 999/99 Rama I Road, Pathumwan, Bangkok 10330

Echelon 2012
June 11 and 12, 2012

University Cultural Centre, National University of Singapore

Startup Asia Jakarta 2012
June 7 and 8, 2012

12th Floor, Annex Building, Wisma Nusantara Complex, Jl. M.H. Thamrin No. 59 Jakarta 10350, Indonesia

MMA Forum Singapore
April 23-25, 2012

Grand Hyatt Singapore

In my previous article, I outlined the planning stages that are performed during an XP project, with a particular emphasis on the upfront planning that is ignored in many “XP” projects. This month I want to talk about planning at the other end of the spectrum – how we decide the content of a particular iteration, using the Planning Game.

Fundamentally, the Planning Game is about creating an environment where two things happen:
  • Business people make business decisions
  • Technical people make technical decisions
You might feel that we don't need to do anything special to ensure this happens, but situations where exactly the reverse occurs are actually common. Consider this conversation between Sales and Development:

Sales : “I need you to implement the ten features on this list. How long will it take?”
Development : “It looks like about ten weeks work”
Sales : “I've promised the customer it will be done in five weeks, so you'll have to do it in five”
Development : “Ok, I'll see what I can do”

This conversation is dysfunctional at a number of levels, but two things have gone wrong. First, Sales decided how long something would take to develop, which should be a technical decision. Secondly, in all likelihood Development won't get everything done in five weeks, so they'll need to decide what to do first.When development does this, they are prioritising features, which should be a business decision. You can decide how often conversations like this one occur in your workplace.

In an XP project, prioritisation and commitment levels are determined during the Planning Game, which occurs at the end of each iteration. The steps in the planning game are:

1. Note the number of story points completed in the previous iteration
This will be the commitment level, or velocity, for the next iteration. Assuming that the next iteration will be like the previous iteration is called using “yesterday's weather”, because on average the weather today is 76% likely to be the same as the weather yesterday (thanks to my friends at the New Zealand Met Service for this statistic). The experience of XP teams is that the inherent uncertainty in each iteration swamps any theoretical improvement you might get from more sophisticated (and more time consuming) approaches. If there are macro changes between iterations (e.g. half the team is on vacation next iteration), then certainly take this into account, but don't sweat the small stuff. In particular, if you add people to the development team, don't assume in advance that there will be an improvement in velocity. Instead, wait to see what happens and then increase the velocity to match the observed change – there may be a slight lag, but that's one of the reasons we keep iterations short.

2. Customers choose stories for the next iteration
Once the velocity is determined, the customer chooses the stories for the next iteration. They should do this based primarily on business value, but risk management is a factor as well. Each story already has a cost in story points, and the customers are free to choose any stories, whose estimates sum to the iteration velocity. If there are dependencies between stories, these are noted and need to be taken into account, but having story dependencies should be the exception rather than the rule.

3. If there are too many points, the developers ask a customer to split a story
Sometimes it's impossible to make the existing stories sum to the iteration velocity (e.g. all the remaining stories are 3 points, and the iteration velocity is 10 points). In this case, the customer needs to split a story into smaller parts, each of which still has some business meaning. For example, if our original story is “Enter customer details”, we might split it into “Enter corporate customer details” and “Enter personal customer details”.

4. Estimate any new stories
After the story is split, the developers estimate the new stories. Splitting the story may reveal new requirements, or show that some aspects of the story aren't required at all, so there's no compulsion for the new estimates to add up to the previous estimate.

5. Stories are split into technical tasks
Since stories are described in business terms, someone needs to break them down into corresponding technical tasks. In an XP project this is done by the development team as a whole, during the planning game. There are multiple ways that a story could be broken into technical tasks, and choosing between them is a design activity. Often this step reveals some uncertainty that needs be resolved in cooperation with the customer.

6. Developers take responsibility for technical tasks and stories
Once all the stories have been split up, each developer chooses which tasks they will be responsible for. The simple rule for my team is that we don't leave the room until everything is covered, though there are certainly some subtleties to how this occurs. Tasks have points associated with them as well, but they are determined by the individual who takes responsibility for the task, and are only used by the developers to balance their personal load – to make sure they aren't signed up for too much or too little.

Now we're ready to start the iteration.

This describes the simplest form of the planning game. Real projects certainly encounter issues that I simply don't have space to cover here. Rest assured that XP projects have mechanisms for dealing with both under and overcommitment, at both the team and individual levels, and for tracking progress within an iteration. As I hope I conveyed in my last column, planning is a integral part of every XP project.

Steve Hayes is the Software Development Manager at Internet Business Systems (IBS). IBS provides agile methods consulting and development services, and browser hosted solutions to the financial services industry.

Talkback

Add your opinion

In order to post a comment, you need to be registered. (Sign In or register below)

Post your comment

ZDNet Asia Live

Big data acquisitions pave way to fast, effective innovation - ZDNet Asia News http://t.co/vDZpl0lu

"Big data acquisitions pave way to fast, effective innovation" including @Vivisimo_Inc (client) in @ZDnetAsia http://t.co/yNSdPqbb

Homegrown smartphone OSes gaining favor in China: 59 Jakarta 10350, Indonesia Locally-made mobile operating syst... http://t.co/BruP98Es

RT @MDMGeek: Big data acquisitions pave way to fast, effective innovation - ZDNet Asia http://t.co/ky8YgPAn #Bigdata #analytics via @ciropuglisi

Integration, focused investments to propel Windows Phone http://t.co/6JkDa9sB

RT @AsianFashionLaw: Malaysia offers some manufacturing benefits over China http://t.co/bMquIFiX

Acquisitions in the Big Data market increasingly important to enterprises… http://t.co/Br4BkXyZ

Experience trumps content in apps monetization http://t.co/iaCY5ebX

Malaysia offers some manufacturing benefits over China http://t.co/bMquIFiX

RT @MDMGeek: Big data acquisitions pave way to fast, effective innovation - ZDNet Asia http://t.co/ky8YgPAn #Bigdata #analytics via @ciropuglisi

Thats it.Im digging up an old bus plan i wrote around acquisition of #bigdata talent. http://t.co/gpkha5A1 Any investors want2 read/discuss?

Integration, focused investments to propel Windows Phone: By Kevin Kwang , ZDNet Asia on May 23, 2012 (2 mins ag... http://t.co/aaa0Cb73

Homegrown smartphone OSes gaining favor in China http://t.co/lOBVp1T6

Homegrown smartphone OSes gaining favor in China: 59 Jakarta 10350, Indonesia Locally-made mobile operating syst... http://t.co/gHypbdIY

Integration, focused investments to propel Windows Phone - ZDNet Asia http://t.co/7sZi6Dhb

So much as we know , MTK6575 extremely integrated frequency1GHz ARM Cortex-A9 processor, the superiority of 3G / HSPA Modem, and help the...

1 day ago by y15822137359 on 5 SaaS adoption speed bumps to avoid

I reckon your view: "CRM is strategy, not software", if a company replicating the approach uses in ERP implementation into CRM, what they...

2 days ago by wykoong on Gartner: Mobile CRM gives better ROI than social

This video will teach you about the Excel fill handle but also provide you with a workook to download... http://www.youtube.com/watch?v=...

3 days ago by TradeBrother on A quick fill handle trick for Microsoft Excel

waiting...

5 days ago by eapete on What should count in a company's market value?

Boy, you've opened a can of worms now.

Wait for the rants & raves.

5 days ago by eapete on What should count in a company's market value?

I was puzzling before this whether to replicate the success formula we executed for a financial institute, and come out with a standard s...

5 days ago by wykoong on Drop the egos, copy ideas, then innovate