Planning Poker is an unsual method of estimating tasks that I came across and have tried it out on a few projects. It's a good way to get maximum accuracy from minimal effort and it sounded interesting enough to have a go.
Objective: to estimate time required to complete projects not yet started
Why Planning Poker works
It brings together multiple expert opinions to do the estimating. Because these experts form a cross-functional team from all disciplines on a project, they are better suited to the estimation task than anyone else.
A lively dialogue ensues during planning poker, and estimators are called upon by their peers to justify their estimates. This has been found to improve the accuracy of the estimate, especially on items with large amounts of uncertainty.
Studies have shown that averaging individual estimates leads to better results as do group discussions of estimates.
Planning poker works because it’s fun.
How to play
1. Each member of team is given a deck of 6 cards.
Cards have the following values: 1, 2, 3, 5, 8, Joker
Numbers on the cards represent days.
A Joker = more than 8 days (unknown)
2. For each user story (see: Introduction to Scrum) to be estimated, the moderator reads the description. Any questions arising are then answered.
3. After all questions are answered, each person privately selects a card representing their estimate. Cards are not shown until each estimator has made a selection. At that time, all cards are simultaneously turned over and shown so that all participants can see each estimate.
4. If the estimates are close, a consensus is reached and players move to the next user story. If the estimates vary wildly, the team can discuss their reasons for their estimates. They are only allowed 2 minutes to do this and then a new round is played and cards are put on the table again. This time limit is absolute. No exceptions.
This continues until a consensus is reached.
More information
You can now play planning poker online for free. Try it out at www.planningpoker.com
The orginal idea came from Agile Estimating and Planning by Mike Cohn
Showing posts with label scrum. Show all posts
Showing posts with label scrum. Show all posts
Wednesday, 24 October 2007
An Introduction To Scrum
Getting things done using Scrum - an introduction to the Scrum software development framework.
Manager: "I want my work delivered when you say it will be delivered"!"
Tech guy: "Stop changing the goal posts every few days and just let me get on with it!"
Sounds familiar?
One process that aims to address these frustrations is "Scrum". "What on earth is that!", you may well ask.
If you are a manager in an internet company you may or may not have heard the technical team talk about "Scrum" and "Agile Development". You may have wondered what it is and why it's becoming so popular. It's actually quite a simple way of organising work into (usually) 2 weeks blocks. To do this a number of roles are created and a number of meetings happen to keep things moving. I'll explain these, but first - why do it?
Benefits of Scrum
Managers get a clear process to prioritise the work flow
Managers can be sure that the team is always working on the highest priority work items / projects
Developers give commitment to get the job done
The development team muck in together to solve problems and share work
Developers are not continuously interrupted and can focus
There is a relentless focus on quality delivery
It does not require complicated technology or tools
Terminology
There's some terminology unique to Scrum. The word Scrum for a start. Yes, I know it's a rugby term, but in this case it doesn't mean anything in particular other than a word to describe the process framework.
At the most basic level you need to understand that work is organised into periods of time called sprints. A sprint is usually a two week period, although it could be almost any time between 1 week and a month. It depends on what works for the team. We found that 2 week sprints worked well for us.
The team commits to deliver a specified amount of work in the upcoming sprint. The resulting work-list is called a sprint backlog.
To describe the rest of the process, I will focus on the following 3 areas:
Roles
Meetings
Time frame
Key roles in Scrum
1. The Product Owner
This is the person responsible for specifying the changes required. They may do this by themselves or they may represent a wider group of business owners. Their purpose is to scope out the work and arrive at a single list of priorities. The list of priorities is known as the product backlog. Each item on the product backlog is known as a story.
2. The Scrummaster
The Scrummaster is a facilitator. They are usually one of the team and have equal status to all others on the team. They are however responsible for ensuring that the team knows what is expected of them and leads the various meetings to make the process work. They also are charged with working to remove any impediments to progress that are reported by the team.
3. The team
The team is usually a group of developers and related functions (e.g. designer, testers). For Scrum to work well, you probably need at least 4 people, and no more than 10. These are not strict limits - Scrum is just a framework that you need to adapt to make it work for you. In my experience a team of 8 or 9 works great. If I had 20 people I would create two teams rather than have one huge team.
Meetings needed to make the process work
1. Sprint planning meeting
The day before the sprint starts, the team meet to plan the next sprint. They figure out from the product backlog, what tasks are required to deliver each story. They then estimate the time it will take them for each task. Knowing this they can then take on add a number of stories (in priority order) to the sprint backlog.
2. The daily scrum
This is a meeting that happens at the same time every day. In our case we chose 09.30, but it could be any time that works for the team. Every day means every day and it's not optional.
Each team member answers 3 questions in turn,
i) what did you work on yesterday?
ii) what will you work on today?
iii) what is blocking your progress?
The team organise their work around the sprint board. We mounted a white board on the wall and used post-it notes of different colours to represent the tasks. We used different colours for design, development and test. I've also seen magnetic boards that use magnetic post-its. Both work.
The board shows all of the work for the current sprint. (Click to enlarge)
You can see from the board that each story is broken down into tasks. These tasks are placed on the board according to their status. They are either in the queue, being worked on, being tested or are complete.
3. Sprint review
The sprint review is a meeting where the team present their completed stories to the product owner.
4. Sprint retrospective
This meeting happens at the end of the sprint and allows the team to discuss what went well in the sprint, what could have gone better and what they will change for the future. This allows for issues to be addressed and allows for a self-optimising team and process.
Time frame
The length of your sprints can be what you want it to be. Usually a 2 or 4 week cycle is chosen depending on the type of work you receive.
The start day of the sprint does not have to be a Monday. You can start say on a Wednesday and run your sprints Wednesday to Tuesday. Whatever works best for the team.
On a 2 week (10 working day) sprint you might do the following
Day 1 (am) - Sprint planning
Day 2 to day 10 - Daily Scrum
Day 10 (pm) - Sprint review
Day 10 (pm) - Sprint Retrospective
Why does it work?
The team have a clear set of priorities that they have committed to deliver over the coming sprint. They have thought through was required of them, they've discussed it in detail and they've agreed what they can achieve. Once committed, the team work together to maintain their collective reputation by delivering on their promises.
The management start to see stuff getting done. Every 2 weeks they see results. They know that the most important stuff is being worked on first. They know the team are not wasting their time on things that are not a priority for the business.
What can go wrong?
The process only works if the team are not interrupted once the sprint has started. New work should not enter into the current sprint unless the team agree it is possible to take it on. Otherwise, if the priorities really have changed you need to stop the sprint and start a new one. Management need to get used to the fact that they need to plan ahead. Will it wait 2 weeks until the next sprint starts? (In reality, the answer is usually yes).
The other important factor is that the team really need to believe in the structure. All team members need to be behind it and support it. Having one resistant member will spoil the party.
Rituals and rites
One way of rallying human behaviour around a cause is to introduce rituals. Religion of course has done this for centuries, but all social groupings have their rituals and behaviours. Songs and scarves (football supporters), national holidays (counties), opening ceremony (Olympics), holy days (religions).
What's interesting about Scrum is that the meetings, the terminology and the routine give a sense of shared identity to the Scrum team. Through following this process they re-enforce their sense of being a team. It's a very useful by-product of the efficiency of the process.
How to get started with Scrum
I was first introduced to Scrum by Tobias Mayer. He gave a simple but compelling overview of the Scrum process to our team. This planted the seed from which we grew to explore and adopt Scrum. It was simple enough for the key decision makers to "get it" and interesting enough for developers to want to learn more. If you want to introduce Scrum to your organisation, he'd be a good person to do this.
You need to start with one of two key individuals that are keen to get involved. They will be your champions. Get them trained on a Scrum training course. A good course to start with could be Rachael Davies' Scrum Awareness Course. Then get them back in the business and think through with them what needs change in the organisation if you are going to give it a go. Who will take up each of the key roles?
Then, you most definitely need senior management buy-in. They cannot just come to the team and demand work requests - they will also need to channel their requests in the right way, through the Product Owner.
Most importantly for Scrum to work the team needs to dedicate themselves to it's implementation. All the team need to feel that it is a benefit to work this way. Also - it needs to work in a way that suits them, their obstacles, people, goals and company organisation.
It takes a while to get right. We found it took us about 6 months before we really got going and had a clockwork process in place.
I found that the results though were worth it. I had a predicatble process to work with, my team were energised, they took ownership for their work - and most importantly - stuff got done.
Further reading:
Controlchaos.com - Ken Schwaber, The man who wrote the book on Scrum.
Scrum Alliance - Scrum community resource centre
Scrumworks Pro - software to manage your Scrum work flow
Conferences / Events
London Scrum gathering November 2007
Manager: "I want my work delivered when you say it will be delivered"!"
Tech guy: "Stop changing the goal posts every few days and just let me get on with it!"
Sounds familiar?
One process that aims to address these frustrations is "Scrum". "What on earth is that!", you may well ask.
If you are a manager in an internet company you may or may not have heard the technical team talk about "Scrum" and "Agile Development". You may have wondered what it is and why it's becoming so popular. It's actually quite a simple way of organising work into (usually) 2 weeks blocks. To do this a number of roles are created and a number of meetings happen to keep things moving. I'll explain these, but first - why do it?
Benefits of Scrum
Terminology
There's some terminology unique to Scrum. The word Scrum for a start. Yes, I know it's a rugby term, but in this case it doesn't mean anything in particular other than a word to describe the process framework.
At the most basic level you need to understand that work is organised into periods of time called sprints. A sprint is usually a two week period, although it could be almost any time between 1 week and a month. It depends on what works for the team. We found that 2 week sprints worked well for us.
The team commits to deliver a specified amount of work in the upcoming sprint. The resulting work-list is called a sprint backlog.
To describe the rest of the process, I will focus on the following 3 areas:
Key roles in Scrum
1. The Product Owner
This is the person responsible for specifying the changes required. They may do this by themselves or they may represent a wider group of business owners. Their purpose is to scope out the work and arrive at a single list of priorities. The list of priorities is known as the product backlog. Each item on the product backlog is known as a story.
2. The Scrummaster
The Scrummaster is a facilitator. They are usually one of the team and have equal status to all others on the team. They are however responsible for ensuring that the team knows what is expected of them and leads the various meetings to make the process work. They also are charged with working to remove any impediments to progress that are reported by the team.
3. The team
The team is usually a group of developers and related functions (e.g. designer, testers). For Scrum to work well, you probably need at least 4 people, and no more than 10. These are not strict limits - Scrum is just a framework that you need to adapt to make it work for you. In my experience a team of 8 or 9 works great. If I had 20 people I would create two teams rather than have one huge team.
Meetings needed to make the process work
1. Sprint planning meeting
The day before the sprint starts, the team meet to plan the next sprint. They figure out from the product backlog, what tasks are required to deliver each story. They then estimate the time it will take them for each task. Knowing this they can then take on add a number of stories (in priority order) to the sprint backlog.
2. The daily scrum
This is a meeting that happens at the same time every day. In our case we chose 09.30, but it could be any time that works for the team. Every day means every day and it's not optional.
Each team member answers 3 questions in turn,
i) what did you work on yesterday?
ii) what will you work on today?
iii) what is blocking your progress?
The team organise their work around the sprint board. We mounted a white board on the wall and used post-it notes of different colours to represent the tasks. We used different colours for design, development and test. I've also seen magnetic boards that use magnetic post-its. Both work.
The board shows all of the work for the current sprint. (Click to enlarge)
You can see from the board that each story is broken down into tasks. These tasks are placed on the board according to their status. They are either in the queue, being worked on, being tested or are complete.
3. Sprint review
The sprint review is a meeting where the team present their completed stories to the product owner.
4. Sprint retrospective
This meeting happens at the end of the sprint and allows the team to discuss what went well in the sprint, what could have gone better and what they will change for the future. This allows for issues to be addressed and allows for a self-optimising team and process.
Time frame
The length of your sprints can be what you want it to be. Usually a 2 or 4 week cycle is chosen depending on the type of work you receive.
The start day of the sprint does not have to be a Monday. You can start say on a Wednesday and run your sprints Wednesday to Tuesday. Whatever works best for the team.
On a 2 week (10 working day) sprint you might do the following
Day 1 (am) - Sprint planning
Day 2 to day 10 - Daily Scrum
Day 10 (pm) - Sprint review
Day 10 (pm) - Sprint Retrospective
Why does it work?
The team have a clear set of priorities that they have committed to deliver over the coming sprint. They have thought through was required of them, they've discussed it in detail and they've agreed what they can achieve. Once committed, the team work together to maintain their collective reputation by delivering on their promises.
The management start to see stuff getting done. Every 2 weeks they see results. They know that the most important stuff is being worked on first. They know the team are not wasting their time on things that are not a priority for the business.
What can go wrong?
The process only works if the team are not interrupted once the sprint has started. New work should not enter into the current sprint unless the team agree it is possible to take it on. Otherwise, if the priorities really have changed you need to stop the sprint and start a new one. Management need to get used to the fact that they need to plan ahead. Will it wait 2 weeks until the next sprint starts? (In reality, the answer is usually yes).
The other important factor is that the team really need to believe in the structure. All team members need to be behind it and support it. Having one resistant member will spoil the party.
Rituals and rites
One way of rallying human behaviour around a cause is to introduce rituals. Religion of course has done this for centuries, but all social groupings have their rituals and behaviours. Songs and scarves (football supporters), national holidays (counties), opening ceremony (Olympics), holy days (religions).
What's interesting about Scrum is that the meetings, the terminology and the routine give a sense of shared identity to the Scrum team. Through following this process they re-enforce their sense of being a team. It's a very useful by-product of the efficiency of the process.
How to get started with Scrum
I was first introduced to Scrum by Tobias Mayer. He gave a simple but compelling overview of the Scrum process to our team. This planted the seed from which we grew to explore and adopt Scrum. It was simple enough for the key decision makers to "get it" and interesting enough for developers to want to learn more. If you want to introduce Scrum to your organisation, he'd be a good person to do this.
You need to start with one of two key individuals that are keen to get involved. They will be your champions. Get them trained on a Scrum training course. A good course to start with could be Rachael Davies' Scrum Awareness Course. Then get them back in the business and think through with them what needs change in the organisation if you are going to give it a go. Who will take up each of the key roles?
Then, you most definitely need senior management buy-in. They cannot just come to the team and demand work requests - they will also need to channel their requests in the right way, through the Product Owner.
Most importantly for Scrum to work the team needs to dedicate themselves to it's implementation. All the team need to feel that it is a benefit to work this way. Also - it needs to work in a way that suits them, their obstacles, people, goals and company organisation.
It takes a while to get right. We found it took us about 6 months before we really got going and had a clockwork process in place.
I found that the results though were worth it. I had a predicatble process to work with, my team were energised, they took ownership for their work - and most importantly - stuff got done.
Further reading:
Controlchaos.com - Ken Schwaber, The man who wrote the book on Scrum.
Scrum Alliance - Scrum community resource centre
Scrumworks Pro - software to manage your Scrum work flow
Conferences / Events
London Scrum gathering November 2007
Subscribe to:
Posts (Atom)