This content is part of the Essential Guide: Making the Agile development model current again

Agile Software Development

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

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

How is Agile implemented in your organization?
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.
Agile is a behavior. It is a mixture of both methodologies and technology. Its a religion :)
Agreed, @Sailendra.
Hi, I need to know how I can apply Agile software development.
Is the Agile software development method better then others methodology or not?
Great article! We use agile with Kanban in every department and not only for software development. Maybe it's more a mix of Scrum and Kanban... (some people name it "Scrumban") because we have meetings about once a week to discuss progress and our tasks.
Agile implementation is quickly change the "Merchant" or "user " requirements. Earl stage of identifying the "Risk" i the application.
i think, agile still need improvement as software. there's many companies are still preferring  waterfall model, the main reason of that, it's that agile allowed you to fail and try again and that in some organisation, it's waste of time. aside to that the sprint some times taking time and that not lovely all the time, specially when we need to have quick action.


File Extensions and File Formats

Powered by: