software model driven approaches
Even if one want to see them overlapping, modeling and programming are by very nature different activities. The “IT world” does love programming, mainly because it sounds material and pragmatic, but suffers from a considerable lack of back stand on why doing these programs and why this way. Modeling brings answers, by helping to focus on the problems or on key solution principles rather than on a detailed solution. Model-Driven Architecture is an approach where modeling platform independent requirements and solution principles deliver models that can be used to produce code. I believe this approach helps building sustainable applications (or even IT systems) provided that some principles are followed.
The “MDA” term stands here for the OMG’s MDA idea, MDD, MDSD, any MDE forward approach (the lack of well established/shared terminology is a sign by itself that the technologies are not yet fully adopted).
In MDA, the application code comes from hand written code (0-100%) + generated code (100-0%). The generated code comes from generation rules applied to the application model.
IT team primary roles are: end-user, business analyst, architect and developer.
Sustainable MDA principles
The aim is to keep the thing simple, so that a whole team replacement does not makes it reverse to the “tell me what you want I will code it…” pattern.
Background: I just read “Executable UML – A foundation for Model-Driven Architecture”, by Stephen J. Mellor & Marc J. Balcer, with foreword by Ivar Jacobson. A book notably reviewed by Martin Fowler & Edwin Seidewitz. The whole forward MDE historical background is described in the foreword, the preface and the first two chapters.
Featured image taken from http://www.greenroofs.com/archives/sustainable_editor.htm