the power of #no
TRANSCRIPT
Power
JAMES HULL
The
of #No
NO
WHY
YES
@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)
@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
@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
@JAMESAHULL
#NOESTIMATES
▸ What do non-software people want (i.e. the business)?
▸ Figures
▸ Dates
▸ Concrete data to input to spreadsheets/project plans
▸ Certainty
▸ Commitment
@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
@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
@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)
@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
@JAMESAHULL
BUT WHEN WILL IT BE DONE?
▸ Cycle time vs task effort time
▸ Capacity planning
▸ Hours
▸ Points
▸ T-shirts
▸ Counting stories
▸ Throughput, cadence & flow
CALCULATING VELOCITY FROM STORY POINTS IS A CATEGORY ERROR
@JAMESAHULL
CAPACITY PLANNING
▸ Planning poker
▸ Story points
▸ Velocity
@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:
@JAMESAHULL
STORY POINTS
Story Points Median Hours
1 21
2 52
3 64
5 100
8 111
@JAMESAHULL
STORY POINTS
Story Point Combo Actual Hours
8, 8 = 16 111 + 111 = 222
5, 3, 2, 2, 1, 1 = 16 100 + 64 + 52 + 52 + 52 + 21 + 21 = 362
CALCULATING VELOCITY FROM STORY POINTS IS A CATEGORY ERROR
@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…
@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
@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
CUSTOMER COLLABORATION OVER CONTRACT NEGOTIATIONThe Agile Manifesto
WORKING SOFTWARE IS THE PRIMARY MEASURE OF PROGRESSThe Agile Manifesto
@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
@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
@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
@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
@JAMESAHULL
CRITICS
▸ Glen Alleman - @galleman
▸ Peter Kretzman - @PeterKretzman
▸ Henrik Ebbeskog - @henneb
THE PREVAILING PROJECT MANAGEMENT FRAMEWORKS ARE AN INAPPROPRIATE VEHICLE TO MANAGE SOFTWARE PRODUCT DEVELOPMENT
#NOPROJECTS
@JAMESAHULL
THE PROJECT MODEL
▸ 3 assumptions about a successful project:
▸ On schedule
▸ On budget
▸ On quality
@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
@JAMESAHULL
REQUIREMENTS
▸ They change, this is positive
▸ Don't devalue reflection, experience and emergence
▸ Provide value sooner
@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
@JAMESAHULL
#BEYONDPROJECTS
▸ Software has diseconomies of scale
▸ Therefore smaller and more frequent is cheaper and less risky
▸ Ensure governance is still covered
@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
@JAMESAHULL
#NO …
▸ #NoHR
▸ #NoCV
▸ #NoContracts
@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
@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
@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?
Power
THANK YOU
The
of #No
THE POWER OF #NO
YOU CAN BOTHER ME VIA:
@jamesahull
jamesahull.co.uk
northern-union.com
https://www.linkedin.com/in/jamesahull