Software Development Methods - Agile

Agile Software Development

Agile is a common approach to developing software. The term agile was initially adopted in 2001 during a meeting of 17 supporters of a lightweight development process in Snowbird, Utah , as a contrast to traditional plan-driven development. The meeting resulted in introducing the Agile Manifesto, which includes 12 core values that guide the principles of agile software development. The fundamental tenets of the Agile Manifesto ideology are that (a) individuals and interactions are valued over processes and tools, (b) working software is valued over comprehensive documentation, (c) collaboration with customers is more important than contract negotiation, and (d) responding to change rather than a defined a project plan. The agile approach to software development consists of self-organized teams with a focus on collaboration and communication. 

Agile provides flexibility not found in typical waterfall methodologies. Agile traditionally incorporates extensive user involvement in the development process, a light touch by management, and short development cycles, continuous releases, and rapidly evolving requirements. Agile software development is characteristically iterative, with incremental development cycles and close communication with customers and end users. The agile process has gained full acceptance among development teams in the management and construction of software.