An umbrella term for iterative, incremental software development methodologies. Agile methodologies include Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean, and Feature-Driven Development (FDD). Agile methodologies arose in opposition to the traditional, phase-driven “Waterfall” development method, which emphasizes top-down project management, “big design up front,” silos for architecture and design, coding, and testing, and extensive documentation. Agile methodologies share an emphasis on small teams delivering small increments of working software with great frequency while working in close collaboration with the customer and adapting to changing requirements.
The term “Agile” was first used by a group of Software pundits who gathered at a ski lodge in Snowbird, Utah for the express purpose of naming and defining the greater movement in which they deemed themselves to all be participants. The original invitation to Snowbird went out to those interested in “lightweight” development frameworks. The attendees agreed that they didn’t like the negative connotations of that term, and agreed to adopt the term “Agile.”