Software estimation Q&A
Q: What do the points mean?
A: Lets say we have two engineers,
E2, estimating a story
E1 believes the story can be done in time
E2 believes it can be done in time
We assign the velocity numbers V1 and V2 to these two engineers, such that
V1*T1 = V2*T2 = Ps
Ps are the story points.
Q: What if the V is different for all tasks?
A: This is quite likely, and thats why you need a calibration session. The engineers sit together and try to find example tasks for 1, 2, 3, 5 points. That way the coefficients should be reasonably well adjusted.
Q: How do you still eliminate the discrepancy between points depending on who estimates?
A: The whole team sits together to estimate all tasks using a pointing poker tool. The result cannot be seen until everyone gives a value (or "i don't know"). If there is a discrepancy, its discussed! If someone thinks a task would take more time or less time, that might mean some knowledge sharing is needed e.g. the team might not be aware of the complexities in certain parts of the code or certain aspects of the feature
Q: How do you take risk into account?
A: Calibrate using risky tasks too. The goal of story points isn't so much in estimating the size of an entire project, but mainly:
- what can be done in the next sprint or two.
- do we need to share more knowledge about certain areas since we have discrepancies about what work they involve
Once you have the scale, if you do need to estimate bigger things, you might want to try and do 3-point esitmation: https://en.wikipedia.org/wiki/Three-point_estimation on them, but you should realize it will likely take a lot of time and it will require things to be broken down to stories of the size no bigger than the maximum points that are being used (typically no bigger than 1 sprint)