MDD1 (model-driven development) is a development approach for implementing powerful, high quality information systems very quickly, reducing their development, testing, and maintenance costs, and accelerating their delivery. This approach is characterized by a separation between the model and its technological implementation. This separation becomes even more relevant as the number of computer devices and their operating system increase with the explosive growth of mobile platforms. In the MDD approach, the model remains independent of technology.
MDD tools, such as Rep++, facilitate the development of applications and services that respect the division between the model and its implementation as promoted by MDD. Here are four practical reasons to use them.
Reason 1: Accelerate development
According to Gartner2, MDD tools reduce manual coding by 2-15 times.
MDD significantly helps close the gap between business needs and their technical implementation with its technology-independent model and the speed at which it can implement those needs. Rather than hard-code applications and services, the MDD approach makes use of a model from which most of the coding is automated. MDD tools help you align development with your business needs much faster. n addition, according to a Forrester® Research report3, a new generation of MDD tools is now using model execution instead of code generation to translate the model into applications: the metadata and definitions contained in the model are used to directly create functional applications. Model execution also ensures that applications are updated in real-time, increases flexibility in their design and maintenance stages, and increases productivity even more.
Reason 2: Increase the quality of your applications
MDD tools increase application quality in several ways.
- MDD tools integrate and reinforce the principles, practices, and architectural application standards that your organization put in place. Because the model is separated from other technological constraints, and because the different aspects of design development are judiciously isolated following the separation of concerns principle, the model execution mechanism strengthens your organizational standards with respect to architecture, technology and security, and facilitates the implementation of best practices: your applications therefore intrinsically meet your standards. Separation of concerns also facilitates the evolution and migration of technologies.
- The information stored in the model is vital to the automation of services and applications. In fact, it ensures their documentation. The model is therefore a powerful information system that documents and manages your applications and services.
- MDD tools' built-in templates implement and reinforce your standards of presentation, interaction and architecture.
- Much of the manual and repetitive coding is eliminated. Your highly trained professionals can concentrate on implementing the core business requirements and mentor less experienced programmers.
- Applications are richer, because the model can be defined more consistently, in more detail.
- Applications and services are much more stable and less likely to contain coding errors since much of the code is automated. This stability results in a significant reduction of technical tests, bringing the focus on functional validations and tests.
- The functional aspects are also more stable and less prone to errors. The technology-independent model of the MDD approach, along with the responsiveness that it provides, make you and your developers better equipped to meet the requirements and evolutionary changes of your customers.
Reason 3: Accelerate your ROI on your development projects
For many organizations, time to market is a critical differentiator. By accelerating the development cycle, MDD tools can significantly shorten the implementation deadlines of your systems and, ultimately, help achieve substantial savings. In a Forrester® report4 published in June 2014, the authors observe "…Realize that Agile is necessary but not sufficient for rapid delivery. In the era of empowered customers, AD&D5 teams need to look beyond Agile methods to cut time-to-market."
According to another Forrester® report6, the costs of maintenance and support of IT divisions represent 55% of total budget application. For its part, Gartner7 estimates that optimization could help cut 50% off the costs of development and maintenance. The MDD approach, automation and reduction of testing can significantly reduce the efforts and resources usually attributed to the support and maintenance.
With the multi-tier architecture and separation of concerns that the MDD approach provides, applications and services can evolve and keep up with technological trends without rewriting or migration.
Reason 4: Make your organization more agile
- MDD tools allow most programmers to create high-quality applications and services, decreasing the need to recruit high-level programmers that are as rare as they are specialized. By automating much of the code, you limit the production of bad code and, therefore, the time spent testing and debugging it.
- The prototyping capabilities of MDD tools, along with the elimination of most of the coding of an application's generic operational features, enable you to validate more quickly your clients' needs and hence reduce the risk of misunderstanding. Your sprints are shorter and more efficient, and your costs are lower.
- The model ensures standardization and consistency between all phases of the development cycle. From design to maintenance, through coding, documentation, testing and execution, this approach is directly in the agile approach, where the transition from one stage to another (the sprints) should be as fast and effective.
- The model execution mechanism reduces the risks induced by the agile approach in medium to large scale projects, especially when many stakeholders or teams must work together. Sharing the model between teams ensures the integrity of deliverables regardless of the stakeholders and becomes a significant factor for success.
- Your business processes are integrated much faster in your information systems, allowing you to save on operational cost; you can then reallocate those savings to other business priorities.
- Your systems are better documented and easier to comprehend. Understanding thousands of lines of undocumented code is challenging and time-consuming, but understanding a model is much simpler. In times of scarcity of high-level professionals, MDD tools help you enhance the expertise of your team as well as increase your level of autonomy, even the security of your systems.
1. This approach is also known as model-driven software development (MDSD), model-driven architecture (MDA) or architected rapid application development (ARAD).
2. Blechar M. and Hotle M. "ARAD Methods and Tools Improve Productivity and ROI," Gartner report, 11 October 2004 (G00123515).
3. Rymer, J.R. The New Productivity Platforms – Your Solution To The AD&D Crunch, Forrester Research, 8 November 2011.
4. Richardson, C., Rymer, J. R., et. al. Development Platforms Emerge for Customer-Facing Applications. Firms Choose Low-Code Alternatives for Fast, Continuous, And Test-And-Learn Delivery. Forrester Research, June 9, 2014.
5. Editor's note: Application Development and Delivery.
6. Forrester Research, State of the Enterprise Software and Emerging Trends Report.
7. Gartner Application, Architecture, Development & Integration Summit 2013.