Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy. At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
4. I'll tell you how I estimate things. I sit down and figure out how
long I think it would take me to do it. Then I double that time and
then I push it up to the next point on the “Time Progression
Scale”. Were the “Time Progress Scale” starts off: seconds,
minuets, hours and days. So if I think something is going to take
me 4 hours to do. I will double it to 8 and then I would say it
would take me 8 days to get it all completely done start to finish.
And I'm usually right, because there are so many impediments. If
you are the only one doing it yourself your schedule can be very
accurate. Once you have to involve other people, you might as
well just make numbers up. You might as well say “I think this will
take me Blue days to get done”
- Development hell podcast; Episode 29: Snappy to Snappy question
7. Requirements are the key
Measure what is measurable, but make measurable what is not so
-Galileo Galilei
8. “Wordy” Expression
Our new Contact form, is a quick and easy way for the sales
team to collect information to contact people to sell our
service. The contact form will require someone to enter in:
Their name, their email address and their phone number.
The sales team will then contact that person to tell them
how awesome our service is
9. Actors:
Sales – Employees of Initech who promote the
product
Leads – People who are not already signed on for
Initech products
The contact form will have fields for: Name, Email, and Valid
Phone number.
10. Misplaced Modifier
The contact form allows Leads to enter in: Name, Email and
Valid phone number. The sales team needs a list of leads with
the option to mark as contacted
Top Tip: Prevent children from ingesting dangerous medicines by locking
them in a childproof cupboard. 3 children per cupboard is a good fit
-Periwinkle Jones @peachesanscream
11. The contact form will have fields for: Name, Email, and Phone number.
All fields are required and must be validated. The sales team needs a list of
leads. Sales team needs a checkbox to mark a lead as contacted
Valid Phone numbers:
(202) 456-1111
555-1212
212-867-5309
1-800-MATTRES
911
+44 871 984 6352
+852 2280 2898
+91 11 2679 1234
12. fast, rapid, efficient Use a set time: "5 seconds"
valid, including but not limited too,
etc., and so on
Describe what is valid or invalid. use
comprehensive list
maximize, minimize, optimize, at least,
between, several
Be sure to include appropriate values
simple, easy, quick, user-friendly Describe what makes it these
reasonable, when necessary How do you make this judgment?
Source: Software Requirements 2 – Karl Weigers
13. Be sure you define the technical requirements of what you
are estimating:
UTF-8
First and Last name must be between 3 and 100 characters
Email complies with RFC 822 and no longer than 300 characters and unique in our system
Phone Number < 25 characters and validated with Foo-Bar REST service
14. Break down requirements into smaller parts:
Email lookup service
Phone validation integration
Form logic
Lead management UI
15. Historical data
Dry run / Unit test
Confidence Interval (CI)
It is better to be roughly right than precisely wrong.
- John Maynard Keynes
16. What is the wingspan of a 747
Francis Scott Key wrote the lyrics, but not the music, for the
American National Anthem
19. Q. What is the wingspan of a 747
A. 211 ft (64m)
Q. Francis Scott Key wrote the lyrics, but not the music, for the
American National Anthem
A. True
20. Fuzzy Logic / Tee Shirt
Size Average LOC
Very Small 127
Small 253
Medium 500
Large 1,014
Very Large 1,988
Source: Software Estimation 2 – Steve McConnell
22. Bayes Theorem
When you get information, the level of uncertainty will decrease.
P (A|B) =
P (B|A) P(A)
P (B)
23. Priorities – Urgency Matrix
Important Not Important
Urgent High Priority
Not Urgent Medium Priority Low Priority
Source: Software Requirements 2 – Karl Weigers
24. Priorities – Prioritization Spreadsheet
Source: Software Requirements 2 – Karl Weigers
https://www.microsoftpressstore.com/store/software-requirements-9780735679665
Feature
Relative
Benefit
Relative
Penalty
Total
Value
Value
%
Dev
Cost
Cost
%
Dev
Risk
Risk
%
Priorit
y
Phone Validation 2 4 8 15.0 8 44.4 9 60.0 0.144
Lead UI 5 3 13 20.0 2 11.1 1 6.7 1.125
Form Logic 9 7 25 40.0 5 27.8 3 20.0 0.837
Email Lookup 5 5 15 25.0 3 16.7 2 13.3 0.833
Totals 21 19 61 100.0 11 100.0 15 100.0
25. Politics
Remove people from the problem
Focus on Interests not Positions
DO NOT NEGOTIATE YOUR ESTIMATE!!!!!
26. Final Thoughts
Prefer hours to days (scale easier)
Throwing more developers may not solve the problem
Iterate and be honest
30. Thank You!
Chuck Reeves @manchuck
Software Estimation: Demystifying the Black Art – by Steve
McConnell | ISBN-13: 978-0735605350
Software Requirements: Practical Techniques for Gathering and
Managing Requirements – by Karl Wiegers ASIN: B0043M56R8
How to Measure Anything: Finding the Value of Intangibles in
Business – by Douglas Hubbard | ISBN-13: 978-1118539279
Dev Hell Podcast - Episode 29: Snappy Answers to Stupid
Questions