Raise your level of abstraction
Here is the video of my talk: [apparantly the embed function doesn't work... follow this link for the video]
You can find an article about the talk and the slides in this blog article: "Why there is no future for Model Driven Development".
I'm curious to learn your opinion about this subject! What do you think about the future of software development? Is there a future for MDD? Join the discussion in the comments!
Your conclusion was that "we need Agile Application Lifecycle Management", and it is assumed by your speech that MDD cannot deliver/support that.
However, I disagree. Application lifecycle management can be model-driven... But I'm biased, of course :).
> Model Driven Development is necessary, but not sufficient!
Very good - agreed. There is of course the whole business side of the game (management support, compentency, awareness and acceptance etc.etc.), the need to overcome the "business/IT gap" mentality, more technical means to solve several still open problems, not at last the whole infrastructure/deployment part you mention.
What I don't really get is, why you separate MDD from MD Evolution. MDE is the ultimate goal of MDD, isn't it? My model must be able to evolve, yes, but that's the whole purpose of the MDD idea. It's never been intended as a "one shoot" solution. Can you explain what you have in mind with this separation?
> Agile Application Lifecycle Management
Lately we introduced the technical term "Application and Process Management System" in analogy to "DBMS is for operating databases" -> "APMS is for operating applications & processes". Stick the today-obligatory "Agile" in front of it, and we're quite in sync...
Hi Andreas and Rui,
I mostly distinguish between software development and software engineering, the latter including elements like requirements gathering, maintenance, and evolution. However, that’s just semantics…
I’m not saying model-driven techniques are only valuable for creating new systems. I think MDD is (in most cases) too much focused on creating new system, focused on the development part only. But… I think we’re on a turning point. As MDD is becoming mature it’s time to look at other aspects of software engineering. We should use model-driven techniques to support all phases of an application lifecycle.
Cloud deployment, models at runtime, and the combination with agile project approaches will help a lot to reach the full potential of Model Driven Development (or Engineering if you want ;) ).
I do agree that "use model-driven techniques to support all phases of an application lifecycle" and I think it is necessary to define what the model-driven mean? The relationships amongst the model-driven and model-transformation, model-execution, model-interpretation...
I think that there is a future for MDD. Nowadays code generation is already a reality, generic modeling languages are growing in details, it is easier to create and use domain-specific languages, many tools related to MDD were developed and they continue evolving and Software Engineering approaches that explore the advantages of MDD are already being defined.
I believe that we will never leave manual programming totally. However, MDD, together other techniques of software reuse such as components, frameworks and services, will make manual programming to be applied just to complete and refine the applications.
Not sure how bright the future is for MDD but I have been working on a system that inputs UML or RDFS and a puppet style configuration and emits an admin style web app where the front end is written in Google Closure that talks XMPP to a Java based back end (also generated). While MDD may not be headed for world domination, it certainly isn't dead either.
If you can relate to Gartner-esqe hype cycle diagrams, I would imagine that MDD is somewhere between trough of disillusionment and slope of enlightenment.