Consider when to build on solid ground and when to design for disappearance. If longetivity is required some considerations are needed.
Many computing systems are based on platforms, frameworks or even languages that change very rapidly, may become obsolete at any time, and are too complex to be easily reimplemented. This principle exists to minimize obsolescence and superfluous maintenance work in systems intended to last.
It is good to experiment with new ideas, concepts and languages, but forming hard dependencies on them is usually a bad idea. Appreciate mature technologies, clear ideas and well-understood theories when building something that is intended to last. Software that uses open, well-documented standards will be more useful in communicating with the wider technological world. It also means that data can survive and still be readable even if the software is no longer functioning.
What can YOU do
With or without a computer
- Consider using software that runs locally, is open-sourced, and has a thriving user community or is well-documented
- Try to pick software that favours slow release cycles and thorough testing over rolling updates.
- try to use smaller, more general-purpose tools instead of complex, prescriptive all-in-one solutions
- You may also read this as "grow roots to a solid ground". Learn things that last. Learn the history of the technology you use.
When creating and maintaining software, digital tools or infrastructure
- Avoid unreliable dependencies, especially those hard (non-optional) dependencies. If you can't work around them (in case of software), you can’t avoid using such dependencies, you should bundle them directly with your software keep local copies, instead of relying on downloading them from external servers every time. This way, your software won’t break if those external resources disappear.
- It is possible to support several target platforms. In case of lasting programs, one of these should be a bedrock platform, or instruction set, that does not change too much and therefore increase accessibility, portability and fallback scenarios.
- Imagine some of your users will never be able to get an update or find support - think about how they might solve their problems.
- Try to use standard file and data exchange formats, ideally formats that are human-readable. * Don't take anything for granted. Especially don't expect the infrastructure such as the power grid and global networking to continue working indefinitely.