Architectural Substitution

To develop some new capability, existing in parallel with the old, and slowly migrate it in (I've heard this called ArchitecturalSubstitution?), as MichaelFeathers writes in ExtremeReuse.

Perhaps this phrase is a bit misleading. Architecture isn't supposed to change at all; it is the base, irreducible, and immutable set of rules determining how a system behaves. Replacing some capability with another -- hopefully expanded -- capability isn't a change in architecture, it's a change in implementation. The architecture remains the same, the services called out by the original architecture are still being provided, and anything relying on those services are still able to use them.

However, with a New! IMPROVED!! capability in place any new dependencies can make use of the new services being provided. This still doesn't change the architecture; it merely means there is some new implementation available.


EditText of this page (last edited August 2, 2011) or FindPage with title or text search