Stablizing Change
Change is necessarily risky.
No matter how bad your existing system / process might be for doing something, changing it invites a risk.
That risk increases with the complexity / complicatedness of your system.
When dealing with incredibly complicated systems, it becomes increasingly tempting to trash the entire thing and start over from scratch.
We’ll do it right this time.
Aside from taking an insane amount of time, replacing systems also can frequently bring a host of new bugs, forced re-learnings of problems past-solved, and a host of other issues.
Is there an alternative?
In software, there is another path - the strangler fig pattern. (look up strangler figs if you haven’t heard of them before… mind boggling haha!)
It looks like this:
- Identify a part of the system which is on the outside, not in the convoluted core.
- Work to extract and decouple that part as seamlessly as possible.
- Apply the change to the decoupled part.
- Rinse and repeat.
Over time, the freed layers on the outside make it easier to work on the stuff in the middle.
Piece by piece, the old is replaced by the new in a stable manner.
Crucially, even if you do not carry through to the end, the system is in a more maintainable, easier to change state as a result.
This makes the change modular, incremental, and most important for complex systems, stable.
Like this? Join the email list.
Micro-thoughts on operational strategy straight to your inbox.