0% found this document useful (0 votes)
100 views38 pages

Estimation: The Fine Art of Guessing

Estimation is the process of judging or determining something tentatively without precise measurement. There are different types of estimations including absolute (days, hours) and relative (points scales). Relative estimations are better for software projects as humans are poor at estimating but good at comparing. Common techniques include 1-point estimates which provide an optimistic number, and 2 or 3-point estimates which provide a range to express uncertainty. Accuracy is more important than precision as an inaccurate estimate is not useful even if precise. It is generally better to overestimate than underestimate to account for risks and assumptions.

Uploaded by

gbarbu2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
0% found this document useful (0 votes)
100 views38 pages

Estimation: The Fine Art of Guessing

Estimation is the process of judging or determining something tentatively without precise measurement. There are different types of estimations including absolute (days, hours) and relative (points scales). Relative estimations are better for software projects as humans are poor at estimating but good at comparing. Common techniques include 1-point estimates which provide an optimistic number, and 2 or 3-point estimates which provide a range to express uncertainty. Accuracy is more important than precision as an inaccurate estimate is not useful even if precise. It is generally better to overestimate than underestimate to account for risks and assumptions.

Uploaded by

gbarbu2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
You are on page 1/ 38

Estimation

The fine art of guessing


What is an estimation?

A good estimate is an estimate that provides a clear enough view of the project reality to allow
the project leadership to make good decisions about how to control the project to hit its targets.

We estimate to:

judge obtain
tentatively or determine values when
approximately roughly the
it is difficult
the value, size, extent,
worth, or to measure
or nature of
significance of precisely
Types of estimations

Which one is heavier?


Types of estimations

How many kg?


Types of estimations
Absolute VS Relative or Concrete VS Abstract or Size VS Weight

Absolute types of estimations: Relative? Absolute?


- Days
- Hours
- Units of time

Relative types of estimations (points):


- Scrum: 1, 1Τ2, 1, 2, 3, 5, 8, 13, 20, 40, 100
- Fibonacci: 1, 2, 3, 5, 8, 13, 21, 34, 55
- Sequential: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Playing cards: Ace, 2, 3, 5, 8, King
- T-shirt sizes: XS, S, M, L, XL, XXL
Types of estimations
Exercise: Relative estimates

Assign relative points to the following squares (from small to big):


Types of estimations
Exercise: Relative estimates

Assign relative points to the following squares (from small to big):

4 2 5 3 1
Types of estimations
Exercise: Absolute estimates

Estimate the area of the following squares (pixels):


Types of estimations
Exercise: Absolute estimates

Estimate the area of the following squares (pixels):

57.121
34.225
14.400 20.449
6.400
Types of estimations
Absolute estimates

Nothing much can be said about absolute estimations. They


are absolute units of time (hours, days, weeks).
Types of estimations
Relative estimates

Unfortunately, humans are phenomenally bad at estimating and even worse when
working in a complex domain like software development.

Luckily, people are good at comparing things and, because of this, we


find it easier to estimate into relative units.
Types of estimations
The golden ratio

The "golden ratio" is a unique mathematical relationship. Two


numbers are in the golden ratio if the ratio of the sum of the
numbers (a + b) divided by the larger number (a) is equal to
the ratio of the larger number divided by the smaller number
(a/b).

The golden ratio is sometimes called the "divine proportion,"


because of its frequency in the natural world.

𝑎+𝑏 𝑎
= = 𝜑
𝑎 𝑏
Types of estimations
Fibonacci

Why use the Fibonacci sequence?

Borrowed from nature, this


exponentially increasing scale deliberately creates a
buffer in estimating that allows for change.

𝐹𝑖𝑏(𝑛)
≈ 1.618 ⇒ 60% 𝑖𝑛𝑐𝑟𝑒𝑎𝑠𝑒 𝑓𝑟𝑜𝑚 𝑝𝑟𝑒𝑣𝑖𝑜𝑢𝑠
𝐹𝑖𝑏(𝑛 − 1)
Types of estimations
1-point, 2-points, 3-points

In software development, we can estimate using different


techniques.

The most used technique is to give only one number (1-point)


which represents the optimistic effort – a value biased by
our experiences and opinions.

Using a range of 2 or 3 numbers (2-points, 3-points) further


express the uncertainties and provide a clearer picture of
the complexity.
Types of estimations
1-point estimate

Each member of a team gives an arbitrary number which


represents what it thinks about a certain task/story.

Each value given represents the optimistic effort and is


usually biased and based on experience and opinion of the
owner.

Multiple factors can influence the value given, but we will talk
about this later.
Types of estimations
Appendix: Risks and Assumptions

Definitions:

Assumption: a thing that is accepted as true or as certain


to happen even in the absence of proof.

Risks: a potential problem that can occur during the


implementation of a task.
Types of estimations
Appendix: Assumptions

An assumption is the necessary condition that will enable the


successful completion of the Goal or Activity.

Example of assumptions:

• All building materials will be available in the market


before the project start
• The legal framework will not change drastically soon
• The pattern of rain will not change soon
Types of estimations
Appendix: Risks

A risk is defined as an uncertain threat that, in case of


occurring, could have a negative impact in the completion of
the Goal or Activity.

Example of risks:

• After an election, a different political party is in


charge that does not support your agenda
• Natural catastrophes like floods or landslides
hamper the success of your project
• The pattern of rain will change soon
Types of estimations
2-points estimate

Estimating using a range, provides some level of uncertainty which


could be benefic and more realistic than only one number.

If you say a task will take between 2 to 4 days, is more realistic


then to say it will only take 3 days.

If you want to make an accurate estimate, take into account the


Risks and Assumptions.
Types of estimations
3-points estimate

The three points are defined as follows:

• Best case
• Worst case
• Most likely

Best case is when all the stars align: no Risks are materialized,
and all Assumptions are true.

Worst case is the opposite of the best case: all Risks are
materialized, and all Assumptions are false.

Mostly likely is between the two. This case takes into


consideration the likeliness of a Risk to materialize and an
Assumption to be true.
Accuracy VS Precision
In common parlance “accuracy” and “precision” are used interchangeably but in the scientific world
they are different. Accurate means the measure is correct. Precise means the measure is
consistent with other measurements.

The ideal is where a measurement is both accurate and precise. The nightmare scenario is when
your measurement is both inaccurate and imprecise.

Low accuracy High accuracy High accuracy Low accuracy


High precision High precision Low precision Low precision
Accuracy VS Precision
Precision

If we must choose between accuracy and precision, then we should go


for accuracy.

An estimate that is precise but not accurate doesn’t do much for


us.

Example: an estimation of 4.75 days doesn’t bring any value if the


actual work took 10 days ( > 50% error).
Accuracy VS Precision
Accuracy

In contrast to precision, accuracy gives a more broad but realistic


view.

The process to calculate precise estimations often comes from


longer estimation process so, a team, will lose more time on giving
precise estimation instead of actual working on stuff.

Example: an estimate of roughly 2 weeks can be completed between


10 to 20 days and still be in a desirable range (28% - 35% error).
Overestimate vs underestimate

“Hofstadter's Law: It always Common pitfall in software projects is if one should


takes longer than you expect, overestimate or underestimate.
even when you take into account
Hofstadter's Law.” Considering the Hofstadter's low, maybe we should
overestimate by default for all the projects.
Douglas Hofstadter - American scholar
Overestimate vs underestimate
Overestimating by default

Parkinson's Law states:

“Work expands so as to fill the time available for its


completion.”

So, one could be inclined to use all the time available


even only a fraction is required.

This, generates an increased budged and has other


downfalls such as losing the project.
Overestimate vs underestimate
Work can also be expanded

If you give a team three months to complete a project,


they will spend the entire three months, even if one would've
been enough.

The same goes for budget: If you have x amount of


budget to spend, you are much more likely to use all that
money, even if you could have potentially done it with half
of the cost.

You may ask: If the team completes the project on time


and schedule, why not?

If you give yourself too much time, you will most likely be
affected by Student Syndrome, most known as
procrastination.
Overestimate vs underestimate
The student syndrome AKA procrastination

Too much time will result in rushing the work at the very last moment,
producing a low-quality product and, most of the time, not finishing on
schedule.
Overestimate vs underestimate
The right mindset

The right mindset can help to achieve good estimates and eradicate
the bad phenomenon.

Team empowerment and buffer planning will reduce the risk of


unnecessarily stretched out work

Daily stand-ups, retrospectives and reviews help the team keep on


track and avoid student syndrome

𝐺𝑜𝑜𝑑𝐸𝑠𝑡𝑖𝑚𝑎𝑡𝑒 = 𝑀𝑖𝑛 𝑆𝑐ℎ𝑒𝑑𝑢𝑙𝑒 + 𝑀𝑖𝑛 𝐶𝑜𝑠𝑡 + 𝑀𝑎𝑥 𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛𝑎𝑙𝑖𝑡𝑦 + 𝑀𝑎𝑥(𝑄𝑢𝑎𝑙𝑖𝑡𝑦)


Estimation techniques
Count, Compute, Judge

If you can count the answer directly, do that first.

If you can't count the answer directly, count something meaningful and
then compute the answer by using some sort of calibration data.

Use judgement only for the items that cannot be counted / computed,
but in conjunction with ones that can.

As a rule of thumb:

• Count if possible.
• Compute when you can't count.
• Use judgment alone only as a last resort.
Estimation techniques
Historical data, Calibration

Use historical data as basis for productivity assumptions and to


avoid politically charged discussions.

Collect a project's historical data as soon as possible.

Use data from your current project to create highly accurate


estimates for the remainder of the project.
Estimation techniques
Compare estimates to actuals

Compare actual performance to estimated performance so that you can improve your individual
estimates over time.
Useful links

• How to overcome Parkinson's Law:


https://www.atlassian.com/blog/productivity/what-is-parkinsons-law

• Estimating Software Projects’ Time and Cost Like a Pro:


https://www.offerzen.com/blog/estimating-software-projects-time-and-cost-
like-a-pro

• Software Estimation: Demystifying the Black Art:


https://www.amazon.com/dp/0735605351
Thank you !

The END

You might also like