by Glenn B. Lawler
What is Agile Software?
Agile Software development is a general term for a number of non-conventional software development methodologies. While the term Agile came into widespread use around the year 2000, the principles of Agile Development have been practiced by individual companies and developers for many years.
The American Heritage Dictionary defines Agile as:
1. Characterized by quickness, lightness, and ease of movement; nimble.
2. Mentally quick or alert: an agile mind.
While specific agile methodologies achieve agility using different techniques, nearly all have the same ultimate goal:
The rapid development and delivery of working software.
Conventional software development methodologies emphasize planning. The primary reason for this emphasis is that conventional software code production (that is, people writing programs) is a very time consuming, error-prone process. A change to the specifications of a project can lead to rewriting major portions of the software code. In extreme cases, the entire project may need to be rewritten from scratch. With that much at stake, the planning phase of the project must be as complete and flawless as possible. Planning like this takes a great deal of time. So does the conventional code production. The end result is that projects are often obsolete before they are even deployed.
Conventional software development methodologies emphasize documentation. This goes hand-in-hand with planning. The work product of a plan is a planning document. This documentation serves a communication role on a number of levels. The Planning Document communicates the plan to those who participated in the planning as well as those who will approve the plan and those who ultimately make use of the software.