The longer you intend on using the software the more important it is to write clean code
ensuring easy maintenance. Escalating maintenance costs reduce your software's shelf life.
Future relevancy, enhancements, updates and additions are also vital points for consideration when designing adaptable software.
How can you ensure your software will last?
- Test Driven Development
- Build protective layer of unit tests
- Pair programming: spread knowledge of systems
- Refactoring
- Simple design