IN 2001, SEVENTEEN AMERICAN, BRITISH and Canadian software engineers and IT managers met at a ski resort in Snowbird, Utah, to start a movement to remake the way software is built. Over the previous decade, the attendees had independently created similar processes for organizing and managing software engineering projects that broke with tradition and promised to make software development better, cheaper, and more innovative. Their methods were diverse and went by many brand names: Extreme Programming, Crystal Clear, Scrum, Adaptive Software Development, Test Driven Development, and many others. But they also shared many goals and ideals in common.
The outcome of the Snowbird meeting was the coining of a new term that brought all these approaches under the same roof: Agile. They published a manifesto outlining twelve core principles, and founded the Agile Alliance, a non-profit advocacy organization to promote their new methods to the software engineering community.
Over the last decade, the Agile movement has been extremely successful. Its founders have become influential “thought leaders” who give lectures and keynotes at programming conferences around the world. A large corpus of books have been written about Agile methodologies—many are software engineering best-sellers. And the Agile Alliance is now a global organization, hosting conferences and training sessions and boasting affiliate user groups on six continents, with the support of large corporate sponsors like Lockheed Martin and IBM.
One way to understand what the Agile movement stands for is by understanding what it stands against: the traditional software development methodology known within Agile as Waterfall.