Friday, June 26, 2009

Agile/SCRUM : Prioritise Product Back Logs

"Product Owner: Hey! I don't care in what order you want to build from the Product Backlog as long as the whole Product Backlog gets built!"

This presents a interesting issue. This may not be a huge problem for small projects but it shows an underlying misunderstanding in the organisations Agile adaptation. If you do not prioritise tasks, then at what point can you go production? According to the above Product Owner, at the end of all items in the backlog. Then the question arises why does scrum even have to be used and not the traditional waterfall methodology.

In a bigger/complex project this line of thinking by the product owner will be a show stopper. The power of scrum is in being able involve the customer at an earlier stage then when using waterfall approach.

The key to be able to successfully prioritise tasks is in being able to classify backlog items into the following:

1. Core Features
2. Value Additions
3. Nice to Haves

Core Features are stuff the product needs to have in order for the customer to start using the product. One point to remember is that a core feature my have value additions and nice to have features associated to it. And its is important to identify those as such. For example, if you are building a web based email application, then being able to compose emails is a core feature. So a story in your product backlog could be "Build a screen for the user to compose email and send it". So what about spell check? Any half-decent email editor will need it. That is a good value addition. OK, The wire frames also talk about being able to embed YouTube videos in your email. What about be that? That is definitely a nice to have.

The customer can start using the application without the value addition and nice to have features. So as a product owner you can assign high importance factors as follows:

Compose Email : 100 points
Spell Check : 75 points
Embed Video: 45 points

This helps the scrum team to build the core features first and then come back for the other features. This also means the product is going to be production usable earlier. It might not have all the cool features, but hey, is works! We cannot stress strong enough how important it is to get a working product in the hands of the customer as soon as possible. The enables the customer to give us the best possible feedback. And this in turn enables us to re-organise our priorities for future releases.

So get your Product Owner to spend the time required to prioritise the tasks properly. It is a crucial step in implementing scrum.

Happy Sprinting!