Model-Driven Development and Pace Layering
I recently encountered the concept of “pace layering” and I found it to be very interesting and useful to explain possible fields of application of Model-Driven Development.
Let’s begin with a brief definition. The concept of “pace layering” is a model of reality that can be summarized as follows: each system can be subdivided into layers, each one of which has a different speed of evolution. The concept can be applied in very heterogeneous contexts, from natural ecosystems to civilizations, from buildings to software systems. The idea originated with Steward Brand and was presented for the first time at the IA Summit 2003 (click here to read a summary).
This model lends itself to multiple uses: identifying the parts of a system that evolve more or less rapidly can help in the maintenance phase to choose the best maintenance techniques or in the projection phase to make choices that will favor future maintenance.
Gartner also recently introduced a model based on this concept applied to “Application Strategy” (Gartner, Inc., How to Use Pace Layering to Develop a Modern Application Strategy Jim Shepherd et al, December 8, 2010). According to Gartner, “Pace layering is a new methodology for categorizing applications and developing a differentiated management and governance process that reflects how the applications are used and their rate of change.” In particular, 3 groups are identified:
- Systems of Record — Established packaged applications or legacy homegrown systems that support core transaction processing and manage the organization’s critical master data. The rate of change is low, because the processes are well-established and common to most organizations, and often are subject to regulatory requirements.
- Systems of Differentiation — Applications that enable unique company processes or industry-specific capabilities. They have a medium life cycle (one to three years), but need to be reconfigured frequently to accommodate changing business practices or customer requirements.
- Systems of Innovation — New applications that are built on an ad hoc basis to address new business requirements or opportunities. These are typically short life cycle projects (zero to 12 months) using departmental or outside resources and consumer-grade technologies.
In this way, if you have to construct a new application or maintain an existing one, it will be possible to apply diverse strategies according to the group to which the application belongs and thus make more appropriate choices.
It is exactly in the arena of these choices that Model-Driven Development is making its entrance. Very often, when MDD is introduced in a company for the first time someone invariably poses the question: “What can I build with an MDD tool?” Rather than listing a series of possible applications, you can respond by referring to pace layering.
In my opinion MDD should be considered every time the application enters group with higher evolutionary speed (systems of innovation). It’s in that environment that MDD offers the most benefits to companies: high productivity, maximum flexibility, agile development and rapid response to business needs.
But I wouldn’t like to see that MDD was limited to applications with very short lifespans. Frankly, I am convinced that the challenge of MDD is just that, to go beyond.
In fact, as you progress towards the levels with slower evolution speeds (systems of differentiation and systems of record) the priority given to response time and evolution flexibility leaves room for other considerations, such as security, stability, reliability, standardization, etc. In that case companies might avoid the use of MDD tools altogether viewing them as weak, or not robust enough, or even too new or too experimental and instead will rely on a well-known platform that seems stronger, more stable and less problematic.
To accomplish this challenge will require that an MDD tool has the ability to offer not only speed and agility, but also the capacity to respond appropriately to the needs presented in the lower levels. This approach offers speed and agility to businesses but at the same time retains IT security, reliability, robustness, standardization, etc.
My dream is to provide companies with a financial accounting system built entirely by the means of an MDD tool! Naturally this goal is still just a distant reality …but in the meantime I would be truly pleased to receive your feedback on this topic!


vhanniet 13:13 on September 22, 2011 Permalink | Log in to Reply
Hi Stefano,
Pace layering is a nice idea. But I would say that MDD is very good at adressing IT security, reliability robustness and standardization matters as MDD is very good for adressing architectural matters. Speed and agility are also well adressed by MDD but there is more challenge with others development life-cycles here.
Igor Lobanov 23:58 on September 26, 2011 Permalink | Log in to Reply
Stefano, nice metaphor, thanks! I’ll definitely use it as I often need to talk about different rates of changes.
Other thing is the strategy based on various paces. To be honest, I find it confusing. From my experience, there are pockets of both slow and high changes rates in every application. Of course you could classify applications based on the dominant pace. However it could be a bit problematic ground for decision on whether to adopt MDD or not.
Gianni Foietta (@whatcoow) 15:05 on December 20, 2011 Permalink | Log in to Reply
Model-Driven Development and Pace Layering http://t.co/1Go6eB3C via @AddThis
Pathfinder Solutions (@PathfinderMDD) 17:47 on December 20, 2011 Permalink | Log in to Reply
RT @derekgardiner: Very interesting article on Model-Driven Development and Pace Layering http://t.co/ZYtWRzAq – @AddThis #businessDrivenDevelopment #appStrat