I just learned about Tolkien’s concept of “The Long Defeat,” where the world is perpetually falling toward darkness. You can fight it. You can win battles. You can protect what is good for a while.
But eventually, you lose.
This deep philosophical concept has so many applications in life, and to life itself.
I find this “Long Defeat” concept interesting in software engineering.
You get a shiny new solution up and running, everything is in the right place, the code is error-free. After you pass it to your team, it starts its long, inevitable decline into nothingness. A PR puts an object definition outside of the “domain” structure, but that’s fine for now. Maybe you’ll note that in the code review, or maybe you’ve got harder things to worry about, so you accept the PR without complaint.
Then there’s the first kludge: something that works, but it’s not perfect.
A group of kludges is called “tech debt,” which grows with the seasons. That slow-assed SQL query you could optimize, if only you had the time and skill. That forgotten routine that once was critical. That old proof of concept you meant to review but kept commented out.
You fix some easy stuff with a linter or two. You fight the good battle with SonarQube at your side. Your Friday afternoons are an effort of juggling spaghetti, trying to improve a standalone function’s complexity score from 26 to 12.
Your “fixing shit” pull request makes you nervous. Did this code have enough test coverage? Did I break something else? Will the guys hate me on Monday?
Managing a software solution is like watching one of your kids grow up. Sure, they come back home for Thanksgiving, until they stab you in the back by going to their girlfriend “Jennifer’s aunt’s house in Oak Lawn” one year.
Any software’s usefulness is baked into how long a customer can keep it in their budget cycles. When that inevitable time comes and you bring down the PROD instance, you know that while many noble battles were won, you lost the war.
The whole thing boils down to a copy of a database that must be archived, forgotten about, and then searched for years later when a compliance intern demands to know that it was deleted. And that happened to me: the conflict between “must have an archival copy” and “must delete to protect GDPR.”
Software ends up not in a garbage heap, buried underground for future archaeologists to discover. No, it was just electrons lighting up small pixels in a handy arrangement. It’s easy to despair about the impermanence of it all.