Friday, September 24, 2010

Planning & Estimation Techniques

How do we estimate? What approach should follow? How accurate estimations will be? Who will estimate? Why we are making so unclear estimations.

The answer for more precise estimations is Scrum. Scrum Team has to make very serious commitment to complete the work (Potentially shippable Product) which requires careful thought to be successful. Steps for successful estimation would be:

Estimate Team's Time available for Scrum:

Estimating the time of each and every team member available for the sprint is very much important as a part of the sprint planning. When a team member estimates a given task can be completed within 8 hours which does not mean he can complete the task in one day. The fact is that no one will seat in one place to do complete the job without attending meetings, lunch breaks, unexpected breaks, checking emails and phone calls etc.

Those who just started practicing scrum will have question regarding "Managing time for bug fixes". Again we cannot make two sprints one for product backlog and one for bug fixes. The time for bug fixes should be addressed form the daily time available time. It means apart from daily routine work like emails, phones, breaks , you should also allocate some time for bug fixes and the remaining time you can commit for the sprint.

1. Estimate how much time each member can spend for sprint related work.

Available time for Sprint Related work = Average work day time - Time allocated for other activities.
Average work day time = e.g. 10 hours
Time Allocated for other activities: = e.g. 6 hours
Emails and Phone : 1 Hrs
Lunch : 1 Hrs
Reading Blogs : 1 Hrs
Meetings : 2 Hrs
Bug fixes : 1 hrs
Available time for Sprint Related work = 4 hours

Estimate Effort for Each Prioritized Item on the Product Backlog:

Estimates can be better done by the people who have the experience of similar kind of work already done, Peers and Historical data. It is always better to involve the people who have similar work experience for appropriate estimations.

No one will estimate perfectly for the first time, for sure team members will either over estimate or under estimate the task work, but it makes them realize how much they can produce and for next sprint the team members will try to estimate a bit more precisely.

After three to four sprints, team members will be in a position to understand their own strength and how much work they can do. This leads for better estimates.

2. All the team members must participate in the estimation game.

3. Take the prioritized Item from Product Back Log, Understand it thoroughly, what is supposed to be done, any dependencies, complexity, Risk involved, etc. ,. If required get the clarification from the product manager (Pre- Planning).

4. Divide the Prioritized/Understood Item and break it down to individual tasks.

5. Use Planning poker for estimating duration for individual tasks.
  • All the team members must have cards: ½,1,2,3,5,8,13,20,50 etc.
  • Scrum Master reads description of the backlog Item.
  • Everyone selects and simultaneously shows cards
  • If estimates vary significantly, high and low estimators briefly explain why they have estimated so.
  • Repeat steps 3-5 until estimates stop converging.
  • Decide estimate for backlog item
  • Move to next backlog item.
Points to be consider for estimations:

1. Once committed to the sprint work, Team members should not be disturbed by adding additional work or different work then assigned to the team members.

2. Remaining work should be carry forwarded to the next sprint (This happens generally due to underestimates) .

3. Teams must be self organized and have transparency among the team members for achieving the goal.

Follow Scrum Rules to Make your Product Development Successful:

1. Full-Time Product Owner (with Expertise and Authority) Identified
2. Product Owner Works With Team and All Other Stakeholders
3. Product Backlog Created and Managed by Product Owner
4. Daily Scrum Meeting with 3 Questions (Completed? Will Complete? Obstacles?)
5. Daily Scrum Meeting Same Place and Time and Less Than 15 Minutes
6. Regular Sprint Length (no more than 30 days)
7. Sprint Planning Meeting to Create Sprint Backlog of Estimated Tasks
8. Sprint Burndown Chart
9. Team Room with All Needed Equipment and Supplies
10. Retrospective Meeting for Process Improvements
11. Definition of "Done"
12. Commitment Velocity Calculated (from Sprint Backlog Estimates)
13. Team Size 7 +/-2, Maximum of 12
14. Cross-Functional Team Including ScrumMaster and Product Owner
15. Team Self-Organization - Team Members Volunteer for Tasks
16. ScrumMaster Tracking and Removing Obstacles
17. Team Safety - No Interruptions to Team's Work During Sprints
18. No "Break" Between Sprints
19. Sustainable Pace - Timebox Effort, Not Just Schedule
20. Quality is Not Negotiable - Defects Go on Top of Product Backlog

And summary:

Team understands the details of what the Product Owner has prioritized on the product backlog in the Sprint Pre Planning Meeting:, Team decides how much productive time it has available during the sprint, Team decides how many Product Backlog items it can commit to complete during the Sprint. , And finally team delivers potentially shippable product at the end of every sprint.

Author: Madhusudhan Rao Giruka

No comments:

Post a Comment