Do you know what software quality is? Even if you think you do, it's valuable to sometimes step back from your own dictionary and get a wider view of a definition. Allan Kelly does just this with a blog post where he asks himself the same question. Kelly sites a few big names in our business (Capers Jones and Tom Gilb, for example) who defined quality as “projects with low defect potentials and high defect remove efficiency also have the shortest schedules, lowest costs, and best customer satisfaction levels” (Jones), and “The reduction in defects … saves ‘rework’, which otherwise is about half of all effort in software projects” (Gilb).
To this, Kelly adds his own understanding of quality and defects, though he admits his understanding is more of an attributes list and not necessarily a definition:
- Software quality is inversely proportion to the number of defects in the system: high quality implies few defects and vice versa
- Defects have undesirable consequences
- Defects incur costs, in all likelihood financial costs but there are others, time in particular. Even if defects are not fixed they will incur costs, e.g. over payments from a financial system or people ringing the helpline to report a spelling mistake
- Removing defects requires rework and rework costs time and money
Kelly's blog post goes on, delving into just how to define quality and what that definition means to IT–he even goes so far as to offer up a potential formula: Quality(T)=Changability(T)/ Known Defects(T) (where T represents some point in time).