Slides of my presentation to Agile Yorkshire on 9th February 2016 on #NoEstimates, #NoProjects and their cultural implications for the workplace of the 21st Century.
5. @JAMESAHULL
#NOESTIMATES
Estimate
1. to form an approximate idea of (size, cost, etc.); calculate roughly
2. to form an opinion; judge
3. submit an approximate price for a job to a prospective client
4. an approximate calculation
5. a statement of the likely charge for certain work
6. an opinion
(Collins Paperback English Dictionary 2001)
6. @JAMESAHULL
#NOESTIMATES
▸ Hashtag of a Twitter conversation from 2012 between Neil
Killick and Woody Zuill initially
▸ NK blog post "Should we Estimate Software Projects... at
all?"
▸ Growing feeling that estimates are not meeting the needs
of those involved in software
7. @JAMESAHULL
#NOESTIMATES
▸ We have experienced problems with estimating -
answering:
▸ How long will that take?
▸ When will it be done?
▸ How much will it cost?
▸ Often an intuitive guess is provided in response
8. @JAMESAHULL
#NOESTIMATES
▸ What do non-software people want (i.e. the business)?
▸ Figures
▸ Dates
▸ Concrete data to input to spreadsheets/project plans
▸ Certainty
▸ Commitment
9. @JAMESAHULL
THE ESTIMATE OBJECT
▸ An estimate contains more than a number
▸ Assumptions about people, time and requirements
▸ Assumptions about interference and technology
▸ Assumptions about what's in and out of the estimate
▸ Ranges of risk and probability
10.
11. @JAMESAHULL
DEADLY SINS OF SOFTWARE ESTIMATION
▸ #NoEstimates pitches tend to focus on the negatives in
estimating
▸ 10 Deadly Sins of Software Estimating (2004)
▸ Actually contains about 20 sins
▸ Is part of a pitch for estimation software
12. @JAMESAHULL
TOP 5 SINS
▸ 1. Confusing targets with estimates - and treating the estimate
as a commitment to deliver
▸ 2. Saying yes when you mean no (negotiating estimates, or
deferring to seniority of others making estimates)
▸ 3. Committing to estimates too early in cone of uncertainty
▸ 4. Assuming underestimation has no impact on project results
▸ 5. "What's the earliest date by which you can't prove you
won't be finished?" (Tom DeMarco 1982)
13. @JAMESAHULL
MORE SINS
▸ Estimating how long “it” will take to build before anyone knows
what “it” is
▸ Letting sales estimate software projects
▸ Using estimates as concrete numbers to put into project plans/
Gantt charts
▸ Padding estimates
▸ Relating rewards/punishments to meeting estimates (#NoTargets?)
▸ Accidental complication
14. @JAMESAHULL
BUT WHEN WILL IT BE DONE?
▸ Cycle time vs task effort time
▸ Capacity planning
▸ Hours
▸ Points
▸ T-shirts
▸ Counting stories
▸ Throughput, cadence & flow
17. @JAMESAHULL
STORY POINTS
▸ Story points are an ordinal sequence to represent relative
size/complexity
▸ Ordinal numbers are not subject to arithmetic like cardinal
numbers
▸ Example:
21. @JAMESAHULL
ESTIMATES AS WASTE
▸ Lean definition: activities that don't directly add value to
the product from the customer's perspective
▸ Therefore - reduce or eliminate waste to the minimum
required to deliver.
▸ Or - if it is undesirable to do as much of something as
possible, it must be waste
▸ Other waste - meetings, management, Jira…
22. @JAMESAHULL
THE #NOESTIMATES ALTERNATIVES
▸ Not about eliminating all estimates
▸ Counting stories
▸ Forecasting based on past performance
▸ Prioritising
▸ Kanban
▸ Measuring Value as opposed to Cost as primary metric
23. @JAMESAHULL
#NOESTIMATES PRINCIPLES
▸ Ethics
▸ Empiricism
▸ Emergence
▸ Aim to be predictable rather than get better at prediction
▸ Control costs through drip feeding rather than estimating
costs up front
▸ Assess value iteratively through frequent releases
26. @JAMESAHULL
TRYING IT IN PRACTICE
▸ Explicitly did this when tasked with rejuvenating an existing but
under supported product
▸ Lots of work in writing and slicing user stories
▸ Focus on priorities, more detail on the higher priority stories
▸ Kanban process
▸ Worked in 2 week sprint, counted what was done, that’s a
release
▸ Provides benchmark for future performance expectation
27. @JAMESAHULL
CRITICISM
▸ Just because estimates can be misused, doesn’t make the
whole process bad
▸ Effective governance requires an upfront understanding of
costs of software projects
▸ Basic microeconomics suggests that you need to know your
costs in order to be profitable
▸ Open-ended contracts are a recipe for disaster
▸ You wouldn’t buy a kitchen/house without a fully priced quote
28. @JAMESAHULL
CRITICISM OF THE #NOESTIMATES POSITION
▸ It is an incoherent position
▸ Does No actually mean No?
▸ Can be easily mishandled
▸ May mutate into a certification/membership scheme/brand
where someone is trying to make cash out of other people
▸ Is too vague to be useful when some just want to be told
what to do
29. @JAMESAHULL
COUNTER CRITICISM
▸ Software is not house building/kitchen fitting
▸ Requirements emerge over time
▸ Internet application software can be released iteratively
▸ As estimates are intrinsically flawed, your projected cost is
very likely to be wrong
▸ #NoEstimates is just a hashtag not a complete, coherent
consistent method/brand/whatever
35. @JAMESAHULL
THE PROJECT MODEL
▸ Implicit assumptions:
▸ Value of the work is known
▸ Other options are valueless
▸ If quality value & time targets are hit, you are successful
37. @JAMESAHULL
NOT ALL PROJECTS…
▸ Language of “projects” is default setting
▸ Eclipse has projects, not the same as a PRINCE2 project
▸ Projects good for discrete activities that require co-
ordination:
▸ Software implementations
▸ Network and hardware installations
▸ Office moves
39. @JAMESAHULL
ARE YOU IN LEAGUE WITH THE HUMANS?
▸ Software development requires knowledge of psychology
and sociology
▸ Hofstadter's Law - it always takes longer than you think,
even when taking Hofstadter's Law into account
▸ Vierordt's Law - The proposition that short time intervals
tend to be overestimated and long ones underestimated
▸ Parkinsons Law - Work expands so as to fill the time
available for its completion
41. @JAMESAHULL
#NOAGILE
▸ Question our assumptions - is Agile all it’s cracked up to be?
▸ Why should Agile expand into the rest of the organisation?
▸ Related themes to “Agile”:
▸ Lean
▸ Kanban
▸ Rightshifting
▸ Systems Thinking
42. @JAMESAHULL
CONCLUSIONS
▸ If you think #NoEstimates is a coherent methodology,
Agile 2.0, next big thing, think again
▸ Useful critique, consider your context
▸ Certainly not about discarding/refusing to do estimates
and not replacing the info they provide (#KnowEstimates)
▸ Software product development is not well suited to the
prevailing project management approaches
43. @JAMESAHULL
CONCLUSIONS
▸ Estimates don't kill people, project managers armed with
estimates do
▸ All practices are open to question and challenge
▸ As we become the leaders and influencers of our
organisations, how are we promoting humane, non-hostile
workplaces and practices?