Agile Methodology

Agile Methodology is an incremental, repetitious means of managing projects; particularly in the field of software development. These iterations, or sprints, give project managers many opportunities to evaluate and change the project during its lifecycle as well as keeping the end user informed and involved in development.

Agile Architecture
Image source: http://blogs.msdn.com/jmeier/archive/2008/11/06/agile-architecture-method.aspx

An idea conceived in the early 90's, Agile Methodology was built upon the foundations of the traditional waterfall sequential methods of the 1970's. Sequential development was first outlined by Dr Winston Royce. His theory was that software systems development could be equated to a production line, where each phase must be planned and carried out before moving onto the next. This means all of the planning must be done before any code or database is even written, therefore the system can be outdated or even obsolete by the time it is finished.

In the late 1970's and throughout the 1980's, several Japanese companies began using phased program planning in new product development. This took the waterfall method and overlapped the phases meaning each phase would begin, in order, but continue to be revisited throughout the project until the project reached the final phase where they would be finished in sequence in a short space of time. This led to just-in-time manufacturing and eventually agile software development.