$ cat posts/software-maintenance.md
Software maintenance
Dijkstra used to laugh at the phrase software maintenance, as if software were something that wears out, rusts, or corrodes.
The truth is that Dijkstra is right about that. Software can’t be maintained, because it isn’t something you build.
The whole construction metaphor for software, with its architects, builders and construction processes, or the idea that it is something manufactured, and therefore packaged, assembled and distributed, is limiting.
Software is not a rigid physical thing that has to submit to the laws of physics, and therefore to traditional engineering.
No, there is no such thing as software engineering.
Software needs “maintenance” because the environment has changed, or there are changes in the infrastructure (hardware, system software) or in the functionality, or there is pressure from the market or from the users for the software to change. Failures also turn up, or situations nobody spelled out in the initial analysis.
Adapting to a changing environment is evolution.
So we should stop talking about software maintenance and use the proper term: software evolution.
This also has some interesting consequences for the economics of software, which I hope my readers will appreciate.
Comments
comments powered by Disqus