Agile software development (rapid application development RAD) describes a set of values and principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. These principles support the definition and continuing evolution of many software development methods.
The term agile (sometimes written Agile) was popularized by the Manifesto for agile software development, which defines those values and principles. Agile software development frameworks continue to evolve, two of the most widely used being Scrum and Kanban.