Treating software as commodity is misguided.
As Michael C. Feathers attests, code is a strange material.
It is not like wood, or steel, or plastic.
Once it’s programmed, it will run forever.
It is perfect, until we need to change it.
Why would we ever change it?
Because the world is always changing. The meaning we attach to what we’ve built changes.
What was a fun experiment that we threw together is now the key feature that’s driving new sign-ups, and its buckling under the load.
The workaround we implemented to save a few days of work is now going to cost us 3 months to rewrite, given how many systems have been integrated into it.
The functional programming evangelist on the team just got another job, and now no-one really knows the best way to extend the codebase.
The code is perfect. But the world has changed. We’re in a new reality. And we must adapt accordingly.
That’s why the value of software is not what it can do today, but how easy it is to change tomorrow.
This is all well and good, but won’t AI be able to solve those problems too? Won’t agents be able to respond and figure out how to respond independently? Can’t we still get rid of those pesky and annoying humans and work faster and cheaper with our new loom?
More tomorrow.