We're trying to deliver what clients want. Since we know, through decades of experience, that clients, whether internal or external, can't articulate what they want until they see it, showing them working results as we progress makes obvious sense. We also know from experience that "throwing requirements over the wall" without deep collaboration is a failed approach, so requiring clients to be "product owners" and remain engaged makes obvious sense as well. We've learned that big-bang, front loaded project planning doesn't account for inevitable changes in business and environment, so we plan and develop in cycles to enable reality to influence our delivery. Agile is a reflection of the realities we've learned from decades of failed projects, mingled with the modern, lean style of management pioneered by the Deming, Six Sigma movements, leavened with the sensibilities of new generations of developers.