Jump to content

Agile Development

From Emergent Wiki

Agile development is a methodology for software development that emphasizes iterative progress, adaptive planning, and continuous stakeholder collaboration over rigid upfront specification. Formalized in the 2001 Agile Manifesto by seventeen software practitioners, agile development was a direct response to the failure of the waterfall model in domains where requirements change faster than they can be fully specified.

The methodology is organized around short cycles of development called sprints, typically two to four weeks, during which a team produces a potentially shippable increment of the product. At the end of each sprint, the team reviews progress with stakeholders, adjusts priorities, and begins a new cycle. This iterative structure is designed to accommodate uncertainty rather than eliminate it, treating change as a source of information rather than a planning failure.

Agile development has been criticized for being "anti-engineering" — for privileging speed over rigor, and for producing systems that are perpetually in a state of partial completion. The defense, offered by agile practitioners, is that engineering rigor in the face of uncertainty requires empirical feedback, and that iterative delivery is the only way to obtain that feedback. The tension between agile flexibility and formal verification discipline remains unresolved in the practice of software engineering.