-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 At some point hitherto, Warren E. Agin hath spake thusly: > My father used to run a software company and had the same attitude > toward bugs. He noted that while each version would fix the bugs > found in the last version, it invariably introduced new ones. So, > relying on versioning to eliminate bugs was somewhat pointless. This statement seems obvious to me. Simply releasing a new version can't fix all your bugs... However, while I agree that software developers should not rely on versioning to fix bugs, IMO, responsible software companies *WILL* fix bugs, and will release updates (for free) to the public. But they will also practice good software design to help minimize those bugs from occuring in the first place. The general concensus in the software industry seems to be that very few shops are doing that. I've recently read more than one article written by well known and respected software people (though I can't remember which ones) which suggests what most of us intuitively know already: The reason that there is so much crappy software out there is *not* because we don't have techniques to avoid it, but because no one uses them. There is far too little design and planning involved in a majority of software projects, and far too much "I'll just go off and code what I think will work, and see what happens" going on. There was also an article on Slashdot maybe about a year ago about how a particular company who writes software for NASA produces flawless or near-flawless code for their projects. The way they do it is by following good software engineering principles. The vast majority of the time spent on a project is involved in designing how the software should work, and how the different pieces all fit together. Once you have this done (assuming you did it well), the project practically codes itself, and by the nature of the process, produces far fewer programming errors and logic problems. Software companies don't do this kind of up-front design, because the perception is that would take much longer, and therefore both costs more and takes longer to deliver a product to market. I have seen it suggested that in practice, it actually saves time because there are far fewer required code revisions; and the quality of the resulting software is far superior to that coded by other methods. While I can't point to studies that purport to prove this, I can say that my own anecdotal experience agrees with this. Once I learned to plan out how a piece of code was to work, and to look at what special cases arose BEFORE writing a single line of code, I found that writing the code was much easier, took less time, and produced far fewer errors. On a couple of occasions (granted this was with small programs which did very specific things), I was quite pleased to find that a program I coded compiled and ran correctly the very first time. I do believe that it is possible to write complex software with very few bugs. I even believe that it's possible to do so profitably. I do not, however, believe this will happen until the market FORCES it to happen... I can not for the life of me understand why so many managers of businesses are willing to pay outrageous fees for software that, frankly, sucks really really bad. This is a large part of why I personally use only free software whenever possible, and advocate doing so to my employer, wherever possible. While it's true that the design process is often no more rigorous than commercial software, sometimes it is, and at least your wallet isn't getting raped for the "privilege" of using it. - -- Derek Martin ddm@pizzashack.org - --------------------------------------------- I prefer mail encrypted with PGP/GPG! GnuPG Key ID: 0x81CFE75D Retrieve my public key at http://pgp.mit.edu Learn more about it at http://www.gnupg.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9Nv66djdlQoHP510RAjQEAKCwgzPC9PtmgImgVtJ5J9PCS75EjgCfVhea 4IJ7weizD1KL3qyp8tk43y0= =+XNk -----END PGP SIGNATURE-----