Agile software development
Agile software development is a group of software development methods based on iterative and incremental development , in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams . It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen tight iterations throughout the development cycle.
Iterative and incremental development
Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for software development. The combination is of long standing [1] and has been widely suggested for large development efforts. For example, the 1985 DOD-STD-2167 [2] mentions (in section 4.1.2): "During software development, more than one iteration of the software development cycle may be in progress at the same time." and "This process may be described as an 'evolutionary acquisition' or 'incremental build' approach." The relationship between iterations and increments is determined by the overall software development methodology and software development process . The exact number and nature of the particular incremental builds and what is iterated will be specific to each individual development effort.
It follows a similar process to the plan-do-check-act cycle of business process improvement .