by Leon Rosenshein


Every object persists in its state of rest or uniform motion in a straight line unless it is compelled to change that state by forces impressed on it
-- Sir Isaac Newton

People have an enormous tendency to resist change. They love to say, ‘We’ve always done it this way.’ I try to fight that.
-- Grace Hopper

Inertia and momentum are real. Change is work. Sometimes hard work. Even when applied to non-physical things, like code. There’s a constant tension between changing everything and changing nothing. In development, as in life, the answer is somewhere in the middle because “it depends”.

Very often things are the way they are for a good reason, even if we don’t know the reason (there’s Chesterton’s fence again). So think critically before you change something. Just because you don’t know the reason for a method/process doesn’t mean it’s not needed. Figure out why it’s there. You might find that it’s actually more broadly applicable and you should be doing more of it.

On the other hand, sometimes we do things the same way out of habit, or cargo culting. We’ve seen it work before, and it’s worked for us, so don’t change it. But again, you need to think critically about it. It’s like Grandma’s cooking secret. Is what you’re doing the real cause of the outcome or would it have happened anyway? Does the current method/process/code solve a problem we once had, but don’t have now?

All of us are on the cusp of a large transition. That liminal state between the before times and the after times. That means we have an opportunity to think before we act and set ourselves up for success in whichever direction we end up going, both individually and collectively. So think about where you want to be, then figure out how to get there. Don’t pick a direction and see where you end up.