Dienstag, 3. Januar 2023

Model Driven Architecture ist tot

 Model Driven Architecture (MDA) und alle Verwandte sind seit den fruehen 2000er tot. Trotz viel Energie, Enthusiasmus, Zeit und Geld die in MDA Projekte geflossen sind, gibt es zwei Erkenntnisse: MDA ist sicher tot und UML ist sinnvoll zur Beschreibung von Software-Konzepten.

Weil es scheinbar zu wenige Senior Software Developer gibt, gibt es Heute MDA Zombies. MDA ist von den Toten auferstanden in Form der Generierung von Klasssen aus YAML Schnittstellenbeschreibungen die dann z.B. über Micro Services geteilt werden.

Bei genauerem Hinsehen sieht man, dass dieser Ansatz auch nicht funktioniert. Er hat folgende Nachteile:

  1. Aenderungen an der Schnittstelle fuehren zu aufwendigen Abstimmungsprozessen die multiple Teams, oft das ganze Projekt, einbeziehen. Das ist sehr, sehr teuer.
  2. Kein Team ist in der Verantwortung, shared  whatever sind gut Beispiele fuer Verantwortungsdiffusion.
  3. Selbst wenn ein Team Zeit fuer die Wartung aufwenden moechte, so werden die Kommunikationskosten zur Aufgabe fuehren.
  4. Weil sich die Softwareanforderungen aendern die Schnittstelle aber in Beton gegossen ist, fangen die Entwicklerteams an der 'offizielle' Schnittstelle vorbei zu arbeiten. Sie haben gar keinen anderen Weg.

Was lernen wir daraus:

  1. MDA in allen Varianten ist teuer und ineffizient.
  2. MDA ist das Gegenteil von agiler Softwareentwicklung .
  3. Share Nothing ist und bleibt eine Grundlage fuer agile Softwareentwicklung
  4. Die Entwicklung von (shared) Bibliotheken ist deutlich anders zur Entwicklung normaler Micro Services.

Keine Kommentare:

Kommentar veröffentlichen