| In the 80s Ian Sommerville wrote about the "long tail" of maintenance
accounting for >75% of the lifecycle costs of a program. I remember
being surprised at this, but my SE prof saying "all successful
projects tend toward 100% maintenance." If developers want to put a time limit on how long they're willing to
maintain a project that's all fine and useful. Coders have lives to
get back to and new interests to look forward to. But the very idea of software having a pre-defined lifespan is not
sensible. Do we put expiry dates on mathematical theorems? Indeed it's a good argument for why all software should be FOSS,
because it's ultimately the users of a program, not the developers
that decide whether code has continuing utility. As soon as money comes into development people start noticing the long
tail is a precipice of diminishing returns, We act like landlords who
can't be bothered to decorate crumbling buildings we rent out. Easier
to knock it down and build anew, regardless the disruption for the
tenants. When software is built and maintained by the community that use it,
they're more like homeowners, for whom maintenance is adding value to
an asset. |
I bought a perfect, will never deteriorate houseboat twenty years ago (it is now 2043) and moved it across the world. But now in the harbor of Hong Kong I won’t get a permit to stay there because there is (1) no onboard emergency manual in either Cantonese or Mandarin, and (2) it is not up to code for sustained quarantine due to the novel airborne virus that became a pandemic some years ago, and (3) there is no mounted non-lethal (because animal welfare) protection against a hull-eating[1] marina pest that migrated from the Equator ten years ago because of climate change.
Software obsolescence is all about the world changing around the software.
[1] The boat might be perfect but apparently creatures can still eat it if determined enough.