Slashdot Mirror


The Economics of Perfect Software

An anonymous reader writes "This article takes the interesting perspective that leaving bugs in software is good — little ones, at least. This quote is particularly insightful: 'How do you know whether a bug is big or little? Think about who's going to hit it, and how mad they'll be when they do. If a user who goes through three levels of menus, opens an advanced configuration window, checks three checkboxes, and hits the 'A' key gets a weird error message for his trouble, that's a little bug. It's buried deep, and when the user hits it, he says 'huh,' clicks a button, and then goes on his merry way. If your program crashes on launch for a common setup, though, that's a big bug. Lots of people will hit it, and they will all be pissed. ... The cost of fixing all the bugs in your program and then being sure you fixed them all is way too high compared to the cost of having a few users hit some bugs they won't care about."

1 of 201 comments (clear)

  1. So how about Oracle and Borland by cdn-programmer · · Score: 0, Flamebait

    Oracle shipped their database ported to Dos. I don't use their products anymore. This is what they did.

    In SQL*FORMS one could define a field and indicate that is its numeric. One should not be able to type in "ABCDE" in an numeric field. Indeed if you did then SQL*FORMS trapped the error. However SQL*FORMS also allowed a trigger to be set for the field. If the trigger was set they disabled the error trap! That software was so buggy it was almost impossible to use! In the next version they had the error trap enabled but they changed so much other stuff that I had to re-write the code. It does not feel good having to go to the client and advise that after months of work the product cannot be delivered and that they will have to wait months longer for the next version and hope for the best!

    Borland shipped C++ for OS/2. Again - a system full of crap.

    IBM had so many problems with OS/2 that there were many things that could not be made to work! One was networking between windows NT and IBM OS/2. FTP transfers would just fail. No errors and no warnings.

    Then IBM had the great "feature" in OS/2 that on a dual monitor system one could open a "DOS" window on on the VGA side. The other side was 8514. If the focus was in DOS then OS/2 windows on the 8514 ran. If the focus was in an OS/2 window then the DOS window not only froze - they blanked it out too!

    When Microsoft brought out NT 4.0 OS/2 got the boot! Funny - OS/2 didn't make it in the market place. I had a tech support contract with IBM back then as well! Another thing that was funny is that NT ran command line OS/2 code better than OS/2 did. So how did IBM benefit from their buggy code?

    Here's one Microsoft pulled off. In their Fortran for Dos compiler we found a serious bug. I don't know what triggered it but the compiler would remove certain "if" statements. I managed to find it by looking specifically at the machine code and sure enough the instructions were not emitted. I submitted a report to Microsoft and went to the client and fortunately I was dealing with engineers who did know something about programming. I showed them via the debugger that the code was not there! We figured out a way to get that specific "if" statement working... but we were dealing with 100's of 1000's of lines of code! How does one check what other "if" statements might have been discarded by that crappy compiler?

    So over the next year I checked up with Microsoft every few months. Eventually they told me to buy the new version. I did and when it arrived the first thing I did was to check to see if the bug had been fixed. It wasn't! They never did fix it that I know of. Eventually we got to move off DOS into windows. So I ordered that version. I found the package actually contained two (2) compliers. One was for 16 bit DOS mode. The other was for windows mode. They were incompatible with each other. I gave up. I have never programmed windows in my life! I do not use it! I did run NT for a while but never wrote any "windows" code. I use Linux today and OpenBSD and that stuff works!