Jonathan Harley writes, Agile development is a good way to minimize risks.
(As an aside: the key difference between [agile and iterative development] then is as follows: in stage-based project management one person, usually the project manager rather than the business representative, is tasked with identifying risks to the project, based on the assumptions that the project has been specified correctly and completely, and that all business policies available to him/her are complete, accurate and fully up-to-date at all times. Software industry research has now shown that these are poor assumptions. What‘s more, by delivering something recognizable as a usable product early on, it becomes possible for a much wider range of people in the business to understand what is being done in terms of business value and suggest improvements to the specification at an early stage, improving quality and reducing many kinds of risk, including failure, relevance, inappropriate architecture etc. etc.)
This describes my previous employer perfectly. The mindset of organizational tiers and responsibility barriers made anything but this stage-based approach impossible. Great article.