Agile MDA is based on the notion that code and executable models are operationally the same. It employs executable models so they may be immediately tested and verified by running them, which provides for immediate feedback to customers and domain experts from running models.
Agile MDA addresses the potential conflict between MDA and agile methods, which propose to address the problems associated with the "verification gap" (which comes about when one writes documents that can't be executed) by delivering small slices of working code as soon as possible. This working functionality is immediately useful to the customer, who can interact with it; this might result in improved understanding on the customer's part of the system that needs to be built. As these delivery cycles can be short (say, a week or two), the system's development process is able to adapt to changing conditions and deliver just what the customer wants.
Each model necessarily conforms to the same metamodel, because all models are equal there are no "analysis" or "design" models. Models are linked together, rather than transformed, and all of them are then mapped to a single combined model that is subsequently translated into code according to a single system architecture.
We expand the discussion of agile MDA in Chapter 10.