Agile Development Method Growing in Popularity
Page 1 of 1
Agile software development is a group of methodologies based on iterative development first devised in 2001 with the creation of the Agile Manifesto. Its intention was to build a newer, modern development system to replace older programming methods, with a system in which work is distributed among self-organizing, cross-functional and interdependent teams.
West delivered his message on Agile development during a keynote session at an online HP Virtual Conference 2009 held Tuesday.
He explained that in the traditional waterfall approach -- so named because work "flows" sequentially down a highly structured, set path -- there are siloed areas of development with a lot of specialization based on task. As organizations grow, the waterfall approach causes an increasing focus on the transition from one stage of a project to another, which can lead to increase in project complexity. This in turn contributes to a lack of project understanding, West noted.
"In situations where there is a lack of understanding, what we find is that processes become more complicated and that means planning isn't possible," West said. "We can't say on Wednesday [that] Bob should do 'X' because we don't know what 'X' is and we don't know if Bob is the right person to do it because we don't know enough about the problem."
In West's view, the Agile software development approach is one solution to dealing with the problem of increasing software development complexity. It's a view that he has some limited statistics to validate.
A first-quarter 2009 Forrester study asked participants which development model they use, and 30 percent reported using Agile. A survey conducted two years ago with a different sample group found that only between 8 and 10 percent of developers were using Agile practices.
"We are seeing a trajectory change," West said. "The specialization of labor is being replaced by a model that provides frequent delivery, increased customer involvement and a different team organization."
Agile software development is used by many different organizations, including Cisco for its EOS media platform technology. Tools to help developers embrace an Agile approach are available from HP and IBM, among others.
According to West, in the Agile software development method, releases are made frequently to make sure that developers understand the problems they are trying to solve. He added that the process of continuous integration and building is important as developers try to get at the value faster and more frequently.
Working with customers also changes in the Agile model. West noted that instead of a heavy contractual model, where clients are repeatedly and frequently having to sign off on work, Agile developers need to have a different and much closer working relationship with their clients.
The move from a waterfall approach to Agile does not mean there is a reduction in governance. Rather, in West's view, a different type of lifecycle governance is required, where milestones are set up to help manage risk and ensure effective communications.
The Agile method also affects the roles that different staff members play in the software development process. West said that business analysts move from being documenters to being decision makers.
"They are empowered to make decisions about the business," West said. "They are now product or functional owners now and they understand the problems and that allows the team to deliver the software faster."
For enterprise software developers, West offered a few words of advice on how to start implementing Agile software development at a high level.
"Think about the processes that you follow today. Think about two variables, value and waste, and think about how you can increase value and the mechanisms you use to judge that value and think about the waste that is in the steps that you are doing," West said. "If you can improve those two things, increase value and reduce waste, you'll be moving towards an Agile kind of lifecycle and that really can change the way you build software."