10 Software Quality Factors That Should Always Be Remembered

Flexibility and Extensibility

Flexibility is the ability of software to add/modify/remove functionality without damaging the current system. Extensibility is the ability of software to add functionality without damaging system, so it may be thought of as a subset of flexibility. Those functionality changes may occur according to changing requirements, or an obligation if the development process is one of the iterative methods. Change is inevitable in software development and so, this is one of the most important properties of quality software

Maintainability and Readability

Maintainability is a little similar with flexibility but it focuses on modifications about error corrections and minor function modifications, not major functional extensibilities. It can be supported with useful interface definitions, documentation, and self-documenting code and/or code documentation. The more correct and useful documentation exists, the more maintainability can be performed.