There are many Agile methodologies:
Extreme Programming (XP)
Scrum
Dynamic System Development Method
Crystal Method
Feature-Driven Development
Lean Development
Adaptive Software Development
Agile methodologies are all based on iterative-incremental processes, but with very short iterations (weeks rather than months). Working software is released at the end of every iteration and is the principle measure of progress. Agile methodologies also emphasize close communication with stakeholder. See The Agile Manifesto for more details.
Agile methodologies are also called adaptive and are usually contrasted with predictive methodologies. Predictive methodologies, like the Rational Unified Process (RUP), emphasize planning. Every feature and every activity is specified and scheduled early in the process. Predictive methodologies can be slow to adapt to changes. Predictive methodologies may also emphasize documentation and big upfront designs. Another important difference between adaptive and predictive methodologies is cultural. Predictive methodologies are often highly regulated, regimented, slow, and bureaucratic.
AMDD is the agile version of MDA. AMDD drops the requirement that models be formal and complete. Instead, models only need to be good enough to reach the real goal: the next release. AMDD often eschews the use of CASED tools in favor of a digital photograph of a diagram drawn on a white board.
AMDD is an agile, model-driven,
iterative-incremental process:
Notice that there is no maintenance phase in
which new features are added to the code. This is because our process iterates
until the system is retired or aborted. New features can be added during any
iteration.
Implementation is actually a macro-phase
consisting of a number of micro-phases:
Model-driven development means that code and
tests are derived from (UML) models.
Agile development means that design is
deemphasized. Design inadequacies can be corrected by refactoring. Models are
only good enough to serve their purpose. Details are left to code. Often the
models are discarded after they have served their purpose.
Agile development is often test-driven, which
means that tests are implemented before requirements are implemented. The code
is only good enough to pass the tests and is refactored
to accommodate new tests.
Iterations are short in agile development,
typically one or two weeks. Deadlines never slip, although promised
requirements may not make the promised release.
Agile development assumes stakeholder
participation. The customer decides which how requirements should be
prioritized.
http://www.wrytradesman.com/articles/IntroToAgileMethods.pdf