Let me introduce you to WordStar 4.0, a popular word processor from the early 80s.
As old as it seems, George R.R. Martin used it to write “A Song of Ice and Fire”.
Why would someone use such an old piece of software to write over 5,000 pages? I love how he puts it:
It does everything I want a word processing program to do and it doesn't do anything else. I don't want any help. I hate some of these modern systems where you type up a lowercase letter and it becomes a capital. I don't want a capital, if I'd wanted a capital, I would have typed the capital.George R.R. Martin
This program embodies the concept of finished software — a software you can use forever with no unneeded changes.
Finished software is software that’s not expected to change, and that’s a feature! You can rely on it to do some real work.
Once you get used to the software, once the software works for you, you don’t need to learn anything new; the interface will exactly be the same, and all your files will stay relevant. No migrations, no new payments, no new changes.
This kind of software can be created intentionally, with a compromise from the creators that they won’t bother you with things you don’t need, and only the absolutely necessary will change, like minor updates to make it compatible with new operating systems.
Sometimes, finished software happens accidentally; maybe the company behind it has disappeared, or the product has been abandoned.
There are also some great examples in the UNIX world of finished software: commands like
cd(to change the current directory) or
ls(to list what’s there) won’t ever change in a significant way. You can rely on them until the end of your career.
The seduction of constant updates
Our expectations for software are different from other products we use in our daily lives.
When we buy a physical product, we accept that it won’t change in its lifetime. We’ll use it until it wears off, and we replace it. We can rely on that product not evolving; the gas pedal in my car will always be in the same place.
However, when it comes to software, we usually have the ingrained expectations of perpetual updates. We believe that if software doesn’t evolve it’ll be boring, old and unusable. If we see an app with no updates in the last year, we think the creator might be dead.
We also expect new versions of any software will be better than the previous ones. Once it’s released, most of our problems will be solved! What a deceiving lie.
Sometimes, a software upgrade is a step backward: less usable, less stable, with new bugs. Even if it’s genuinely better, there’s the learning curve. You were efficient with the old version, but now your most used button is on the other side of the screen under a hidden menu.
Finished software is a good reminder
In a world where constant change is the norm, finished software provides a breath of fresh air. It’s a reminder that reliability, consistency, and user satisfaction can coexist in the realm of software development.
So the next time you find yourself yearning for the latest update, remember that sometimes, the best software is the one that doesn’t change at all.
 George R.R. Martin in Conan show (2014). https://www.youtube.com/watch?v=X5REM-3nWHg.