Truthful Estimations by James Bach, ThinkTest 2015. I couldn't believe this video only had 142 views!
- Testing closes the gap between what we know about the product and what we NEED to know about the product. The riskier the product, the more we need to know. Testing is like using headlights when driving at night.
- To be useful, estimates must be accurate and precise. Don't lie, just give updates as more is known. If you have to give an estimate, give three estimates to give customer an idea of the trade-offs involved.
- Low end, happy path, customer ends up assuming a lot of risk
- Conservative, test usability and all permutations of risk such as security
- Middle ground
- To the estimates, you need to add a public buffer that attempts to account for unpredictability. The buffer can be estimated by looking at similar past projects and knowing what unexpected things happened so that you can do a better job of expecting them this time. This requires an honest look at how we actually spend our days as opposed to how we ideally spend our days under perfect conditions.
- Reasons for unpredictability:
- "Blocking unknowns" -- If there's a dependency of unknown length or complexity, you cannot estimate an end date for your work. Examples include setup of test environments or finalizing what the product is going to be.
- Finding bugs -- Estimates can be skewed by assuming everything will go smoothly. In reality, there is a lot of time investigating, diagnosing, explaining, waiting, and retesting.
- Overestimation of time spent working on testing-related tasks. One example is "team self-care", which on the surface look like people standing around talking about pleasantries but is a long term builder of trust and productivity.