"Estimation, agile/practical project work", Fredrik Bach - BEKK

advertisement
ESTIMATING
Agile/practical project work
TDT4290, NTNU, Trondheim
Fredrik Bach
02/09/2014
INTRODUCTION
Fredrik Bach
Bekk Consulting
•
Project Manager at Bekk Consulting
•
Primarily custom software development
•
Lead for Project Management competency
group at BEKK
•
We delver all necessary roles
•
“IT consultant” since 2001
•
Believer in agile approach, but believe I have
a balanced view
•
•
Majority of our customers are large (in
Norway)
•
•
From business analysis to design to (dev)
operations
Relatively even split between private and
public sector
Most of our work is done in an agile manner
AGENDA
Some key concepts about estimates
How we estimate at BEKK
How do our customers feel about estimates
Q&A
ESTIMATES – KEY CONCEPTS
What is an estimate?
ESTIMATES – KEY CONCEPTS
Estimate
Target
Commitment
A preliminary calculation of
the cost of a project
Description of a desirable
business objective
Promise to deliver defined
functionality at a specific level
of quality by a certain date
ESTIMATES – KEY CONCEPTS
Relationship between estimates and plan
Estimates != plan
“The primary purpose of software estimation is not to predict a project’s
outcome; it is to determine whether a project’s targets are realistic
enough to allow the project to be controlled to meet them”
ESTIMATES – KEY CONCEPTS
An estimate is a range of possibilities
ESTIMATES – KEY CONCEPTS
An estimate is a probability
ESTIMATES – KEY CONCEPTS
An estimate is a probability
ESTIMATES – KEY CONCEPTS
Overestimation vs. underestimation
•
Underestimating causes a lot of problems
•
Reduced effectiveness of project plans
•
Estimates are already probably low
•
Results in low quality
•
Destructive late-project dynamics make the project worse than nominal
•
More meetings
•
More deliverables
ESTIMATES – KEY CONCEPTS
A little exercise
ESTIMATES – KEY CONCEPTS
5 Questions
•
Surface temperature of the sun?
•
Latitude of Shanghai?
•
Area of the Asian continent?
•
The year of Alexander the Great’s birth?
•
Total value of US currency in circulation in 2004
ESTIMATES – KEY CONCEPTS
10 Questions
ESTIMATES – KEY CONCEPTS
Why are we bad at estimating?
•
Chaotic development process
•
Unstable requirements
•
Omitted activities
•
Unfounded optimism
•
Unfamiliar business area
•
Unfamiliar technology area
ESTIMATES – KEY CONCEPTS
Why do we need estimates?
•
Improved status visibility
•
Better coordination with non-software functions
•
Better budgeting
•
Increased credibility for development team
•
Early risk information
ESTIMATING AT BEKK
Project work
vs.
“application development”
ESTIMATING AT BEKK - PROJECTS
“Sales process”
Decomposition & recomposition
Top-down
Relative
ESTIMATING AT BEKK - PROJECTS
“Sales process” – decomposition and recomposition
•
Quality of requirements from customer drives how we break down “what needs to be
done”
• First estimate is functional / best-case only
•
•
•
•
•
Ranges are used
Estimates for non-functional requirements are added
Team structure and plan is created (first for development only)
• Calendar time depends on many factors (external, complexity)
Other roles/functions are added to timeline (UX, PM, tester, graphic designer, etc.)
Risk is evaluated
• Very dependent upon contract form
ESTIMATING AT BEKK - PROJECTS
“Sales process” – decomposition and recomposition
ESTIMATING AT BEKK - PROJECTS
“Sales process”
Top-down
•
Team structure proposed
•
Timeline proposed
•
Performed by sales/KAM based on experience
• Note that at BEKK we have hands-on people who work in sales
Relative
•
Involvement of similar projects
ESTIMATING AT BEKK - PROJECTS
“Sales process”
Decomposition & recomposition -> 5 MNOK
Top-down – 6 MNOK
Relative – 4 MNOK
ESTIMATING AT BEKK - PROJECTS
Actual project work – Scrum - release planning
•
Create product backlog (user stories
and epics)
•
Estimate backlog in story points
•
Planning poker
•
Prioritize user stories
•
Set iteration length
•
Estimate initial velocity
•
Create release plan
ESTIMATING AT BEKK - PROJECTS
Actual project work – planning poker
•
Estimate in points
•
Relative estimating
•
High-level estimates
•
“Agreement process”
ESTIMATING AT BEKK - PROJECTS
Actual project work – Scrum - iteration planning
•
At the start of the iteration
•
Whole team involved
•
Verify prioritized backlog
•
Estimate new stories / re-estimate
those that feel completely wrong
•
Break-down stories into tasks and
estimate (in hours)
•
Compare available time vs. estimates
in hours
•
•
Actual time vs. ideal time
Commit to scope for iteration
ESTIMATING AT BEKK – “APPLICATION DEVELOPMENT”
• No “projects” – product focus
• Pull-based system / no iterations
• T-shirt estimates
• S, M, L
• Weekly workshop for estimating
• One person gives estimate
• Time estimates based on past data
• Sometimes our customers want a project context in this environment
• “Sales process” applies here
WHAT DO CUSTOMERS THINK?
1.
2.
3.
4.
5.
6.
7.
8.
Better to be approximately right than precisely wrong
Better to overestimate (unless too expensive)
They like estimates (sometimes too much)
They mix estimates with commitments
They often think good estimates are just a matter of effort
They rarely appreciate complicated statistics
“Internal” adjustments often take place
Often say “why is this so expensive, when that was only…”
ESTIMATES
Q&A
Download