Iterating Through Realities

Refactoring is reality-bending. Over and over, you change the status quo to align with a vision.

It’s about “making the change easy”, one iteration at a time.

But here’s the catch: each step creates a new reality. And that reality can trap you, just like the last one did. You lose sight of the vision.

Refactoring is not a dramatic tear-down. It’s incremental, not monumental. Each step gets the system to a new working state quickly. Each iteration requires enough understanding to make sensible changes, as small as possible.

Breaking out of these realities, over and over, is exhausting.

The in-between state of compromises – when you’re not quite there yet, with an adapter layer you’ll eventually discard but that you need to create a bridge between old and new – is no more real than any other state the system has ever been in or will ever be. It’s you who momentarily can’t see the next step, that’s all.

There is no trick: the only way forward is to find out what to change next, over and over again.

Recognize that you can only shed so many realities on any given day. So rest. Come back tomorrow, with the vision fresh in mind. Repeat.

Eventually, all the pieces will fall into place. The mess you create, the bloat you endure, that’s just the price of incremental progress.