what is “quality”?

Just what is software quality? I hear talk of software being of “high” or “low” quality, as if there is one Quality that something can possess to varying degrees. Then I see Specifications that break that Quality down into Maintainability, Supportability etc. Each of these is a boolean attribute than is either present or not – high Quality is the possession of all of these “ilities”.

Back in the days of TQM I recall the mantra “quality is fitness for purpose.” At the time this struck us fresh graduates as a radical and deep thought, but it now seems merely a more bullish version of Gerry Weinberg’s “quality is value to some person.” Of course, every person – every stakeholder – will assign different values to a software system. A developer will want different things than a user, or the user’s manager, or the support engineer. I guess we’re back to the “ilities” – an expression of how the design must take account of each stakeholder’s needs.

Last week I suggested that non-functional requirements could usually be rewritten as user stories. Am I now disagreeing with that statement? Hopefully not. It occurs to me now that such non-functional requirements can probably be translated into the form ‘if user A does X, Y will happen after at most time Z.’ This is pure conjecture – I’ll report back here when I’ve tested it in real life. I also conjecture that all of the “ilities” for a system can be expressed in these same terms. This would have clear

  • the stakeholder is clearly identified
  • his values are clearly enumerated
  • the qualities are close to being testable

(By the way, I’m proposing a thinking tool here, not necessarily a document format.)

So what do people mean when they talk about “good” or “bad”, “high” or “low”
Quality? I think I’m going to duck the question altogether. Henceforward I’ll try to avoid the Q-word. Instead I’ll try to talk only about each of the “ilities” as a small-q quality, and look for measures of that quality to reflect the needs of each of the system’s stakeholders. It will be a real challenge to find testable measures appropriate to expressing Maintainbility, Adaptability etc. But I genuinely believe these will be more useful to everyone in the long run.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s