A basic idea in iterative development is that at regular (preferably short) intervals, you produce a working system with some subset of the final features of the planned release. A trick to make this more real and more tangible to developers is to find some venue where you can demo your new version of the software at the end of the interval. The rules are simple - demonstrate an interesting set of scenarios that cut across the system and fake as little as possible. The requirement to produce working code by a hard deadline is a powerful motivating factor that helps drive issues to closure by starkly constraining the 'time' leg of the resource triangle. Also, if your iteration's work isn't in the demo, it feels like you didn't really deliver anything, which is a very bad feeling in a culture where the ultimate measure of success is delivering working, high-quality software.
This is one of the nice features from Scrum that we use.