← Back to Home

The Breaking Change

In software engineering, a "breaking change" is a nightmare. It’s when an update alters the fundamental way a system behaves, causing everything that relies on it to crash. We spend billions of dollars avoiding them. We build versioning systems, backward compatibility layers, and rigorous testing suites just to ensure that `Input A` always results in `Output B`.

We have quietly begun to apply this same logic to our relationships.

The API of Friendship

We want our friends to be stateless microservices. We want them to be available when we ping them, to return the expected status code (200 OK), and to handle our requests with low latency.

When they are "down" (depressed, busy, distant), we treat it as a service outage. When they change their opinions or habits, we treat it as a deprecated feature.

"I liked the old version of you better," we think, as if they were an app that pushed a bad UI update.

We curate our social circles like a tech stack, optimizing for stability and interoperability. We avoid "high-maintenance" people (legacy code) and seek out "low-friction" friends (clean documentation).

But here is the uncomfortable truth: A person who never breaks is not a person. They are a product.

The Feature is the Bug

The value of a human being is not in their reliability. It is in their volatility.

It is in the moment they disagree with you when you expected validation. It is in the moment they call you out on your bullshit when you wanted comfort. It is in the moment they change their mind, change their career, or change their heart, forcing you to re-evaluate your own position relative to them.

These are breaking changes. They crash your internal model of the world. They throw exceptions in your emotional runtime.

And they are the only things that help us grow.

Embracing the Refactor

If you surround yourself with people who function like stable APIs, you will never have to upgrade your own operating system. You will remain in a static loop of confirmation bias, receiving the same expected outputs for your same tired inputs.

To love someone is to sign up for a lifetime of breaking changes. It is to accept that the documentation will never be up to date. It is to understand that the person you knew yesterday is a deprecated version of the person standing in front of you today.

Don't look for stable endpoints. Look for the people who break your code. They are the ones who will force you to rewrite it better.

If you enjoyed this essay, consider supporting the blog.

If you enjoyed this essay, consider supporting the blog.

Buy me a coffee →
Support