Business today demands speed and flexibility in taking products to market. So companies are increasingly offloading commodity computing services to third parties, who can provide them faster, with more flexibility (and often more cost effectively) than internal IT staffs. And guess what? Companies want more speed and flexibility from their internal staffs, too.
So it's no real surprise that up to 46 percent of IT pros recently surveyed by Forrester Research said agile software development was used at their companies. (Thirty-five percent said agile most closely reflected their development process, but the number rose to 46 percent if the definition of agile was expanded to include practices such as rational unified process or spiral, according to an InfoWorld story about the survey.) Unlike the traditional waterfall software-development process, agile emphasizes speedier and more iterative delivery of code, with the ability to make needed changes along the way.
Forrester has been talking about agile development for a while now, in August spotlighting the need for business analysts to familiarize themselves with agile development methods.
Scrum, used by nearly 11 percent of survey respondents, was the most popular agile development methodology. Yet most development teams use several different agile approaches, "embracing agile as an ethos or philosophy and cherry-picking the best bits from many different process models to develop a formula unique to their own situation," according to the Forrester report. (This makes a lot of sense to me, considering agile's reputation for flexibility.)
Social, Agile, and Transformation blogger Isaac Sacolik contrasts the traditional waterfall method with agile and lists three benefits of agile (which I've seen mentioned elsewhere as well). They are:
Sacolik's last point about alignment was also mentioned by Doug Mow, senior VP of marketing for Exigen Services, a global application outsourcing provider that uses distributed agile methods, when I interviewed him in 2008. He told me:
The business community can request changes in between each one of these iterations. The business community is watching this system become more malleable instead of more rigid. The changes they request are actually being incorporated. The issues they raise are addressed sooner in the process. Their participation actually has an effect on what happens-this isn't always the case with more traditional development methodologies. You really get a greater degree of alignment between IT and the business.
Not everyone is a fan of agile, of course. When I noted in a post about the cost of failed IT projects that IT Business Edge's development team had recently switched from a waterfall development process to a modified agile one, I got a comment from Aleks Buterman:
... Agile development practices in their pure form (i.e. without proper oversight mechanisms) tend to increase complexity of the overall environment, rather than reverse. The practice of re-use has not been ingrained in the application development community to forestall the duplication (one major driver of complexity) that naturally occurs in a decentralized or federated environments. So I'm glad to see that it's a modified agile that [IT Business Edge parent] NarrowCast has switched to, and it may be of interest to readers to know what other project management structural steel has been implemented to deter complexity.
In addition to a lack of proper oversight mechanisms, resistance to change and strained relations between business users and developers can hamper adoption of agile. As Mow told me, in "situations where the business community simply is not accessible or collaborative ... there's no sense in trying to enforce change if the organizational environment is unwilling to accept it. You'll incur more risk than you've managed to reduce."
IT Business Edge's Knowledge Network has several documents on agile methodologies, including an excerpt from "Agile Project Management" and a description of the modified agile system used by IT Business Edge parent NarrowCast Group.