The key to software projects is early feedback and creating predictability. This means we can see problems long before they appear and create predictability that will give the team a sustainable pace.
One way of creating predictability is by using the sprint concept from Scrum. Instead of having one long waterfall of specification, implementation, test, and release, you define a three week long time box where you take the highest prioritized features from the backlog and finalize those. This is called a sprint, and each sprint is a set of features from the backlog that are most prioritized by the product owner.
The following graph displays a Sprint burndown chart from a project I once ran as the Scrum Master:
On the Y axis is ...