Quality of Software
Partly due to some experiences at work, and partly due to what I've been
reading lately, I've been thinking of quality and how it relates to
software development (even attempted a personal definition).
In looking over my past interaction with various software programs and
systems, it is clear that some had quality and some didn't. It wasn't
always the user interface, or the lack of bugs, it was these and more.
Robert M. Pirsig in his book, Zen and the Art of Motorcycle Maintenance
may have articulated this sense best when he discussed the concept of an
identity between the object (the program), the creator (the programmer)
and the owner (the user of the program). He said:
It is this identity that is the basis of craftsmanship in all the
technical arts. And it is this identity that modern, dualistically
conceived technology lacks. The creator of it feels no particular sense of
identity with it. The owner of it feels no particular sense of identity
with it. The user of it feels no particular sense of identity with it.
Hence, by [my] definition, it has no Quality.
In reading about the success of Apple's iPod, an article talked about how
owners gave their iPod's names, and treated them like pets and noted
the vibrations from the hard drives instilled in their owners, a sense of
life.
I don't know about the aliveness of an iPod, but clearly this identity
is due to quality their owners recognize. While some would call it a
legacy, it is true that Apple has created quite a few products of quality
(but certainly not all of them live up to that).
In order for a product to have quality, its creators must have a
craftsmanship-like level of care for every aspect of it. For a poor user
interface, lack of security considerations, and just plain o' bugs, can
become huge cracks to demonstrate the lack of quality.
Why is this important? Well, without that level of care, the owner will not
identify with the product, and without that, there will be less future
purchases, no word-of-mouth advertising to other potential customers, bad
publicity, etc. Without quality, a company can be doomed over the long
haul.
Since pointing about Apple as an example, I may have to mention other
examples for completeness. Take Linux, for example. While the Linux kernel
certainly has a lot of quality, the quality of the entire system can be
spotty, since there is a lot of software surrounding it that isn't at the
same level. When I use a Linux distribution as my desktop, I get quite
frustrated with trying to remember which programs use "Control-C" to copy,
and which ones use "Shift-Control-C" and which ones use "Control-Insert". I
guess consistency is another feature that demonstrates quality, but I
digress into the details.
What about the software dominancy of the Windows operating system, you ask.
Doesn't that demonstrate quality? Perhaps. But the popularity of the crap
that Wal-Mart peddles doesn't seem to evoke quality either. Pirsig echoed
these sentiments by noting America's attachment to bling-bling (I believe
he used the colloquial term, stylize). We often settle for things of
lower quality, and then complain about them, and often we buy the upgrade
thinking that it will be better and easier than changing brands. And
mostly, that is correct.
But it shouldn't stop us from searching, demanding, and acquiring quality.
Why? Pirsig said it best when he used the term peace of mind. When
Microsoft Word
crashes, and you lost the last few minutes of inspiration added after the
last automatic backup, you loose the tranquility necessary to regain that
loss.
Another Pirsig quote:
It's an unconventional concept,… but conventional reason bears it out.
The material object of observation, the bicycle or rotisserie, can't be
wrong. Molecules are molecules. They don't have any ethical codes to follow
except those people give them. The test of the machine is the satisfaction
it gives you. There isn't any other test. If the machine produces
tranquility it's right. If it disturbs you it's wrong until either the
machine or your mind is changed. The test of the machine's always your own
mind. There isn't any other test.
After discussing these ideas with a friend of mine over lunch (who just
happens to be a Quality Assurance Engineer), he said that his boss taught
him the balance between cost and quality. Since one can never fix all bugs,
and that every bug fixed cost a certain amount in terms of engineering
time, etc., it is necessary to draw a line.
Where that line is drawn is the difference between the Kias and the BMWs.
While every car has problems, the line for a BMW is drawn higher, and
this ends up costing the customer more. However, some customers will pay
more for higher quality.
The mass of people don't demand quality products. Hell, they don't even
demand quality from themselves-- but some do. And personally, I would
rather have something of higher quality, and I'll pay more for it.
Tell others about this article: