Subscribe

Future imperfect

Model-driven development will not yield benefits if the current rules and methodology remain.

Hardy Jonck
By Hardy Jonck, Heads up DVT's Mendix business unit.
Johannesburg, 08 Dec 2011

I have been an evangelist for new languages and approaches to attain the holy grail of development. One aspect was to create tailor-made solutions that are agile, with an architecture that allows changes in one place, validated and checked, able to respond dynamically to business. However, dominant software development paradigms are designed to create software with a robust and scalable architecture.

Correctly applied, model-driven development promises reduced time to market.

Hardy Jonck heads up DVT's Mendix business unit.

The mainstream paradigms do not distinguish the dynamic nature of business, but are designed to produce the likes of Microsoft Word, Apple Keynote and other pieces of software in use daily.

The object-oriented (OO) approach, with its model view controller pattern, is widespread in both .Net and Java, and is used in most software solutions.

Strengths and weaknesses

This has its strengths in structure and architecture, but limitations in responding to business. The time for the next wave is overdue. OO has been around from the early '90s, and the time is ripe for the next reformation and renaissance, to build something new that uses the best of the older, established approaches.

New evangelists will arise and promise liberation from the old, while sceptics will protect their turf. In the end, the innovators who understand where to use the new will reap rich benefits of happy clients and increased profit. Correctly applied, model-driven development promises reduced time to market, reduces key-man dependencies, and should provide all the buzzword-compliant advantages touted in total cost of ownership, reduced risks and return on investment.

Recent decades have seen many new advances in programming paradigms, namely structured programming, procedural development, OO development, and with that, the model view controller pattern. A few new upcoming paradigms finding their way into commercial software development include functional programming (FP), and now model-driven development (MDD).

These also correlate with either a declarative or imperative approach.

The move for business software is towards declarative development, where it is specified "what" has to happen and leave the "how" to models and best practices. For instance, in FP, matrix multiplication is parallelised without the developer having to specify how it is done (the locking, partitioning, threading and transaction management).

Another example: in a process flow, it is specified that an entity has to be updated; how the transaction management does that with database connection pooling, thread management, locking, rollback, and security, is of little concern to the business engineer, but critical for IT. MDD delivers the methodology and technology through a set of domain-specific languages (DSLs), each tailored to the problem they solve.

Make haste

Most business owners are frustrated at the speed at which IT can deliver solutions. Surveys show IT/development departments are typically late and over budget to deliver systems that do not quite meet the need. Typical implementations are measured in months and still follow a waterfall approach (mixed in with agile and iterative "speak", rather than action). That is changed to bring implementation down to days and weeks, and fully implement a truly agile pipeline through implementing the Scrum methodology as part of MDD.

Model-driven development will be the future, and progressive systems will be developed this way in two to five years. With "progressive systems", it is implied that these are systems suited to the approach, which is varied but excludes embedded systems and complex modelling engines, as these domains still have to be packaged in models with DSLs.

Systems that fit are those that tie a number of systems together to provide the interfaces, workflow, process flow, security and delivery via the Web. MDD provides a number of DSLs to rapidly deliver solutions at a speed of two to 50 times quicker than the current mainstream methodology.

Other notable advantages of MDD are:

1) Fast skilling-up of competent staff to take over maintenance of systems.
2) Reduce key-man dependency and decrease dependence on highly technical resources that know everything about Ajax, HTML, CSS, XML, Soap, database connection pooling, transaction management and security, and change this to a dependence on people who understand the business.
3) MDD provides documentation implicitly: modelling is the basis of the solution and there is no need to update a set of documents at large cost, which tend to be outdated as soon as they are printed.
4) Deliver solutions at the speed of business.
5) Provide skills transfer to a client's team to allow them to maintain their systems.

As with any approach, benefits will only materialise if the philosophy is implemented with the tools. An MDD environment is the enabler, but the success lies in the way it is implemented holistically, and it will not yield the benefits if the current rules and methodology are applied.

MDD provides the opportunity to reform, regroup and create winning teams, with business ownership and understanding and delivery at its heart.

Share