It just occurred to me what an interesting philosophy software developers have when it comes to change.
We use libraries and frameworks on platforms with architectures that we expect to be stable, robust, and reliable. We stack layers of rigid blocks on top of each other, erecting deliberate structures we want to last and stand the test of time. We expect components to be dependable and unambiguous, capabilities to be preserved, and the environment to be consistent and predictable.
We don’t want anything to change.
But then, something changes. Stuff breaks. We complain.
What we consider stable is just an illusion, because everything is moving all the time. We freeze a moment in time, ignoring all motion just long enough to figure out what’s going on. Of course, we can’t really stop time. It’s a trick we play on ourselves to make sense of it all.
Stability is a commit in a branch of a tree that keeps growing. A reference point in the past, soon to be left behind and forgotten, replaced by something else, something newer, and hopefully better. We constantly need to rebase our assumptions and merge our understanding with a new status quo of an ever-changing environment. We get pulled into new circumstances, while we push others to adopt our own new ideas, requesting for their environment to change. To make a difference, we try to accumulate positive changes over time. Our commitment to change becomes the progress we strive for. Without change we stand still.
The reason we go through all this is because we want to solve problems. We want to improve, enhance, innovate, disrupt. We want the world to change. Our purpose is change. And change is motion. From an unsatisfying past to a better future. And to change the status quo, we need to break it.
But we want things to be fixed and deterministic because that’s easier to reason about. We try hard to preserve features that cannot regress, and maintain infrastructure that must not break. We look for first principles, axioms, and invariants — stable truths that we can rely on and built upon.
And yet we demand progress, continuous change, forward motion towards a better world. A world that has changed.
How can we expect things to stay the same while at the same time we are changing things to make a difference?
How can we demand that others don’t change how things work when all we want is making sure that things don’t work the way they used to?
Movement is only visible if we have a frame of reference. We need a reference point to locate and orient ourselves. We can only navigate our environment if there is something stable we can rely on.
Often, the only true constant we like to rely on to keep us sane navigating this complex, fast-changing, dynamic mess, is… us.
Your stable reference point becomes another person’s status quo that needs to be changed. And your progress changes somebody else’s environment.
Sometimes, when things break is a good time to check our reference point.
Perhaps that is what needs to change.