Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.
It works by breaking projects down into little bits of user functionality called user stories, prioritizing them, and then continuously delivering them in short two week cycles called iterations.
agile in a nutshell
To be agile merely means to be quick. The definition of the word is rather easy to understand; however, quick is a comparative term used to describe the “degree of comparison between similar adjectives” (i.e., good or better). In other words, the word “quick” is appraised by comparing it to other adjectives with similar meaning with an end result that has the potential to be highly subjective. The assessment of the word “quick” is relative and is based on individualized perceptions. The best way to describe “quick” as it pertains to agile project management is “quicker than traditional project management methods.” Agility refers to the capability to think and reach conclusions quickly.
Agile development is based on iterative incremental development, in which requirements and solutions evolve through team collaboration. It recommends a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a theoretical framework and does not specify any particular practice that a development team should follow. Scrum is a specific agile process framework that defines the practices required to be followed.