I have joined a new team which is using Agile/Scrum, and their development process is as follows:
1) developers review each story before each sprint to make sure it doesn't miss anything critical. There's a formal state for that in the workflow.
2) during the Sprint kickoff, the entire team does an estimation (poker planning) on how many story points each story would cost.
3) finally, immediately after each sprint starts, each developer is required to eagerly break down all of assigned stories into subtasks with time estimates (as opposed to subtasking before starting each story).
The main argument for the last step is that it helps to discover if implementing a story would take longer than anticipated and warn scrum master about potential risks of missing sprint deadlines.
Yet I find this counter-productive, mainly because of the following reasons:
- if the aim is to provide rough estimate, story points (step #2) is what does the job. Otherwise why bother with story points at all? – just do subtasking early on.
- if the aim is to provide accurate estimates, then this is a clear example of what is described in Human Task Switches Considered Harmful. This, I think, is especially the case for fresh developers who join existing teams in big projects where understanding what needs to be done can take up to 50% of the time. You are required to get into details of story #1, then story #2, #3, etc. etc. which yields a lot of information churn.
I am also being told that such practice is "by the book" and I'm not even meant to discuss this. Can anyone provide a reference to such practice – whether this is clearly defined in Scrum bibles, and/or perhaps provide any extra insight?
Best Answer
This is not dissimilar to how we run some of our scrum process. We
But what you want to know is why we estimate twice!
Rereading your question and comment, I see there are some differences between our workflow and yours.
It sounds like the reason your team does task breakdowns and task estimates is for a smooth burn-down - which is fine, that's all part of monitoring the progress of the sprint and allowing your scrum-master to detect and resolve issues early. If you want this information you have to do the breakdowns and estimates and you have to do them first.
In my opinion task switching is not likely to be a problem for you here, I don't think that breaking down different tasks is really a task switch in the same sense that flipping from developing one feature to another part way through is a task switch. I think gaining an understanding of the overall "architecture" of the sprint is probably quite a useful thing.
However, I think there may be some other problems you could consider. As always with agile you should identify a problem you have and propose a solution, then decide if your solution worked in the retrospective. This is the crux of building an agile solution that works for your company and your team. So, some problems you might have: