It has been nearly 10 years since programming dignitaries released "The Manifesto for Agile Software Development," which promoted processes that accommodate changing requirements, collaboration with customers, and delivery of software in short iterations.
The agile manifesto was forged in February 2001 when a group of developers convened in Utah to find an alternative to documentation-driven, "heavyweight" software development practices, such as the then-gold-standard waterfall method.
Although actual agile practices predated the Utah meeting, that gathering served as a watershed event that helped propel the concept. Fast-forward a decade, and agile software development is becoming more commonplace, with software houses adopting agile methodologies like Scrum and XP (Extreme Programming). Despite potential pitfalls, experts in the agile space agree that implementation of agile practices has benefited software development overall.
"I'd say we transformed the industry," says Ward Cunningham, a signatory to the manifesto who worked for Tektronix at the time. Discussion about the failure of computer programming and the programming crisis has died down as a result of agile, he says: "I just don't hear people talking about that anymore."
The Agile Manifesto has more than met its goals, says Scott Ambler, chief methodologist for agile and Lean at IBM Rational.
"It's had a pretty significant effect on the industry," Ambler said. "You'd have a hard time these days trying to find people who don't want to be agile. [And] the expectations for success for agile and iterative seems to be measurably higher" than with traditional development.
But Kent Beck, who also signed the manifesto and is the founder of XP, is less committal about the benefits of agile nearly 10 years after the manifesto: "I don't have a sound-bite answer for you on that."
Agile has "contributed to people thinking more carefully about how they develop software," Beck says. However, not everyone is on board with agile, he notes. "There's still a tendency for some people to look for a list of commandments" to use for a project, which is not what agile is about, Beck says.
What it takes to be agile
Agile can be hard to learn, Cunningham notes: "You have to learn to master any number of techniques before you have the experience" to do agile development.
Solid programming skills are necessary for agile development, Cunningham stressed. "There's a lot of people who get into this field who actually find programming tedious and don't want to do it," Cunningham says. "If you enjoy doing it and want to do it well, that helps a lot."