Correlate estimation across Parent Child Relationships (Story->Task)
I was asked by a colleague:
Say my effort estimation in the story represents an initial estimate in order to evaluate the cost of that feature.
Then when it come actual developing the story, we break down the story to tasks and start estimating the tasks. Is there a way to warn me upon saving a task with its effort estimation, it may be that we exceeded the estimation of the story the task belongs to and thus we loose money. (I am talking of a customer need). In short I need the implication of the effort estimation in a story on the tasks belong to that story.
Say my effort estimation in the story represents an initial estimate in order to evaluate the cost of that feature.
Then when it come actual developing the story, we break down the story to tasks and start estimating the tasks. Is there a way to warn me upon saving a task with its effort estimation, it may be that we exceeded the estimation of the story the task belongs to and thus we loose money. (I am talking of a customer need). In short I need the implication of the effort estimation in a story on the tasks belong to that story.
Accepted answer
My answer to this:
There is no protection like that. One of the reasons being that in the Story you estimate the complexity (in story points) and not the duration. This is because humans are fairly good at estimating relative complexity and really bad at estimating big tasks exactly.
The story points in the agile templates use Fibonacci numbers because humans are also working in logarithmic/exponential ways. The Fibonacci numbers are spread in a way that they increase exponentially and for bigger numbers the estimation is probably less accurate as well.
That humans can not estimate effort very good for big tasks can you see looking at the new Berlin Airport which is a total cost overrun, none the last because the stakeholders started to throw in new ideas and needs after the initial estimation. Like in a software project. 8-)
You could implement something like that in case you decided to go micromanagement and use hours at story level anyway with a precondition working similar to this follow up action http://rsjazz.wordpress.com/2012/07/31/rtc-update-parent-duration-estimation-and-effort-participant/. It could prevent saving. However, if you estimate the tasks and now the sum of the task efforts exceed the estimate in the story, you have probably underestimated the story and not the other way around.
There is no protection like that. One of the reasons being that in the Story you estimate the complexity (in story points) and not the duration. This is because humans are fairly good at estimating relative complexity and really bad at estimating big tasks exactly.
The story points in the agile templates use Fibonacci numbers because humans are also working in logarithmic/exponential ways. The Fibonacci numbers are spread in a way that they increase exponentially and for bigger numbers the estimation is probably less accurate as well.
That humans can not estimate effort very good for big tasks can you see looking at the new Berlin Airport which is a total cost overrun, none the last because the stakeholders started to throw in new ideas and needs after the initial estimation. Like in a software project. 8-)
You could implement something like that in case you decided to go micromanagement and use hours at story level anyway with a precondition working similar to this follow up action http://rsjazz.wordpress.com/2012/07/31/rtc-update-parent-duration-estimation-and-effort-participant/. It could prevent saving. However, if you estimate the tasks and now the sum of the task efforts exceed the estimate in the story, you have probably underestimated the story and not the other way around.
Comments
There might be other interesting use cases that could be implemented using http://rsjazz.wordpress.com/2012/07/31/rtc-update-parent-duration-estimation-and-effort-participant/ as participant (have a capacity left on the story) or calculate an Cost Overrun attribute value you could use in queries.