overall circumstances, course defines direction and progress. Just because some agile approaches reference not looking in detail beyond one to two iterations, do not be lured into believing that longer range planning is not necessary or valuable. Longer-term software plans serve as a roadmap for important interim business and project decisions. Iteration, milestone, and release plans remain critical components in planning and measuring progress. Keep in mind that as you plan further out, confidence levels diminish, but a minimum three- to six-month roadmap serves as a continuous reality check in the face of a changing environment.
Make a concerted effort at least every iteration to revisit objectives, reconcile overall direction, review time-frames and deadlines, and communicate variances. Reality has proven that rarely does time get made up on software projects. This is especially true in the world of agile development. In agile development, change is accepted and even fostered for business reasons, so in addition to delivering early and often, be prepared to communicate early and often. Unlike traditional projects environments where the feedback loop can span quarters or even years, many more successful agile project teams communicate directly with key business and management stakeholders as often as each iteration.
I would like to take credit for first using the term in this context, but its initial utterance came from Gary Evans of Evanetics, Inc., back in 2003 in a conversation we were having about the virtues of agile development.  At VersionOne, we have consistently used the concept of cadence, or rhythm, to communicate one of the most beneficial effects of agile development. Most successful agile teams get into a powerful groove that can significantly benefit team confidence as well as overall project reliability.
Similarly, teams' deep grasp of iterative and incremental delivery in its complete sense can serve as significant risk mitigator. Instead of delivering once a year or more, agile teams deliver working, tested, installable software every iteration. In this type of environment, unexpected loose ends greatly diminish, defects are much easier to manage, integrated builds are second nature, and production deployment becomes much more streamlined and foolproof. This is not to say that some problems will not arise, but those that do will be much more manageable.
To early practitioners, this team rhythm is a goal to strive for as early as possible. To experienced practitioners, this rhythm greatly simplifies the task of leading agile development efforts. Many agile teams we have worked with achieve a much higher degree of predictability than with traditional methods. Simply having a quantifiable, accurate history of estimation and delivery can tremendously simplify planning and improves reliability.
Even agile development cannot escape the associated financial implications of software development. The challenge, and advantage, of agile development is the opportunity to justify the cost with business value and customer benefit throughout the process, as opposed to once at the very end. In addition, instead of managing projects as cost centers, agile development also provides the opportunity to view software development as an investment, with a goal being to achieve the highest possible returns earliest in the development cycle.