Computers are compilicated. An amalgamation of bits and silicon, wired together to complete a to-be-determined sequence of instructions that will manipulate electrical signals into coherent patterns that mean something to someone somehwere.

Perfect Logic, Imperfect Reality

Computers are generally perfect. Barring an uncorrected error in a very tiny piece of of silicon, or degradation of a high-frequency electrical signal, the bits and bobs follow their instuctions precisely. Validating that the instructions are correct is left as an exercise for the programmer.

Without getting in the weeds, it is sometimes possible that the sequence of instructions contained in a program do something that the programmer (and usually also the user) do not intend, or in a worse case, intend to not occur. Whether the result of malice or error, software can fail.

So what to do? Coding practices can eliminate some errors, code compilation can eliminiate some more, and alpha- and beta-testing can weed out more. This does not eliminate all latent issus or potential risks, and any that remain after the software is released, delivered, or installed must either be accepted as they’re discovered or fixed by updating.

Digital Tools Degrade

If we accept that software contains issues and flaws that will not be discovered until after it’s been deployed, then we must also accept that there are hidden issues and flaw which could reduce the utility of the software at some point in the future.

The exposure and discovery or exploitable flaws in deployed software effectively reduces the utility of the software, just as the exposure to water and oxygen reduces the utility of iron tools.

Software Maintenance

Iron tools can be produced to be resistant to oxidation, they can be maintained to preserve their useful life, and in some cases can be restored or repaird after experiencing degradation.

Digital tools have similar analogs. Development tools and processes can make software resistant to common exlpoits, beta testing can identify runtime issues. After deployment, flaws can be repaired via updates and patching.

The Bottom Line

Software updates is software maintenance is tool care. Don’t use tools you can’t maintain.