stop multiplying by 4 laracon

30
STOP MULTIPLYING BY 4 CHUCK REEVES @MANCHUCK

Upload: chuck-reeves

Post on 15-Apr-2017

1.425 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Stop multiplying by 4 Laracon

STOP MULTIPLYING BY 4

CHUCK REEVES @MANCHUCK

Page 2: Stop multiplying by 4 Laracon
Page 3: Stop multiplying by 4 Laracon

Why even estimate?

What is estimation?

Why should developers estimate?

Page 4: Stop multiplying by 4 Laracon

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

Page 5: Stop multiplying by 4 Laracon

2 + x = 5Deduction

Page 6: Stop multiplying by 4 Laracon

2 + x = yInduction

Page 7: Stop multiplying by 4 Laracon

Requirements are the key

Measure what is measurable, but make measurable what is not so

-Galileo Galilei

Page 8: Stop multiplying by 4 Laracon

“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

Page 9: Stop multiplying by 4 Laracon

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.

Page 10: Stop multiplying by 4 Laracon

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

Page 11: Stop multiplying by 4 Laracon

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

Page 12: Stop multiplying by 4 Laracon

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

Page 13: Stop multiplying by 4 Laracon

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

Page 14: Stop multiplying by 4 Laracon

Break down requirements into smaller parts:

Email lookup service

Phone validation integration

Form logic

Lead management UI

Page 15: Stop multiplying by 4 Laracon

Historical data

Dry run / Unit test

Confidence Interval (CI)

It is better to be roughly right than precisely wrong.

- John Maynard Keynes

Page 16: Stop multiplying by 4 Laracon

What is the wingspan of a 747

Francis Scott Key wrote the lyrics, but not the music, for the American National Anthem

Page 17: Stop multiplying by 4 Laracon

Repetition

Pros and Cons

Absurdity Test

Equivalent Bet

Page 18: Stop multiplying by 4 Laracon

90% WIN

10%

Lose

Page 19: Stop multiplying by 4 Laracon

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

Page 20: Stop multiplying by 4 Laracon

Fuzzy Logic / Tee Shirt

Size Average LOCVery Small 127

Small 253Medium 500

Large 1,014Very Large 1,988

Source: Software Estimation 2 – Steve McConnell

Page 21: Stop multiplying by 4 Laracon

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

Page 22: Stop multiplying by 4 Laracon

Bayes Theorem

When you get information, the level of uncertainty will decrease.

P (A|B) = P (B|A) P(A)

P (B)

Page 23: Stop multiplying by 4 Laracon

Priorities – Urgency Matrix

Important Not Important

Urgent High Priority

Not Urgent Medium Priority Low Priority

Source: Software Requirements 2 – Karl Weigers

Page 24: Stop multiplying by 4 Laracon

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

Page 25: Stop multiplying by 4 Laracon

Politics

Remove people from the problem

Focus on Interests not Positions

DO NOT NEGOTIATE YOUR ESTIMATE!!!!!

Page 26: Stop multiplying by 4 Laracon

Final Thoughts

Prefer hours to days (scale easier)

Throwing more developers may not solve the problem

Iterate and be honest

Page 27: Stop multiplying by 4 Laracon

ISBN-13: 978-0735618794

Software Requirements 2: Karl Wiegers

Page 28: Stop multiplying by 4 Laracon

ISBN-13: 978-0735605350

Software Estimation: Steve McConnell

Page 29: Stop multiplying by 4 Laracon

ISBN-13: 978-1118539279

How To Measure Anything: Douglas W. Hubbard