Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

FAQ: Agile practices and their role in software development

Companies are increasingly using Agile practices to improve software project outcomes. Learn more about Agile here, from Scrum to Extreme Programming and more.

Agile practices, which emphasize iterative software design and development, allow teams to release software features at frequent intervals. The Agile methodology thus differs from the more traditional waterfall model, which involves gathering all requirements up front and delivering one finished software application at the end. In these changing business times, some companies have converted from waterfall to Agile because of its flexible processes and ability to continuously improve products during the development lifecycle.

Using Agile practices, companies also spend less money on functionality. According to Dave West, senior analyst at Forrester Research Inc., 50% to 70% of all software requirements are barely used. Agile allows cross-functional teams to build the first 10% of requirements -- those that offer the most business value -- and then ask the project sponsor what else they want to add. Doing software development this way, "companies spend a lot less on functionality," said West.

In this FAQ, read more about the various types of Agile methodologies, what tools are available and how Agile is used for architecture projects.

Why do companies use Agile?

There are three drivers for Agile adoption in the enterprise, according to West. The first is the frequency of release. Using Agile practices, companies can deliver faster and more frequent releases of their products.

Second is the desire to make midcourse corrections. Historically, companies plan long-term programs that can take 18 months to two years to complete. Agile gives you the ability to continuously monitor where your project is going and make necessary changes to the plan during the process, not at the end.

The third and final driver for adoption is improved relations with the business. By using Agile practices, the IT organization can work in better rhythm with the business. "IT has always been long-term and the business short-term," said West. Agile allows IT to still plan for long-term projects but deliver short-term results to the business.

What are some of the obstacles to Agile?

The people who are the most resistant are often those who are afraid of losing control or their current status, according to Elisabeth Hendrickson, founder and president of Quality Tree Software Inc. in Pleasanton, Calif. "Command-and-control managers who really love to micromanage do not do well in an Agile context, where teams are self-organizing," said Hendrickson. "In addition, the very senior developers who like being the 'hero' or the 'architect' who makes all the design decisions often resent the extent to which Agile emphasizes the whole team success over individual heroism."

Agile also doesn't work well in environments where every decision must go before a committee for approval. Agile emphasizes quick decision making.

Are there different types of Agile?

Yes. "Agile" methodologies include Scrum, Extreme Programming (XP), Crystal, Dynamic Systems Development Method, Feature-Driven Development and Lean software development. The most popular today are XP and Scrum.

Extreme Programming promotes increased customer involvement, rapid feedback loops, continuous testing and planning, and teamwork. This type of Agile process encourages simplicity and strives to improve software projects in five ways: communication, simplicity, feedback, respect and courage. Scrum, on the other hand, is a lightweight project management framework that defines a minimal set of process elements, including a prioritized product backlog, a sprint planning meeting, a daily Scrum (meeting), the role of the product owner and the role of the ScrumMaster to effectively manage and control iterative and incremental projects.

Methods like Extreme Programming and Scrum provide proven sets of practices that, if done well, offer the benefits of Agile, according to Hendrickson. "However, to me the thing that makes a team truly Agile isn't the methodology they adopt but rather the results they achieve," said Hendrickson. "In fact, the most successful Agile teams I've seen are combining the project management practices from Scrum with the engineering practices from Extreme Programming."

Do I have to adopt Agile for every project?

You can use the Agile methodology in your organization without using it on all projects. The ability to use it often depends on the situation and environment you're in. For instance, if you have various office locations or subcontractors working on the projects, that changes the way you manage and develop projects.

Some organizations take a hybrid approach to Agile, adopting a bit of Scrum, lightweight project management methods, XP and even some ideas from the waterfall method for a particular project.

You can even have an Agile function within a larger project that is not being done in Agile, per se. The team is what's essential with Agile. "You have to look at the really large-scale benefits of Agile," said Miko Matsumura, chief strategist at Software AG, an enterprise software company. "Being able to solve complex problems that are out of reach using traditional methods -- that's what Agile does."

Are there specific Agile tools?

Yes, there are specific Agile tools, but they aren't required to use the Agile methodology. However, not all traditional project management and other tools work well with Agile.

"Traditional project management, requirements management, test management and test automation tools are, however, generally a bad fit for Agile teams," cautioned Hendrickson. "They make too many assumptions about workflow that are based on a waterfall model, they are too cumbersome, and they get in the way more than they help."

Some companies configure their own existing tools in an Agile way. And others use index cards and sticky notes to follow the methodology.

"We use a lot of open source tools for implementing Agile," said Matsumura. "They tend to go hand in hand." For example, Matsumura's development group uses JIRA software to help with things like requirements management, collaboration and unit testing.

Service-now.com has an ITIL-based tool that includes release management and feature management tools that can be used with Scrum. Many other vendors, including Compuware Corp. and Hewlett-Packard Co., are bringing out configurations of their tool sets to be more Agile-like.

  • Read about more evolving Agile tools.

Can Agile work for architecture projects?

"In general, there are very few Agile projects that do not see the value in architecture," said Forrester's West. "So, increasingly, we are seeing architecture work get delivered in an Agile way."

According to the Forrester report "Balance Architecture And Agility To Sustain Value Delivery," released in July, enterprise architects and Agile teams don't always see eye to eye on control and governance issues around architecture changes. Therefore, West advises that organizations balance the short-term delivery focus of Agile with the long-term architecture priorities. To make this happen, he suggests the following:

  • Introduce a Lean enterprise architecture discipline to deliver work products that are most appropriate for the project's audience.
  • Improve collaboration by including an architect on the Agile development teams.
  • Use the right type of architecture to solve priority problems. Make business value a driver for all architectural decisions.
  • Integrate business and architectural roadmaps.

Dig Deeper on Enterprise application development, DevOps and software agility