Model Driven Delivery reducing the time and cost of software development Thursday 3rd February
A model is a description of something that focuses on some aspects of interest and leaves out irrelevant ones. A model of a house, for example, may be an engineering drawing focusing on the structural aspects and leaving out aesthetics, materials, plumbing, wiring etc.
In software, models are used to capture the different aspects of an application, for example process, data, rules, user interface, usually before it’s built. Our models are a bit like engineering drawings and our program code is the bricks and mortar used for construction. Modelling is key to building quality software, as it allows us to understand and design what we have to build before we start coding, avoiding mistakes and rework.
Model Driven Delivery (MDD) is a relatively new discipline in software development. The idea is that, since software is not solid matter like bricks and mortar and can be generated by other software, it should be possible to translate models into code automatically, or even to execute models directly, reducing the need to hand-craft code in languages such as Java and C#. This has the potential to drastically reduce the time and cost of software development.
The trend towards automatic generation of code is visible in a number of programming environments such as Eclipse, where generators exist for various parts of applications, such as database schemas, user interfaces, web service descriptions, etc. Developers often use visual tools to describe what they need, and the generator does the rest. With MDD, this trend extends to the guts of the application, including process, data and interfaces.
In order for this to be possible, models must be precise and complete. Producing models with these qualities is not as easy as producing descriptions meant only for human consumption, for example functional or use case specifications written in English. It demands the ability to be precise and abstract at the same time.
MDD facilitates agile development, allowing the same people who capture the requirements to develop the solution. With MDD tools becoming mainstream, the barrier between business analyst and developer roles will fall. The new agile application builder will be multi-skilled. The role demands the rigour and precision of programming, the creativity of design, and the business and communication skills of analysis.
RDF have partnered Mendix, whose Agile Business Platform fits very well with our modelling practices, as it is an extension of a Java framework and all models are object-oriented. Solutions can be extended in Java, if needed, and the change-execute cycle time is blazingly fast, making it ideal for agile, business-driven development.
If you have never tried or even considered MDD, take a closer look now. Free yourself from the tyranny of code and become truly agile.