Agile programming: Beneficial, but it'll ruffle feathers

The iterative software development methodology offers tremendous flexibility, but it will leave some developers unhappy, say workshop attendees

Agile programming, in which teams build software in short iterations rather than mapping everything out in advance from start to finish, offers benefits like flexibility but poses organizational challenges as well, speakers stressed at a workshop Thursday.

During an event at IBM offices in San Mateo, Calif., speakers from the agile development space offered perspectives on benefits and issues faced when moving to an agile paradigm.

"I think the challenge, whenever we try to encapsulate a short definition of agile, is that it expands in a lot of directions," said Rich Mironov, chief marketing officer at agile consulting firm Enthiosys. "Really, it's a set of umbrella terms for a set of approaches that are going to be iterative, incremental and collaborative."

[ Related: Mock debate ponders developer methodologies. ]

Agile technologies feature more frequent delivery of smaller, valuable increments and build quality in rather than add it in at the end, according to Mironov's presentation. Active user involvement is part of the process and teams must be empowered and self-motivating. Benefits include strategic flexibility, improved team morale, deeper connection, and alignment with markets and greater profitability.

Better market alignment is achieved through more direct involvement with customers while profits can be greater because agile enables more software to be shipped at a higher quality and more product to be built with fewer resources, Mironov explained.

Agile also enables early identification of project failures, said Mironov, but he also stressed that agile will not please everyone on the development team. "I haven't seen [anybody] go through a transformation where everybody came out the other side happy," he said. "You'll lose some folks because it's not a style fit or they weren't very good and you may not fit with agile. Expect some fallout or some people who need to move to the part of the organization that's not going this way."

Meanwhile, involving remote development teams in agile projects will necessitate use of collaborative software tools.

An audience member stressed how agile can face opposition.

"My experience with agile is there's a lot of resistance to it because it's not the way we've done things before," said Ryan Grisso, software engineering manager at NetSuite, which uses an agile approach and makes a hosted business application.

Scrum, one of the more popular agile methods, was touted by speaker Johnny Scarborough, vice president of product engineering at GlobalLogic, which provides software development services.

Among the features of scrum are an agile software development framework and a "ScrumMaster," who guides the team's use of scrum as well as serving and protecting the team. No specific engineering practices are prescribed. With scrum, teams are self-organizing and cross-functional, Scarborough said. "This is a cultural change in a lot of organizations," he said.

"Scrum is about being adaptable," Scarborough stressed.

Copyright © 2009 IDG Communications, Inc.

How to choose a low-code development platform