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!