-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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 masterpiece. 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. - Tel -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iQIVAwUBRFLiV8fOVl0KFTApAQLdnRAAjx4AEOFB8cJa4XgNOHu1V02E5E9rCesO GtR0SYKLI/3wOw/ZDNo5Z/UjQ2MgXoAyjPEDQjPIum9nklg4njtuRztaf+zzyqwt RNvoD/3RhjYQm6EMOINS00woYqMtReyUMPNwVq0aklP6vFHD4I0Z72Q5A2rUNOBW fmlTOzaK4BAgtZDJRjDNV0pgrHMVlL4ftgZM1DiWVq11UxgM1yEAOguyXgNJ/qtX LXj6lG0xRzFObtENyGvV331WrLJvr0q45vKy6BVVZ5iYiSmWkYGMJnJZKscGchvp HI9DGwGCeU9Ert+u1EMx2+2ZHGoiplarcwTIQrZZUkww9uzKTyqMrW64g3TCQKtr hNpLF6r/RR3abJUBXdr0d2Qw4Wj0XmmqKFCtKBzwjKSGbyeL5t0FbOg7m/Up8t7/ ri8QSKBPxqAOcK28G7kzP6+TiQP4J2Kf6oBMPvKKWzr++xj2r3zgAmQ5HECKjhV9 ayKu1dtH7QJi70xfnmm1DUtr+huPrZemMnmPZPvfFmOlJnxOUW9rqQnNSS5wEJz2 Gwvt3PgCADh2wNsKxRKkz9ycAPJOnVsOFJfM/r2fSn7RJmVUVDGSO8oLl/Pjc2+n SSQfO/3uJlpIJtTrWIrwdIWyh837XEH2P/qg7Em4ChR/40+EdK1S6weBrlkvtT5O SKF0UNCfLFQ= =Q8Ni -----END PGP SIGNATURE----- -- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html