Laws of Software Engineering · Pattern
Pattern
Pace Layers
Different parts of a system change at different rates. Fast layers innovate. Slow layers stabilise. Each layer constrains and is constrained by its neighbours.
How to use it. Identify which layer a proposed change belongs in. Fast (UI, features, content) can change weekly. Slow (data model, core domain, integrations) should change quarterly or yearly. Trying to make slow layers move fast breaks things downstream.
How it gets misused. Used as an excuse for not changing the slow layers ever. Slow layers should change, deliberately and with care, when the time is right. Permanent stasis is a different problem.
Related
-
Principle Lehman's Laws of Software Evolution Software that is being used must keep changing or it goes stale. Without effort, it gets more complicated over time.
- Pattern Technical Debt Shortcuts taken today add a cost that has to be paid later, with interest.