Definition

Agile Software Development

This definition is part of our Essential Guide: Why -- and how -- BizDevOps is going to change everything

In software application development, Agile is a methodology that anticipates the need for flexibility and applies a level of pragmatism into the delivery of the finished product. Agile requires a cultural shift in many companies because it focuses on the clean delivery of individual pieces or parts of the software and not on the entire application. 

Agile has replaced Waterfall as the development methodology of choice in most companies, but is itself at risk of being eclipsed or consumed by the growing popularity of DevOps.

Twelve principles of the Agile Manifesto

In 2001, 17 software development professionals gathered to discuss concepts around the idea of lightweight software development and ended up creating the Agile Manifesto. The Manifesto outlines the core values of Agile, and although there has been debate about whether the Manifesto has outlived its usefulness, it continues at the core of the Agile movement.

Included in the Manifesto are concepts that were revolutionary at the time, including the emphasis on people and communication, rather than on processes and tools. Other key parts of the Manifesto include working directly with and satisfying customers, breaking all work down into small chunks, meeting daily to ensure work is on track and being open to changes even at the very end of the process.

Types of Agile methodologies

In any Agile environment, it is likely there are several Agile methodologies being used. One of the oldest of these is extreme programming, which is based on the idea that for successful development to happen quickly, testing must be done regularly. In many cases, the tests must be written even before the code.

Agile software development cycle

Another Agile methodology that is widely used is Scrum. Scrum brings everyone on the team, including the business stakeholders, together to agree on features. Then, specific goals are set for a 30-day sprint, at which point the agreed-upon software is delivered.

Some Agile proponents emphasize Lean development, or Lean programming, which strips software development down to the basics. Feature-driven, test-driven or behavior-driven development can also be used in an Agile environment, depending on the needs of the organization.

Advantages of Agile

Much has been compared over the years with Agile versus Waterfall approaches.

In the Waterfall era of software development, coders worked alone, with little to no input before handing the software to testers and then on to production. Bugs, complications and feature changes either weren't handled well, or were dealt with so late in the process that projects were seriously delayed or even scrapped.

The idea the behind Agile model, in which everyone -- including the business side -- stayed involved and informed in the development process, represented a profound change in both the culture and a company's ability to get better software to market more quickly.

Collaboration and communication became as important as technology, and because the Agile Manifesto is open to interpretation, Agile has been adapted and modified to fit organizations of all sizes and types. The Agile cultural shift also paved the way for the latest software development evolution, DevOps.

Disadvantages of Agile

Many would say the biggest disadvantage of Agile is the fact it has been modified -- some would say diluted -- by many organizations. This phenomenon is so widespread that the "Agile my way" practitioners are known as "Scrumbuts," as in, "We do Scrum in our organization, but...".

Although Agile opens up the lines of communication among developers and the business side, it's been less successful bringing testing and operations into that mix -- an omission that may have helped the idea of DevOps gain traction.

Another potential concern about Agile is its lack of emphasis on technology, which can make it a difficult sell the concept to upper managers who don't understand the role that culture plays in software development.

This was last updated in June 2017

Continue Reading About Agile Software Development

PRO+

Content

Find more PRO+ content and other member only offers, here.

Join the conversation

4 comments

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

How is Agile implemented in your organization?
Cancel
Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams

In simple word step by step...
Cancel
Agile is a behavior. It is a mixture of both methodologies and technology. Its a religion :)
Cancel
Agreed, @Sailendra.
Cancel

-ADS BY GOOGLE

File Extensions and File Formats

Powered by:

SearchMicroservices

TheServerSide

SearchCloudApplications

SearchAWS

SearchBusinessAnalytics

SearchFinancialApplications

SearchHealthIT

Close