Agile software development is a software development methodology that forgoes a hard set of must-have application features, in favor of responding in real-time to user needs.
In practice, this means that an agile software development team treats a web application not as a fixed thing, but as a living piece of software, constantly evolving in response to new information.
Non-agile teams follow a waterfall method of software development. This means that first they decide what features they want to build, then they design the user experience of the site, and then move into development. Each step is distinct and follows the previous step, in one continuous, linear march towards product launch.
Waterfall methods of product development are common in physical product manufacturing. As you might imagine, when building a car it’s really important that you have locked your design direction before you move into sourcing the parts, and assembling the car. On the other hand, software is extremely malleable and you don’t face those same physical constraints. So it’s much easier to make updates to the design or development at every stage in the product development.
Agile software development uses a process of many, much smaller, iterative design and development loops. Agile teams start with the smallest possible feature sets for their web application, quickly step through the design and development processes, release the first version of the web app, immediately move into testing it with users, gathering feedback and bug reports, and then cycle back through the design and development process to fix mistakes and add new features, as needed. This process is sometimes called continuous deployment, since the team will continuously deploy new bug fixes and feature improvements.
Agile software development, in combination with a heavy focus on customer development, is a foundational tenet of the Lean Startup movement.
Cocktail Party Fact
Agile software development practices have been employed by software developers of all stripes for decades. That said, the term agile was coined in 2001 by a group of disgruntled software developers in the Manifesto for Agile Software Development.