What is Software Quality?

Search for a command to run...

No comments yet. Be the first to comment.
In my post on "Being Prepared", I wrote about the need for us to practice our craft in order to deliver high quality code. Unfortunately, there are a lot of demands for our time working on projects that are under tight deadlines and supporting exist...

Do you actively monitor your applications? Chances are that if your development team doesn't, your operations group does. There are a variety of metrics that they are watching at a high level like CPU and memory usage performance counters and whether...

Have you ever had this experience before? I drove up to a Chase ATM to transfer money from my Liquid account (re-loadable debit card we use for budgeting purposes) to our main checking account. (I know - it would be nice if I could just transfer th...

It happens every once in a while. I waltz into the classroom looking forward to a new lesson and suddenly realize that today is the final exam. Everything I should have been preparing for is finally due. And I haven't done anything -- no flash ca...

Is creating readable code an important feature of writing quality software? Is it something that you would mention when reviewing code for one of your team members? Typically, when we review code we focus on making sure that: It does what it is supp...

What would you say if I asked you what are the marks of high quality software?
Would you have answered, "a really nice/slick/sexy user interface?" Or perhaps you would have said, "absence of known defects or bugs." Those in the TDD camp might have replied, "thoroughly tested and validated with automation." Or an architect might have preached about the importance of one or more of the -ilities.
Turns out that same question was asked of Jim McCall and his answer was captured in a study he conducted for the Air Force in 1977. What's surprising is that its findings are very similar to what we still claim as quality for applications today.
In his study on the subject, he initially identified 55 factors of quality. In order to make the study more practical he reduced those 55 quality factors down to 11 and grouped them into 3 categories:
The diagram below shows a visual representation of his findings.

Below are definitions of each of the quality factors.
This list should help you to think at a high level about the necessary factors involved with creating high quality software. In more recent years, the literature on quality group the factors under either internal or external quality which are more concerned with the stakeholder rather than the product.
While the external quality is of utmost importance in delighting customers, if internal quality factors are ignored, over time, delivering new external quality will be hampered.