STOP MULTIPLYING BY 4
CHUCK REEVES @MANCHUCK
Why even estimate?
What is estimation?
Why should developers estimate?
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”. Where 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
2 + x = 5Deduction
2 + x = yInduction
Requirements are the key
Measure what is measurable, but make measurable what is not so
-Galileo Galilei
“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
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.
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
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
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
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
Break down requirements into smaller parts:
Email lookup service
Phone validation integration
Form logic
Lead management UI
Historical data
Dry run / Unit test
Confidence Interval (CI)
It is better to be roughly right than precisely wrong.
- John Maynard Keynes
What is the wingspan of a 747
Francis Scott Key wrote the lyrics, but not the music, for the American National Anthem
Repetition
Pros and Cons
Absurdity Test
Equivalent Bet
90% WIN
10%
Lose
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
Fuzzy Logic / Tee Shirt
Size Average LOCVery Small 127
Small 253Medium 500
Large 1,014Very Large 1,988
Source: Software Estimation 2 – Steve McConnell
Wideband Delphi Or Group
Round 1
Round 2
Round 3
Hours 1 2 3 4 65 7 8 9
Round 1 – 6.5
Round 2 – 6.8
Round 3 – 6
Bayes Theorem
When you get information, the level of uncertainty will decrease.
P (A|B) = P (B|A) P(A)
P (B)
Priorities – Urgency Matrix
Important Not Important
Urgent High Priority
Not Urgent Medium Priority Low Priority
Source: Software Requirements 2 – Karl Weigers
Priorities – Prioritization Spreadsheet
Source: Software Requirements 2 – Karl Weigers
https://www.microsoftpressstore.com/store/software-requirements-9780735679665
FeatureRelative Benefit
Relative Penalty
Total Value
Value %
Dev Cost
Cost %
Dev Risk
Risk %
Priority
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
Politics
Remove people from the problem
Focus on Interests not Positions
DO NOT NEGOTIATE YOUR ESTIMATE!!!!!
Final Thoughts
Prefer hours to days (scale easier)
Throwing more developers may not solve the problem
Iterate and be honest
ISBN-13: 978-0735618794
Software Requirements 2: Karl Wiegers
ISBN-13: 978-0735605350
Software Estimation: Steve McConnell
ISBN-13: 978-1118539279
How To Measure Anything: Douglas W. Hubbard
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