What we do and don't know about software development effort estimation
Citation: Magne Jorgensen (2014) What we do and don't know about software development effort estimation. IEEE Software (RSS)
DOI (original publisher): 10.1109/MS.2014.49
Semantic Scholar (metadata): 10.1109/MS.2014.49
Sci-Hub (fulltext): 10.1109/MS.2014.49
Internet Archive Scholar (search for fulltext): What we do and don't know about software development effort estimation
Wikidata (metadata): Q17784002
Download: http://www.infoq.com/articles/software-development-effort-estimation
Tagged: Computer Science
(RSS)
Summary
Cost and effort overruns tend to be about 30% and haven't changed much from 1980s to now. Estimation methods haven't changed, expert estimation still dominates. But we know more; author notes 7 lessons supported by research:
- There Is No “Best” Effort Estimation Model or Method (important variable depends on context, also explains overfitting of advanced statistical estimation methods)
- Clients’ Focus on Low Price Is a Major Reason for Effort Overruns
- Minimum and Maximum Effort Intervals Are Too Narrow (estimates do not adequately reflect uncertainty)
- It’s Easy to Mislead Estimation Work and Hard to Recover from Being Misled (strongest when estimators aware of constraints such as budget, resulting in "estimation anchor" bias even if unintentional)
- Relevant Historical Data and Checklists Improve Estimation Accuracy
- Combining Independent Estimates Improves Estimation Accuracy (groupthink leading to more risk not found in software estimation research)
- Estimates Can Be Harmful (too low: low quality, too high: work expands; consider whether estimate is really needed)
3 estimation challenges research has no solution for:
- How to Accurately Estimate the Effort of Mega - large, Complicated Software Projects (less relevant experience and data available, cf #5 above; large projects also involve complex interactions with stakeholders and organizational changes)
- How to Measure Software Size and Complexity for Accurate Estimation
- How to Measure and Predict Productivity (large difference among developers and team only discernible through trial; we don't even know if there are economies or diseconomies to scale for software production!)
Practices likely to improve estimation, quote:
- "Develop and use simple estimation models tailored to local contexts in combination with expert estimation.
- Use historical estimation error to set minimum - maximum effort intervals.
- Avoid exposure to misleading and irrelevant estimation information.
- Use checklists tailored to own organization.
- Use structured, group - based estimation processes where independence of estimates are assured.
- Avoid early estimates based on highly incomplete information."
Author provides "full set of empirical evidence I use to document the claims" in From Origami to Software Development: A Review of Studies on Judgment-Based Predictions of Performance Time.
Theoretical and Practical Relevance
Hacker News discussion including: "If I understand the paper, the only condition you need in order to arrive at accurate estimates is the absence of pressure to underestimate."
Projects with development work done by volunteers and/or distributed across organizations (commonly open source ones) tend to not estimate (is that true?) as nobody could be held to estimate anyway. Could this be an advantage?
Other than consequences (#7 above), estimation cost not mentioned. Is estimation itself significantly costly relative to subject of estimation?