At the core of the considerations lies the realization that the whole is more than the sum of the parts. In fact, the whole comprises:

  • The components
  • the interactions and other explicit or implicit connections between the parts
  • resulting (emergent) properties of the overall system.

The individual parts can often be moved relatively easily during a change. In contrast, the connections may have to be recreated or replaced at great expense. In an organically grown system, the connections between the components are usually implicit. Where it’s unclear how to reconstruct the entire system, a switch becomes difficult or even impossible.

Here’s a concrete example:

Let’s imagine a database system that exists within a provider’s infrastructure. The data stored within can be migrated relatively easily when switching to another provider. But what about the other components and the connections between them? Settings, access rights, distribution of the database across multiple servers (sharding), etc.? Do we know the complexity of the overall system, or can we grasp it? If so, can the overall system be reproduced on the new provider’s infrastructure with reasonable effort? In many cases, the answer to at least one of these questions is probably “no”.

The example of revision security illustrates how emergent system properties make it hard to switch providers. Revision security as a criterion encompasses technical, organizational, and regulatory requirements. Thus, it is a higher-level system property. The auditability of a system is proven by certification. Certification is related to a specific case; when a provider is changed, the system is rebuilt and must be recertified accordingly. The additional effort increases the costs to switch and contributes to the lock-in effect.

Posted by Charlie Brown