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
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
21 September 2007 07:07
It is indeed very useful to have a committed product owner and a team dedicated to one and only one product/project.
However, lately I personally came to a conclusion that general commitment to do Scrum and eagerness to Plan-Do-Study-Act is more important. Especially, when it is for historical reasons uneasy to dedicate the whole team to the project.
I think of it as of a retrospective-driven transition. If you got poor feedback loop, the best first steps can move you only a bit in the right direction. If you got good and short feedback loop, retrospectives can quickly correct the wrong steps take. For example, some of my teams at the moment do move from multi-project development to a couple-of-projects development, exactly because it was one of the highest impediments identified by the team. Later I expect them to move further to a single product development. Plus some internal improvements.
22 September 2007 12:39
I liked your blog very much, it sound you worked hard to make it so worthful. Please post more items and images as well. I also have a blog relating to offshore software development, to discuss the topic about risk related to offshore outsourcing i.e.http://www.hanusoftware.com/blog/ Offshore.html
Software Development Company
24 July 2008 11:18
Nice information on scrum development...you have deep knowledge about this area... I would appreciate if you could post more articles on scrum development
26 February 2009 07:08
If I am not yet able to find a willing Product Owner coz customers want to avoid responsibility, what should i do, Be myself or what?
10 March 2009 16:21
the comments about the product backlog are fine, however on a large project with many hundreds of backlog items it becomes rather hard to manage. We've ended up with the backlog being used to track iterations (story writing, dev, qa, etc) and also to prioritise upcoming iterations. Our iterations are 2 weeks long, so we can end up with a lot of tracking information in the backlog, which doesn't feel right. I've yet to come across a satisfactory way of managing a big complex backlog.
22 March 2009 20:04
To Ian Bell:
Note the emphasis on "Clear definition of Backlog items just needs to stay one step ahead of the team. No further."
We did scrum for about a year on a project with thousands of backlog items. Our Product Owner devised a huge, complex, politics-management structure for making his priority decisions without offending all of his sources of information.
But none of that is part of Scrum. All we need as developers is clarity when the rubber meets the road. Being more than one step ahead just pushes influence from development out into customer relations, marketing, etc., where we don't belong.
Let those groups learn what the effects of their actions are in the environment as it is defined. If they don't like the effects that their manipulations of the Product Owner have, they will learn to interact with him more productively, or he will learn to manipulate them back.
E.g. We often went through long periods of thrash, as the PO was overpowered first by one set of external interests and then another, but THAT WAS NOT OUR PROBLEM: They got the best work possible out of us, far better than when those influences intruded into our lives directly.
The point is, being at the helm of a storm-tossed ship is hard. But we are the SHIP, not the Captain. The Backlog is the wheel, not the chartering service. Scrum runs development, not the business goals.
The PO lives in two worlds, the fact that his other existence is Hell, does not mean that his role as PO for your group should get fire and brimstone all over it.
29 March 2009 12:57
Great Post! Thank you.
I have a stupid question though. Can you be more specific with "Align with Business", for some reason I am not sure what you mean exactly.
Secondly, we are web dev shop and we work on many projects simultaneously.We are a team of about 10 mix of dev/designers and a PM (Me) and my assistant. Will Scrum work for us?
Thanks
Ervin
14 April 2009 16:47
@Ervin.
I can say yes, scrum will work for you. I faced the same problem: Creative design agency, 16 members of staff. Half the dev team based in Poland and lots of smaller projects etc.
I wrote an article on it:
http://timothybowler.com/2008/11/20/scrum-in-a-small-agency/
17 May 2009 00:45
Thanks
18 May 2009 12:07
Thanks so much this informative post with us....good
19 May 2009 15:11
Great Post! Thank you.
25 May 2009 10:42
It'very good post, i think you have reason , thanks
2 June 2009 13:42
Interesting, thanks !
21 July 2009 20:50
Good post. I have a question on "... These features (or Backlog items) should be defined individually, so they can stand alone as discrete, deliverable pieces of work..."
Our product backlog has quite a few "epic" stories. We have asked to have them broken down, however the issue is that if we were to do so, they don't add value individually. However, if we leave them as is, they are far too large and could never get done in a Sprint (or even two or three possibly).
Next, if we could get past this, if they were to be broken down, does it make sense to remove the original epic story? I would think so, as it has now been broken down, however in doing so you lose the full picture.
22 July 2009 07:32
Hi Anonymous - please email me an example of one of your epics broken down into individual user stories and I will try to help you out. My email address is [email protected]
Kelly.
15 October 2009 02:37
I have never used scrum for a project, but my understanding was that the product backlog included mostly user stores and you say it can include anything. Can you clarify? Wher should I put tasks like project management time or graphic design?
Thanks,
15 October 2009 17:23
Hi Marcelo
Thanks for your comment. I was a bit ambiguous. When I said anything can go on the product backlog, I meant anything that is a feature of the product, rather than tasks.
Project management is something you have to do with all of the features on the product backlog, so it shouldn't be on there because you won't ever be done with project management and it won't ever be part of the end product as such.
Graphic design is similar. Although users will eventually see the graphic design, on its own it is not a feature of the product, as a graphic design without the development is of no value to the user.
Instead you express the features of the product on the product backlog and tasks like project management, graphic design, development, testing, etc are all tasks that do not need to be listed for every feature.
When you come to Sprint Planning (read the next steps in the series), you will eventually break the user stories or features down into tasks, and the "Sprint Backlog" will contain all the tasks for the section of the Product Backlog that will be delivered in the next sprint.
Hope that all makes sense!
Kelly.
21 October 2009 13:31
Thanks for your detailed step-by-step tutorial. We are working with Agile just recently and have found your Scrum implementation post quite useful. Also it would be interesting to read about FDD.
21 October 2009 13:36
Thanks for your detailed step-by-step tutorial. We are working with Agile just recently and we've found your Scrum implementation post quite useful. Also it would be great if you write about FDD.