Showing posts with label product backlog. Show all posts
Showing posts with label product backlog. Show all posts

Example Product Backlog & Sprint Backlog

Example Product Backlog and Sprint BacklogOne of the readers of my blog (someone with the id 'phani') has kindly posted an example Product Backlog and Sprint Backlog on the allaboutagile Google Group.

I've taken a look at them. They're not exactly how we do it, but I think they are very nice examples.

Note that the Product Backlog has Sprint numbers across the top, so this is an example where the whole backlog has been planned into Sprints. For most products, there would probably be many items on the backlog that are not yet planned.

Notice also that the values for each item on the Product Backlog are Fibonacci points represensing the relative size of each feature They do not represent hours.

However on the Sprint Backlog, the numbers across the top are the days in the Sprint, and the values for each task are estimated hours.

These examples are also good at highlighting how the Product Backlog is about Features (or we would use User Stories), whereas the Sprint Backlog breaks those Features into Tasks.

Here is the link if you'd like to have a look...

http://groups.google.com/group/allaboutagile/files

Thanks 'phani'!

Kelly.

P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...
keep up by rss feedkeep up by email

read more

That's Not A User Story, That's An Epic!

that's not a user story, that's an epic When putting User Stories onto a Product Backlog (or feature list), you shouldn't feel compelled to break everything down until the features are nearing development.

Further down the Product Backlog, it's fine for items to be fairly fuzzy. It's also fine for items further down the backlog to be whole projects - large, high-level items that are not so much User Stories but more like Epics!

As an item nears development, the item should be broken down further. And as it nears development, the item on the backlog should be defined in sufficient detail that the team can reasonably estimate its size and break it into tasks.

Until that time, however, it's just really a placeholder. A reminder for prioritisation and high-level estimating. That's all.

For some people, particularly those used to a more traditional project approach, used to detailed specifications up-front, this can potentially feel very uncomfortable. It shouldn't.

The logic here is simple. There is little point defining a feature (or set of features) in detail if it may never reach the top of the priorities. The other aspect of this logic is that you tend to know more about your requirements, constraints, etc as time goes by.

And things change. People come and go. Sometimes the team has changed significantly since the original requirements emerged, so information can be lost if it is captured too early.

Therefore it makes business sense to defer details until they are needed.

read more

How To Implement Scrum In 10 Easy Steps - Step #1: Get Your Backlog In Order!

So you want to implement Scrum?

And you like the idea of making it easy?
Then listen up. This is step 1 in my series: How to implement Scrum in 10 easy steps.

This is not only the 1st step. It's the most important step.

Unless you can take this step, go no further. Do not skip it. I promise you'll regret it if you do. Even if you get no further, this step is likely to benefit you, your team and your organisation.

So here it is...

First of all, where should you start?

Align with Business

Firstly, before you do anything else, you must align your development team with the business.

If you're part of a business unit, that might be natural and straightforward. If you're a central development organisation serving multiple business units, developing multiple products, it might be harder. Initially, make sure you have at least 1 person dedicated to a product, application or product range where you will start implementing Scrum.

You can share a team split across multiple products. But it's a little harder and therefore is a slightly more advanced technique. If possible, it would be ideal to avoid this situation in your first implementation of Scrum, if you can.

Start with BAU

Secondly, although you can use Scrum on projects to good effect, I would suggest you start with BAU (business-as-usual) rather than on big projects. This will keep things simple while you and the team get used to the basics.

So you've decided on a product where you will start using Scrum. You have at least 1 person who will be dedicated to that product (or product range). To keep things simple at first, you have selected a product that is in the BAU cycle of bug fixing and enhancements.

Find a Willing Product Owner

The next key step is to nominate a Product Owner. You must find 1 Product Owner. 1 person who will be responsible for prioritising work on the product. 1 person who knows what is required of the product. 1 person that is a good communicator and able to convey requirements. 1 person who is committed to the success of the product, such that they are willing and able to dedicated a reasonable amount of time to its development.

If, for whatever reasons, this step is a problem for you, DO NOT PASS GO.

If you can't complete this step, your product development is likely to be fraught with issues. Whether or not you implement Scrum. Unless you can take the above steps, it's quite possible you will be faced with a barrage of requests, no clear view of priorities, a lack of clarity about requirements, lots of noise and complaints, and being pulled from pillar to post. The consequences? You don't deliver and/or fail to meet expectations. Everyone is miserable. And somehow it's all your fault! Unfortunately, this is all too common a situation for development teams everywhere. This must be solved before you proceed. This is a critical success factor for your team.

Act as ScrumMaster

So now you are organised. You're aligned. You have 1 product, application or product range. You have at least 1 person dedicated to the product (Scrum Team). You have 1 Product Owner. And you, by virtue of the fact that you're reading this information about implementing Scrum, I will assume are probably the ScrumMaster.

As ScrumMaster, you are responsible for supporting the Scrum Team, coaching and guiding them through this process, and removing any impediments blocking their progress.

Create the Product Backlog

Now you must create the Product Backlog.

As you're reading this, and I'm talking about nominating a (willing) Product Owner, you will probably need to create or facilitate the creation of the Product Backlog. Strictly speaking it should be owned by the Product Owner. But you can get the ball rolling.

The Product Backlog, in its simplest form, is a list of things that people want to be done to the product, in priority order.

Anyone can add anything to the Product Backlog. Anyone. The Scrum process, and agile development principles generally, are collaborative and inclusive. There is no longer any need to say no.

But... very importantly - only the Product Owner can prioritise the Product Backlog.

The Product Backlog can contain anything. Anything relating to the product that is. Bugs. Enhancements. Whole projects. Issues. Risks. Anything.

Having said that, items on the Product Backlog should ideally be expressed in business terms that are of some value to the user (or customer, or business). Not as technical tasks.

Functional requirements should be expressed as features. Non-functional requirements can be put on the Backlog too, for instance 'the product needs to be faster', 'we need to ensure the product is secure', 'we need to get off the old platform', 'there's a high risk of downtime due to a single point of failure'. These might not be features, as such, but they are completely justified as items on the Product Backlog.

Prioritise the Backlog

The Product Owner prioritises the Product Backlog. They don't categorise the priorities 1, 2, 3 or anything like that. The priority is determined simply by the order of the list. The Product Owner puts the Product Backlog in priority order.

Things at the bottom of the list may be way off and may or may not ever get done. Things down the bottom are likely to be fuzzy and ill-defined. Don't waste time defining things you may never get to, or not get to for some time. If something is a bad idea, the Product Owner should explain to whoever requested it why they are removing it from the Backlog. However, if something's not such a bad idea, although never likely to be done, just put it in its rightfully low place on the Backlog and explain to the requester where it fits with priorities.

Actually this is just like queueing. Or standing in a line. We're all used to that. People will generally accept it. Providing the authority of the Product Owner has been communicated and has management support, people will take their place in the queue.

All too often in development teams, there is no clear visibility of the queue. People don't know how long the queue is. And they don't know how many are in front of them. This generally leads to impatience and complaints, because it's the only way to push in and get further up the line.

Visibility of the Product Backlog can solve this problem.

Furthermore...

The above steps can have a profound and powerful effect...

Prioritisation is now a business problem. The trade-off between adding cost and doing more, or waiting patiently in the queue, is now a commercial decision. A grown-up conversation about the cost versus benefit. It's no longer a delivery problem. It's a choice. Shouting loudest is no longer the system for prioritisation. So there is no point shouting.

And think about a technical issue or risk that causes you to lose sleep but you never get given the time to address. Put it on the Backlog. The Product Owner may decide that other, more visible features should take priority. But if the risk bites you, it was an informed business decision to carry the risk. Ownership of the risk is successfully transferred.

Things towards the top of the Product Backlog may be done in the foreseeable future. Therefore they are likely to be better understood. And they need to be well enough defined that the team could work on them. These features (or Backlog items) should be defined individually, so they can stand alone as discrete, deliverable pieces of work. Not part of a big network of inter-dependencies. And not part of a big specification document. Defined, yes. But defined in small, individual pieces. Clear definition of Backlog items just needs to stay one step ahead of the team. No further.

So there you have it. You now have a Scrum team. A ScrumMaster. A Product Owner. And a Product Backlog. You've aligned your team with the business. You've created clear product ownership. You've got your team's work prioritised. And you have a system, a mechanism, a queueing system, for prioritising on an ongoing basis.

If you do no more, you will be better off for taking this step. But, until you can take this step, you should go no further.

Next in the series: Step #2 - How to estimate your product backlog

Follow this series by email

See also:
How to implement Scrum in 10 easy steps:
- Step #1: Get your backlog in order!
- Step #2: How to estimate your product backlog
- Step #3: Sprint Planning/clarify requirements
- Step #4: Sprint Planning/estimate tasks
- Step #5: Create a collaborative workspace
- Step #6: Sprint!
- Step #7: Stand up and be counted!
- Step #8: Track progress with a daily burndown chart
- Step #9: Finish when you said you would
- Step #10: Review, reflect, repeat...

'Implementing Scrum' PowerPoint Presentation

10 Key Principles of Agile Software Development

read more