I don't believe in IPMs

I like celebrating on successes, whether it is making a test pass, finishing a task on a story or finishing the story itself. I also love celebrating what we have achieved in an iteration. If we complete 15 story points in one iteration – Great :) . If we completed 20 points in the last iteration, well it was still great – we added 15 points worth of value to the application.

It is because of this love of celebrating successes that I really hate signing up to delivering a certain amount of points or certain stories at the start of an iteration (commonly in IPMs). 

I have heard the reasons for signing up to what you deliver in the iteration including having a clear goal about what will be achieved that week; knowing how many stories we think we can cover so that the BAs can plan and define the stories for the next iteration; and you won’t know how fast you can go if you don’t say how many points you will achieve. I have counter-arguments to these (of course).

The first: having a clear goal about what will be achieved in that iteration. If you don’t sign up to stories, how will you know what goal you are working towards? Easy – we are working on the current release. Our goal for the iteration is actually to complete as many stories for the release that we can achieve. The business can still prioritize top stories, so we know which stories we should deliver first, but our actual goal of the iteration is to work through as many stories in the backlog as possible. 

The second: knowing how many stories we think we can cover so that the BAs can plan and define the stories for the next iteration. If you have a look at how I would run a IPM-less project, you can see that the BA will always have know when they need to start defining the next lot of stories, governed by how full the bucket is.

The third: You don’t know how fast you can go if you don’t say how many points you will achieve. Agh, my favorite argument, worthy of its own post. I will just touch briefly on it. Sometimes, people say “last iteration we said we would complete 20 stories, but we only completed 17 stories. This week, lets say we will achieve 20 stories again so we can improve on last iterations effort”. That is all very well, but this is just an arbitrary number. Without the goal of completing 20 points, I could say “so far in this iteration, we have achieved 12 points. We have 2 more days left – hey if we work well then we can beat that this iteration”. Knowing how fast you can go is only relevant when working out when the release will be deliverable, and this can always be done with yesterday’s weather.

How would I do it?

At the beginning of the release, you have a backlog of the stories for the release with estimates on them, so you can gauge how long you think the release will take to complete (there is no difference here). Then, you identify which stories are the most risky to play (which will deliver value) and ones which have to be played first and you prioritize the top 10 (at this stage this is just an arbitrary number, depending on the number of pairs you have). You then have a bucket which holds top 5 (again, arbitrary) stories.

 

  • When a developer picks up a new story they have to pick up something from the bucket, but what they pick up is their choice – first in first served basis. 
  • Any bugs which arise are added to the bucket (assuming the business wants to fix them). 
  • No new stories can be added to the bucket until it is empty.    
  • The business has the power to replace a story in the bucket if they feel something else will deliver better value.
  • When the bucket is starting to look empty, the BA can then define the next lot of stories, taken from the original top 10 which will go into the bucket.
  • 5 new stories get added to the prioritized list so that we still have a Top 10.

 

Working in this manner has many advantages:

 

  1.  Developers can be incentivized to completing their story quickly because they want to their pick of the stories in the bucket (if they took a long time, then a great story could disappear)
  2. The team is self-organizing as the developers decide which story they want to pick up first, in much the same manner as QAs self organize.
  3. You only define the stories which will go into the bucket; you don’t waste your time defining stories for an IPM which will get thrown out because the developers didn’t feel like they could work on them.
  4. You cut down on one meeting (the IPM).
  5. Increases team morale as you celebrate what you achieved instead of morning what you didn’t deliver.
  6. You plan your release date using yesterday’s weather, instead of yesterday’s weather and an arbitrary forecast.

 

I would still hold weekly showcases, where you celebrate all that you achieved that week and weekly retrospectives, where you can talk about what will make us go faster.

I still believe in iterations: just not IPMs.

This entry was posted in Agile. Bookmark the permalink.

4 Responses to I don't believe in IPMs

  1. Pingback: ezineaerticles » Blog Archive » Sarah Taraporewalla’s Technical Ramblings » I don’t believe in IPMs

  2. Andy says:

    Excellent post. If you remove the iterations, you are describing Kanban.
    When people are new to working in a way that provides fast feedback and fast response to change, they need clear rules to give them reassurance that they are doing the right thing.
    Iterations, planning games, retrospectives at specific intervals are the supporting structure for these rules.
    As teams become more effective at working in this way, they start to instinctively do these things at more frequent intervals, for example, retrospecting at the end of a story or having a mini-planning game at the beginning of a story.
    The structured elements start to become less relevant and can be phased out or adapted to something new.
    This closely matches the ShuHaRi learning model.

  3. Christian Blunden says:

    Mental note: something to talk about on monday, but you may want to address this in your blog…

    1. Is there any indicative size to a story? and is there any early warning as to when it is ‘blowing out of proportion’? or is it a case of that a story should take as long as a story takes?

    2. Could say 5 super huge stories be placed into the bucket with no possible chance of completing them within an iteration? Do you think the story bucket is your goal, or just a semi-prioritised set of work, and your “goal” is what ever you complete in an iteration? (hence a celebration no matter what)

  4. Sarah says:

    @Andy – yes it is moving more towards a KanBan approach. I like the ritual of iterations at the moment, because I am so forgetful, I like to be reminded of what I accomplished in a week. I would be willing to give it a try though.

    @Christian – All stories have been estimated when they are created (ie have release level estimates) and they don’t change throughout the release. When you prioritise the stories, you take into account their estimate. So ideally, you wouldn’t have a situation where you would have 5 large stories in your bucket at once.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>