Maintaining the software is in most cases an endless process. Users often demand new functionalities. Old functionalities may be obsolete and should be removed or redesigned. The software is constantly evolving and that is why the changes have to be made.
The decision to stop maintenance should be taken only when the software is not used or the old software is replaced by a new one with similar functionalities.
Key characteristics of easily maintainable software
By maintaining software we understand a process, at least a few years long, during which bugs in software are fixed and new features are introduced. If the software's life-time is shorter, we should not consider maintaining it.
Maintained source code should have the following characteristics, which add up to software quality:
- Correctness – the provided functionality should match the specification;
- Readability – the provided source code should be easily understood by other developers;
- Performance – the program should operate in the most optimal way.
All three characteristics are very important in the program's functioning and maintenance costs. Following images show two different ways of maintaining software:
High code quality
Low code quality
It is visible that putting the code quality aside have a serious impact on the future usage and maintainability.
Moreover, it is important to remember that the software quality includes documentation updates and software testing.