SLUG Mailing List Archives
[SLUG] Paying Money for Quality (and software testing)
- To: slug@xxxxxxxxxxx
- Subject: [SLUG] Paying Money for Quality (and software testing)
- From: telford@xxxxxxxxxxx
- Date: Sat, 29 Apr 2006 13:49:43 +1000
- User-agent: Mutt/1.5.6i
-----BEGIN PGP SIGNED MESSAGE-----
With regards to last night's Slug meeting and using automated testing,
I think everyone agrees that writing (and using) test cases produces
higher quality code with less bugs. My point is that higher quality
output doesn't come for free, it requires effort and that usually means
someone has to pay for it.
If you are writing code because you want to write code and you want to
produce the best result that you can then sure you are going to want
to put the extra time into it and do work you can be proud of.
Use whatever techinique you think will work, regression tests will help,
good design documentation will help, feedback from users helps too.
On the other hand, if you want to get a job done, get paid and get out of
there (and that's the way 90% of business works, sorry to say) then the
fact is that corners get cut and the end result is not high quality.
With "Open Source" style programming, it might eventually end up as high
quality software once enough people have got interested enough to bash
it into shape (and often after the second or third re-write from scratch)
but it very rarely starts out that way. In the early days of a project
it is hard enough to get enough time and effort in to make it work
at all (even as a buggy proof of concept) let alone produce a high quality
I've found a good practical example to demonstrate this...
Look at all the discussion about printers and linux printer driver
compatibility. Consider that this is a completely SOLVED PROBLEM and that
all you have to do is buy a printer that supports PCL and/or Postscript
(usually if it supports one it will support both) and you are guaranteed
to have a compatible printer. We know the answer, we know what makes a
high quality product when it comes to printers.
Yet still people keep complaining about Linux printer compatibility.
Why would this be? It seems completely illogical...
The answer is that these people (and there are a lot of them) don't want
to pay that bit extra for a quality printer. Adding Postscript to a printer
is very much like adding an automated regression test suit to your
software. If you buy the same model of printer with Postscript, you don't
get any extra printer, no extra dots per inch, no extra speed, no bigger
paper stack, etc. You get exactly the same physical printer as the model
without postscript. What you do get is better compatibility, better long
term reliability (because you know it will work with anything you give it),
less time wasted debugging problems, less headache, less heartache,
less hair loss. ... but you gotta pay money for that ...
When you add a test suite to your software, you don't get any extra software
either. No extra features, no smarter algorithms, just the same code you
had before ... with a few less bugs and probably a slightly saner modular
structure because testing forces you to work in a modular manner. In other
words, a higher quality version of the same codebase. Once again, it does not
come for free, doing all that testing takes time and effort. Keeping the
tests up to date as the code changes (as requirements change, as you realise
new things that didn't know before) takes effort.
Will people pay extra for an intangible thing like a higher product quality
when the tangible deliverables are outwardly the same? Some people will,
but a lot of people will not. If you don't believe me, just look at the
PC printer market and all the whacky GDI printers with host-based rendering
that use proprietary standards that have never been seriously scrutinised,
have zero chance of being bug-free and are only going to get arbitrarily
obsoleted in two or three years time. These printers continue to sell because
the people buying them will do whatever they can to save a few hundred
dollars no matter what the future consequence of that decision might be.
By the way, I'm not against the idea of testing. I'm fully in favour of
producing high quality software... but the simple fact is that there are
a hugh number of people who really don't care about quality and these are
the people making the majority of financial decisions.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v126.96.36.199 (GNU/Linux)
-----END PGP SIGNATURE-----