Our team has been slowly trying to go towards agile, and like many other teams, up to this point, the question of "what do we do when we actually finish all commitments?" is fairly new and foreign to us. But lately it actually came up once or twice.
The reason I wanted to ask this board on good practices is that we are using Rally for agile project tracking and one thing the tool does is keep track of hours and points. In order to improve our estimates, I wanted to do something with this data and provide feedback to the team on how we did in the past, by comparing metrics that show estimated task hours vs. actual task hours vs. assigned story points.
This seems like it could work great as long as developers work up until the last day of the iteration or if they are late with their deliveries. Then "actual hours" reflects exactly what went into each story.
However, what should we do when we finish early but next story would take too long to complete so we can't pull it into the current iteration?
I know some people are advised to simply take the time for general cleanup/housekeeping like updating automated tests or documentation, but for sake of argument, let's say the best value to the team and the company in this specific scenario would be to immediately start working on the next story.
If we are not committed to the next story, actual hours aren't tracked anywhere. And in the next iteration when we do commit, we will only identify estimated/actual hours which will go into the next iteration, at which point the work might already be 25%-50% complete.