It is accepted in the agile world that if an iteration or sprint is going extremely badly then it can be stopped – rebooted I guess I’d call it. What I have been pondering is whether this is a good or a bad thing? Obviously it is bad that it should be considered, but that isn’t where I’m going with this. My question is more basic: should stopping/rebooting an iteration even be an option?
My big concern is the message it sends to the team. Is it ok to say “Don’t worry about it, if you stink bad enough during an iteration we’ll just reboot and get it right the second time.” Maybe it is just me, but that is what I hear when I hear an iteration being stopped and then started over. Obviously there is lost time and waste involved, so the message I hear isn’t entirely accurate (ie, we don’t actually get to restart, we get to restart with a penalty in time at the very least). But I keep coming back to pondering whether or not I think this is something to teach in my classes.
So far I have resisted this. My reasoning is as follows: if the team is going to fail the sprint anyway, why do we want to stop it early instead of following good practices and making sure we deliver as much as possible of the highest priority items? If we are thinking about stopping the sprint because those items are not being done properly, then why not consider trading some scope in the sprint for a bit of research so we can get them right? There are so many ways other than stopping that I just don’t see the value.
I’m sure many of you disagree with my premise. So if you don’t mind, I’d love to hear your comments on why and under what circumstances an iteration should be stopped or rebooted.
Until next time I’ll be busy helping my clients avoid rebooting iterations while Making Agile a Reality™ for their organization.