3 ms·
> Software is a tool. Tools that are used often require maintenance, which in itself is not a novel concept. Yes software is a tool, but unlike physical tools,
by ggreer 6y ago
> Software is a tool. Tools that are used often require maintenance, which in itself is not a novel concept.
Yes software is a tool, but unlike physical tools, it does not wear out. Running the same code many times won't cause it to slowly degrade.
What does happen with software is that as you adapt it to particular roles, if you're not careful you can make it very hard to re-adapt to new roles. A "new role" doesn't necessarily mean user-facing features. It can be as simple as running on Ubuntu instead of running on RHEL. Or it can involve using a newer (and incompatible) version of some library. It might even be as daunting as porting the software to a new language (eg: from JavaScript to TypeScript).
The common analogy used to illustrate this is that of a car. If you have a typical passenger car and you need to compete in a demolition derby, you can modify that car to be a good demolition derby car. But if you're then asked to modify that car to win a track race, you'll have an easier time starting with a new unmodified passenger car than modifying your demolition derby car.