In agile processes, like scrum, we tend to estimate our work. Not by time, but by complexity.
What does complexity mean to me?
Complexity is something, that consists out of a variety of factors:
- The clarity on what needs to be done.
- The agreement of the team on how to tackle the task.
- The knowledge of the team that is required to get the task done.
- Third party dependency, which can't be solved by the team itself.
- Time also plays a roll, as a very simple task can also be rather time consuming.
I'm sure that there are also other aspects on complexity.
Sometimes, we estimate a bunch of stories, but not all of them will make it any of the next iterations.
Here are two cases I stumble occasionally over:
Imagine that a story has been estimated with the complexity of 8, but still sits in the backlog for some time. A few iterations later, this story will finally make it in the next iteration. Since then, the team has learned a more about the previously estimated story and it seems like it is more/less work than anticipated.
Has the complexity of this story changed? Should it be reestimated or just left at the previous estimated complexity of 8?
Imagine that you have a story that needs to be repeated on regular bases. Something like: Release the kraken!🦑 Before the releasing the kraken first, the story was estimated as a 3. After some time, the team has gotten more and more comfortable with releasing the kraken.
Has the complexity of releasing the kraken decreased? Should it be reestimated every time it needs to be done again or should it always stick to its initial complexity of 3?