Where I work we practice scrum-driven agile with 3-week iterations. Yes, it'd be nice if the iterations were shorter, but changing that isn't an option at the moment.

At the end of the iteration, I usually find that the last day goes very slowly. The actual work has already been completed and accepted. There are a couple meetings (the retrospective and the next iteration planning), but other than that not much is going on. 

What sort of techniques can we as a team use to maintain momentum through the last day? Should we address defects? Get an early start on the next iteration's work anyway? Something else?

I've been struggling with the same question a bit lately. We are starting on the next iteration, but I feel that this removes the satisfaction of an iteration well done.

I am thinking about the option of leaving it up to the developers, with the caveat "as long as the intent is to benefit the company."

Examples:


Spend the day learning something
Spend it on an innovation time project
Spend it tidying up that annoying piece of code you never get around to refactoring
Have a good run through the app with a view to UX (which we never seem to find time to do otherwise)


Whatever motivates the programmer, giving them an incentive to deliver the release on time.
