Model-driven development (MDD) differs from model-based development and asks for agile development practices. It requires a standardized architecture to guide modeling and implementation, and specialized tools for defining modeling languages, transformations, and generating code. MDD leads to new roles for meta teams who build modeling tools and project teams who use these tools to develop applications. It has the potential to better align business and IT but also faces resistance due to the costs of learning and maintaining modeling tools.