improving estimates2

32
Improving Your Estimates Comfort zone Basic concepts What to consider Commitment When things go wrong Q & A Agenda:

Upload: giovanni-scerra-

Post on 09-Jan-2017

282 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Improving Estimates2

Improving Your Estimates Comfort zone Basic concepts What to consider Commitment When things go wrong Q & A

Agenda:

Page 2: Improving Estimates2

Comfort zone Small comfort zone

Extended comfort zone

Why should you care?

Page 3: Improving Estimates2

Small comfort zone

Requirement & Gathering

Analysis Estimates

QAProject Management

Customer Support

Do I look like a fortune teller to you?

Testing is not my job

No way, I am not going to talk to a

customer!

Booorrriiiing!!!

Sorry, I am not a business analyst

DeveloperComfort zone

Page 4: Improving Estimates2

Extended comfort zone

Requirement & Gathering

Analysis Estimates

QAProject Management

Customer Support

Expanded comfort zone

EmpoweredDeveloper

Page 5: Improving Estimates2

Benefits of expanding your comfort zone:

Why should you care?

Understanding the processes that strongly affect your work. Often, these processes are not so perfect (cow paths) and your technical or business background can be very helpful to change them for better.

Understanding the people with whom you are working, their points of view, responsibilities, and drivers.

Communicate and interact more successfully within your organization and with customers.

Page 6: Improving Estimates2

Basic Concepts Why are estimates important?

Million dollar questions

Common estimation methods

Effort vs. schedule

The iterative approach

Continuous estimation

Page 7: Improving Estimates2

Why are estimates important?They help customers understand if they have the budget for the project

They help your company understand the project costs and ROI

They help project managers define scopes and priorities

They help booking necessary resources on time

They help tracking time and delays

Page 8: Improving Estimates2

Million dollar questionsDo I need to know all of the details before providing an estimate?

How do I estimate what I do not know?

How long should I work on an estimate?

Should I pad my estimate? How much padding is too much/too low?

When should I commit to my estimate? What if I am not confident?

What should I include/exclude in the estimate?

Oops, wrong estimate... What do I do now?

Page 9: Improving Estimates2

Common estimation methods

AnalogyYou have done something similar before

Expert JudgmentRule of thumb estimate from a specialist

knowledgeable in the field

HistoricalSomebody else has done something similar before

and it is on record

ParametricEstimate by type of unit of work

SDLC Phase AllocationAssign allocation % to each SDLC phase

Top Down Methods: Low Cost – High Level

ConsensusTeam members agree on estimate story points

translated into hours using a velocity factor

Page 10: Improving Estimates2

Common estimation methods

Task/Feature Breakdown

Break complex projects into tasks/features that can be estimated with

confidence

Bottom Up: High Cost – Detailed

WaterfallBreak project in phases, then

(re)estimate each phase when the previous is phase ended

Page 11: Improving Estimates2

Effort vs. scheduleThe Effort Estimate

Clean measure of working time needed to execute the project (e. g., 560 hours)

The Schedule Estimate

Estimated Time of Accomplishment of the project (e. g., October 25)

Page 12: Improving Estimates2

321

The iterative approach

RequirementDocument

Preliminary Estimate

Top Down(Months/Weeks)

Interested? Refined EstimateTop Down

(Day Precision)

Continue? Commit EstimateDetailed

Bottom Up(Hour Precision)

Commit?

Refine Requirements

Continuous Estimation

Page 13: Improving Estimates2

Continuous estimationWe are not done estimating until the

project is completed!Day Date Task Description Planned Actual Planned Actual

0 8/9/2015 202.5 202.5

1 8/10/2015 project overview, setup and initial run 7.5 4 195 198.5 4

2 8/11/2015 project plan and burndown chart 7.5 2 187.5 196.5 2

3 8/12/2015 materia l defaul t page 7.5 8 180 188.5 8

4 8/13/2015 materia l defaul t page 7.5 10 172.5 178.5 10

5 8/14/2015 materia l defaul t page 7.5 10 165 168.5 10

6 8/17/2015 forecast group default page 7.5 8 157.5 160.5 8

7 8/18/2015 forecast group default page 7.5 150 160.5 0

8 8/19/2015 forecast group default page 7.5 142.5 160.5 0

9 8/20/2015 forecast group materia l s default page 7.5 135 160.5 0

10 8/21/2015 forecast group materia l s default page 7.5 127.5 160.5 0

11 8/24/2015 forecast group materia l s default page 7.5 120 160.5 0

12 8/25/2015 hol iday channel default page 7.5 112.5 160.5 0

13 8/26/2015 hol iday channel default page 7.5 105 160.5 0

14 8/27/2015 hol iday channel default page 7.5 97.5 160.5 0

15 8/28/2015 customer search by forecast group 7.5 90 160.5 0

16 8/31/2015 search control 7.5 82.5 160.5 0

17 9/1/2015 search control 7.5 75 160.5 0

18 9/2/2015 search control 7.5 67.5 160.5 0

19 9/3/2015 group search 7.5 60 160.5 0

20 9/4/2015 customer search 7.5 52.5 160.5 0

21 9/7/2015 product search 7.5 45 160.5 0

22 9/8/2015 customer maintenance - forecast group 7.5 37.5 160.5 0

23 9/9/2015 forecast group screens (add, manage) 7.5 30 160.5 0

24 9/10/2015 forecast group screens (add, manage) 7.5 22.5 160.5 0

25 9/11/2015 forecast group screens (add, manage) 7.5 15 160.5 0

26 9/14/2015 forecast group screens (add, manage) 7.5 7.5 160.5 0

27 9/15/2015 forecast group screens (add, manage) 7.5 0 160.5 0

28 0

Burned down Balance Daily Completed

Profile Defaults Burn down chart

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 270

50

100

150

200

250 Daily Completed Planned Actual

Page 14: Improving Estimates2

What to consider Holistic estimates

In or out?

Padding

Risk assessment

Range vs PERT

Great expectations

Page 15: Improving Estimates2

Holistic estimatesIs this a computer? Is this an estimate?

Task A: 2 DaysTask B: 3 DaysTask C: 1 DayTask D: 1 DayTask E: 5 Days

TOTAL: A+B+C+D+E

An estimate is not the sum of its parts!How do you connect the parts? How do the parts work together?

Page 16: Improving Estimates2

Holistic estimatesExample:1. As a user, if I enter a product quantity greater than X, the system will automatically downgrade my quantity to X, so that my maximum allowed product quantity per order is not surpassed.

2. As a user, if I enter a product that is not a multiple of Y, the system will automatically upgrade my quantity to the nearest multiple of Y, so that I can only order exact cases.

Hidden Requirement: How do I combine the previous two requirements?

This needs to be estimated!!!

Page 17: Improving Estimates2

In or out?Never Include thesein effort estimates:Arbitrary PaddingSchedule Factors: (e.g., holidays, unrelated meetings, emails, and calls, etc.)Schedule Risks (Bug fixing, production emergencies, etc.)

Always Include these in effort estimates:AnalysisArchitectureDemos, Meetings & Proof of ConceptsUnit/Integration/Manual TestingDeploymentCustomer TrainingDocumentationProject MonitoringFreebies

Page 18: Improving Estimates2

Padding

Add reasonable padding dependent upon identified risks (Requirement confidence, Assumptions, Criticalness, Complexity, etc.)

Remove padding based on relationship factors (e. g., Trust, collaboration, customer availability and involvement, etc.)

1.Never start an effort estimate from the padding2.Never include padding in estimates for internal use (e.g., burn-down charts)3.Be prepared to give thoughtful and rational explanations for your padding

Page 19: Improving Estimates2

Range vs. PERT

PERT (Program Evaluation & Review Technique) Formula:

Optimistic + 4 x Likely + Pessimistic

6

Range Effort Estimate:

From Optimistic To Pessimistic

Optimistic: 10 hoursLikely: 18 HoursPessimistic 20Hours

Range: From 10 To 20PERT: (10 + 18*4 + 20) / 6 = 17

Page 20: Improving Estimates2

Risk assessment

Inadequate requirements:UnmeasurableUntestableNon-actionableOverlappingAmbiguityContradictions

Unexplored casesUnstated assumptionsMissing/Unsuccessful PoCKnowledge GapsNumber of resourcesTeam(s) locations & time zonesComplexityCriticalness

Size/length of the projectDependenciesInterruptionsBug fixing, Production emergenciesUnrelated meetingsPersonal emails & phone callsPTO, sickness, holidays, jury duty, etc. Skills & trainingConcurrent projectsNew projectsChange of prioritiesChange of requirementsOrganization restructuringCustomer’s organization changesTeam(s) changes

Sample risks that affect mostly the schedule

Sample risks that affect mostly the effort estimate

Page 21: Improving Estimates2

CommitmentCommitting to effort estimates

Committing to deadlines

Estimate Smells

I will deliver on

October 16 Yeah, right!

Page 22: Improving Estimates2

Commitment to effort estimates

• It is a high level estimate of non exhaustive requirements

• The time spent for estimation does not commensurate with the length of the project

• Requirements are not in writing

• You don’t have a clue of the role of the estimated tasks within the bigger picture

• High risks are not addressed even after 2/3 estimate iterations

• Important assumptions are not stated clearly in the requirement document

• Assumptions are too many or too big

• Important Proof of Concepts are not completed

Avoid committing to effort estimates when:

Page 23: Improving Estimates2

Commitment to deadlines

• There is no committed effort estimate!!!

• Requirement document has not been approved

• The schedule includes taking on high technical debt, overtime and weekends

• Deliverables are not clearly defined

• Dependencies are unreliable

• Resources are not booked

• It is reasonable to expect significant disruptive changes (e. g., hurricanes, flooding,

acquisitions, restructuring, etc.)

Avoid committing to deadlines when:

Page 24: Improving Estimates2

Estimate smells

“When can you deliver, assuming that…. by October 29 we will have the requirement approved, by November 4 we will have answers to your questions, and you will have the data by November 6 before lunch?”

“No need to estimate that, we only need to know the deadline”

“No need to estimate that, we are doing it for free”

“Let’s double the estimate, you never know”

“Always pad your estimate when working with James or Catherine!”

“Last Monday you said that this would take only five days. Five days have passed and you still did not deliver!”

Page 25: Improving Estimates2

Estimate smells

“Why do we still have high risks requirements after three estimate iterations?”

“…but the AT ticket did not have any estimated hours or expected delivery dates….”

“I thought that it was just a preliminary estimate!”

“The customer told us that the deadline for this project is March 13. Here are the requirements...”

“Don’t worry, we plan to hire 15 offshore developers during the last week of the project in order to recover the delays.”

“I thought that we already had that feature in our software!”

Q. “Your estimate is too big, can you make it smaller?”A. “Sure, buddy, I’ll take 10 hours off for you.”

Page 26: Improving Estimates2

Great expectations1. Customer’s trust and collaboration2. Capable Business Analysts3. Competent and pro-active Project Managers4. Educated and supportive managers5. Smart and involved Developers6. Effective teamwork7. Consolidated and well-proven processes8. Good requirements

Quality Estimates

Page 27: Improving Estimates2

Prompt communication

Remedy actions

Retrospection

When things go wrong

Page 28: Improving Estimates2

Prompt communication Gather data to back up your concerns Talk to your supervisor Email your supervisor Communicate early and regularly Create a sense of urgency, not panic

Provide constructive and realistic suggestions Take responsibility

Page 29: Improving Estimates2

Remedy actions Re-estimate! Ask the team! Add/replace resources? New tools/methodologies? Take on some technical debt? Putting in extra hours? Re-negotiate the scope? Re-negotiate the delivery date?

Page 30: Improving Estimates2

Retrospection What did we miss?

What changed?

What did you do wrong?

What did I do wrong?

Could we have foreseen it?

Could we have prevented it?

Did we follow our process?

Should we change our process?

Was that a bad decision? Why?

Page 31: Improving Estimates2

Q & A