Hans de Visser on July 2, 2014
If you are looking to rapidly build, integrate and deploy web and mobile applications, there is a diverse spectrum of aPaaS (application platform as a service) solutions to consider, ranging from platforms focused on coding to high-productivity platforms focused on model-driven development (MDD).
In the high-productivity aPaaS category, targeted at rapid developers, you find multiple offerings that apply MDD principles in some form or shape.
Some vendors combine MDD with Code Generation with the goal to increase developer productivity. Others use MDD for simple apps and mix that with coding in a programming language for more complex parts of the application. All these approaches end up providing incremental productivity gains but miss the real opportunity that comes with MDD.
MDD’s true potential comes to light if it is not merely addressing the productivity issues of traditional coding methods. The key is to solve a way more fundamental issue: closing the gap between Business & IT and addressing the App Delivery Challenge.
According to the Standish Group, 94% of large IT projects are either “challenged” (i.e., over budget, behind schedule or didn’t meet user expectations) or fail together. Of those that fail, 71% do so because of poor requirements management, notes CIO magazine.
History has shown that improving developer productivity alone has only marginal impact on the success of IT projects. To deliver better software faster—particularly those innovative apps dependent on knowledge residing in the business—organizations must finally make IT/business collaboration a reality.
This calls for an approach where MDD becomes part of the full app delivery cycle, starting with capturing the requirements, followed by iterative design, development and deployment. Modern application platforms do not only support the development phase of an app project, but go all the way and make the model the application, by combining MDD with Model Execution.
The Mendix Platform is uniquely designed to close the gap between business and IT and foster collaboration throughout the whole app delivery lifecycle. As a consequence, we have made some key architectural choices, for example model-driven design and execution to support rapid change cycles, flexible application monitoring, controllable app extensions and built-in security meeting the most stringent standards.
In order to involve the business in the design and development of applications to a level where users can actively participate, we have fully adopted a Model-Driven Development (MDD) approach. MDD provides an excellent communication mechanism to align business and IT stakeholders, thereby ensuring greater quality and more successful outcomes.
Model-Driven Development has emerged as one of the leading approaches for enabling rapid, collaborative development. Because it uses visual models for defining data models, application- and process logic, user interfaces, etc., MDD empowers both developers and business users to rapidly build applications, without the need for labor-intensive, low-level coding. Consequently, it’s significantly faster than traditional programming languages like C# and Java.
The Mendix approach to MDD is to ensure that the graphical models can be understood and co-designed by business stakeholders. This is critical for the success and adoption of apps. In this context, choosing the right level of abstraction for the models is of the essence. On the one hand, business stakeholders should be able to really understand the models and influence the design. On the other hand, developers should be able to extend the models for the technical implementation to make them work. One example would be binding REST services to the process model to leverage a cloud based data service. This is why Mendix adopts industry standards like BPMN to model application and process logic. It’s a standard that is widely adopted in our industry.
The risk is that if MDD is applied on too low of an abstraction level with a proprietary modeling notation, it basically only supports developers to be more efficient, and still requires deep technical skills, including extensive knowledge about SQL to approach databases, defining transaction scope, and more.
A key differentiator is that the Mendix Platform executes the models in the runtime. This contrasts to the approach of generating code (e.g. Java or .NET) from the application model in order to run the app. The challenge with code generation is that it’s inflexible and results in maintainability challenges and causes more hassle to cover security, scalability and performance requirements.
The Model is the Application: 9 Key Advantages
Considering that a significant portion of the Total Cost of Ownership (TCO) of applications actually comes after initial go-live, the Mendix approach to MDD and Model Execution translates to substantial savings and gains in agility and flexibility for application change cycles.
Prominent industry analysts recognize the advantages of model execution. Below is Forrester’s view on the evolution of development tools / platforms from classical coding to metadata (model) execution.
“Most of the new productivity platforms employ an underlying technology we call metadata execution to provide great flexibility in designing and maintaining applications. Simply put, the tools output definitions, not code, and the definitions are then interpreted by the platform to create the running application. Metadata definition is far more flexible than code generation, the productivity technique that preceded it.”
Forrester Research, The New Productivity Platforms – Your Solution To The AD&D Crunch
Looking at the advantages of MDD and model execution, you may wonder how this translates to business benefits. Fundamentally, we believe that this approach helps to bring business and IT together. Too many IT projects fail due to the lack of business and IT collaboration, not so much because of lack of productivity.
Our focus is to actively involve business stakeholders in the process of design and development through models that can actually be understood and co-designed by non-technical people. Collaboration also calls for a highly iterative approach and instant feedback mechanisms in every stage of the lifecycle.
This is essential to build better applications faster.
Mendix is the only application Platform as a Service provider that supports the full app delivery lifecycle natively in the platform.
Vendors that come from a more traditional approach, and haven’t made the step towards model execution, will want to make you believe that model execution in the runtime leads to vendor lock-in.
The truth of the matter is that every application platform, except for the most primitive technologies, has lock-in aspects. Application development teams are making a technology choice and are committing resources and know-how to this technology – effectively locking the team into the use of that technology for a period of time. Generated code, for example, is dependent on multiple libraries that the vendor adds for platform services. Should you want to migrate off these offerings, are you really able to maintain and extend applications that no developer has actually “developed” and takes ownership in? And how would you deal with generated code for the non-functional aspects of an application like security, scalability, performance and monitoring without the supporting platform? Just getting access to your code is not a remedy to avoiding lock-in as you’ll probably end up with a “don’t touch” black-box application.
From that perspective, it’s more relevant that vendors adopt open standards, so that migration becomes easier and lock-in is addressed at the source. For instance, Mendix does the following:
Should a customer want to move away from Mendix, there’s no better starting point for re-platforming than taking the model as documentation and exporting design artifacts. They’re guaranteed to be complete, accurate, and up-to-date.
While code generation has its merits, it is a legacy approach that offers only incremental productivity gains for programmers, without addressing the fundamental app delivery challenges that have plagued companies for decades.
Model execution, supersedes code generation, and represents an entirely new way to build and deploy applications that actively involves the business throughout the entire app delivery lifecycle. When the model is the application, companies can focus on solving business problems, without getting bogged down in technical details. The result is faster time to market, greater business agility, and immediate and lasting business impact.
Mendix has been designed from the ground up based on the principle that the Model is always the Application. The best way to explore the power of Mendix is to start using it by signing up for our free Community Edition.
Receive Mendix platform tips, tricks, and other resources straight to your inbox every two weeks.