Description
A legacy component is completely rebuilt instead of being (partly) modernized and integrated. Often, this anti-pattern is combined with the “Big Bang” anti-pattern where the entire system is built all at once.
Context
Derived from: “No Legacy”
Management does not want to keep a legacy system of decent quality and therefore wants to rebuild the entire system. The idea is that obsolete parts should be dropped and integration and modernization efforts are perceived to be similar to a complete rewrite. However, since SOA usually enables the efficient integration of applications, a complete rewrite of the legacy system should require much more efforts.
Cause
Project management does not understand that integrating legacy systems into a new environment does not necessarily have to be a bad thing.
Consequences
Very high investments and considerable risk are associated with a complete rewrite of large complex systems.
Detection
While the ArchiMate modeling language lacks a designated syntax or element for denoting legacy components, we can still discern them based on their names or properties. Furthermore, we can pinpoint components that serve a limited duration as they are intended to be replaced by new ones. In ArchiMate, a “Plateau” is an element type representing a stable state that remains for a limited period.
Solution
Project management first has to accept that stable and solid parts of a legacy systems are worth keeping. Integration candidates have to be chosen and modernized with user-oriented interfaces. Front-end gates can be used to achieve this.
Example
Graphical example illustrates a legacy system ‘Main Frame CRM’, which will be replaced by a new component, ‘Microservice CRM’. The terms ‘Baseline’ and ‘Vision’ represent elements of type “Plateau”. The baseline reflects the current state of the legacy system ‘Main Frame CRM’, capturing its contents for comparison with the new state, referred to as ‘Vision’. These two states are relevant for a limited period until the replacement occurs. The process of replacement is managed by the ‘Replace Main Frame’ element, which is categorized as a “Work Package”. A work package encompasses a set of actions aimed at accomplishing a specific task within a defined timeframe. In this case, the task is to create the ‘Microservice CRM’.
Cypher query
MATCH p=(m)--(n) <br /> WHERE ANY (name in $legacy where toLower(m.name) CONTAINS toLower(name)) <br /> OR ANY (x in keys(m) WHERE m[x] IN $legacy OR x IN $legacy) <br /> WITH m <br /> MATCH p = (m)--(n:WorkPackage|Plateau) <br /> return pCypher count query
MATCH p=(m)--(n) WHERE ANY (name in $legacy where toLower(m.name) CONTAINS toLower(name)) OR ANY (x in keys(m) WHERE m[x] IN $legacy OR x IN $legacy) RETURN COUNT (DISTINCT m)Diagram

Tags
soa, business, application, technology, legacy, migration
Query parameters
[
{
"name": "legacy",
"type": "list",
"default": [
"legacy"
],
"description": "The element names or property values specifying legacy components."
}
]Related smells
- Big Bang (precedes)
- Nothing New (precedes)
- Vendor Lock-In (relates)