Software Quality has been a much discussed topic in software community. Quality has been categorized in to “Quality Assurance (QA)” and “Quality Control (QC)”. In the following article, Jim Highsmith, provide a totally different categorization. (Jim Highsmith is one of founder signatories of Agile Manifesto) I found it to be a really interesting way of looking at the Quality.
The beauty of this categorization is that it combines the Quality Assurance and Quality Control remarkably well within the single scope of Quality. This gives a very easy definition for the Quality without needing to go through two separate areas to understand the Quality in its entirety.
“Today’s Quality and Tomorrow’s Quality” – http://jimhighsmith.com/beyond-scope-schedule-and-cost-the-agile-triangle/
In simple terms, Today’s Quality ensure that the product is usable today. In other terms, the software does not contain any critical bugs, or it is built to suit the users’ needs, etc. By looking from the traditional Quality Assurance and Quality Control view, achieving Today’s Quality would need both QA and QC activities to be performed.
Whereas “Tomorrow’s Quality” refers to ensuring that software will perform in the future as today. This means ensuring code readability, technical documentation, following accepted design patterns, keeping technical debt low, etc. This also would need both QA and QC activities to be performed.
This is very strong but simple definition of Quality