I ran a little workshop today about transitioning to agile. I was talking about timeboxed iterations, and one of the participants asked this question. “So I don't quite finish one of the features I want to finish in this iteration–and it's the end of the project. I think it's going to take me a couple more days. Do I extend the iteration or do another iteration?”
I said, “End the iteration at the end of the timebox.” There are lots of good reasons to do so: retain the reasonable pace and rhythm of the project, be able to gather data to compare this iteration to previous iterations, and to see why the team thought they could finish all these features in an iteration but couldn't.
The participant didn't agree with me. He has deliverables to other people. He can release at the end of an iteration. If he starts another iteration, why should people wait 4 more weeks rather than 2 days for the release?
Aside: I've never seen a 2-day estimate at the end of the release actually finish in 2 days. I've always seen it take several weeks. But let's assume it really is just 2 more days of work, and feature is the only thing left to do. He could start another timebox and end it early. Or, why not just use an interim build as the deliverable, if the build is not for an end customer?
The class had a vigorous discussion about whether to end or continue the timebox. I hope that he tries ending the timebox when the time is over–otherwise it's not a timebox. It's too easy to let this iteration go over by a couple of days, let the next one go over by a week, and pretty soon you've got 5-week, 6-week, 7-week iterations, and the value of being able to do iteration re-ranking of features and the ability to make releasable software every x (here 4) weeks is gone. You've got something that looks like a staged delivery lifecycle, assuming you're integrating as you go.
So, what do you do if you have just a little bit left in an iteration? I suggested that aside from ending this timebox on time, that they reduce the timebox duration to two weeks, and see if that improves their estimation and iteration planning. (My concerned participant was not excited about that option.) If you have experience with this, please comment.
Labels: iteration, timebox