Sometimes the informal level of visibility provided by working software each iteration isn't enough for some organizations, usually because they find it difficult to measure what they got. Although you could count the number of function points delivered, it's doubtful that the benefit of knowing the count is greater than the cost of doing the count in the first place. In my opinion, just the fact that the business stakeholders are willing to continue funding the project should be a sufficient metric.
Traditionalists will often claim that Agilists are flying blind, but nothing could be further from the truth. At the beginning of each iteration, the team plans their work for that iteration in detail, producing an iteration task list (our form of a detailed project plan). According to the Agile Adoption survey, iteration task lists are the fifth most valuable work product of Agile development teams (the first four were working software, source code, developer tests, and whiteboard sketches). Agile teams, particularly those working at scale, will also create high-level schedules that communicate major milestones such as proving the architecture, dependencies on other teams who put together training materials or install production hardware, and on release windows available to the team. This is particularly important for release/transition phase activities (www.ddj.com/development-tools/198800565).
Some Agile processes, particularly those based on the Unified Process such as OpenUp or Rational Unified Process (RUP), include explicit control points in the form of milestones. Figure 3 depicts the lifecycle of the OpenUP, which includes four specific project phases. Many extremists within the Agile community will denounce the concept of phases, often in fear of a waterfall approach to development, but the reality is that when they're done right, phases enable good governance and scaling of Agile techniques. For example, during the Inception phase, you do some initial modeling to envision the requirements and architecture strategy and drive stakeholders to a general agreement as to the scope and vision of the effort. This reduces major business risks and puts your project on a sound footing. During the Elaboration phase, you build a working, end-to-end skeleton of your system, which addresses architecturally difficult requirements, thereby reducing technical risk. And architecturally difficult requirements often prove to be high-priority business requirements, so there is very little reordering of your initial requirements. The Construction phase proves to be the vast majority of the effort where you build the system and the focus of the Transition phase is where you release the system into production.
Explicit demarcation of the software development lifecycle phases provides business stakeholders with the opportunity for formal checkpoints into the team's progress. For everyone still afraid of the waterfall boogeyman: Just because these checkpoints are "formal," doesn't mean that they have to be dysfunctional. It could be as simple as inviting a few extra senior stakeholders to your end-of-iteration demo and wearing a pressed shirt that day. More importantly, explicit phases enable stakeholders to take a phased-based approach to overall funding. Many organizations can't tolerate the iteration-based "allowance" approach to funding the project described earlier, yet setting the budget at the beginning of the project is clearly an unnecessary business risk that should be avoided. An effective compromise is to fund each phase at a time, and the secret to making this work is to streamline the funding request effort as much as possible.
Agile Governance Works
It shouldn't be a surprise that Agile projects are easier to govern than traditional projects, although it clearly isn't what some traditionalists want to admit. Agilists work closely with stakeholders on a daily basis and the stakeholders have active roles on the team. Agile project teams provide stakeholders with concrete and useful information as to what they're doing, and provide stakeholders with the ability to easily direct teams appropriately. If your organization wants to improve its ability to govern IT project effectively, perhaps you should really focus on adopting Agile approaches to development on all of your software development projects. Once you've done so, I suspect that many of your governance problems will have gone away all on their own.