What is Agile Model Driven Development (AMDD)?

Agile Model Driven Development (AMDD) is, as implied by its name, an agile version of Model Driven Development (MDD), a process where models are generated before code is written.

With AMDD, agile models are created where the models are good enough to start writing the code, instead of spending too much time creating general models with MDD.

Why use AMDD over other development approaches?

  1. The agile modeling efforts allow developers to identify major areas of technical risk early in the project lifecycle, before extensive models are created.
  2. Focus is on the parts of the system that are actually going to be built.

Something to note about AMDD is that there isn’t a maintenance phase, rather there’s an iteration of the entire development process. During one of these iterations, a new feature can be added or a current feature can be optimized.

What are some advantages of AMDD?

  • More opportunities for customer satisfaction, as products will be delivered quicker.
  • Enhanced collaboration between customers, developers, and testers.
  • Adapting to changing circumstances will be easier.
  • Attention to create optimized code

What are some disadvantages of AMDD?

  • Sometimes, it may be difficult to properly gauge the difficulty of a large scale project during the beginning of the development process.
  • Lack of documentation for adequate design.
  • Typically, development is led by senior programmers, not juniors.

When would be a good time to use AMDD?

  • If there will be constant changes that need to be implemented, Agile Model Driven Development may be a better option as it gives the freedom of creating changes easily.
  • Since little planning is required, a project can get started quick with results being delivered soon after. AMDD is great for developers that need to get the process running as soon as possible.
  • A team that prefers more communication between developers and stakeholders.

Resources:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store