×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Pratul Kalia @PRXTL • OBVIOUS.IN SIMPLIFYING SOFTWARE ESTIMATION
Slide 2
Slide 2 text
SOFTWARE ESTIMATION STEVE MCCONNELL 2006, MICROSOFT PRESS
Slide 3
Slide 3 text
WHAT IS AN ESTIMATE?
Slide 4
Slide 4 text
LET’S DRIVE FROM ONE END OF THE CITY TO ANOTHER! “How much time will it take to finish all these things?”
Slide 5
Slide 5 text
Estimates always have a probability.
Slide 6
Slide 6 text
Targets are not estimates!
Slide 7
Slide 7 text
THE TRAIN LEAVES AT 4.40 PM! “Here are a bunch of things we have to get done by X”
Slide 8
Slide 8 text
Are you chasing a target or an estimate?
Slide 9
Slide 9 text
PRESSURE & BAD ESTIMATES
Slide 10
Slide 10 text
— ALL ENGINEERS “Okay, that is a bit of work but I’m sure I can do it in 3 days.”
Slide 11
Slide 11 text
Stop putting yourself in unreasonable situations.
Slide 12
Slide 12 text
There are no prizes for getting there fast!
Slide 13
Slide 13 text
— PARKINSON’S LAW “Work will expand to fill all available time.”
Slide 14
Slide 14 text
(that is… if teams have lots of extra time, more work will magically get created.)
Slide 15
Slide 15 text
— GOLDRATT’S STUDENT SYNDROME “Given lots of time, students will delay studying until the last possible moment”
Slide 16
Slide 16 text
Underestimation is worse than Overestimation! Stastically reduced chance of on-time completion.
Slide 17
Slide 17 text
Engineers are too optimistic already.
Slide 18
Slide 18 text
OTHER SIDE EFFECTS… Poor technical foundation, worse in the long run.
Slide 19
Slide 19 text
OTHER SIDE EFFECTS… Unproductive, emotionally draining behaviours.
Slide 20
Slide 20 text
OTHER SIDE EFFECTS… - more status meetings! - frequent re-estimation! - interim releases!
Slide 21
Slide 21 text
OTHER SIDE EFFECTS… - meetings to cut scope! - fix bugs arising from hacks!
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
THE CONE OF UNCERTAINTY
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
“As the project progresses, estimates become more accurate.”
Slide 26
Slide 26 text
(yes that’s quite , isn’t it.)
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
It is easily possible to do worse… but not better.
Slide 29
Slide 29 text
The Cone does not narrow itself.
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
Stop doing first-number-in-your-head estimates! It sets the wrong expectation!
Slide 33
Slide 33 text
⏱
Slide 34
Slide 34 text
Even a 15-minute estimate is exponentially better than an instant one.
Slide 35
Slide 35 text
INCLUDE EVERYTHING. Some requirements are stated. Others are implied.
Slide 36
Slide 36 text
INCLUDE EVERYTHING. Deployment setup Maintaining build scripts Code reviews
Slide 37
Slide 37 text
INCLUDE EVERYTHING… Writing documentation Onboarding new team members
Slide 38
Slide 38 text
INCLUDE EVERYTHING! Creating test data Upgrading dependencies
Slide 39
Slide 39 text
FACTORS THAT INFLUENCE ESTIMATES
Slide 40
Slide 40 text
Size of the software! The biggest contributor to project effort and schedule.
Slide 41
Slide 41 text
As size increases, effort goes up exponentially. Exponentially. Not linearly.
Slide 42
Slide 42 text
Programmer capability. Time constraints. Team continuity. Required reliability.
Slide 43
Slide 43 text
COCOMO-2 software estimation model.
Slide 44
Slide 44 text
IMPROVING YOUR ESTIMATES
Slide 45
Slide 45 text
I hope you use story points of some type.
Slide 46
Slide 46 text
STORY POINTS. Mark of complexity They don’t (necessarily) represent time!
Slide 47
Slide 47 text
STORY POINTS. (for e.g. A team using 1/2/3 points for a project.)
Slide 48
Slide 48 text
STORY POINTS. A junior engineer takes 5 days to finish a 3-point task.
Slide 49
Slide 49 text
STORY POINTS. A senior engineer takes 2 days to finish a 3-point task.
Slide 50
Slide 50 text
The time taken is different. But the complexity is similar!
Slide 51
Slide 51 text
NOT COMPLEX… Create a “lint step” on the CI server
Slide 52
Slide 52 text
NOT COMPLEX… Add “patient has already visited” option to Overdue list
Slide 53
Slide 53 text
COMPLEX? Allow Blood Pressure measurements to be deleted
Slide 54
Slide 54 text
The Law of Large Numbers
Slide 55
Slide 55 text
“If you create one Big Estimate, your error(s) will either be completely on the high side, or the low side”
Slide 56
Slide 56 text
“but if you create multiple Small Estimates, some will be on high side, some on the low side.”
Slide 57
Slide 57 text
“… so the errors will cancel each other out, to some extent.”
Slide 58
Slide 58 text
COMPLEX? Allow Blood Pressure measurements to be deleted
Slide 59
Slide 59 text
No content
Slide 60
Slide 60 text
ALSO COMPLEX Sync Protocol Drugs across all facilities and display in the app
Slide 61
Slide 61 text
No content
Slide 62
Slide 62 text
Some tricks!
Slide 63
Slide 63 text
TRICKS! Do a detailed task breakdown: spend some time!
Slide 64
Slide 64 text
TRICKS! Think of the “worst case” while estimating.
Slide 65
Slide 65 text
TRICKS! Compare different stories of similar complexity.
Slide 66
Slide 66 text
TRICKS! Use a project management tool that understands “velocity”.
Slide 67
Slide 67 text
TRICKS! Engineers should break down tasks and estimate them.
Slide 68
Slide 68 text
TRICKS! Look at past data for your team, for similar type of work.
Slide 69
Slide 69 text
TRICKS! Measure yourself privately
Slide 70
Slide 70 text
NEGOTIATIONS & AGREEMENTS
Slide 71
Slide 71 text
An estimate is a conversation, and a negotiation.
Slide 72
Slide 72 text
Engineers “own” the estimate… but Management “owns” the target.
Slide 73
Slide 73 text
The goal of estimation is NOT pinpoint accuracy!
Slide 74
Slide 74 text
People want to understand VALUE in comparison to EFFORT.
Slide 75
Slide 75 text
Do t-shirt-sizing with all stakeholders.
Slide 76
Slide 76 text
VALUE EFFORT A: S M B: M S C: S L D: XL M
Slide 77
Slide 77 text
Separate people from the problem.
Slide 78
Slide 78 text
Focus on interests, not on positions.
Slide 79
Slide 79 text
Come up with options that benefit everyone.
Slide 80
Slide 80 text
Either everyone wins, or everyone loses.
Slide 81
Slide 81 text
GO FORTH AND ESTIMATE!