Agile software development is an iterative approach that promotes adaptive planning, evolutionary development, rapid response to change, and close collaboration. It values individuals and interactions, working software, customer collaboration, and responding to change over processes, documentation, contract negotiation, and following a plan. The Agile Manifesto introduced these values in 2001 to provide an alternative to failure-prone processes. Agile methods help teams deliver working software frequently in short iterations to better satisfy customer needs.