When we talk about achieving anything meaningful, it needs to be grounded in good habits and a strong sense of discipline. It can’t be built on wishful thinking alone—it must be rooted in consistent, deliberate action.
There’s been plenty written about habit formation, but I’ve found it helpful to think about it through a simpler lens: the idea of pain.
The Initial Pain of Doing Things Right
Here’s the reality: when you decide a habit needs to change, there’s going to be pain involved.
Take software development as an example. Let’s say you’ve decided to move toward Test-Driven Development (TDD). Everyone warns you it’s not easy, and they’re right. When you have an idea and need to write code, thinking about writing the test first is genuinely more cognitively demanding. You’re forced to think through:
- What are the outcomes going to be?
- How should the output look?
- What should this function return?
It requires real mental effort. Compare that to just writing the code intuitively and seeing what happens—which feels much easier in the moment because you already have a sense of how the code should function.
The Temptation to Defer the Pain
You see this pattern everywhere. When businesses ask for something and you’re under incredible pressure, there’s always the temptation to say: “Let’s just implement what’s needed now and deal with the fixes later. We’ll do the manual change now—it’s okay, we’ll clean it up later.”
But here’s what most people don’t realize: the pain never goes away.
In fact, what happens is the pain compounds—it gains interest at an alarming rate.
How Technical Debt Compounds
Think about it this way. Today, you decide you don’t want to think too hard, so you just write the code intuitively. You already know what it’s going to output, and most of the time you’re correct. It’s just one function, right? You write it, get the right output, and move on. The feature ships, stakeholders are happy, and you enjoy your day.
The problem comes later.
Fast forward, and now you have 1,000 functions distributed across 100 classes. Suddenly, you can’t intuitively understand what any given function does. You might have even written it yourself, but you’ve completely forgotten the thinking behind it. What felt intuitively obvious then is now a complete mess.
Now you’re forced to:
- Go back and read the code to rebuild that context (super painful)
- Work from incomplete memory of use cases (also painful)
- Wonder which developer wrote this code, just to figure out what’s happening
That test that would have taken two or three minutes to write initially? Now it’s consumed your entire weekend. That small pain you avoided has come back multiplied—with interest, compounded like it has grandchildren.
The Business Impact
Sure, maybe you moved fast initially. Something shipped, stakeholders were happy. If you managed to grab a promotion and move to a different team, good for you.
But if you’re still there? What happens when the next requirement comes along—as customer needs inevitably evolve?
The whole point of software is that it’s soft—it should change. That’s why it’s not called hardware. When people commission a building, they expect it to stay put for decades. But with software, they expect the behavior to adapt to customer needs constantly. Software’s value isn’t in longevity; it’s in adaptability.
And now you’ve lost that adaptability because of the choices you made.
When stakeholders request a change, you suddenly find that making any modification creates multiple side effects you have no reasonable way of anticipating or catching. You’re forced to move even slower than before. And eventually, the organization starts questioning whether their investment in technology is worthwhile—or if the entire team needs to be replaced.
Beyond Software: Life Patterns
This principle extends far beyond the tech and business context—it flows through life itself.
Maybe there’s something you know you need to address. Perhaps you love sweets but don’t have the best dental hygiene habits. The change feels painful: it means sacrificing what you enjoy or changing your daily routine—maybe rinsing after every sweet treat.
These are small changes, but they do require movement from what you normally do. And all change is painful.
The Compounding Question
Here’s the difference: take that small pain and look at it in the context of five or ten years.
Rinsing your mouth with water after eating sweets might feel like a hassle today. But avoiding it? That small avoidance becomes a root canal, extensive dental work, or worse.
The pain has compounded.
The Bottom Line
Whenever you find yourself trying to form a habit and you feel that initial pain, always ask yourself: How will this pain compound over time?
The small discomfort you’re avoiding today doesn’t disappear—it grows with interest. The question isn’t whether you’ll face pain, but when, and how much worse it will be if you wait.