So you’re two-thirds of the way through your iteration and there are no more development tasks to complete. Nice work! Understandably, your instinct is to pull another story into the iteration, but doing so has risks and disadvantages. When you add additional work into the iteration, you’re increasing the batch size. This causes additional complication due to increased changes in the code base. It usually results in carryover, which has a demoralizing effect on the team. And it eliminates an opportunity to get feedback on the emergent product before additional work is embarked on.
Remember, the iteration was planned so that all members of the team can function at optimally, not so that the developers can program optimally (Yes, there is a difference).
Before you peek into your product owner’s backlog and start working on something outside the plan, have a look at this list and consider doing one or more of these things instead:
This isn’t an exhaustive list. What am I missing? Let’s see how many more items we can add to it. Give me your ideas in the comments.