At ITS we use the term Iterative Approach as a replacement for the term Agile which commonly and broadly represents a constellation of software development methodologies and practices.
The replacement is necessary for three reasons.
An Iterative Approach favors frequent deliveries of small amounts of scope over short time frames opposed to large releases of scope at the end of a long development process characterized by functional phase gates.
There are three key goals for favoring an Iterative Approach.
An Iterative Approach is not chaos or rushing. In order to gain the flexibility offered by an Iterative Approach, more discipline is required than a Phased Approach. This discipline comes in the form of team practices, especially management task around the iteration. Standards and models are also important because they serve as centerpieces for conversations between team members; however, documentation should never replace conversation.
An Iterative Approach does not promote shoddy quality. An Iterative Approach embraces responsible change in response to business needs not bugs. “Fail Fast” does not mean “Get Junk Out”. “Fail Fast” means find problems sooner by getting better information or informing decisions with tight feedback loops on actual product.
An Iterative Approach is not mutually exclusive with User Centered Design (UCD). Iterative Approaches and UCD work well together since both approaches are both focused on providing quality business value. The trick is to have the UCD efforts work one or two iterations in front of development doing starting with a small upfront design that communicates the overall vision for the user experience and then creating more detail as needed.