Wiki
This website is a wiki. If you like and use our processes, techniques and tools, please add your experience and best practices. Just register and share.

Contents


User


Smart


Community

Forum






Maybe you recognize the following situation: you are asked to estimate a new project. So you dive into the - often incomplete and unclear - specifications. After trying to understand the specifications and hopefully having a lot of meetings with the customer and end users you create an neat Excel spread sheet with a work breakdown structure, and some formulas and nice estimation figures. You did a great job! Well done!

Next the project starts, and the project team now has the challenge to deliver software meeting up with your estimates. However, a number of issues surface. The project team looks at the specifications and might interpret these differently. Or even worse, they, or the customer, might come up with new requirements. Or just make different assumptions on the complexity of the software to build. Or the technology used is not as straightforward as people assumed - often the software architects. There goes your estimate.

Challenges in software estimation

There are a number of challenges when it comes to estimating software development projects that arise from this small anecdote:

  • Initial estimates are hard. Making an initial estimate for a project is hard, as requirements are often incomplete, unknown or difficult to grasp.
  • Requirements changes. During a project, new requirements come up, requirements change or are even dropped.
  • Technology bias. Technology often turns out to be more complex (and sometimes simpler) then vendors and architects make us believe. Implementing software in a service oriented architecture is a good example.

Concluding: estimation is not an simple activity that needs to be executed at the start of a project. It is ongoing business. Not only do we need to make a plausible initial estimate of the project, just to start the work. New estimates need to be made when changes to requirements, complexity or technology surface. Why? Well simply because these changes will effect the project planning. It's better to be aware of such effects as soon as possible.

Versatile software estimation

Therefore, the techniques used to estimate the complexity for software development projects need to be versatile. Think of:

  • Transparent. Creating an estimate should be dependent on some high-brow certified expert, but should rather be a team effort, accessible to all team members.
  • Swift. If creating an (improved) estimate takes a week, or even several days, it is unlikely that new estimates will be set up during a running projects. There just isn't the time to do so. Hence, your project will not benefit from new insights. However, if re-estimation only takes an hour, or a few hours, it is not unlikely that this becomes a natural step in your iteration, e.g. at iteration start or end.
  • Repeatable. Two different estimates for the same project should be equally sized. That is, they don't have to be equal, but they will have to be in the same range.
  • Unbiased. Estimates made by people with different levels of expertise, or different technological backgrounds should not differ too much. Estimates must be unbiased. It is therefore of great importance to use an abstract scale to estimate complexity, rather than estimate effort in hours (or even ideal working days).

Smart estimation is the technique where the complexity of software development projects is estimated based on smart use cases. Smart estimation uses an abstract scale (1, 2, 3, 4, 5, 8 and 10), and smart use cases can be stereotyped according to the functionality they execute. The factors above, such as transparency, swiftness and bias can be met using smart estimation.

However, there's one additional technique that makes smart estimation even reliable, swift, but also fun! This technique is called smart estimation poker.

Download

What is smart estimation poker?

In agile development games such as estimation poker or planning poker have been around for estimating complexity mainly in Scrum and XP projects. These serious games include customer and project team participation. They attempt to highlight the uncertainty in predictions while offering a meaningful estimation with minimal (or just the right amount of) time spent. Hence, these games match most of the criteria mentioned above.

However, both variations on the same theme estimate individual work items to a scale that is expressed in hours, or ideal working days. This is not totally unbiased. We tend to use smart use cases as the unit or work, but also as the unit of estimation in projects. Moreover, smart estimation presents us an abstract scale that delivers a much lower level of bias then is expected from estimating the time it takes to deliver individual work items, especially when these are unstructured (unlike smart use cases). The game of smart estimation poker is similar to planning poker, but leverages the use of smart use cases and the accompanying abstract scale and stereotypes.

Smart estimation poker (each card represents a number from the scale)

Smart estimation poker (each card represents a number from the scale)


In smart estimation we apply a straightforward scale to estimate the smart use cases. This scale ranges from 1, 2, 3, 4, 5 to 8 and 10. Each of the levels in the scale corresponds to the complexity of the items estimated. During smart estimation workshops, we create estimates for individual smart use cases. Of course, it helps to have recognized which of the standard stereotypes apply to your smart use cases, as the collection of stereotypes contains default levels of complexity.

Read more

How does smart estimation poker work?

A regular smart estimation poker workshop follow a simple procedure: prepare the workshop, estimate the individual smart use cases and wrap up.

Prepare the workshop

In general these workshops are organized by the project manager or the coach/analyst. Please do the following:

  • Invite. Invite the attendees. In general these are the product owner or customer, the users, the coach/analyst (who often facilitates the workshop), the lead developer and the tester. But you might also include other roles, such as the user interface developer or the database engineer.
  • Set up. At the start of the smart estimation workshop, each estimator is given a deck of cards. These cards match the levels of the smart estimation scale: 1, 2, 4, 5, 5, 8 and 10. The cards used should be prepared prior to the planning poker meeting, and the numbers should be large enough to see across a table.
  • Assign moderator. Assign one of the participants the moderator role. Usually this is the customer or an analyst.

Estimate the smart use cases

Smart estimation poker is played per smart use cases, in the following steps:

  • Explain. For each smart use case (or user story, scenario or theme) to be estimated, a moderator explains what it does, e.g. by reading the smart use cases description. The moderator is usually the product owner or the coach/analyst. However, the moderator can be anyone, as there is no special privilege associated with this role.
  • Q&A. The team then gets the opportunity to ask questions to clarify assumptions and risks. The product owner answers any questions that the estimators have. Please notice that often additional discussion do not lead to improved accuracy.

...

  • The goal in planning poker is not to derive an estimate that will withstand all future scrutiny. Rather, the goal is to be somewhere well on the left of the effort line, where a valuable estimate can be arrived at cheaply.
  • Possibly a summary of the discussion is recorded by the Project Manager.
  • The moderator who will not play chairs the meeting, supported and advised by the Project Manager.
  • After all questions are answered, each estimator privately selects a card representing his or her 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.
  • It is very likely at this point that the estimates will differ significantly. This is actually good news. If estimates differ, the high and low estimators explain their estimates. It’s important that this does not come across as attacking those estimators. Instead, you want to learn what they were thinking about.
  • People with high estimates and low estimates are given a soap box to offer their justification for their estimate and then discussion continues.
  • Repeat the estimation process until a consensus is reached. The developer who was likely to own the deliverable has a large portion of the "consensus vote", although the Moderator can negotiate the consensus.
  • An egg timer is used to ensure that discussion is structured; the Moderator or the Project Manager may at any point turn over the egg timer and when it runs out all discussion must cease and round of poker is played. The structure in the conversation is re-introduced by the soap boxes.

Why should you play Estimation Poker?

It speeds up the estimation process It is a fact that the longer the estimate is the more uncertainty it contains. So speedup the the estimation by taking a short time to give an estimation. During the Estimation Poker game you can use an egg timer to ensure that discussion is structured.

It avoids 'coloring' of the estimates by a few members Because of the involvement of the whole team the estimation won't be the estimation of 1 or 2 members, but it will be an team estimation.

It shares knowledge and insights The biggest advantage is the efficient way of sharing knowledge and insight. The Estimation Poker game activates the team discussions which will share knowledge without getting it too much detail.

It ensures everybody partitions in the estimation All the members of the team should be involved in the estimation poker game.

It is fun!



Tips

  • Don't repeat the estimation process until everybody has the same estimate. Stop the estimation of the scenario when no consensus is archieved in 3 rounds
  • Consider time boxing the debate period. The goal is that the technique be simple and lightweight
  • The technique works best with three to five participants representing architecture, development, testing, and deployment.
  • Work from a list that has already been sorted by business value, and avoid focusing on business value during the work queue priority ordering.

References

Mike Cohn, Agile Estimating and Planning, Prentice Hall PTR, Upper Saddle River, NJ, 2005. Read Chapter 6: Techniques for Estimating online.

J. W. Grenning, Planning Poker, 2002, http://www.objectmentor.com/resources/articles/PlanningPoker.zip.
  Name Size