improving estimates2
TRANSCRIPT
Improving Your Estimates Comfort zone Basic concepts What to consider Commitment When things go wrong Q & A
Agenda:
Comfort zone Small comfort zone
Extended comfort zone
Why should you care?
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
Extended comfort zone
Requirement & Gathering
Analysis Estimates
QAProject Management
Customer Support
Expanded comfort zone
EmpoweredDeveloper
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.
Basic Concepts Why are estimates important?
Million dollar questions
Common estimation methods
Effort vs. schedule
The iterative approach
Continuous estimation
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
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?
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
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
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)
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
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
What to consider Holistic estimates
In or out?
Padding
Risk assessment
Range vs PERT
Great expectations
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?
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!!!
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
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
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
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
CommitmentCommitting to effort estimates
Committing to deadlines
Estimate Smells
I will deliver on
October 16 Yeah, right!
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:
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:
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!”
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.”
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
Prompt communication
Remedy actions
Retrospection
When things go wrong
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
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?
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?
Q & A
My Contact Info:
https://www.linkedin.com/in/giovanniscerra
Thank You!