Wishful Thinking and Eating Elephants

‘There’s no use trying,’ said Alice; ‘one can’t believe impossible things.’

‘I daresay you haven’t had much practice,’ said the Queen. ‘When I was your age, I always did it for half an hour a day. Why, sometimes, I’ve believed as many as six impossible things before breakfast.’

– Lewis Carroll

Turning Constraints into Opportunities

One of my favourite things about Agile is how well it works in a world of constraints. And there’s no better time than the current economic crisis to help focus the mind on Value Driven Delivery. ‘We’ve got limited funds for the project,’ says a project manager. ‘Plus we’ve got a fixed deadline.’

‘That’s great!’ I reply. ‘It’s good to have a fixed budget and a fixed deadline. That leaves us with only one variable to play with: Scope. As for Quality, it’s an integral part in everything we do.’

In my experience, such conversations usually herald the start of a potentially successful Agile project, one that delivers solutions with the highest business value possible faster than most people imagine. Here’s the recipe I use to implement Value Driven Delivery.

Begin with Stories

The key to any successful Agile project is the identification and breaking down of user stories that can be implemented by the team in a single release made up of several iterations.

  1. Identify the top two business value currencies for the project. (Value currencies are usually things like Revenue and Customer Satisfaction).
  2. Brainstorm all the user stories that the customer has in mind. These will be high level stories (also known as ‘epics’).
  3. Estimate the relative business value of each value currency per story or group of stories.

Release Planning in Action

  1. Prioritise the backlog based on the primary business value currency.
  2. Prioritise the backlog based on the secondary business value currency.
  3. Estimate the effort for the top 3 stories selected by the customer.
  4. For each of the estimated stories, divide the value estimate by the effort estimate. The product from this calculation allows you to prioritise the top 3 stories based on maximum value, minimum effort.
  5. Prioritise the stories in the Release Backlog based on what your customer values most.

The Art of Story Splitting

Q: How do you eat an elephant?
A: One bite at a time.

After Release Planning, you’re likely to have to split stories into smaller stories until they fit into a single interation. I recommend splitting stories by the thinest possible vertical slice – you’d be surprised how often this is possible.

For instance, if you have to implement a form with 20 fields to be pre-populated by values held in the database, your first story might consist of a vertical slice from the Web Layer down through to Service and Data Layers for 1 or 2 fields only. The result is incremental development as the team implements more and more fields as they complete one story at a time.

Such an approach helps you reduce previously elephantine requirements into manageable chunks. The patient scrutiny required by story splitting can help you identify your project’s Minimum Marketable Feature Set (based on the idea that 80-20 rule that 20% of the stories contains 80% of the business value within the entire project backlog).

This incremental approach allows the team to:

  • Test out the size and quality of the user stories.
  • Calibrate their velocity through a short feedback cycle of updating the Iteration Board daily.
  • Demonstrate the value being delivered at the end of every iteration (2 week iterations are usually a good length to start off with).

A Word to the Wise

Remember, a truly Agile team achieves at least six impossible things every day. And over-sized chunks of elephant are bound to give your team more than a stomach ache.

Leave a Reply