Agile methods are sometimes characterized as being at the opposite end of the
spectrum from "plan-driven" or "disciplined" methodologies. This distinction is
misleading, as it implies that agile methods are "unplanned" or "undisciplined".
A more accurate distinction is to say that methods exist on a continuum from
"adaptive" to "predictive". Agile methods exist on the "adaptive" side of this
continuum.
Adaptive methods focus on adapting quickly to changing realities. When the
needs of a project change, an adaptive team changes as well. An adaptive team
will have difficulty describing exactly what will happen in the future. The
further away a date is, the more vague an adaptive method will be about what
will happen on that date. An adaptive team can report exactly what tasks are
being done next week, but only which features are planned for next month. When
asked about a release six months from now, an adaptive team may only be able to
report the mission statement for the release, or a statement of expected value
vs. cost.
Predictive methods, in contrast, focus on planning the future in detail. A
predictive team can report exactly what features and tasks are planned for the
entire length of the development process. Predictive teams have difficulty
changing direction. The plan is typically optimized for the original destination
and changing direction can cause completed work to be thrown away and done over
differently. Predictive teams will often institute a change control board to
ensure that only the most valuable changes are considered.
Agile methods have much in common with the "Rapid Application Development"
techniques from the 1980/90s as espoused by James Martin and others