This is some findings from some google research into quality of software. They developed a theory of software quality which involved four types of quality which influence each other. The first two, process and code, are what developers usually think first about software quality. They focus on the health of the codebase and the engineering systems around it. The second two, system and product, are higher level metrics focused in on by executives and product managers.
To make use of this research and improve the software quality of a system, first decide what kind of quality you want to improve
Process Quality
These are the processes around development. So things like planning, testing and code reviews. Metrics focusing on these processes are good predictors of overall software quality.
Code Quality
Maintainability. How easy is it to make changes to the code. That is the main aspect of code quality. So here focus on ease of understanding the code and making sure that one change doesn’t require lots of other small changes.
This affects system and product quality the most as if it’s easy to make changes then you can fix defects much more easily.
System Quality
This involves the reliability, performance and defect rates of the system. It’s difficult to know if these are improving as the only way for an executive to measure it is to see how many outages the system has. If there hasn’t been many then it’s hard to know if there is a bigger or smaller risk of outages. For this reason, code quality metrics are best indicators of overall system quality.
Product Quality
Here the utility, usability and reliability of the system are important. Again it is connected to code quality as if it’s difficult to make changes then improvements are made much more slowly