IBM is making a renewed push into the agile programming market, with a conference at its Almaden research centre in California this week.
Agile technology delivers software in short, iterative release cycles, that may be just two weeks long. The methodology accommodates changing requirements that otherwise can render software obsolete upon release
"Agile is a major push in the industry," said Scott Ambler, IBM practice leader for agile development in IBM's Rational Software group. "We've actually been doing it for quite a while, but we haven't taken the opportunity to actually get together and coalesce [around] what we're doing."
With the event, IBM wants to discuss what is and what is not working, he said. In some places at IBM, agile has been in use for more than five years, said Michael Maximillien, an IBM research staff member. Agile has been used to develop and refine the IBM.com web site, for example.
Agile programming is cost-effective and produces higher quality software, Ambler said. "You end up with software that meets the changing needs of your stakeholders," he said.
While traditional waterfall-style processes adhere to a strict plan, agile is more flexible. "In agile, we do a lot of planning. It's just that we don't do a lot of upfront planning and blindly follow that plan," said Ambler.
"One of the things that people like about agile methods is that they enable you to do things rapidly, and if you don't get them right this month, they will you give the right thing next month," said Barry Boehm, a software engineering professor a US University.
Agile practices can help software developers avoid missed market opportunities that can occur while waiting to change requirements in non-agile processes, said conference attendee and panellist Laurie Williams. With agile, developers do not have to wait for requirements to be finalised before getting started, she said.
Agile, she said, "is getting to be more mainstream".
IBM also leverages agile methodologies at customer sites. But agile has had to face a number of issues, such as a mistaken belief by some adherents that no requirements planning or architecture should be devised before embarking on a project, Ambler said.
Also, there are industry perceptions that a database schema cannot be changed, which has negatively impacted perceptions of agile and its practice of changing requirements. But these schemas can, indeed, be changed through database re-factoring, Ambler said.
Another obstacle faced by agile programming has been scaling the size of programmer teams, Boehm said. While an ideal agile team has seven to 10 developers, there are government projects, for instance, that have 4,000 developers working on them where agile is not being used, he said.
With the Scrum variant of agile, for instance, team members discuss what they did the day before and what they plan to do today, Boehm said. This certainly is not possible with a project that has 4,000 developers, he noted.
One way to address scalability with scrum is to have Scrum teams each having 15-minute meetings where they summarise what is happening. This can work if the right people are involved in a project, but scaling remains an issue, Boehm said.
Transitioning to agile can be difficult, said conference speaker Mike Cohn, co-founder of Mountain Goat Software and a founder of the Agile Alliance. He ran his first Scrum project in 1995. The transition itself should be treated as a project and include the formation of a transition team, he said.
"One of the main things we have to do is overcome resistance," he said. Cohn recalled an instance in which a human resources department resisted a switch to pairing of developers in an agile project after being presented with an argument that this would disrupt individual personnel evaluations.
He dismissed the notion that agile prevents a customer from knowing the exact scope and date of project deliverables because the same argument can be made about waterfall-based projects. Terms of contracts can be negotiated, such as providing an option to swap out development of certain functionality for other capabilities to meet a set deadline, Cohn explained.
"Nobody out there's saying agile programming is a silver bullet," Cohn said. Agile will not solve all problems but will expose problems already there, he said.
"Both of those are very dynamic. Instead of being statically typed, they are dynamically typed, so that allows you to make changes to the software a lot faster," Maximillien said.
IBM officials, meanwhile, said to expect an announcement about the company's Jazz platform for application lifecycle management at the upcoming IBM Rational Software Developer Conference 2007 event.