Slashdot Mirror


Why Most Software Sucks

gregbaker writes "Shift Magazine has an interesting article on bugs. They look at why commercial software has so many bugs and attempt to figure out why the software industry doesn't seem to have the same quality standards as other industries." Every Slashdot reader who manages commercial software projects should print this 8-page article out and glue it to his or her bathroom mirror and reread it every morning. But that's just my opinion - which is probably shared by another 100 million+ disgusted computer users worldwide who the commercial software industry seems to think should happily eat whatever garbage they want to throw at us.

529 comments

  1. Bugs by Entity42 · · Score: 3

    You'll have to admit that no piece of software is ever free from bugs, they'll always be there because it's impossible to predict conflicts between certain pieces of hardware etc.

    The real problem is that many major manufacturers aim for a shipping date rather than a quality product.

    I'll prolly get flaim-baited for this but 'That's the way things work these days' I just hope OSS makes a big enough impact

    --
    To err is human,
    To really screw up, you need a computer!
    1. Re:Bugs by Anonymous Coward · · Score: 0
      I'm not flaming, but I would like to point out that over-generalising is rarely helpful, even when it's "obvious" as to what's meant.

      "No complex piece of software can ever be shown to be bug-free" would be a more accurate statement. You can mathematically prove a program "correct" (although this is slow and painfully tedious), EXCEPT when it uses recursion, self-modification, or any other action that can't be modelled in a pure, abstract way.

      Any simple program, though, can be proved correct and therefore can be proved 100% free of bugs.

      If you're willing to move to slightly less formal, slightly less stringent methods, then any program implemented from a formal specification (eg: in Z) can be shown to be bug-free, by showing that the specification and the code are identical.

      Finally, here is a program, written in BASIC, that I can guarantee is 100% free of any bugs:

      10 END

      Thus, you can now truthfully say you know at least one bug-free program.

    2. Re:Bugs by Anonymous Coward · · Score: 0

      What this guy has said is probally the only thing in software development that can really and truely be considered TRUE. This guy knows his stuff , mabye you whining-user should listen to him.

    3. Re:Bugs by Anonymous Coward · · Score: 0
      True - false - it's all just a boolean value.

      If you'd stop throwing stones for a moment and ask yourself whether there might be another side to this, you might be surprised. There ARE bug-free programs, in this world! Most of them trivial, but that's not important. The fact is, they are bug-free! One exception disproves the rule.

      There is NOTHING in software development which can "really and truly" be considered true (other than "never believe people who can't spell 'true'). Even the Halting Theorum isn't absolute - it only applies to devices that are a subset of the Turing Machine, and only says that there are untestable programs. It makes NO statement as to whether all programs are untestable or not.

      (Which is a relief, as it would really suck to learn that all the maths I learned on formally proving programs correct and bug-free was incorrect. That stuff was a pain to learn.)

      Fact is, if you don't understand the maths, don't preach to those of us who do. That's not a flame, it's a fact. If I =know= how to show something is bug-free, in a way that cannot be challanged, I don't need someone running round saying "it can't be done!".

      If you prefer stone-throwing to listening, you will never learn anything. I'm no saint, but I bet I learn more in an hour than flamers, trolls and stone-throwers learn in a month. If all you've got is your prejudice, that's all you'll have.

    4. Re:Bugs by Anonymous Coward · · Score: 0

      But you can't know all of the circumstances under which it will run, vis-a-vis hardware and concurrently-running software. A program can thus be said to be bug-free only in relation to it's own test environment, which is nothing more than the canonical "well, it works on my computer..."

  2. Why GPL rocks. by Issue9mm · · Score: 1

    Just one more reason why to keep software within GPL. Tho I must admit, companies developing software for Windows versions should be exempt from scorn over bugs. In all reality, how is a company supposed to put out a bug free program to run on top of a bug-riddled OS?

    1. Re:Why GPL rocks. by jackmott · · Score: 1

      netscape seems to have equal amounts of issues wether in linux or windows...

      software is hard to do...most people dont know how to do it right, and many of the people who do know how, dont have time.

      --
      -I go to Rice, so figure out my email address
    2. Re:Why GPL rocks. by TummyX · · Score: 1

      Don't be an idiot.
      Show me some major bugs in NT that stops software development. There's a hell of a lot of good software for windows even tho it's so 'bug riddled'.
      Almost every problem I ave with windows is due to 3rd party software - and not windows. Windows could be blamed for not handling 3rd software on a tighter leesh, but not be blamed for the fault itself.

    3. Re:Why GPL rocks. by drudd · · Score: 2

      I have developed on both NT and Windows98 (for either) and can tell you the OS can stop software development cold.

      ActiveX controls and DLL's... I can't tell you how many times a bug is introduced in a new version of Comctl32.dll but is then fixed in a later version. It is often extremely difficult to determine whether the bug lies in your code, the development environment you are using, or in the operating system. The more time you have to spend tracking down OS bugs, the more of your own bugs get through.

      There is also an extremely annoying bug in Windows 9X which causes the tab button to switch between programs rather than (seems the taskbar has grabbed the focus). If you use the tab key to autocomplete or to indent your code, it makes the system unuseable. The only solution I've found to date is to reboot.

      So with NT/98 I waste my time debugging and rebooting when I should be coding and bugfixing.

      Doug

      --
      Venn ist das nurnstuck git und Slotermeyer? Ya! Beigerhund das oder die Flipperwaldt gersput!
    4. Re:Why GPL rocks. by sjames · · Score: 2

      It's the worst kind of bug....an API that invites errors. Wher it takes a dozen lines of code just for the equivilant of if(pid = fork()), the chances of an error are quite high.

      Undocumented APIs that MS uses in it's software makes matters worse. In order to offer comperable features, the competition must also use the undocumented API, only it has to reverse engineer it first, and never knows which ones will disappear and when.

      Windows also has a lot of leaks (otherwise, how could one app crashing take the whole system out). That not only maximises the damage, but also complicates testing. If software cores, you know it's got a bug (and often, where it is). If software renders the system fragile so that it will crash hours later, who knows?

      Windows could be blamed for not handling 3rd software on a tighter leesh, but not be blamed for the fault itself.

      When a worker falls from a catwalk with no railing, the employer that failed to have a railing is the one that gets the blame. Software should work the same way.

      The only time I have ever managed to crash any *nix system during development was driver development. Otherwise, coredump, load the debugger.

    5. Re:Why GPL rocks. by TummyX · · Score: 1

      Tab even when the task bar has focus doesn't switch between programs. I suggest you get your ALT key fixed.

    6. Re:Why GPL rocks. by TummyX · · Score: 1


      When a worker falls from a catwalk with no railing, the employer that failed to have a railing is the one that gets the blame. Software should work the same way.

      The only time I have ever managed to crash any *nix system during development was driver development. Otherwise, coredump, load the debugger.


      That's dumb. OSs like Windows and Unix allow considerable extension. If you don't do it right it's your fault. If you buy a toaster then start adding bits and pieces to it and it blows up and burns your house down it's your fault.
      NT can hardly be blamed for application crashes. If the vendor can't write applications that don't crash - it's not NT's fault. NT will terminate the process and report the error - or if it's a kernel level driver - do a BSOD to protect other processes.

      When you crased your unix system writing a driver - is it your fault or was it unix's fault for not detecting it?

    7. Re:Why GPL rocks. by Tarnar · · Score: 1

      *Bzzzt* Wrongola.

      One of the reasons that there are so many bugs in Win* is that old bugs/code are still in there, and everything works around old bugs. They can't even go fixing some of the old bugs because it brings the rest of the system down.

      So if Windows itself doesn't run As Documented, you expect developed sofware to work too? That's Windows fault.

    8. Re:Why GPL rocks. by TummyX · · Score: 1

      Bah, I don't think so.

      Want to give me an example of some of these so called bugs in windows?

      Windows is one of the best documented commercial OSs out there. I happily write windows software and have more documentation that I ever need.
      Ever heard of MSDN and MSJ?

    9. Re:Why GPL rocks. by chiz · · Score: 1

      Actually, I've encountered this bug myself a few times. The latest occurence was yesterday. Popped up outta nowhere. One minute my system was working fine, the next it was switching apps whenever I tried to tab between fields on a web page form. Rebooted and my system worked fine again, but it's damn annoying having to reboot for something like that.

    10. Re:Why GPL rocks. by TummyX · · Score: 1

      firstly, it's not a problem with windows, and second you don't need to reboot.
      just press all your alt, ctrl keys a couple of times...they get stuck in the wrong logic state.

    11. Re:Why GPL rocks. by Morpheous · · Score: 1
      Hmm... I have used many a Windows app, and it seems to me that the app that crashes the most is...surprise! Internet Explorer (4.x, 5.x, whatever). And, since IE is such an integral part of the OS (as we all know from the antitrust trial, MS said there's no way they can be separated) it naturally takes out my tray apps, etc. My point is that MS itself makes many of the so-called "3rd party" apps, and is blurring the lines every day (is a browser 3rd party anymore, since it is part of the OS?). In fact, it dominates in the areas of:
      • Office suites
      • Browsers
      • development tools

      Yes, there are other apps that have problems (Netscape for one?), but all my "3rd party" app problems point directly back at Microsoft.

      --"A man's Palm is his best friend."

      --

      --"A man's Palm is his best friend."
      (IIIx, that is...hehehe)
    12. Re:Why GPL rocks. by Tarnar · · Score: 1

      Do I need to refer you to some of the DOJ trial events? The DOJ hired a guy to go through some of the source code to Windows, he came across over 100 *marked* bugs.

      So they were marked, they KNEW they were there, they left them. Because that bug was the lesser of two evils, they'd break half the OS fixing some of the oldests bugs.

      Shipping a product with bugs is bad enough, but marked bugs? And hundreds of them in the span of a bit of code (the guy didn't get a chance to see everything). I'm scared.

    13. Re:Why GPL rocks. by Zurk · · Score: 1

      if the unix driver crashed unix, its unixes fault. This bullshit about "not doing it right" is plain stupid. You can never "do it right". Its the systems job to ensure that it has enough protection from your "not doing it right" to make sure it keeps working. NT usually BSODs even when drivers are not involved due to its memory leaks and other shit. Thats NTs fault. Any well engineered OS+compiler should handle the fact that everyone cant do everything right. gcc+stackguard detects and stops stack overflows from root shelling the system. thats a a compiler done right. java doesnt have pointers - thats a language done right. finally, theres a HURD type unix kernel - a microkernel that can recover from most driver crashes (drivers run as "servers"). Now thats a unix kernel done right.

    14. Re:Why GPL rocks. by Vox · · Score: 1

      Want to give me an example of some of these so called bugs in windows?

      What about Win98 SE freezing on shutdown? there's been 2 official fixes out for it, still no go for many people.

      Or what about the 49 days lockup, that only took em like 3 years to fix?

      Or what about NT Server giving me BSODs at boot after installing SP3 on a clean install?

      I'm sure there's lots more, but I'm sick of Windows, so I don't use it anymore.

      Vox

      --
      Pain is the gift of the gods, and I'm the one they chose as their messanger...
    15. Re:Why GPL rocks. by tzanger · · Score: 1

      If you buy a toaster then start adding bits and pieces to it and it blows up and burns your house down it's your fault. NT can hardly be blamed for application crashes.

      Excuse me? If said toaster had expansion ports and you bought add-ons which were designed with ToasterAPI and met the hardware compliance demanded by the toaster and the toaster kept blowing up... it is the toaster's fault.

      The more posts I read from you the more I feel the urge to slashdot Rob with a request to add an user-ignore list to slash. You are a troll, and not a very good one at that.

    16. Re:Why GPL rocks. by Robin+Hood · · Score: 1
      Want to give me an example of some of these so called bugs in windows?

      I have seen with my own eyes the following two scenarios:

      1. Turn on PC. MS Windows 95 boots. Run MS Word. Type for a while. Crash for no apparent reason.

      2. Turn on PC. MS Windows 95 boots. Wait. "Curves and Colors" screensaver kicks in. Crash.

      Ever heard of MSDN and MSJ?

      No, but my guess is they stand for "Microsoft Developers' Network" and "Microsoft Journal", respectively. Are they open to everyone? Do they cost anything to join? If the answers to these questions are "yes" and "no", respectively, then I'll admit their utility as a source of documentation. But documentation isn't useful if it: a) costs extra to get (not everyone will be willing/able to get it, which drastically reduces its utility), or b) is inaccessible to some people (ditto, only more so).

      So please. Tell me more about MSDN and MSJ. I do want to know about them.
      -----
      New E-mail address! If I'm in your address book, please update it.

      --
      The real meaning of the GNU GPL:
      "The Source will be with you... Always."
    17. Re:Why GPL rocks. by Anonymous Coward · · Score: 0

      Wrong logic state. Right. That's like an infinite binary loop. You don't know what you are talking about, and you have not seen this problem first-hand, so don't try to provide a quick fix. It's still a bug in windows.

    18. Re:Why GPL rocks. by TummyX · · Score: 1

      Look who's talking.

      "infinite binary loop"

      duh sure you know what you're tlaking about.
      if the keyboard's locks on alt ....how's that windows' problem.

      i wouldn't say this if i hadn't experienced that. that's why i said press all your alt/ctrl keys.

    19. Re:Why GPL rocks. by TummyX · · Score: 1


      I have seen with my own eyes the following two scenarios:

      1. Turn on PC. MS Windows 95 boots. Run MS Word. Type for a while. Crash for no apparent reason.

      2. Turn on PC. MS Windows 95 boots. Wait. "Curves and Colors" screensaver kicks in. Crash.



      There are more variables to that than just windows. hardware for example. I've NEVER had word crash on me at all...ever. then again, i don't use it that often, only for writing stuff. people at work use word, and they haven't reported any problems to me.

      MSDN is free for online use. If you want the CDs shipped you have to pay. You can access the entire MSDN database from msdn.microsfot.com

      MSJ is a magazine - hence not free. some articles are online however, as are all the source code and examples.

    20. Re:Why GPL rocks. by TummyX · · Score: 1

      They're just examples. If you just try to wrap your little mind around it.
      I was thinking more of homer's toaster fixing episode where he made a time machine out of the toaster.

      certainly some engineers might want to add stuff to their toaster.
      either way - the point is made unless you're really really stupid. If you really must, replace toaster with Linux, Solaris or NT.
      If you are a programmer and your application crashes, 99.9% of the time it's your fault.



      You are a troll, and not a very good one at that.

      ROFL, whatever *bows down and worships the unix king.*

    21. Re:Why GPL rocks. by dalin · · Score: 1

      He's right about how to fix it. I've had this happen to me many times, and I simply do the same thing he suggested (pressing alt and/or control) a couple of times, and presto-booger, all better. I guess it's hard for a die-hard linux junkie to accept something so simple about Windows. Speaking of linux, I think I'm going to go play xkoules now.

    22. Re:Why GPL rocks. by Helge+Hafting · · Score: 1

      firstly, it's not a problem with windows, and second you don't need to reboot. just press all your alt, ctrl keys a couple of times...they get stuck in the wrong logic state.

      Yuck - an os capable of getting alt, ctrl, etc. stuck in the wrong state. How do they do that?

    23. Re:Why GPL rocks. by Mock · · Score: 1

      When a program I'm developing under linux hits a bad pointer, it core dumps.

      When a program I'm developing under Windows hits a bad pointer, the entire system freezes solid.

      This can increase bug hunting time from a few minutes to a few hours easily since you have to reboot the machine every time it hits the bad reference.

      Quite often, even the tenacious mouse pointer dies (How much nicer windows would be if the rest of the OS were as crash-resistant as the beloved mouse pointer!).
      Sometimes I get a spontaneous reboot or some crash so bad the video card turns off.

      Working under windows (I mean REALLY working) is an excercise in rebooting, especially for software development.

    24. Re:Why GPL rocks. by ajf · · Score: 1
      Yuck - an os capable of getting alt, ctrl, etc. stuck in the wrong state. How do they do that?

      Prepare to wish you hadn't asked: :-)

      When you press down Alt, the keyboard sends an "Alt pressed" message, and sends an "Alt released" message when you release the key. If the OS somehow misses this "released" message, it thinks you're still holding Alt down. Thus Tab is interpreted as Alt+Tab.

      Pressing Alt will send a new press and release message, the latter fixing the problem.

      --

      I miss Meept.

    25. Re:Why GPL rocks. by Anonymous Coward · · Score: 0

      No the guy is right. Although i don't code, i have the alt key getting "stuck" once in a while. Then Tab just switches between apps. And the keyboard is definitely fine cause it's been working fine and still is.

    26. Re:Why GPL rocks. by hemanman · · Score: 1

      My words exactly. It's always 3th party products, or drivers that f*cks up your Windows installation.

      In fact, I've just got my W2K blown by Adaptec Easy CD-creator, so much for easy, eh?
      M$ is not always to blame, often it's the small companies that say: "Let's ride the wave and earn some quick bucks".

      One thing more, can anyone tell me why I have to upgrade BIOS on almost every hardware device I got, every two months? And when you do, to get like a new application working, you have to have different BIOS combinations of your hardware devices, because some of them dosen't work with others.

      Linux is also "bug riddled", theese days I seldom download some pice of source without having to change at least 5 source files before it even works just a little bit. Well, it's fine for thoose who have nothing else to do, but I happend to have a busy schedule, so I don't have time to fix software, in my spare time.

      Maybee the answer to all this isn't in the greed of the big company manager division, but more fundemental, in the very nature of human beings, and the society of the late 90', which seems to stimulate this very primitive behavor.

    27. Re:Why GPL rocks. by Anonymous Coward · · Score: 0

      I've seen it happen in Linux...

    28. Re:Why GPL rocks. by Anonymous Coward · · Score: 0

      >> There is also an extremely annoying bug in Windows 9X which causes the tab button to switch between programs rather than (seems the taskbar has grabbed the focus). If you use the tab key to autocomplete or to indent your code, it makes the system unuseable. The only solution I've found to date is to reboot.

      Often ending task on explorer will get your tab key working correctly again. If that doesn't do it, logging out (as opposed to rebooting) should. I think what's going on here is that Windows keeps a buffer of keyboard and mouse events, and when that buffer goes all wonky, you get the tab key behaviour, or strangeness with the escape key, or other misbehaviour.

    29. Re:Why GPL rocks. by Salamander · · Score: 1
      >>The only time I have ever managed to crash any *nix system during development was driver development. Otherwise, coredump, load the debugger.
      >
      >That's dumb. OSs like Windows and Unix allow considerable extension. If you don't do it right it's your fault.

      Mostly I agree with you. However, the OS vendor can be held responsible for driver bugs in two ways:
      1. If the vendor forces things to be done in-kernel because that's the only way they're possible, when those same things could be done out-of-kernel given a reasonable OS structure, then they share responsibility. There are a lot of people writing Windows drivers who shouldn't be writing drivers, and a lot of bugs result from it, all because MS gives them no other option.
      2. The OS vendor can make it easier or harder to write a "correct" driver, and can make it easier or harder for common types of errors (e.g. memory overwrites) to crash the whole system instead of just halting the offending subsystem.

      One of my fondest dreams is that sometime before I retire I'll get to work on an OS that adequately isolates the kernel, drivers, filesystems, etc. from one another without tossing performance out the window. So far it's just a dream, though, and will probably remain so as long as address-space manipulation is so inefficient.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    30. Re:Why GPL rocks. by zantispam · · Score: 1

      "Pressing Alt will send a new press and release message, the latter fixing the problem."

      Sometimes. I've actually found it better to click somewhere on the taskbar. This returns focus to the proper window and clears out the "Windows Brain-Fart", as I like to call it...


      --

      censorship is a form of noise, which actively seeks to drown out content with silence - Crash Culligan
    31. Re:Why GPL rocks. by Salamander · · Score: 1

      >When a program I'm developing under linux hits a bad pointer, it core dumps.
      >
      >When a program I'm developing under Windows hits a bad pointer, the entire system freezes solid.
      >
      >This can increase bug hunting time from a few minutes to a few hours

      I hope everyone who reads this will take time to reflect on the fact that this phenomenon of much slower debug cycles affects every driver programmer on (just about) every OS platform, and goes a long way to explain why drivers often aren't available for everyone's OS of choice the day the hardware ships. Sometimes we driver writers actually hold up release of a driver for a particular platform because...*gasp*...it still has bugs that we haven't had time to fix.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    32. Re:Why GPL rocks. by zantispam · · Score: 1

      I just have to say that the Windows documentation and MSDN are two of the most convoluted things I've ever had the displeasure to use. The search features plain suck and the information I need is usually missing, incorrect, or totally misleading.

      Linux: Man [whatever]

      -- Yeah, it can be cryptic, but I've never had it fail to answer my question. Sometimes it takes me awhile (I rode the short bus to school :-)

      Microsoft: F1 -> Search -> [soundcard info]
      Results:
      -- Using the Microsoft Network
      -- Windows 9x Tips and Tricks
      -- Printer drivers
      -- Using Microsoft Office
      -- Windows 9x; a Guided tour
      -- Property Let statement
      -- ! operator
      -- etc...

      Obviously those werent real search results. But that's pretty close to what I get when I try to get any kind of documentation help.

      Obviously, you know quite a bit about this sort of thing. Tell me, am I just a total idiot, or what???

      --

      censorship is a form of noise, which actively seeks to drown out content with silence - Crash Culligan
    33. Re:Why GPL rocks. by sjames · · Score: 2

      That's dumb. OSs like Windows and Unix allow considerable extension. If you don't do it right it's your fault.

      When writing a driver, yes, that's true. That's why I DON'T blame *nix when my pre-alpha driver blows the system up. My point there was that writing a driver is the ONLY time I have managed to cause a *nix system to blow up because of anything I coded. Windows (NT, 95 ) on the other hand are not nearly so robust.

      NT can hardly be blamed for application crashes.

      I don't blame NT for application crashes, I blame NT for allowing those crashes to spread to other processes or the OS itself. It's my job to keep my app from crashing, It's the OSes job to keep your app's crash from crashing my app.

      NT will terminate the process and report the error - or if it's a kernel level driver - do a BSOD to protect other processes.

      Interesting concept, murder/suicide to protect the innocent. Seriously, my problem with NT is the number of times it FAILS to terminate the errant process to protect itself and other processes. Instead, the process gets away with a few things and de-stabilises the whole system. The programmer didn't catch the bug because the process didn't get terminated during testing either.

      Short summary, if you defeat the safety and get hurt (write a driver and crash the system) it's your fault. If the safety fails and you get hurt (normal application crashes the system), it's the system's fault (and ultimatly the designer of the system). NT's safety seems to fail a lot.

    34. Re:Why GPL rocks. by Darkstorm · · Score: 1

      Thank You! I could not have said it better. I reboot 10-15 times a day (average) while programming. Only 3-5 when just using winblows. I can work all day in linux and IF I am really abusing lots of different things on a rare once a month basis crash X.

      I think that if windows had the stability of linux (everyone laugh) then windows software would be much more stable. I can state from experience, that I spend more time determining whether it is my bug or windows' bug. Most of mine are simple and easily fixed, windows' bugs are not fixable and workarounds are a pain.

      So until the day I can get a job working as a linux programmer, I will continue excercising the reboot procedure.

      (too bad it doesn't burn calories or build muscle)

      --
      If ignorance is bliss, the world is full of blissful people
    35. Re:Why GPL rocks. by tzanger · · Score: 1

      They're just examples. If you just try to wrap your little mind around it. I was thinking more of homer's toaster fixing episode where he made a time machine out of the toaster.

      Examples of what? Homer's escapade with the toaster is certainly not a good example of why Win* blows up everytime someone looks at it. It's an example of blowing something out of proportion. Both Unix and Win* have APIs that are to be followed when developing applications. However, the Win* one has a far greater chance of blowing up if you're following the documentation (due to undocumented bugs, the necessity of undocumented API calls which, by their very nature, aren't in the documentation, etc.) than the Unix one. The toaster episode has nothing to do with application development. An excercise in Tim Taylorism, perhaps.

      either way - the point is made unless you're really really stupid. If you really must, replace toaster with Linux, Solaris or NT.

      Your example still doesn't make sense, and insulting my intelligence doesn't help your arguement any. I'm quite familliar with examples and adding things on to toasters. I are an engineer, you see. Both in hardware and in software. :-)

      If you are a programmer and your application crashes, 99.9% of the time it's your fault.

      agreed. On a solid platform. On a Win* platform, however, that statistic is probably closer to 98%. And finding out how to get around the problem that doesn't seem to be yours is an excercise in futility, since you're navigating undocumented APIs, 30 versions of a .DLL with no documentation on which bug was fixed where and what bugs were introduced... you get the picture.

      Yes, I know of MSDN and the like. Good resources, so long as the documentation matches the system, which is often not the case with Win*.

      Why is it even possible for this to happen? Because the OS doesn't enforce good programming procedures, plain and simple. Last time I checked, that was an OS' job. An OS which doesn't perform this function is a flawed OS.

      ROFL, whatever *bows down and worships the unix king.*

      Unix King? I've never been accused of that before. I mainly develop hardware and software on embedded systems. I do application development on both Unix and Win* and I can tell you with certainty that my ability to generate a 50 line 'subset' program that displays a bug which I can't trace to my original project is directly related to which OS I'm developing for.

      Regarding your Trollish nature, check back on your posts. "Show me the bugs" "I can't find any bugs" "WinNT is super-stable" "Microsoft rules" -- nahhhhhhhhhh, you're no troll.

      Perhaps you've got your head so far up your arse you can't see how bad your attempts at Microsoft advocasy are.

    36. Re:Why GPL rocks. by Tenareth · · Score: 1


      Sorry, he is right. It is actually a problem with the PC, which is compounded by the OS. An Interrupt gets missed, leaving the Alt key in "enabled" mode. Alt works like a Meta, not like shift. Therefore there is an interrupt for Alt-on, and one for Alt-off. If you miss the second, it thinks it is still on.

      This becomes very common (Rather common) in PCs with Network cards, since they are constantly giving out Interrupts.

      If the OS does not have extremely tight Interrupt handling code, it can miss interrupts that get over-queued. In a standard PC the serial gets the highest priority (Every interrupt gets a priority). The keyboard generally gets a relatively low priority, since it gives interrupts at about 100wpm top. Which, compared to a network card is almost never ;^).


      -- Keith Moore

      --
      This sig is the express property of someone.
    37. Re:Why GPL rocks. by Eccles · · Score: 2

      Show me some major bugs in NT that stops software development.

      That comment is revealing in itself. Most people use 95/98, not NT. So why did you limit it so particularly? (And I see you've done it again in *another* posting on this thread.) I personally have to reboot 98 at least once every evening I use it, for some mysterious leak (that has survived the 95->98 upgrade, changes in devices, etc.)

      I still hear bug reports for the app I work on where the toolbar buttons have disappeared. This was caused not by a bug of ours, not by an OS bug, but because the user installed Internet Explorer 4.0. So I guess IE really is part of the OS...

      Things about Windows that have made development more difficult:

      1) NT vs. 95/98, where the two have similar but not bug-for-bug identical APIs

      2) DDE vs. OLE vs. DLLs vs. MCI vs. COM vs... 10,000 different ways to share data and code rather than getting it right the first time.

      3) Changing the OS with their own apps, like the IE 4.0 thing mentioned above.

      4) Once they move onto the new feature set (such as 98 vs. 95) they'll never touch the 95 code to fix bugs again.

      5)... there's more, but I have work to do.

      Part of the problem is that OS bugs, once detected, are the most difficult to "fix" (more properly, to work around.) Often they require the developer shift platforms to create the workaround. They may introduce inefficiencies for users who wouldn't have the problem to begin with. And there's no way to really fix the problem, since you don't have access to the source. And get the OS company to fix it? Hah! For one recent bug, I would need a fix for a product the OS company has dropped, and they laid off/transferred the entire development team (Apple and the QuickDraw3D team).

      --
      Ooh, a sarcasm detector. Oh, that's a real useful invention.
    38. Re:Why GPL rocks. by cduffy · · Score: 1

      Because it's not a keyboard problem, it's an interrupt-handler problem.

    39. Re:Why GPL rocks. by TummyX · · Score: 1


      Regarding your Trollish nature, check back on your posts. "Show me the bugs" "I can't find any bugs" "WinNT is super-stable" "Microsoft rules" -- nahhhhhhhhhh, you're no troll.



      I never said "WinNT is super-stable" or "Microsoft rules".
      But i bet you've said "Linux is super-stable" "Open Source rules".

      Where's the difference except in opnions? Or don't personal opinions count anymore? Mr engineer.

    40. Re:Why GPL rocks. by TummyX · · Score: 1


      That comment is revealing in itself. Most people use 95/98, not NT. So why did you limit it so particularly? (And I see you've done it again in *another* posting on this thread.) I personally have to reboot 98 at least once every evening I use it, for some mysterious leak (that has survived the 95->98 upgrade, changes in devices, etc.)



      Almost all serious windows developers use Windows NT. This is a developmental issue is it not? Windows 9x is unstable mostly due to it not protecting some vital areas of memory - i won't make excuses for it, I don't like it so I run NT.


      1) NT vs. 95/98, where the two have similar but not bug-for-bug identical APIs

      Well, if they're moving ahead to a new platform - why not? I mean, what Win9x application have you run on NT that goes all funny? Baring kernel level applications.


      2) DDE vs. OLE vs. DLLs vs. MCI vs. COM vs... 10,000 different ways to share data and code rather than getting it right the first time.


      10000? You've only mentioned 3, MCI is the multimedia command interface, and I won't even mention DLL, it's really irrelevant especially since Unix has .so. And since when was choice such a bad thing? I can add a few more to that list (tho very basic ways that unix programmers would use) like pipes, mailslots, sockets, shared memory & memory mapped files.
      And what you do mention are simply evolved forms of the previous technology.
      DDE->OLE->OLE2->COM->COM+.
      Just evolution. Even now you can still use DDE if it's simple. But I have yet to see someone lose sleep over choosing which technology. New software almost always uses COM.

      3) Changing the OS with their own apps, like the IE 4.0 thing mentioned above.

      What should microsoft do? Change the OS with Netscape's apps? Maybe microsoft should remove notepad, wordpad, pinball, all the utils like runas.exe, ipconfig.exe etc? But then if they did you guys would just complain windows had no utils that NOSs need.


      4) Once they move onto the new feature set (such as 98 vs. 95) they'll never touch the 95 code to fix bugs again

      Even if they did that.. so? They want to concentrate on new software. How many people work on the 1.x kernel? And that's the open source community. Think of companies. How often does Sun release new updates to Java 1.x? We all are forced to use 1.2. There's nothing wrong with that IMHO. Microsoft have been releasing updates to Win95 as major bugs are found...servies in win95 like DirectX, ADO, etc are updated regularly. Win95 is made up of several components which are updated regularly.

    41. Re:Why GPL rocks. by tzanger · · Score: 1

      Where's the difference except in opnions? Or don't personal opinions count anymore? Mr engineer.

      I believe the word I'm looking for is trending.

      From this comment:
      firstly, it's not a problem with windows, and second you don't need to reboot.
      just press all your alt, ctrl keys a couple of times...they get stuck in the wrong logic state.


      Here you say it's the user's problem that the ISR can't keep track of the keyboard's key states. I've experienced this problem too, but never on Linux and that's with the exact same keyboard in the exact same computer.

      A pair of trollish comments, found here:
      Want to give me an example of some of these so called bugs in windows?

      and

      Windows is one of the best documented commercial OSs out there.

      Never heard of QNX or any other properly documented commercial OS, I guess.

      And from here:
      That's dumb. OSs like Windows and Unix allow considerable extension.

      Why is it one falls over and the other doesn't when something goes wrong? Could it be bad design?

      Another pair of trollish comments: (here)
      Show me some major bugs in NT that stops software development.

      and

      Almost every problem I ave with windows is due to 3rd party software - and not windows.

      That's only from that one article. Let's go to a few others:

      From this article:
      Firstly Windows will KICK any laptop running Linux & Netscape.

      I'm running that right now and I can tell you that my system is zippier under WindowMaker than it is under Win98. ATI Rage 2 LT Pro chipset.

      and from the same article:
      Please don't compare PostGreSQL & MySQL to SQLServer - it's stupid.
      Microsoft have very smart engineers, mathematicians etc working on SQL Server round the clock.


      hahahahahhahahahahahaa... okay... 'round the clock, eh? What exactly is it that SQLServer does that Postgres can't do? Or Oracle? (MySQL is a different story, it's not a full RDBMS)

      and from this article:
      writes it's most important java tool (the compiler) in java. *please* - yes java is cool, but don't push it. surely they could put in that extra effort to write an ansi c or c++ compiler to save hundreds of hours of developer's times.

      Hmmm, kind of like how Microsoft pushes IE5 on everything? Or how your spreadsheet is an email program is a presentation manager is an OS? It's okay for Microsoft to push something, but not Sun? (I am not a fan of Java, however)

      this article has this comment attached to it:
      Windows doesn't go and secretly make a process space for office and load up some office specific DLLs whenever windows starts up - trust me.

      Trust you... where's the proof? Microsoft's history is chock full of shady manouvres to make their stuff look better or to serriptuously go out and assasinate competitive products.

      What does the "Microsoft Office" (OSA9.EXE -b -l) in my startup folder do? Preloading anything? I don't know, I haven't checked, but it looks suspicious. O2k took quite a while to install, it probably has registry settings set up in such a way that most components are preloaded "in the background" -- no wonder my machine now takes another 15 seconds to boot up in Windows mode. It's not fast find... I've got that disabled. Or so MicroSoft tells me...

      Anyway, I am just following a trend of yours... Microsoft does everything right, they don't do any shady dealings and anything by Sun, Star Division, Apple, etc. is bad. I've come to the same conclusion that a few other people have voiced: You are a troll.

    42. Re:Why GPL rocks. by Eccles · · Score: 2

      Almost all serious windows developers use Windows NT. This is a developmental issue is it not?

      Of course developers develop mostly on NT, but the applications they develop run mostly on 95/98. As an example of where this screws things up in the app I work on, we had a crash that appeared only on 98, and only on certain machines. I attempted to set up remote debugging on that machine, and it refused to work. I put MSVC on that machine, and it crashed while compiling. I was never able to fix that crash. Apparently it "went away" thanks to other changes in the code, but as far as I know it might reappear on any new compile.

      Unix/Linux machines often give you core dumps -- memory images of the program when it crashes -- which you can then use a debugger on to find the point in the code where it crashed. While this doesn't matter to the developer who is generally running the program under live debugging (MSVC isn't perfect, but it's not bad either), it does mean that it's harder to track down problems discovered by alpha testers (people in the same building.)

      I mean, what Win9x application have you run on NT that goes all funny?

      First off, there are a whole bunch that don't run at all. Second off, we've had to write workarounds for things that work in NT, not 98. Mercifully, I personally haven't had to deal with them much (other than the above crash), but I hear plenty of kvetching from my coworkers...

      Sorry, I just don't have the time to respond more, but DDE and OLE are totally different (DDE is text-based, OLE is like published C++ classes), and you still need DDE to do thing like change the start bar; installing an app shouldn't change the OS (and break other programs) at all, no matter what the app; and the Linux guys have issued 2.0.x revisions even after 2.2/2.3 started.

      --
      Ooh, a sarcasm detector. Oh, that's a real useful invention.
    43. Re:Why GPL rocks. by TummyX · · Score: 1


      Unix/Linux machines often give you core dumps -- memory images of the program when it crashes -- which you can then use a debugger on to find the point in the code where it crashed. While this doesn't matter to the developer who is generally running the program under live debugging (MSVC isn't perfect, but it's not bad either), it does mean that it's harder to track down problems discovered by alpha testers (people in the same building.)

      Visual Studio if installed will prompt you when there's a crash giving you the option of debugging. Otherwiese you could try doctor watson - not that it helps that much.


      First off, there are a whole bunch that don't run at all. Second off, we've had to write workarounds for things that work in NT, not 98. Mercifully, I personally haven't had to deal with them much (other than the above crash), but I hear plenty of kvetching from my coworkers...

      Well there are features only available in NT, and not 95, 98 however supports a bit more (like transparencies). More APIs get added as new OS releases come out.


      Sorry, I just don't have the time to respond more, but DDE and OLE are totally different (DDE is text-based, OLE is like published C++ classes), and you still need DDE to do thing like change the start bar; installing an app shouldn't change the OS (and break other programs) at all, no matter what the app; and the Linux guys have issued 2.0.x revisions even after 2.2/2.3 started.

      Yes, DDE is text based. OLE & COM just define interfaces - and are language and platform independant. It shouldn't be much of a hassle to write a COM wrapper for the start bar.
      Adding new bands (like quicklaunch) to the start bar only requires writing a COM object. As you see, nmew features come along, and they use the latest technology microsoft has developed. Old things that still use DDE can either be wrapped with COM or stay as DDE cause MS don't deem it important. DDE is pretty simple tho.

    44. Re:Why GPL rocks. by TummyX · · Score: 1

      I'm sorry, but you must be confusing Windows with MacOS. Win9x and Windows NT both have memory protection - each process has it's own memory space. A bad pointer won't crash the OS. I used to develop primarily in Windows 98, now I use Windows NT. The only time I ever hosed the OS programming was when I was writing windows hooks, and didn't pass the hook on...thus freezing all the other processes.
      There's is absolutely no way in NT (and almost no way in win9x) that you can hose the system by having a bad pointer - unless you're writing something kernel level like a driver.

    45. Re:Why GPL rocks. by TummyX · · Score: 1

      It's a rare time that I've ever seen a hosed process hose other processes on NT. The only things that really happen - are that process doesn't release a global resource (i don't think windows monitors everything global - that would be really costly).
      Care to point me to an application or some code that I can use to 'hose' NT?
      I'd be real interested.

  3. Re:first by Entity42 · · Score: 0

    Hehe I'm first now :P

    --
    To err is human,
    To really screw up, you need a computer!
  4. faster faster faster . . by Money__ · · Score: 1

    Most software sucks because of Moores law. Until researchers "hit a wall" in processing power , what posible insentives to people have to maintain/treek/improve/optimize code when it's going to be scaled out of relevance in a year? I think Moores law/marketingtrend could slow down just a little bit.

    1. Re:faster faster faster . . by TwistedGreen · · Score: 1

      Just like someone's signature i saw the other day....
      "Gates' Law: The speed of software halves every 18 months"
      :)

    2. Re:faster faster faster . . by Anonymous Coward · · Score: 0

      Most software sucks because simplicity has gone out of fashion in the industry!! KISS isn't just for UI's.

    3. Re:faster faster faster . . by dwarfking · · Score: 1

      Absolutely!! A-men!!!! In my role I'm responsible for not only architecture design, but review of application teams' development. Always, the teams that use the new-kool features of the languages/tools end up with slow, buggy hard to maintain software. The teams that do it simply, end up with fairly stable solid code. KISS should be a required course for all programmers!

  5. First Real Post (jk) by eries · · Score: 1

    On the other hand, I wish that most users would have some appreciation for the vast complexity of even apparently "simple" pieces of software.

    You cannot have your cake and eat it too. If the software industry had the same stringent standards as other industries, 99% of software would not exist.

    If users weren't so rabidly feature-hungry, we wouldn't be in this mess. Unfortunately, users expect that each new version of software will have 23,456,236,263 (I counted) new features in it or they won't buy it.

    1. Re:First Real Post (jk) by Stradivarius · · Score: 2

      If the software industry had the same stringent standards as other industries, 99% of software would not exist

      Ah, but the 1% that did would be quality stuff. The interesting question is, would we be better off with a smaller quantity of software, with higher quality?

      I think so. I know I don't need 1e6 features in my word processor, or web browser, or [insert application here]. Most people don't, and I'm sure a lot of people would trade unused features for stability.

      I also think that if some companies would start creating software with stringent quality control, avoiding feature-bloat and the accompanying bugs, they could make a name for themselves (with the appropriate marketing, of course). Thinking of buying M$ Bloatware 3000? Buy our app instead. It has all the features you actually use in the MS product, but ours actually works!

    2. Re:First Real Post (jk) by eries · · Score: 1

      Agreed, but historically this approach to marketing software has not been successful.

    3. Re:First Real Post (jk) by Funky+Jester · · Score: 1

      Hmmm. Why not a lighter, more reliable piece of software that's easily extensible with, say, a macro language. Then anyone who wants those extra features can add their own.

    4. Re:First Real Post (jk) by LarryStorch · · Score: 1

      Ah, but the 1% that did would be quality stuff. The interesting question is, would we be better off with a smaller quantity of software, with higher quality?

      Yes.

      My 50+ year old industrial design co-workers and myself use a *nix workstation and highend design software. Yes, it's expensive and has a plain GUI, but it rarely (99%) bugs out on us.

      On the other hand we also have a windows box beside our workstations for msoffice. About 5 times a day, a co-worker will bellow "Hey Mark! Why did Word do this? What does this blue screen mean? How do use this new email program?" I end up trying to setting thier preferences on a program to get rid of the bells and whistles. They don't want it and they don't need it.

      All these people want is to be able to do thier jobs without a big ritual or having to take a weeks worth of training for the latest-greatest. Sure new way the speed up a repetative task is great and they go for it.

      I think alot of software companies have missed the boat with the average home user:

      If it's too complicated, they won't use it.

      I'm not saying that they're dumb, they just have better things to do with thier lives than deal with something that's too hard to use.

    5. Re:First Real Post (jk) by Anonymous Coward · · Score: 0

      But we already have Emacs, and end users hate it.

    6. Re:First Real Post (jk) by odaiwai · · Score: 1

      Hmmm. Why not a lighter, more reliable piece of software that's easily extensible with, say, a macro language. Then anyone who wants those extra features can add their own.

      Isn't most of Word and Excel already written in VBA?

      dave

    7. Re:First Real Post (jk) by Raven667 · · Score: 1

      What we need is EmacsOS. Yes!

      Actually KOM/OpenParts or GNOME is the right way to go. As long as you can keep the interoperability clean (CORBA) you can spend your time writing small, robust applications. Just like the Unix CLI environment, with stdin and stdout, where applications can freely exchange data the new CORBA based desktop environments will bring this functionality to the GUI.

      --
      -- Remember: Wherever you go, there you are!
    8. Re:First Real Post (jk) by remande · · Score: 2
      All these people want is to be able to do thier jobs without a big ritual or having to take a weeks worth of training for the latest-greatest. Sure new way the speed up a repetative task is great and they go for it.

      I think alot of software companies have missed the boat with the average home user:

      If it's too complicated, they won't use it.

      I'm not saying that they're dumb, they just have better things to do with thier lives than deal with something that's too hard to use.

      Amen to that, brother.

      I am a programmer, and I do a decent amount of word processing to document what I do (because I'm lazy, in the Larry Wall sense). I have Word (corporate standard, not my idea). I can keep 10 KLOC of Perl in my head. I am not just a luser.

      I can't get Word to do what I want it to do. There is simply too many possibilities, too many ways to screw up.

      Where's SpeedScript when I need it? Where's LaTeX?

      --

      --The basis of all love is respect

  6. Ashamed by Anonymous Coward · · Score: 0

    I teach an intro to computers class at the local library. Before I begin class, I personally apologize for the poor quality of commercial software the class has to use (you can guess which OS). Commercial software vendors get away with things that attorney's general would prosecute for if not software: false pretense, misleading advertising and faulty products in violation of product protection laws. I'm ashamed to have contributed to the mess over the last fifteen years I've been "in the biz", but of course, I've had little control over the Big Picture. We can only do our small part and hope it makes a difference!

    1. Re:Ashamed by Anonymous Coward · · Score: 0

      Come now.. what would you have people in an 'intro to computers class' learn on, linux? "OK class, now put in a disk, and mount /dev/fd0.. good! Next, type "ifconfig -a".. good!" Somehow I think teaching people the operating system that runs on most of the computers they will ever need to use will be more productive than teaching them a better OS.

    2. Re:Ashamed by Bloob · · Score: 1
      Perhaps in the education sector, universities and colleges should teach how to avoid bugs by planning on paper first, then peer-review and then code, then re-visit stage one again. Also how to ignore managers - if all software engineers did that the managers wouldn't have any more engineers to hire so they'd have to let the process slow down and let stability win.

      And if people actually sent back their commercial software purchases for refunds rather than assigning them to a shelf while they install another product, maybe managers would get the message from the public perspective.

      What am I talking about, I'm just a consumer <g>

    3. Re:Ashamed by Anonymous Coward · · Score: 0
      then again, the first thing taught in a windows class isn't how to edit the registry.

      if taught thoughtfully and thoroughly, i doubt people would have any more difficulty picking up linux than windows, esp. if X was used in conjunction with KDE/Gnome.

      in fact, i'd dare say they'd understand it better. complex consistency is more important that a simplicity of confusion

      Aaron J. Seigo.

      (No, I still don't have an account.)

    4. Re:Ashamed by benbean · · Score: 1

      You may jest, but I personally find it's much easier to teach neophytes a simple text-based system than any type of supposedly friendly GUI. If they've used Windows before for any length of time the equation changes a little. Phone support is still much easier on a command-driven system.

      --
      It's a Unix system - I know this.
    5. Re:Ashamed by Wentley · · Score: 1

      then again, the first thing taught in a windows class isn't how to edit the registry.


      Since clueless hackers editing the registry is one of the leading common causes of Windows instability (you know who you are-- you immediately go in with your little tools and your "great skill" in "taming the beast" and start "ripping things out."), it seems to me like teaching people to Not Edit The Registry should be one of the first things taught in an Intro-To-Windows class.

      Then again, I shudder to think anybody would get much of any worth taking such a class from a Microsoft Hater. That would be like having a Mac Hater teach an intro to the Macintosh course.

    6. Re:Ashamed by Wentley · · Score: 1

      That wouldn't be "Hacking" though and we all know well enough to assume a worshipful pose when contemplating the idea of "writing code."

      Flow charts must come at the last stage in development. Ask any "Real Hacker(tm)"

    7. Re:Ashamed by RGRistroph · · Score: 1

      I think that there is a lot to be learned from haters. Often their hatred is born from the experience of a a life time of trying to do the tasks that the software in question is least capable of, and it gives them some insight.

      Take "The Unix Haters Handbook". I was securely convinced that Unix was the greatest thing possible until I read that. Then I saw people complaining of many of the same problems that I had trained myself to work around, and further learned how some of them became embedded during unix's evolution. At least I now can immagine something better. I'd like to try out one of those lisp machines one day.

      Anyway, I think a rabid Windows Hater or Mac hater might be a great person to teach an intro class. The hatred should be generated by close contact with the operating system and not close contact with it's advocates, of course.

    8. Re:Ashamed by Anonymous Coward · · Score: 0
      you can guess which OS

      Must be MacOS
    9. Re:Ashamed by KyleCordes · · Score: 1

      I always get a chuckle out of the following two facts (about Win NT):

      1) Many book, and many MS TechNet articles, have a very ominous warning along the lines of "don't edit the registry"

      2) There are hundreds of very important administrative tasks that are performed by editing the registry... tasks that could have had a GUI, but for whatever reason do not.

    10. Re:Ashamed by mpe · · Score: 1

      1) Many book, and many MS TechNet articles, have a very ominous warning along the lines of "don't edit the registry"

      Apparently the authors of these have never bothered to consider the "crying wolf" effect.

      2) There are hundreds of very important administrative tasks that are performed by editing the registry... tasks that could have had a GUI, but for whatever reason do not.

      The answer appears to be that the whole thing is a mess thrown together in a hurry with virtually no thought given to system administration. With some bits not even able to be handled by regedit.

    11. Re:Ashamed by Chuck777 · · Score: 1

      planning on paper? that's a little over simplification.
      I've been in the biz 2 years (by the way, my project has 300,000 lines of code, not "several million"

      bugs happen when programmer a's "perfect plan"
      is put together with programmer b's and programmer c's plans, and everything doesn't go well. And this is after all three had debugged their parts of the program. Human error has a lot to do to.

      And if u could predict everything that can happen on paper, u wouldn't have bugs.

      Poor managment and over ambitious designs lead to crappy software, not counting the ocasional company that just sucks.

      I started reading the article and couldn't stomach it after it explained to my what "control alt delete" did. Why is everything written for four graders? We dont need that crap on slashdot!
      half of us write software here!

      glend(GL_RANT);

    12. Re:Ashamed by gig · · Score: 1

      >>you can guess which OS

      >Must be MacOS

      Yeah ... the world is just full of Mac users who hate their Macs.

  7. Ok, there are problems, but... by Mister+Attack · · Score: 2
    who's _really_ to blame?

    Is it the testers? no, they do what they can to get bugs fixed - they can't control when the program goes to market.

    is it the management who rushes the software out the door? Maybe. But what's their motivation to rush incomplete projects? The almighty stock price. Companies set targets for when software will be available, and then get slammed for inevitable delays. And I'm not talking about vaporware, like NT 5. I'm talking about real projects that are getting delayed for legitimate reasons. However, the big stockholders put tremendous pressure on the company to get products out there fast, because otherwise their shares go down. The board of directors, whose interests are those of the stockholders, put pressure on management to rush products out the door. "What? Windows 98 is exactly the same as Win95? Ship it anyway - 98 is a bigger number than 95, so it must be better!" And from this we get the bug-infested software that we see so much of these days.

    So what's the solution? The public needs to realize that the software industry is very dynamic, and delays are inevitable in most cases. If the stockholders don't push projects out the door when they're not ready to go, the projects end up being better. And _that_ is good for the company, and for the end users.

    Just my $0.02

    1. Re:Ok, there are problems, but... by Entity42 · · Score: 2

      I think you hit the nail on the head there,


      98 is a bigger number than 95, ship it.


      I often hear people tell newbies when buying a computer that the bigger the number the better.
      There's an attitude rife throughout the PC world that you have to have the latest version of everything. No matter what the cost. Call it techno-lust, whatever. It's like the guy that bought the Discman a few years ago for 250 quid and now they're giving them away.

      This kind of attitude is what drives this 'ship first, ask questions later' market. You should have seen my tutors eyes light up when one of the guys in my class offered him a copy of Win2K beta (he's a Microserf), imagine how many bugs there'll be in that!


      People don't have to realise that there'll be delays. People need to protest at having to put up with shoddy software and maybe then the large corporations will put more effort into making better software.

      --
      To err is human,
      To really screw up, you need a computer!
    2. Re:Ok, there are problems, but... by PHANTOM_X · · Score: 1

      Whoa now! I agree with what your saying to a point. Unfortuantely, the way business has been structured for the last some odd 100 years has been to push the product out as fast as possible. The computing industry is relatively new remember and as new-age fancy fangled as we are, we cant expect business to change its ENTIRE structure to fit the computer industry.

      What do we do about this? The best case scenario would be to meet at some middle ground. Have the stock holders let up on some of the pressure AND the coders/programmers/whoever do a little bit more careful of a job...seems like a fair comprimise to me...

    3. Re:Ok, there are problems, but... by UnknownSoldier · · Score: 1

      > And I'm not talking about vaporware, like NT 5

      NT 5 is NOT vaporware; it's been renamed Windows 2000.

      http://www.microsoft.com/Windows/professional/be ta/beta3rtm.asp

      http://www.microsoft.com/windows/preview/order.h tm

      Cheers

    4. Re:Ok, there are problems, but... by Anonymous Coward · · Score: 0

      If companies actually tracked changes, bug reports, and basically ORGANIZED their projects a little better than "hand it to the superprogrammer and hope he cranks out some good shit", these problems will always exist. You'll never get rid of bugs, I agree, but if you organize things, everyone's quality of life can only improve.

    5. Re:Ok, there are problems, but... by sjames · · Score: 2

      Some copmpanies go out of their way to force the public to demand the latest version. In most cases when I have been asked to make a software upgrade decision, I prefer to stay one release back from latest and greatest (barring known problems etc).

      The thing is, what if one version back won't read a file from the latest and buggiest? What if We really need to be 2 or 3 versions back to avoid killer bugs?

      How about concentrating on bug fixes and ONE nifty new feature. Not 12 new features and 327 gratuitous changes. (and no bug fixes)

    6. Re:Ok, there are problems, but... by sjames · · Score: 2

      Unfortuantely, the way business has been structured for the last some odd 100 years has been to push the product out as fast as possible.

      Within limits, that's true. However, lemon laws reign this in for the auto industry. More serious bugs are halted by liability (with notable exceptions). The requirement of PE signoff controls civil-engineering and industries that depend on it.

      Meanwhile, half of the software industry seems to run on the "It compiled...SHIP IT!!!".

    7. Re:Ok, there are problems, but... by Anonymous Coward · · Score: 5

      You need to understand how the industry really works.

      The Vice-president doesn't care if the software works or not. If SOMETHING isn't installed on the target date that the President gave him, he is out the door.

      The Director who reports to the VP doesn't care if the software works or not. Actually, he hopes it won't, since when the VP gets canned, the Director hopes to be promoted. Meanwhile, the Director is going to do everything he can to help. Like scheduling seven hours a day of mandatory "specification review" meetings for the developers and their supervisors. And "opening dialogs" with temp programmer agencies to help the managers with their resource management problems. And encouraging the Business Analysts to learn SQL so that they can provide better direction to the programmers in their functional specifications.

      The Managers who work for the Director don't have time to care if the code works because they are too busy interviewing the hordes of fresh immigrant (temporary) programmers who have professional experience in every language you ever heard of. Except practical English.

      The Supervisors who work for the Managers don't care about the code because they are too busy filling out the project status reports and the time sheets for the contract workers, attending the "specification review" meetings, and sitting on the "issue resolution" committee.

      The Business Analysts actually care about the code and are sure that it would work if the programmers would just use the EXACT SQLs that were written in the functional specs. And don't bother them with any techie nonsense about "syntax errors"; the "Learn SQL during Lunch" book said it worked exactly like that. And "We need to have a meeting to discuss YOUR refusal to follow our design. We intend to escalate this as an issue."

      The Project Leaders don't care about the code since they are on contract from the consulting arm of one of the "big 42" consulting/accounting firms. They care about three things: keeping their billable hours at maximum, forcing everybody to submit reports formatted according to their company's standard, and seeing that something is installed on target "go-live" date. Since their contract expires the day after "go-live", they are free to piss off everybody in sight. They won't be around when the bomb explodes.

      The programming team leaders would like to care about the code. After all, they used to be programmers. And after "go-live", they are going to be stuck supporting the project. But with the sudden influx of temp/contract programmers, the new team leaders are spending all of their time trying to explain how the version control software works and why code is written on the development box, not the QC box, and trying to actually get logins for the temps in the first place. If anybody had asked, the Senior TL could have knocked out half of the project with a handful of Korn shell scripts, but he is busy setting up card tables in the hallway for six new temp programmers whose names he can't pronounce or spell and one whom he is already about to kill. At least setting up card tables serves as an excuse for avoiding the mandatory specification review meetings.

      The new temp/contract programmers would also like to care about the code. And as soon as someone comes to their senses and replaces this horrible [AIX | BSD | HP-UX | Linux | NT | Sun ] box with a [decent | larger] [AIX | BSD | HP-UX | Linux | NT | Sun] system and installs a C++ compiler, the code that they have written will work fine. There's not any real difference between MQSeries and DCE. Obviously there was a mistake in the specification so we coded for the one we used last time.

      The Tech Writers, meanwhile, not only don't care about the new programs, they don't even know that there is new software coming. Nobody has talked to them about documenting it. Three days before "go-live", one of them will overhear a conversation in the lunchroom. But conversations about the "latest fiasco" are too common and this one will be forgotten for another four days..

      The QC/QA group cares about the code. They are already receiving threats from the Operations group about "another delivery of bug-infested code". Consequently, seven of the first ten bug reports will be for misspelled screen prompts. The other three will read "Doesn't work". (It will subsequently be discovered that "it didn't work" because the sysadmins had not installed the test code on the correct box.) Testing might a little faster is someone could answer them just one simple question: "What is it supposed to do?"

      The system admins are completely unconcerned about new code. Until it is installed somewhere, they are free to ignore the upcoming need for disk space, printer queues, bandwidth. Just as well, since they are going to have to take the network down for the next week to install new routes in the bridges or bridges in the routers (they seem vague on what they hope to accomplish). But "we should have your workstation IP addresses changed out by the middle of next week, for sure, d00d".

      Oh, and the Marketing department just pointed out to the President that there is no certificate of Y2K compliance for the project.

      And all vacations and time off has been cancelled.

      And the company firewall is now blocking http requests to monster.com.



    8. Re:Ok, there are problems, but... by pb · · Score: 1

      You're right! It *has* been renamed 'Windows 2000'.

      Pop Quiz:

      1. When were 'Chicago' (later '95) and NT originally supposed to be merged?

      (hint: a long long time ago)

      2. What was the original ship date of NT 5?

      (hint: vague, but a while back)

      What *is* the ship date of Windows 2000?

      (your guess is as good as mine: at least 2000+/-1)

      What's *your* definition of vaporware?

      (Mine is software that gets announced, and doesn't get released. From what I've said so far, it looks like NT 5 was vaporware, and the original plans for it were *even more* vapor. I would also say that MacOS 8 was vapor because it wasn't Copland, and Rhapsody was definitely vapor because some of its best features never made it in.)

      Why do people benchmark and test beta releases against actual operating systems?

      (Your guess is as good as mine. I guess they need something to do until Microsoft releases a product.)

      How many different versions of Windows 2000 is Microsoft going to release?

      (last I heard, it was five...)

      Why is Microsoft software so bad?

      (all of the above, and surely more considerations)

      --
      pb Reply or e-mail; don't vaguely moderate.
    9. Re:Ok, there are problems, but... by Anonymous Coward · · Score: 0

      People are saying NT 5 is vaporware. This attitude is precisely the problem. NT 5 was renamed Windows 2000 and the deadline was pushed back for essentially one reason: quality is more important than delivery date. Everybody complains about late software. They don't want to know high quality takes a longer time.

    10. Re:Ok, there are problems, but... by tialaramex · · Score: 1

      When I started tracking NT5 it was due to arrive (slightly delayed) in Summer 1998
      Towards the end of 1997, when it was already obvious to industry observers, Microsoft announced a possible delay... into early 1999
      By the original target date in June 1998, Steve Ballmer was saying "beginning part of next year".
      When Microsoft re-announced NT5 (as Windows 2000) they began to talk about Q3 and quietly even about Q4 shipping.

      This summer, with users clutching bug-ridden RC1 CDs, the press started muttering about RTM in October
      Some organisations committed to running W2K this summer. They have live systems, right now, running BETA software. The administrators are understandably scared.
      Microsoft meanwhile, is telling the press that they'll "probably" have Win2K in the shops this year.

      So it's "probably" going to be only 18 months late. Vapourware.

    11. Re:Ok, there are problems, but... by tialaramex · · Score: 1

      Oh, and another thing.
      Early reports of Win2K (nee NT 5.0) talked about a high-end produce to follow in 60 days.
      After the re-announcement last year, Microsoft again confirmed that Datacenter Edition would trail other versions by 60 -- 90 days.

      In more recent press releases though, the time has extended to "three to four months".
      So, even if W2K ships this Christmas, they have until April to get it working with 8 CPUs and more than 4Gb of memory.

      It's not over until we see the Shipping Date and the Prices

    12. Re:Ok, there are problems, but... by Anonymous Coward · · Score: 0


      Yes, but as soon as it does ship, it stops being
      vaporware. And I have no doubt that it will
      ship; Microsoft could not get away with that.

    13. Re:Ok, there are problems, but... by Anonymous Coward · · Score: 0

      Dude...that was the funniest damn thing I've read in years. I've been laughing for the last 10 minutes! That was great.

    14. Re:Ok, there are problems, but... by cpt+kangarooski · · Score: 1
      What *is* the ship date of Windows 2000?

      The thirteenth hour of the thirteenth day of the thirteenth month.

      --
      -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
    15. Re:Ok, there are problems, but... by crucini · · Score: 1

      That was much funnier than the original article. It sounds as if it's rooted in bitter reality.

    16. Re:Ok, there are problems, but... by cynthetik · · Score: 1

      It is ... mine.
      It's comforting to know that this is a universal experience, as we live through this every project. At least I'm lucky enough to be a contractor:)

      --
      .sig .sig .sputnik
    17. Re:Ok, there are problems, but... by Salamander · · Score: 1

      >You need to understand how the industry really works.

      Bravo! That was absolutely hilarious, partly because it's all true. My hat is off to you.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    18. Re:Ok, there are problems, but... by jonesy · · Score: 1
      You really hit it with that one!!

      The only thing I would add is how the sales staff has already sold the product and promised a ship date a month before the testers will even see the product, and, of course, they're adding features while the original product is still in test.. and can't understand why those features can't just be added since they've already pushed back their customer delivery dates for two weeks. Like they're the developer's new best friend!

      The scary part is some manager still wonder why they have such a high turn around in the test, developer, and tech support departments...

  8. I really should keep up with politics.. by Kitsune+Sushi · · Score: 2
    The Internet Tax Freedom Act sailed through the Senate on a nearly unanimous vote of ninety-six to two.

    Is that the bill recently proposed by Senator McCain, or the older thing? Yeah, I know, I'm clueless on this point, but hey, whatever. =P I don't keep up with U.S. law anymore.. heh.

    --

    ~ Kish

    1. Re:I really should keep up with politics.. by Nagash · · Score: 1

      It's called "Karma".

      Woz

    2. Re:I really should keep up with politics.. by bradleyjg · · Score: 1

      If it doesn't have a description next to it (insightful, funny, etc.) that means that the number is the default number for that person' posts (due to the quality of thier previous posts).

  9. Lots of reasons by Anonymous Coward · · Score: 0

    There's plenty of reasons commercial software is buggy and I think they're pretty obvious:

    1. HUGE teams of programmers working on different parts of the same program. One person can easily do something that causes a conflict with someone else's code.

    2. Wide variety of hardward people run. They can't really test their program on EVERY possible configuration, can they? This has to do with programmers of drivers and OS software though too.

    3. As mentioned in the artice, unrealistic time demands put on the programmers by management.

    1. Re:Lots of reasons by peterb · · Score: 1
      I think its unrealistic to talk about "commercial" software being buggy.

      All software sucks. Yes, even Linux and emacs suck, by certain definitions. Being open source does not prevent poor coding by any stretch of the imaginination (just take a look at any of the open source trouble-ticket / bug tracking packages, for one ironic example).

    2. Re:Lots of reasons by Bloob · · Score: 1

      1. Better planning and stage-by-stage management can help reduce this. In theory :-)

      2. If there were more standards-adoption and less proprietary-ness then maybe people can code to expect less buggy hardware/drivers. CD-ROMs appear to use a pretty standard set of drivers, same with basic monitor usage. Modems are based on the Hayes set, but more and more extentions are causing grief, and then there's SCSI...

      3. Time is a major problem, so make programmers go on strike until managers listen to the people that ultimately pay for the entire company's survival.

      The tide for going GPL and getting publicity can only be good - so long as Companies understand what it means in real terms.

  10. microsoft, by renegade187 · · Score: 1

    they should have this information burned into their brains.

    i just do dopey little stuff when i program, but when i finally show it to someone, its a matter of pride in my abilities and knowledge. if i was to release a program that had errors in it, i would look bad. most software companies should allow the time for extensive beta testing and to let the programmers pour through the code.

    this is also where open source would help out tons. if you had to release the source, you would:

    1)have a MASSIVE base of programmers that could be working on it.
    2)you'd be more likely to fix errors before releasing it. if M$ released win9x source code, it would probably be more humorous than informative.
    3)there would be more healthy competition because the company who has the best code with the fewest errors is most likely to get the most customers.

    thus ends my rant.

    --
    icq:=22921393;
  11. One line says it all... by weloytty · · Score: 5

    That crappy software ships is, of course, no suprise. What I never can figure out is that in every article I see about this phenomenon, you see a line like this one:

    "Management hadn't given the programmers nearly enough time to do a decent job, and it showed."

    EVERY project I have worked on that turned into a disaster had this happen. 3 different companys, too. And every project that worked and was on time--happend because we did that old boring junk that no one likes to do:

    1) Write Specs
    2) Follow the spec.
    3) When the marketing department trys to add stuff, you say "Is it in the spec?"--"Sure we can add it, but it is going to take X additional weeks".
    4) Test.

    Writing good software is not brain surgery. But you cant take shortcuts and expect everything to work fine.

    And while it is fun to slam managment/marketing, programmers have to take blame too: lots of time we say "Yeah, it *WOULD* take a year for someone else to do it, but I am a programming genuis. I can have it done in a month!".

    1. Re:One line says it all... by drudd · · Score: 1

      Whose job is it really to write the specs? Who talks with the customers, writes the ad copy, puts out the press releases and talks to the shareholders? Management of course!

      The design process is inherently a management task: weighing priorities and task scheduling.

      Often times the marketing department tries to add stuff, its not in the spec, but because there's a discontinuity between the programmers and upper management, the project balloons.

      Half the time I need to overestimate how long something will take because I know that if I say 2 weeks, the customer will be promised 1.

      Don't even get me started about initial quotes. It is standard business practice to vastly underestimate the timeframe for a project in order to get the contract, then breaking deadlines and going overbudget once a customer is committed.

      Doug

      --
      Venn ist das nurnstuck git und Slotermeyer? Ya! Beigerhund das oder die Flipperwaldt gersput!
    2. Re:One line says it all... by GraemeL · · Score: 2

      3) When the marketing department trys to add stuff, you say "Is it in the spec?"--"Sure we can add it, but it is going to take X additional weeks".

      This is probably the single largest cause of failure in the producion of new systems.

      The specs keep changing, so the coding takes longer. The overall timeline is not allowed to slip and it is always the QA phase that shrinks to accommodate this. One of two things then happen, the QA people either have enough clout to delay the project, or a huge buggy mess gets released to production.

      One project that I worked on went through 18 months with no progress. The coders kept leaping from place to place to try and produce the latest cool function that the users wanted.

      Things didn't get sorted until a new CEO took over and said "Take these tablets of stone and engrave the system design upon them".

      And lo, after 40 days and 40 nights in the wilderness, the new system was produced. And the users saw that it was good.

      Unfortunatly most CEOs don't have enough political clout within a company. The IT department is doomed to produce late and buggy systems.

    3. Re:One line says it all... by JordanH · · Score: 5
      And every project that worked and was on time--happend because we did that old boring junk that no one likes to do:

      1) Write Specs
      2) Follow the spec.
      3) When the marketing department trys to add stuff, you say "Is it in the spec?"--"Sure we can add it, but it is going to take X additional weeks".
      4) Test

      I don't want to take anything away from your experiences. I'm sure you've had success with this process.

      I've been in projects like this where success was declared at the end. But, I knew then, or perhaps just a little bit later that things were not so rosey.

      Building something to spec is wonderful. Especially when it's a bridge, or a tower, a road. I've not seen as much real success with this when it's software we're building.

      There are many many problems to talk about in the design and development process that I could go over. But one that isn't often talked about that dooms software to "suck" is what I like to call the two customers problem.

      The people who write specs generally are marketing people, or managers, or maybe even, if you're lucky, analysts who think they really know the problem domain and have been around it for years and who are sure they know what goes into a good system.

      Software is not designed for or by users. It's designed by people who sit around and try to dream up solutions without ultimately taking any responsibility for the useability of the system. Even when the designers make an honest effort to study the problem, talk to real users and do useability studies, too much of the ego of the spec writers comes through. Often, the grand dreams of the spec writers are in opposition with the stability that the real users crave. By stability, I mean both reliability (it doesn't crash) and that a new piece of software should be familiar, should have similarity to the software presently used for this function.

      So, a project is initially judged a success or failure based on how you satisfy the management, the analysts and the marketing types. Testing pretty much proves that it works in the ways that the spec writers envisioned it being used. Unfortunately, the software will ultimately be judged by those who actually have to use it, and tested in the real world in ways the spec writers never dreamed. These two groups, the spec writers and the users, the two customers, have very different goals.

      There is some hope. Rather than the spec, build, test, release model, a spiral development or RAD prototyping can ultimately get you a lot closer to a satisfying solution.

      Even here, I've actually seen cases where management will seem to prefer that the system be hard to use or lack important functionality. You sometimes get the impression that management feels that if a piece of software satisfies the lowly user, then the organization is spending too much on software development.

      It's a sad state of affairs. It's ironic that study after study shows that the # 1 customer satisfaction factor is a pleasant experience with the bank teller, the store clerk, the phone order taker, etc. Management consistently shows an almost studied disregard for the tools that these people are forced to use.

      And while it is fun to slam managment/marketing, programmers have to take blame too: lots of time we say "Yeah, it *WOULD* take a year for someone else to do it, but I am a programming genuis. I can have it done in a month!".

      Very true. One problem is that management often shops for a team or programmer who will tell them the estimate they want to hear. And, when you actually have to "name that tune", corners are cut. The corners that typically get cut are in places that are not visible externally, like bad coding practices, lack of concern for modularity and reuse, memory leaks (As long as memory leaks stay beneath the level that testing finds, it's thought that it's OK to leak some. Enlightened testing checks for memory leaks in the stress tests, but enlightened testing is not that common). Ultimately, this cutting of corners is what leads to the software sucking so badly. There's rarely political will to rewrite large systems, even when they are implemented in sand, so each new release suffers with the accretion of sins of the past.

      Bringing this back to the subject of Open Source software, always on topic, never out of style on Slashdot, the problems I've outlined above don't really apply to Open Source development, at least not today. Typically, Open Source projects have not suffered the layers of management, analysts and thinkers that typical software development groans under. Most often, the user is the developer so the result is most likely to be satisfying (or if it's not, you know who to blame and usually know how to go about getting to satisfaction). Even when Open Source projects are written for someone else, the real testing is done on early releases by real users in close communication with the developers. So much organizational simplicity, so little need for endless meetings, project reviews, marketing "input", cost justifications, etc.

      I like to think that free software is really about freeing developers to serve people more directly. With GPL software, if you aren't serving the customer, then someone else can take what you've produced and serve that customer better. With proprietary software, the trick is to develop just enough functionality and value into your offering that anyone else who tried to clone your software would incur too much expense and lead time for your customers to bear.

    4. Re:One line says it all... by cs668 · · Score: 1
      The part that has killed almost every multi-developer project I have worked on is your number 1.

      1) Write Specs

      Not that they do not exist. The wrong ones exist.

      Some dumb-ass business guy( Project manager ) thinks that a gant chart of the components of the project is enough to get the work done. So no real tech plan is ever done. This seems to happen because businesses don't acknowledge that there are two types of leadership required on a development project. And when their view of the world forces them to put just one person in charge they choose someone like themselves. A business guy who couldn't code his way out of a wet paper bag.

      In the end they view coding as if people were interchangeable cogs, they deny the art of what is going on. They put themselves in a situation where they need a real technical design and they do not have one.

      I didn't know I had so much pent up anger, this has just happened on the last 3 projects I have been on. I want to do good work, I am always put in a situation where I can not.

    5. Re:One line says it all... by Black+Parrot · · Score: 3

      > This is probably the single largest cause of failure in the producion of new systems.

      Imagine what would happen if your company was building a new office tower and some PHManager suggested adding another 20 stories after it was framed up, dried in, and interior finishing was underway. But didn't want the price or completion date to slip.

      That's the scale of cluelessness that we're up against.


      --
      It's October 6th. Where's W2K? Over the horizon again, eh?

      --
      Sheesh, evil *and* a jerk. -- Jade
    6. Re:One line says it all... by The+Welcome+Rain · · Score: 1

      This reminds me of the Slashdot thread about a programmer's code of ethics. I remarked at the time that such a code wouldn't mean much, since the programmers rarely run the company -- it's the managers who need to sign on to such a code. We can either persuade them by sweet reason (ha!) or we can organize.

      The union label used to be a quality guarantee; we can make it so again. Unless we organize, we won't have the necessary leverage to push through massive quality changes.

      I know programmers don't generally care to form unions, but what choice do we have, if we want better software?

      --

      --
      Some keywords for the NSA in the Lord of the Rings universe: One Ring bind find Sauron quest Nazgul freedom
    7. Re:One line says it all... by MindStalker · · Score: 2

      Programmer's Guild. What a great idea! I looked up programmersguild.com net and org programersguild.org is already a website, and looks interesting. .com is not used and .net is available. I'd also be willing to host something if anyone is interesting in creating another one (my boss shouldn't mind hosting something like this)

    8. Re:One line says it all... by MindStalker · · Score: 2

      nevermind, I wouldn't recommend programmersguild.org they apparently are only concerned about higher wages and keeping out foreign compition. Totally different goal than I would hope we would be trying to achieve. Anyone have any ideas for a name/url?

    9. Re:One line says it all... by Anonymous Coward · · Score: 0
      The union label used to be a quality guarantee

      You're serious? How many decades ago was that? Everyone I know has always considered it to mean "this product cost too much being made by people who could never be fired, no matter how negligent or incompetent they may be."

    10. Re:One line says it all... by $olid · · Score: 1

      What seems to work for management where I work is, that they just make the project smaller and smaller by subtracting features and in the end say that you made the project in time

    11. Re:One line says it all... by remande · · Score: 2
      Agreed. Frankly, a lot of software development problems can be tracked down to management without accounting.

      Here is what I mean. Software development is usually a troika of marketing, QA and development. The marketing department wants the world--today. Hey, who doesn't? QA wants the most bug-free code possible. Hey, who doesn't? Development wants to build the coolest code possible and thus impress their friends. Hey, who doesn't?

      Often, marketing is put in charge of the development process. Thus, they can ask for all those features without slipping the schedule. And here's the catch--if it bombs due to bugs, they can blame development and QA. In this realm, Marketing has great power without great responsibility. Basically, they never have a reason to slip the ship date.

      Now this isn't a problem with Marketing. They are doing what they were hired for. They are just given the go/no-go decision without the responsiblity of failure.

      For better software, make sure that the people that make the shipping decisions have full profit/loss responsibility. This may or may not be the responsibility of marketing. This is not the responsibility of QA or development, because their skillsets are more technical than business.

      In the best of all possible worlds, there is a project manager with profit/loss responsibility, and said manager feels the pain of both late ships and buggy ships. Marketing reports to PM with what needs to be done to sell product. Development reports to PM with what they need to get the job done, and the current state of progress. QA reports to PM with the current stability of the product. Only the PM controls the schedule and makes the decision to ship.

      This deals with one cause of buggy software--marketing push. What this doesn't deal with is the "first mover effect"--the idea that the first to market wins over the second-comer with more featureful or stable software. If you believe in the first mover effect (I do), then you believe that it makes business sense to ship buggy software--that you lose money waiting to fix bugs.

      The first mover effect is a combination of two things. The first is that the consumer wants it. After all the marketing hype, people don't line up at midnight to get the first copy of a new software package unless they want the software. This sounds like blaming the customer, but think about it. If the customers buy early software more than they buy stable software, is that not telling us that the customer prefers the fast, buggy software, and that we should comply to the customers' wishes?

      Un(?)fortunately, it isn't quite that simple. The other half of the first mover effect is what used to be called "connecter wars". The principle of connecter wars is that the first mover gets to set the proprietary standard and thus the community. Remember that in a lot of cases, the value of the software is directly related to the size of community it lets you interact with. For example, people buy MS Office so that they can exchange documents with other MS Office users. The second mover forces the customer to choose between (possibly) better software and the community of the older software.

      Which brings us back to the obligatory Slashdot reference to Open Source software. The First Mover effect gets mightily morphed by OSS. The second mover can join the first mover's community, because the comm protocols are in visible code and thus snarfable. Better yet, the second mover can simply add their "better code" to the first mover's effort. Yet another reason that open source code tends to have fewer bugs than closed source code: "ship first" is no longer the imperative.

      --

      --The basis of all love is respect

  12. Shift Magazine by mTor · · Score: 1

    First time I heard of this magazine... From the article I've just seen its very cool indeed. They even say the dreaded "f word" several times. I'll have to subscribe to it now :)

    1. Re:Shift Magazine by Anonymous Coward · · Score: 0

      Don't bother. It panders to people who think they are "in" but simply follows the same old lame patterns.

  13. What everybody wants to know.... by Anonymous Coward · · Score: 0

    what game is it that the article was talking about in the beginning?

    1. Re:What everybody wants to know.... by jackmott · · Score: 1

      go buy original versions of Unreal, Quake2, various other 3d shooters that were hyped, hit CNTRL-ALT-DELETE

      see what happens :)

      --
      -I go to Rice, so figure out my email address
    2. Re:What everybody wants to know.... by Imperator · · Score: 2

      Could be any. It was just a generic example, I believe. Lots of games are rushed like that.

      --

      Gates' Law: Every 18 months, the speed of software halves.
    3. Re:What everybody wants to know.... by Stonehand · · Score: 1

      And it's nothin' new, either. I remember "issues" in _Archon_, _The Ancient Art of War_, and so forth... and those fit on (single) 360k floppies.

      That said, it's not unusual for games nowadays to ship with perversely obvious bugs. CC2:ABTF's super-accurate AI mortars (that regularly nailed individual soldiers running across, say, grassy fields...), Dark Reign's mixed-up difficulty ratings, SMAC's *numerous* issues that blatantly contradict the manual and rules... and so forth.

      In some cases, I'm slightly suspicious that some of these may have been deliberate (at least the ones that boost the AIs).

      --
      Only the dead have seen the end of war.
    4. Re:What everybody wants to know.... by razorwire · · Score: 1

      Those AI "issues" aren't bugs so much as side effects of the fact that writing good AI code is a bitch and a half. :) It's easy to make a computer opponent inhumanly good, but much harder to make it seem "human" and imperfect...
      --

    5. Re:What everybody wants to know.... by dalin · · Score: 1

      go buy original versions of Unreal, Quake2, various other 3d shooters that were hyped, hit CNTRL-ALT-DELETE

      I've end-tasked Q2 on a great number of occasions without any problem (don't play Unreal, though). Personally, I think that problem is a graphics card/driver issue. I've heard reports that voodoo3 cards can't even change process out of some 2d games, and crash the machine when one tries.

    6. Re:What everybody wants to know.... by Stonehand · · Score: 2

      ...ah, but those particular ones tended to be fixed in patches. Kinda like...

      user feedback: "Btw, your AI players get
      infinite-range missiles."

      Firaxis: 'k, we'll fix that in a patch.

      { patch fixes range for planet-bustin' missiles,
      but *not* for conventional missiles -- which
      nominally should have the exact same range }

      user feedback: Huh?

      Firaxis: 'k, that'll be fixed in the next
      patch.


      Strange. {shrug}

      --
      Only the dead have seen the end of war.
    7. Re:What everybody wants to know.... by Kintanon · · Score: 1

      It was Quake 1. Whole computer went KABLOOIE! when you hit Cntrl+Alt+Del, I found that out because my sound card locked up the game every time I killed a monster... Blah.

      Kintanon

      --
      Check out JoshJitsu.info for Brazilian Ji
    8. Re:What everybody wants to know.... by Anonymous Coward · · Score: 0

      About every single game currently out there on store shelves.

  14. Re:Illiad has started something veeeery bad by Issue9mm · · Score: 1

    I admit, I actually waited until posting on /. until I could get a first post. However, once that post was made, I felt cheap...cheap and dirty. I didn't want to waste time writing a meaningful post, because that leaves potential for someone to click "SUBMIT" before I do, and I couldn't have that. Besides, I later realized that I was moderated down so far, that the glory was so short-lived it wasn't worth it.

    -I9mm-

  15. Print out the Article? by The+Cunctator · · Score: 3

    I really believe some of the problem with both software development and all tech-work in general is our need for paper. At my office, productivity, efficiency, and reliabilty is harmed by the fact that everyone has their own method of dealing with stuff, a lot of it being the constant print-out of web-pages and other computer docs, because there's no one set-up that's good enough. I know it makes QA a nightmare, because you can't find the specs, or problems aren't reported in a standard way, etc. etc.

    Let's face it: the promise of HTML won't be realized until the whole Web is Slashdotized (not Slashdotted!). By that I mean that every page can be personalized--for that, effectively, is what these comment forums allow us to do. By the time this thread is fully played out and moderated, the this thread will be more useful than the original article, because it will allow access to the article, and have insightful and useful comments and links highlighted. Can't really do that with paper.

    If you think about it, Slashdot is analagous to a QA system. Speaking about that, it might be cool to make a Slashdot-style interface to Bugzilla. Why shouldn't the whole Web, and by extension, the whole world, have a QA system? (I suspect some might argue that's the idea behind Everything.)

    The Web has a ways to go before I can really feel it's cool. Which is why Mozilla could be the most important app ever.

    --

    --
    Make mine methylphenidate.

    1. Re:Print out the Article? by md_doc · · Score: 1

      Printing is a good idea but I see no one saying anything about debuging. Its funny that most programmers today only debug when somethings crashes. Why only debug when something crashes? There are so many paths your program can take the only realy way to test it so debug and run though the whole program line by line... or on big programs sections of code line bye line. You will find a lot of errors that way... when testing you might never actually jump into that if or get to that part of the case statement but when you realize you have not gone in it while debugin you make sure you go in it by making it happen.

      Very simple to do but its beyond messed up how you can talk to programmers that don't actually debug their code before the pass it off to someone else or give it the okay. Even more messed up are the programmers that don't know how to actually use their debuggers, maybe college should force people to make a dubugger class? DEBUG your code line by line and then you know there are no errors its that simple. Print if you want but I don't even own a printer and I have yet to find the debug way not to work.

      --MD--

      --
      --MD--
    2. Re:Print out the Article? by Anonymous Coward · · Score: 0

      Path coverage comes from thinking about possible inputs and planning expected outputs, and profilers that detect dead code (which shouldn't be there). The moment you start a debugger you're admitting you have no idea what the code actually does, and you're just putting off re-writing it so that you do.

    3. Re:Print out the Article? by Anonymous Coward · · Score: 0

      Worse, you can't test effectively without knowing what to test. I prefer assert() (or an equivalent).

  16. It's really quite obvious by TheBeginner · · Score: 4
    There is one and really only one reason that commercial software is buggy: it's more profitable that way. Let's face it, no matter how much we whine and complain about the software being buggy, if it is even reasonably workable we buy it. And this is slashdot readers. Think about the general public. Most of them just assume that is the only way software can be written.

    I was talking to my sister recently (not a master computer user by any means) and she asked me why Windows crashes so often. I tried to explain about the bugs and conflicts between the various pieces of software she has, but she could not grasp the idea that a flawed product would be released intentionally.

    Why? Because it what other industry is it done? None. The fact is that consumers at large have just accepted the necessity of software bugs. Because of this, the software companies have little or no incentive to release a clean product.

    It would take much more money and man hours to realease a clean product and that is time that it is simply not worth it to spend. This is capitalism at its high point. Often it works to bring a higher standard about, but in the case where the buggier product makes more money, it can do the reverse as well.

    A solution? I don't know if there really is one... perhaps make it so that a bug causes a computer explosion. Then, just the chips in our airplanes, companies would have to release quality software. Just a thought.

    --
    14 digits of Pi are all we need.
    1. Re:It's really quite obvious by fireproof · · Score: 1
      • A solution? I don't know if there really is one... perhaps make it so that a bug causes a computer explosion. Then, just the chips in our airplanes, companies would have to release quality software. Just a thought.
      Of course, it doesn't help that almost every commercial license contains a clause that absolves the company that licenses the software of any sort of blame when something goes wrong with the software. In what other industry can the manufacturer say "Hey, if you use our product and it screws up and you lose money, you can't sue us!"

      For cryin' out loud, when an auto manufacturer intentionally manufacturers a flawed product, and the customer finds out, then folks sue the snot outta 'em. This isn't to say that I believe that people SHOULD be able to sue the snot outta the person(s)/company that maintain(s) the code. However, there has to be some accountability somewhere.

      --

      /* "A fool does not delight in understanding, but only in revealing his own mind." */

    2. Re:It's really quite obvious by Anonymous Coward · · Score: 0

      "Why? Because it what other industry is it done? None." In the automotive industry more than 50% of engeneering goes into planned obscelence, and component failure. If something fails within moments of the warranty being up the engineer did his job very well.

    3. Re:It's really quite obvious by Wentley · · Score: 1

      In today's market, if something lasts twice as long as the warranty period, the engineer spent too much money on materials and/or tooling costs on the component/product. In an over-engineered world such as the one we live in, the warranty period should be viewed as the useful-life rating of a product.

      Many successful companies, of course, still sell items with very long or even in some cases "lifetime" warranties. AT Cross Pens serve as an example of this.

    4. Re:It's really quite obvious by Moses+P.+Lester · · Score: 1

      This is completely true. It is not financially advantageous for a software company to release good software.
      The solution? Abandon all commercial software. Open Source (GPL, not fake stuff like SCSL) solves this problem by ensuring that the users write and revise their own software. (and even if they dont they see great benefits from they and everyone else being ABLE to)
      Commercial software is now obsolete and will slowly die. Power to the people and shit.

    5. Re:It's really quite obvious by Anonymous Coward · · Score: 0

      I am looking at my 23 years old Swiss Knife, which is maybe the best quality product I have ever owned. Whoever made it, they haven't got a single cent from me after my purchase. The previous poster is absolutely right. There has to be a reason to upgrade. Bugs simply make software more profitable. Microsoul and the others don't have any economical reason to make good products.

    6. Re:It's really quite obvious by devinjones · · Score: 1

      But you can't return buggy software for a refund. If the package is opened, it's assumed you have copied the software already. Companies won't take responsibility for their product until they know they will get all revenues from the product.

      With OSS projects, you can file a bug report and hope. Or you can wade in and fix it yourself.
      But what about my parents and my wife? They can't fix it themselves. They would have to rely on me. And I will do my best for them because I love them and I want them to have a good experience.

      Maybe writing good software is about community. I want to write good software. I want the love and admiration of my community.

      How does all this fit into capitalism? How do you map a collection of bits which can be copied endlessly into a world view that seeks to apportion scarce resources?

      Devin

  17. if they did... by gorfin · · Score: 1
    get the soft ware right the first time, then people would lose alot of jobs. if its right, why would the soft ware company pay them to make it better when its already as good as its gonna get?

    if there's bugs, the company can release Version X.X and get more money, to pay more people, to pad the exec's pockets a bit more, so they can have more bugs in the next issue, so that they can release....etc etc etc..

    heck, if windows was right hte first time, why would we need win2k? if linux 1.0 was had been perfect...why would we need 2.0.0.0.0.0.0.0.0.0.0?

    granted, its not always about money. sometimes its a simple over site, or a situation that the testers/programers didnt think about.


    Gorfin

    1. Re:if they did... by Stonehand · · Score: 1

      Huh? There's a large difference between bug-free and perfect.

      A simple program with few features may be bug-free in that it behaves completely according to reasonable, comprehensive specs (such as not falling over if you give it unexpected input, etc). That doesn't mean it's perfect, however; it doesn't even mean it's useful.

      --
      Only the dead have seen the end of war.
    2. Re:if they did... by Rhys+Dyfrgi · · Score: 1

      heck, if windows was right hte first time, why would we need win2k? if linux 1.0 was had been perfect...why would we need 2.0.0.0.0.0.0.0.0.0.0?

      Because the technology it is built on has changed, so the software needs to adapt.

      Or maybe... you don't! After all, you *can* run 1.0 today. If you want to. But it won't be able to do a lot of the things that, say, 2.2.12 can do.

      Feature creep is not the only effect that features can have. It is possible to have a useful new feature.
      ---

      --
      END OF LINE
  18. Re:microsoft, what? by Dionysus · · Score: 1

    Why would a company code at all? Just wait for your competition to write the program, then undercut them in price, since you don't have to recover development cost.

    --
    Je ne parle pas francais.
  19. Not quite by Anonymous Coward · · Score: 0
    That first statement should read "No software is ever free of comprehension." /sarcasm

    Software was easily usable, a few years ago. That was in the old days of structured programming, when business programmers and dinosaurs roamed the earth.

    Then object oriented programming took over. Dbase and Wordstar did the darwinian thing. And feedback by business users ended. Programmers were free at last! And this was good. So sayeth Gates.

    You didn't know that, did you. The biggest purveyor of OOP was his Billness. That's why software sucks, it all uses the method of Redmond.

    Except, of course, the Linux kernel, which is still written in C.

    1. Re:Not quite by Adam+Knapp · · Score: 2

      So you would have us go back to ...shudder... COBOL? Excuse me while I go into spasms.

      Seriously though, OOP doesn't mysteriously generate bugs. It's poor programming practice that does it. Go take a look at Eiffel, a OOPL that forces you to program well. It even has a GNU compiler.

    2. Re:Not quite by Anonymous Coward · · Score: 0

      Wordstar, that relic. It fit on a single floppy disk. It does as much as Word, which fits on a single CDROM. Ditto Dbase, until, like a 1500 pound wrestler, got too big to get up to respond to the next version release. Borland/Inprise still can't figure out why every business in the world didn't jump on the transition from PAL to ObjectPAL. Let's all hope Corel doesn't waste its investors' money with Paradox/Windows for Linux. That's one turkey that can be safely dropped from the porting program. Now if Inprise wanted to release Paradox/DOS for Linux on a single floppy, weeeell, tell me where to send my check. Programmers and publishers still don't get it, and never will. Us purchasers were tickled to death with DOS software in the middle nineties. Gimmee Q&A4, Wordstar, Dbase, Sidekick1.0, TurboPascal3. Better yet, I'll pay for them. We have a motto for Linux - Its software sucks less than Windows software.

    3. Re:Not quite by Nagash · · Score: 1

      You're probably right that OOP is not the culprit. I wouldn't doubt that the lack of OO analysis and design lead to lots of bad OO programming.

      It's too bad Object Orientation is so good but has become a buzzword.

      Woz

    4. Re:Not quite by Wentley · · Score: 1

      Word for Windows 2.0 fits on a single floppy diskette. The file winword.exe can be carried around on a single HD floppy diskette from machine to machine. It means lots of the bloat features don't exist (dictionary, thesaurus, etc.) but the VBA runs. It gives you a potent portable editor/programming environment that will run on almost any Windows~1 machine.

      I remember what a feature-pig the next version of Word for Windows seemed like when it came out (the next version, Word for Windows 6, was the "come into sync with the Macintosh version" release. Had all kinds of bad design elements as a result, like forcing the user to switch the default system printer in order to print to a particular printer)

    5. Re:Not quite by phred · · Score: 1

      I've been waiting for someone to come along and say this. I'm still using Word for Windows 2.0 for precisely these reasons. It just works. Actually I still like the DOS Word 4.0 and keep a copy of it, it's handy at times when I need something quick.

      If Word's "progress" in the 1990s isn't the classic example of Fred Brooks' Second System Effect, I don't know what is.

      -------

      --
      Bill Gates Is My Evil Twin.
    6. Re:Not quite by Anonymous Coward · · Score: 0

      What's so bad about COBOL? It works. It is crufty, it can be slow, but it works, for decades, with no surprised, no maintenance, and no trouble. No odd bugs that you can never find, no strange problems, it never goes out of date, it never is incompatible with a later version, and it is very well understood and understandable.

      I am a little tired of the COBOL-bashing around here. For those of us who have worked with it, it is like and old friend. Wouldn't you like something reliable, dependable, and understandable, somthing logical and orderly?

      Think for a minute, kids. Isn't that why most of you left Windows?

    7. Re:Not quite by samantha · · Score: 1

      WHAT?? I've been in this business for over 2 decades and I know for a fact that there were no "good ole days" in software. And any designer/programmer who has done a moderately large software system knows why object oriented technologies are a blessing. Of course they are more often than not not used well but this isn't the fault of OO per se. I more blame the fact that making better programming tools/environments/methodology just isn't a high profit proposition. So we end up automating everyone's work but our own.

    8. Re:Not quite by FauxPasIII · · Score: 1

      OO itself doesn't cause bugs to creep in so much as one of the most popular OO languages, and I believe the true target of the posters rants, C++.

      Now, I know that amazing things can be and have been done with that language. But even C++'s name betrays it is as a kludge. It is a bunch of OO theory that was, at the time of C++'s birth, extremely immature, that has been slapped onto an established procedural language, steeped heavily in procedure-centric structures and design concepts.

      I have found that other OO languages, ones that were designed that way from the ground up, are much more elegant, syntax-clean, and maintainable than C++, while allowing one to more easily scale up the process of software engineering than a procedural language. (Which is, of course, a textbook benefit of the OO way of thinking).

      Before you give up on OO as a whole, at least try out Python, Eiffel, and Smalltalk. Don't try Java until you're convinced. ;-)

      --
      25% Funny, 25% Insightful, 25% Informative, 25% Troll
    9. Re:Not quite by Anonymous Coward · · Score: 0

      Reminds me of Alan Kay's quote:- "When I coined the term 'object orientated, C++ is not what I had in mind!" (Alan Kay was one of the original Smalltalk people.)

    10. Re:Not quite by Anonymous Coward · · Score: 0

      If you accept Big Bill's definition of OO ("hey, it's just another kind of Basic!"), then - small wonder you consider it a mess, and - you obviously haven't got a clue MickeySoft seems to consider an "object" to be exactly equivalent to "a screen widget". 'Tain't so. Go read a book. (this A.C.'s name is Paul McDonough; I just can't be bothered to take the time to register right now)

    11. Re:Not quite by loomus · · Score: 1

      Are you on crack? Did you smoke to much back in the good old days??? Have you heard of a certain problem that involves dates and a certain year? That is the fault you "wonderful" cobol programmers. How can you say that it doesn't go out of date? The greatest problem is the history of computing is the result of COBOL.

    12. Re:Not quite by Captain+Teflon · · Score: 1

      The greatest problem is the history of computing is the result of COBOL.

      Y2k is not COBOL's fault, nor Grace Hopper's. It's a question of program design, not the language used. Using C++, Perl, or Eiffel doesn't stop (and has not stopped) people writing programs with Y2K problems.

      Engage your brain before you touch the keyboard next time.

      --
      Eagles may soar, but weasels don't get sucked into jet engines.
    13. Re:Not quite by Anonymous Coward · · Score: 0

      But if a OOPL used a 2 digit date in it's code, you could just replace the Date class and recompile. It's not so easy to fix in an imperitive language.

      Anyway, I'd hesitate to call C++ or Perl OOPL's. If you want a OOPL with C syntax use Objective C, it doesn't look like line noise like Perl or have that stupid compiler dependant crap C++ has.

      My grandmother programmed in COBOL when it was new and she thought it sucked too.

    14. Re:Not quite by Adam+Knapp · · Score: 1

      Err, why was that posted as an AC? I am/was logged in.
      --Adam Knapp

  20. Money is the problem! by TwistedGreen · · Score: 1

    It all boils down to money, mr. eries.
    If all of these features didn't make users continually re-purchase the software (like "upgrading" to Windows 98, or 98 SE) it probably wouldn't be done.
    Almost all of the software that i use is free (and legally so!). But the common user wants software to be easy-to-use and helpful, (like "Clippy" in MS Office... Ugh.) so they would invest the money for these new features.
    They think that if they pay money for software, they'd be getting more performance than a free product; in most cases that is not true, as you probably know. People have to realise that in "CyberSpace" the old rules don't apply. Software is not really a tangible thing like a donut or a car is. Thus, the standard rules and laws can not apply very well.
    Just my 1 1

  21. Mythical Man Month by barlowg · · Score: 4
    In 1975, Fred Brooks showed how many of the practices described in this article would actually produce worse software and extend the time necessary to complete it in hia classic, The Mythical Man Month. However, management still does not seem to understand these basic concepts. Any software project, open or closed source, should heed Brooks' words wisely. If you are a programmer or manage programmers, read this book!

    It seems a shame that most people in the industry have not read it and that most managers have little or no idea of how managing a software project differs from general management.
    --
    Gregory J. Barlow
    fight bloat. use blackbox.

    --
    Gregory J. Barlow
    fight bloat. use blackbox.
  22. The importance of testing. by Joseph+Vigneau · · Score: 2
    To me, an ideal project's timeline should be:
    • 33% design
    • 33% implementation
    • 33% testing
    And, there are important constratints around this. For example, *no* features are to be added after the design phase, unless it is
    • absolutely critical
    • the requestors understand the implications to the schedule (ie, more features = more implementation = more testing)
    In the real world, however, the PHBs financing the operation can't get this concept through their thick skulls. When this happens to me, I tell then my recommendations; it's their dime, they can ignore it if they want to, but the reason they pay me (I hope) is that I know what I'm talking about. I've seen this happen before, and if something goes wrong, it's NMFP.

    They can feel free to buy more of my time to fix the problems they brought upon themselves.

    1. Re:The importance of testing. by locust · · Score: 1
      For example, *no* features are to be added after the design phase, unless it is absolutely critical the requestors understand the implications to the schedule (ie, more features = more implementation = more testing)

      God, I wish it worked that way. But managers/buyers/etc. by thier very nature (in my experience) can rarely know the technical technical ramifications of thier requests. Thier job is to paint in broad strokes. If they had to pay attention to all the details they couldn't actually do thier jobs. Like come up with new stuff for you to do.

      The next problem is what one of my co-workers calls suits with enough of a technical clue to be dangerous. These will try to dictate the technology you will use regardless of what is actually required/best. The problem here is that they think they know the complexity of the changes being made!

      locust

  23. It's a service, not a "thing"... by Ryandav · · Score: 2

    One of the main factors that has led to the current state of the software market, I would propose, is that is is, in fact, NOT a munufacturing-based industry, as it is modelled after. Think about it: when a company sells you a piece of software, IP laws and shrinkwrap liscences and the hefty price you pay all lead you to believe that you are purchasing one "item". You have one "item" and cannot make more, or use that "item" in any manner for which is was not intended. If you wish to make this "item" available for others, you will be charged as if you now had several "items" (per-seat liscensing fees).

    But that is not what software (is,should be, must become). It is a service, and needs to become modelled more appropriately after a service-based industry. I retain the services of a software company to help me do a certain task. They give me a piece of media worth 15 cents, but I am not paying for a thing. I am paying for the services of a company.

    Think about the difference in current markets set up like this: shouldn't software be more like a getting a doctor or a plumber, instead of like buying a car or a hammer? Information, that which makes up this "thing" that they want to sell me, it is not a "thing". It is just a service they provide, to help me serve web documents or print a document. If I do not like their service, I find some other, better provider.

    --
    Check my Go-related blog for beginners: DGD
    1. Re:It's a service, not a "thing"... by Anonymous Coward · · Score: 0

      The development you describe is already happening. I think your comparison with the medical sector hits the nail on the head. We will probably move to a future in which individual software products and even maintenance service is free or inexpensive, because it is paid for by 'computer insurance'. Microsoft, who are getting regular revenues from practically every PC sold in the world, are already using this system in practice, but I think it will be institutionalized into a system of 'software subscriptions' or 'computer insurance policies'.

  24. Meeting the ship date. by Telemann · · Score: 1

    1) The stock holders don't like it when the ship date isn't met because it drives the price down.

    2)Marketers don't like it when the ship date isn't met because it means the product will not be released when people are most hyped about it.

    Would one possible answer be that software companies should be more vague about their ship dates? Announce specific dates later in the project so that you have a better idea of what problems will have to be dealt with.

    Though this would probably make marketing's job harder, it may keep the Wall St. boys happier.

    1. Re:Meeting the ship date. by Imperator · · Score: 2
      There's a two-part solution:

      A) Never publicly announce release dates until the product is in the final stages of testing. Even so, don't be specific until FedEx comes to pick up your GM.

      B) Internally, keep target dates for different stages of the project, and update them weekly to reflect your progress. Try to make them accurate estimations for your marketers to plan by, rather than deadlines for your developers to meet. Make sure your marketers understand that there may be unforseen delays, so that they don't start hyping a product too soon.

      --

      Gates' Law: Every 18 months, the speed of software halves.
  25. Features by PhoboS · · Score: 1

    The article mentions that most users prefer a smaller program that works, rather than a huge program with tons of cute features that is full of bugs. This is something that software developers need to keep in mind. At the beginning of a project a requirements specification is made. One should always try to follow this specification.
    As a programmer it is very easy to look at a part of a program and say "Hey, wouldn't it be cool if this thing would spin when you press that button!" or something similar. Most cute features are things that the user wouldn't miss if it wasn't there, and they are very likely to add new bugs to the program.
    It really helps to look at the program as a user, not a developer.

    I wonder how many lines of code that stupid paperclip in MS Word takes, and who wanted it there, a user or a developer.

    --

    Phobos - Greek word for fear or flight

    1. Re:Features by Keeper · · Score: 1

      But on the other hand, it's the little things that separate one program from another.

      If you were using two programs, that performed exactly the same function with one having a few extra things thought out, which would you use?

      I spent an hour or two last night working on the config box in my senior project (write a screensaver ... woo, complicated ;). The time can be adjusted via a slider. Now, if I wanted to be lazy all I had to do was put in a slider and be done with it. But I also have an edit field that puts the new time in it. You can also type time in the edit field. You can type 45s, 30, 120 [2 mins], 1m, 1:30m, 2:30 [2 min, 30s], etc. Sure I could have kept it simple and just put seconds there; most people probably won't notice. But people will probably notice it's not there on another package after using mine.

    2. Re:Features by whoosp · · Score: 1

      Of course a consumer prefers a smaller program that works.. but that smaller program has to have all the features that individual person wants!

      So then if your program is targeted at an audience of about 40,000 people.. Well, they all want their features in it, and if all you did was satisfy each person you could have 40,000 smaller programs that worked. Wouldn't that be fun!

  26. software is not like other industries. by stewart.hector · · Score: 2

    Humans program computers. Computers want perfection. Humans are not perfect. Within a software project, there is so many uncertain elements - skill of projects, dead lines, learning curves of new technologies. Unfortunately, software is not like building a house - you know the design of the house, you know now to put up a house - because you've done it before - what can happen, it falls down, or cracks in walls or other defects. UNFORTUNATELY, every software project is different, and is more complex than building a house, or other engineering industries. there are always different problems, different complexities involved with each project. If a dead line is approaching, more often than not corners will be cut, ie, a part of a project not tested properly, software cut down in complexity, which can lead to bugs in code. Until machines program computers, (which will be possible, sooner rather than later), software will be bugged. However, there are ways that code can be made less buggier, ie, automatic testing tools - so humans don't have to do the same boring process of testing functionality which can lead to cut corners, or functionality not tested correctly, or because the tester doesn't understand the application. Of course, such tools are only as good as they are implemented by the tester - poor automatic testing - poor application testing - probablility of more bugs. However, testing tools cannot test for "odd behaviour" of users, so manuyal testing will still need to be done. Setting up of auto testing tools take lots of time. There are programming languages of course, that make coding easier. But, in the end, its the human that has to program, test, and debug, and the problem is, we are not perfect, but computers want perfection. You can't compare software to other industries, its very much more complex.

    --
    1. Re:software is not like other industries. by iso · · Score: 3

      perhaps what many are saying is true: software isn't like most other industries, but it's really not that diffent from the semiconductor industry. yet for some reason, we don't just have wild "crashing" and "bugs" in semiconductors (short of the occassional pentium slip-up :).

      i think you're cutting software developers too much slack. sure software is difficult and complex, but have you really tried to understand the layout of cutting edge semiconductors?

      i used to work for an FPGA manufacturer (who shall remain nameless). our FPGAs were/are cutting edge, and despite my degree in Electrical Engineering (with an emphasis on semiconductor design), i couldn't even come close to truely understanding half of what goes on inside those things.

      our chips rarely had a hardware problem when things went to ship. but we were constantly having quality issues in Product Engineering (where i worked). why? because the software was, quite simply, lousy.

      now don't get me wrong -- place and route routines can get pretty hairy, but i've seen the source code to the programming software, and i can assure you that's not 1/10th as complex as the chip their trying to program. but when i would confront the Software group about their buggy software, they gave me the typical arrogant "you don't understand computers" response, and more or less stated that software is just plain buggy by nature.

      bullshit.

      why is it that software programmers don't have the same idea of quality that hardware designers have? why do they automatically assume that software can't be (relatively) bug-free like complex hardware can be? i noticed it more than ever working at this FPGA manufacturer -- many software programmers simply can't think of software being any other way.

      and this isn't a case of capitalism-driven bugs. this company isn't making any profit off of selling software updates. in fact, the majority of time-to-market goals we missed were due to the multitudes of software problems we had to overcome.

      so to all you software developers who can't seem to comprehend the importance of design and testing: try taking a hint from your hardware-designing associates and smarten up!

      let's start dispelling the myth: software doesn't need to suck!


      - j
      --
      "The only guys who might buy [the Apple iBook] are the kind who wear those ludicrous baggy pants with the built-in rope that's used for a belt."
      - John C Dvorak - PC Magazine
    2. Re:software is not like other industries. by Anonymous Coward · · Score: 0

      Look for errata on www.intel.com. The processors have hundreds of documented bugs. This was the major benefit of the Pentium FDIV fiasco: a commitment to publicize all the bugs.

    3. Re:software is not like other industries. by E/M+Pulse · · Score: 1

      Also, fixing hardware bugs is much more expensive than fixing software bugs in the sense that with software you can typically get away with just putting an update on a website and calling it "fixed" or something like that. Software by its very nature is more iterative, while hardware needs to go out the door "right" the first time (ignoring the mentioned Intel bugs... :-) Hardware recalls are not pretty!

    4. Re:software is not like other industries. by Anonymous Coward · · Score: 0

      FDIV was only a fiasco because of how badly they handled customer relations. It wasn't even a normal bug - what came off the assembly line was not what they designed because the mask wasn't correct.

    5. Re:software is not like other industries. by Yumpee · · Score: 1

      I agree that software guys should take some tips from the hardware people. However:

      1. Hardware is not easily changeable after release. That is probably why so much time and effort is invested in testing and verification. If software remains easily patchable, it will reduce the pressure to iron out all the bugs.

      2. Hardware testing is slightly easier than software testing I think (yeah let the flamewars begin :). In hardware, the inputs are reducible to a set of wires and the signals which come along those wires. Lots of research done on creating test vectors for feeding circuits so as to cover all the gates and so on. Gets more complicated of course when doing processor verification (especially multiprocessor and I/O configs). The inputs are not delineated that easily in the software world. There are a zillion ways for a software program to receiving input from the external world and it may interact with a zillion OS/other-program/device configurations. Lot harder to ensure that no bug exists. Software test case coverage tools do exist but I think the field is a lot less developed compared to VLSI testing.

  27. CTRL-ALT-DEL by Adam+Knapp · · Score: 1
    By Sunday, after nonstop work, he'd discovered scores of bugs. One was particularly nasty: The key sequence 'control-alt-delete,' a move that gamers employ to shut down a program if it accidentally freezes, would instead shut down the whole computer.

    Forgive me my ignorance, but isn't that what CTRL-ALT-DEL is supposed to do? Who uses that to exit a program?
    1. Re:CTRL-ALT-DEL by Stonehand · · Score: 2

      On (most versions, methinks; I don't remember 3.1, for instance) Windows, the three-finger salute is supposed to bring up a Windows dialog which will allow you to close an arbitrary program, or reboot the entire machine.

      --
      Only the dead have seen the end of war.
    2. Re:CTRL-ALT-DEL by m3000 · · Score: 2

      It's used to kill a program that has crashed. Or for an example, if you went here, you would have to use CAD to regain control of your desktop.

    3. Re:CTRL-ALT-DEL by Anonymous Coward · · Score: 0

      No, Ctrl-alt-del in Win95 can get you access to the task manager (and other cool stuff if you're in win98/NT). You have to hit ctrl-alt-del twice to REALLY reboot the computer.

  28. Good points but very one-sided by NeverSayNever · · Score: 1

    I agree with most of this piece. However, I see other interests at work. Most of the people had interests: journalists, lobbists and soon on. I don't disagree about the fact that there is a lot of buggy software.

    There also were a few inaccuracies. Win95 and Windows 2000 are completely unrelated. Win 2000 is NOT the successor to 95; 98 second release is.
    As well the number of releases of Netscape is exagerated. If you count the service releases that Microsoft has released for IE then MS would have more.

    And my final point. There is no effort made to see what the ultimate source of bugs is. Is it the OS, flaky web browser or the program itself.
    And there were no examples of good software.

    The software idustry is by no means perfect but not all software is fatally buggy. Good points but very one-sided.

  29. What about the Customer? by Anonymous Coward · · Score: 0

    I know that it is easy to blame the companies who produce the software (and believe me, they are certainly guilty in some regard), but what about the market that permits such software to sell so well. Isn't the user voting with his dollar, supporting buggy software, paying for yearly upgrade, simply because they feel that 'this is the way the software industry works'. Of course, there has been some monopolistic taint here that has prevented the market from stabilizing. Question: is the incredible rise of Linux a manifestation of the consumer's frustration with traditional software? Just trying to examine things from a different perspecitive.

  30. It requires a committment from the customer by dustpuppy · · Score: 2
    Having been brought up in the Microsoft world, I've come to expect that Windows PCs are not reliable and that the 'release early and fix later' mentality is a valid one.

    But as I have got older, I have had two experiences which have changed that.

    The first was Linux/*nix. Here was an OS that was stable and didn't crash or need multiple reboots after every software installation.

    The second was working for the largest Telco in my country. When we had a software release, it had better be bug free, for if we had an outage for a couple of hours, it would cost the telco several hundred thousand as the application was used nation wide with thousands of users 24 hours a day, 7 days a week. The Telco demanded that the software was stable and were happy to allow extensions of delivery dates to ensure that happened.

    How did these experiences affect me?

    First, Linux/*nix showed that it is possible to create stable software. Second, that if the customer wants a quality product, software developers will produce the goods.

    So IMHO, it's not the shareholders that I would blame, but the customers. If the customers kicked up a big enough stink and looked for alternatives, M$ share price would drop which would hurt it where it really hurts.

    But customers don't really have many alternatives, nor do many of them know that software can be stable. Maybe we are forever doomed to have buggy software?

    1. Re:It requires a committment from the customer by Anonymous Coward · · Score: 0

      I don't think Unix has shown anything at all. Everyone forgets that Linux/Unix is 30+ years old. I think that Windows still lags behind nix in quality, but it's also 15 years younger. Even MS, given 15 years, could make substatial improvements. You would think.

  31. Hmm... by Coda · · Score: 1

    As a software developer (and the only guy in charge of a 200kline application), I can't agree with this more. The market shouldn't dictate the release date - the programmers should. Any programmer worth his salt will know when a program is ready: the testers like it, the code is clean, and he can't find anything wrong with it.

    Software, like anything else, should be taken out of the oven when it's done.

    I just wonder how the industry got this way. Why can't other industries squirt out crappy products at everyone else?

    Or is it just that most industries do, and that's not OK for an industry that makes products people rely on?

    Perhaps it has something to do with the userbase: instead of making products for geeks, we're making products for non-computer people these days.

    This article should be mandatory reading for all programmers *AND* managers.

    --
    -- I can't think of anything witty to put here. Sorry.
  32. interesting piece of trivia... by bjtuna · · Score: 2

    When I was in high school, two alumni came to speak before the student body. The two students worked for Microsoft, and one of them was (at the time) the head of the Internet Explorer development team. He was talking about their upcoming release of IE5, and noted that they still had to fix some bugs before releasing, but that IE5 would ship with approximately 2,500 KNOWN bugs. He also said that this was a relatively low number of bugs, and that he was proud of his team for achieving such a high efficiency level.

    Isn't anyone else a little bothered by the fact that Microsoft, and presumably other Big Software companies, have convinced themselves that this is okay? They spend so much coding time adding bloated features with lots of bugs, rather than fixing the ones that are already there. Shameful.

    1. Re:interesting piece of trivia... by British · · Score: 1

      As a QA tester, I have to reply to this one. Yes, software ships with known bugs in it. The only thing the testers/qa people can do is tell the rest of the development team about it. Product deadlines are a big factor. Windows for shipping(burning the CDs, printing the manuals, etc) can be missed and hence, software has to be shipped with x amount of bugs.


      If you were to work on a program until ALL the bugs were gone, it would never see the light of day.

    2. Re:interesting piece of trivia... by Anonymous Coward · · Score: 0

      Uh, two of my friends worked on the IE team (IE5.0), and it had 2,500 bugs TOTAL. That's not how many it shipped with. Perhaps they said "2,500 bugs had been found when it shipped." Win95 however, did ship with about 3,000 known bugs (see DOJ case).

    3. Re:interesting piece of trivia... by bjtuna · · Score: 1

      No, they said that it would end up shipping with 2,500 known bugs. And as you can see in my original message, the product had yet to ship so they most definitely did not say "2,500 bugs had been found when it shipped."

    4. Re:interesting piece of trivia... by Max+von+H. · · Score: 2

      At the risk of being flamed, I have to say that so far IE5 *works*, and damn well. On my 98/NT box, it's the *only* browser that never gave me any trouble. I can't say that about NS which seems to crash after roughly 5 minutes of use.

      I'm not a M$ supporter, far from it. I hate their business (read: monopolistic) practices, but one must admit some of their software pieces aren't that bad. And until quite recent times, OSS wasn't (and is still not in many domains) really offering any valid alternative to proprietary software.

      As far as I'm concerned, I take software as tools, not as holy war weapons. When it comes to bugs, of course I'm pissed-off. I'm even more when I have to pay for a bug fix, which should be free. With OSS, another sort of problems arises: version 1.0 comes from that "it compiles, ship it!" policy. OK, the bugfixes come quickly, but are IMO too frequents. I'd like to see some sort of code of ethics when it comes to software versions, really. When I get a 1.0 (or 2.0, 3.0) version, I'd like to be sure it's a stable version, not something I'll have to upgade every other day. Basically, it shouldn't be called a "final version" until it actually works at 100% of its specs. It'll make software development a bit more lengthy, but at least the user (also read: customer) won't be harrassed by frequent re-installations, patches, etc.

      If car makers were following software development practices, how many customers would they keep if they had to recall the cars every month for a bugfix of some kind?

      Heck, I remember the days when new versions were only appearing once a year, or even less. We also used to have quite stable pieces of software back then, software we could actually use "as advertised". I wouldn't mind seeing that kind of things happening again.

      --
      -- It's always darker before it goes pitch black.
  33. Gates' Law by Imperator · · Score: 1

    I actually stole that from someone (name begins with a 'k' perhaps? sorry, whoever you are) in a comment a while back. It wasn't exactly like I have it, and it wasn't called Gates's Law, but I thought it would be funnier if people started repeating it as Gates' Law. :)

    --

    Gates' Law: Every 18 months, the speed of software halves.
    1. Re:Gates' Law by Money__ · · Score: 1
      On the technical issue, I mean think about it. . Lets consider a very honest/valient/ethical programer who took it upon himslef to solve every little nit-picking problem in wordstar. After taking years to discover/fix/workaround nearly every flaw, He relreases to a world running 5Ghz processors and 1Gig of Ram. It's a matter of scale. And until that one thing changes (Speed/AmountOfRAM) changes, all this talk is just pissing in the wind.

      On the legal issue, I think the lack of liability most software companies enjoy is scandelous. I think Netscapes "Talkback" is a step in the right direction, They may not be taking libility for the crash, but at least NS pretends to care.

      We have a sectrtary in our office who is constantly dealing with a crashing windows PC. Whenever it crashes, she diligently writes down the stack dump numbers and emails it off to MS. Day after day, week after week, her problems go unresponded to. I like the service model for software...it's part of getting a task done, and if it's not performing said task, MS shouldn't get payed that day.

    2. Re:Gates' Law by BLiP2 · · Score: 1

      I think Netscapes "Talkback" is a step in the right direction, They may not be taking libility for the crash, but at least NS pretends to care

      Unless, Talkback always crashes too. Suddenly I don't feel so warm and fuzzy then.

      --
      Vote Technocratic! Government by killer robots!
    3. Re:Gates' Law by Gorth · · Score: 1

      Unless, Talkback always crashes too. Suddenly I don't feel so warm and fuzzy then.

      Gotta agree there... I have it disabled because it seems to cause 80% of my NS crashes

  34. Not in Windoze by Ian+Schmidt · · Score: 1

    CTRL-ALT-DEL in Windows normally a) gives you a desktop back (if you're in a fullscreen game or something) and b) pops up the Task Manager, where you can kill errant programs. Of course, there's also option c) BSoD, which happens waaay too often.

  35. Open Source fixes everything? by william.shanks · · Score: 2
    The phenomina of bad code is not unique to commercial software. Despite the popularity and success of some open source software, there is a lot of bad code out there. Anyone who can figure out the three letters 'gcc' seems to be able to post their code to sunsite or freshmeat.

    Despite having the source code, the amount of time and effort required to understand a large amount of code is overwhelming. How many programmers would volunteer to fix Windows bugs?

    Consider the lesson of the WWIV BBS software, which was an experiment in Open Source commercial software. The program was written by a C instructor, who distributed the code (although you had to pay). People would "learn to program" by changing the source code, and once the code worked, distributing it.

    The sad fact is, most people can't program. The classes don't really teach anything other than the syntax of the language, which they can then put on their resume and get the fast money.

    What I'd like to see is: First, quality standards for software. Software is the only form of engineering in which there is not some sort of standard of how many or what sort of bugs are acceptable.

    It's possible that C/C++ are not the best languages for Application development. Research has gone into developing new languages, such as Eiffel.

    Lastly, software quality ends at the programmer. Think before you vomit unmentionable code at the feet of the rest of us.

    1. Re:Open Source fixes everything? by Wentley · · Score: 1

      Actually, you're about three generations too late in heaping praise if you only refer to the C version of
      WWIV.

      I started running a BBS using the Turbo Pascal version of WWIV before they "closed the source" by releasing the C version.

      The earier Pascal versions of WWIV were released ONLY AS SOURCE CODE and it was up to the sysop to compile it and get it up and running. I remember what fun I had modifying and adapting it to do what *I* wanted it to do on my system.

      [I remember how busy my board was back then, too, with an 8088 processor, 640K of RAM (over half of which was used as a disk cache, the Pascal version ran fine in 256K of RAM), a 5 MB Hard drive, and a 1200 baud modem.]

      With the first C-Language version, it became necessary to "Send In Money" to receive the source code.

    2. Re:Open Source fixes everything? by PacMan · · Score: 1
      It's possible that C/C++ are not the best languages for Application development. Research has gone into developing new languages, such as Eiffel.

      I'd say *likely* instead of *possible*. OK, I was taught Pascal instead of C, and have even worked in an Ada development environment, so I may be biased, *BUT* ( you could see that coming ) using a language that encourages bad programming dosn't seem like a recipe for good software.

      Look at the Jargon File. Pascal/Ada/etc are called "Bondage and Disipline" languages because they force the programmer to think about what they are doing beforehand, and actually plan things out. C, on the other hand, has syntax that discourages error checking and allows you to do things like assign a pointer to an integer *without thinking about it*. If you had to think for even a minute ( like to an explicit conversion ) you might realise that there is a better/safer way to do what you want.

      C is popular simply because it is already popular, kind of like Windows. People use C because everybody else is using it. Cast of the bonds of popular culture and emprace a language that will *help* produce reliable code, rather than *hinder* it's production.

      End of rant. Let the flames commence.

  36. Worse is better by Improv · · Score: 1

    Ship first, fix later. So long as your program
    largely works, and doesn't corrupt data, it's ok
    if it crashes or misbehaves occasionally. It's
    more important to be out there and be largely
    feature-complete than bugfree. So long as the
    patches come often, it's far better to have
    something that mostly works and has a lot of
    useful features than a product that's far less
    featureful than the opposition and bugless.

    --
    For every problem, there is at least one solution that is simple, neat, and wrong.
  37. My experience by Anonymous Coward · · Score: 0

    I have the pleasure to manage a release at a small software company that will release its project at the middle of this month. We didnt have a feature freeze yet and i will be happy when I manage to freeze it before the end of this week...
    Once a week someone from the management comes and says that feature X is essential for the customer and that we cant ship the product without X. They start huge discussions about features that are almost impossible to implement and dont make much sense, only because they make cool buzzwords that can be used to impress customers... There is one programmer who cant see the need for a feature freeze and still wants to do small 'fixes and improvements', even if they are not neccessary for the release, and I cant stop him without causing a lot of trouble in the company (and of course, the management likes his 'improvements'). And there are the (closed-sourced) libraries and runtime environments that our product relies on and that are buggy and cannot be easily removed. When I go to the management I tell them I have to rewrite this part to get rid of the lib, they will tell me 'good idea, but first we need this animation in the dialog'.
    The problem is that most people who do not develop software, and even some of the developers, dont understand how to stabilize software. We cannot (like Linux) have a 3 month code-freezed period, they dont understand it and think that we want to do a 3 month vacation...
    Of course, most customers dont have a clue either. The classical NT user prefer things they can see to things they cant see. And stability is not something you can see... They get what they deserve.
    (BTW, is there a serious company out there that wants a Java/database programmer? :)

  38. A pre-emptive caution by Ryandav · · Score: 1

    I think this line of reasoning entirely validates open-source/free software concepts, the whole idea that "With a million eyes, all bugs are shallow".

    They mentioned the idea that once a sofware project gets to be a few million lines of code, no one person can hold all of those patterns together in their mind. But with hundreds of people interoperating _transparently_ and openly sharing the information of a million-line program, it can be held in the collective conscience quite adequately.

    I know that alot of people will probably post here, "hey yah, open source rulz!" and similar sentiments. But it nonetheless refreshing to feel a little validated by other people not directly involved in Free software.

    --
    Check my Go-related blog for beginners: DGD
  39. reverse engineering by mcc · · Score: 2

    this article ignores what is clearly the worst part of USCITA: legitimisation of prohibhiting reverse engineering of a product.

    The whole lack-of-a-warranty thing is nothing new in software, and i seriously doubt any company would try the PR disaster of setting up their program so that they can kill it remotely. But we should really be worried about anything that gives a company the power to prevent someone from using cleanroomed reverse engineering on their product.

    The big defense of software lisenses is that hey, if you don't like it, you can take it back to the store. But in a world without reverse engineering, you have to face the possibility that at some point you'll wind up with a program where switching to a different program isn't an option because the new program is prohibhited from communicating with the old one, or prohibhited from using the old one's files, and you'll be left with a large amount of data or work rendered useless..

    (A question: could USCITA apply to hardware as well as software, such that, say, Nintendo could put a no-reverse-engineering software liscensing requirement on the N64, and then use that to prosecute anyone who exersizes their right under the patent laws to cleanroomed reverse engineering? What if you didn't actually buy or open the product yourself, but just found it laying on the street or something? Do you still violate the liscense?)

    anyway, this article is completely right. software makers, especially those that make web browsers, pay a little too much attention to "features" and not quite enough to stability..

    -mcc
    why web browsers suck: http://home.earthlink.net/~mcclure111/cyberleary.h tml#discontent

    1. Re:reverse engineering by Anonymous Coward · · Score: 0

      I think those who already use dongles to "protect" their software will enable the remote kill. They might even do it as a "upgrade"

  40. Re:Illiad has started something veeeery bad by Anonymous Coward · · Score: 0

    Illiad didn't start this. People have been making "first posts" on slashdot for a long time...Also, did you think Illiad just decided to make up a "first post on slashdot" phenomenon for the comic strip?

  41. Print it out? This isn't all very obvious? by Kitsune+Sushi · · Score: 3

    I'm going to kill whoever thought it was a good idea to have the ads reload every 10-15 seconds on the site that article is on. Grr.

    Talk to any programmer, tester or honest manager and they'll tell you a very different story about software. It is the unspoken scandal of digital culture, and it goes like this:
    Software is badly made. More than that, it is often horribly made. It is developed with the sort of irresponsible abandon that would be unconscionable if it were applied to bridge-building, car-making and possibly even plumbing. And the internet has only made matters worse by encouraging dot-com companies to rush products out ever faster, despite the fact that software is now more complex than ever. Desperate to ride stock-market hysteria and the sea of investment dollars for dubious projects and websites, software companies cram their wares through on shorter and shorter timelines, with no latitude for serious planning, testing or concern for quality. "It's ship first and ask questions later," says one weary programmer, a survivor of a database company.

    Hmm. Well, most glaringly, this kind of assumes that all programmers are found in the commercial sector. In simpler times, I would not have found this incorrect assumption to be all that surprising. In light of the recent thrust of GNU/Linux into the spotlight, it appears to be more of a gross oversight.

    On the other hand, does anyone here really think that every proprietary software product is a horrible piece of.. whatever? And no, Microsoft does not make all known proprietary software products, contrary to the belief of many conspiracy theorists who have spent too much time on board alien space ships.. ;) I would imagine that a greal deal of commercial stuff is actually good and relatively bug free. Not all of it, but just because all of it doesn't kick ass doesn't mean that all of it sucks, either.

    In this context, perhaps it's no wonder we face the stinging paradox of the computer age-that even though we have ever more way-kewl digital tools, our productivity has not budged an inch.

    Oh wait.. No wonder. The writer has obviously spent too much time around script kiddies and other lower network life. ;)

    "The average American would never buy an electric razor... as buggy and unreliable as a PC," says Bruce Brown, founder of BugNet, a Sumas, Washington-based firm that reports on bugs and provides fixes.

    Actually, I know a lot of idiots with electric razors that don't shave a person's face (or elsewhere) very well. I consider that to be "unreliable".

    Perhaps the most astonishing fact is that we, the customers, let software companies get away with products of such atrocious quality. We take every frozen screen as part of the package. We don't complain. And we sit back while, unregulated by government and cheered on by the stock market, software makers embark on a race to the bottom. They're almost all the way down.

    "We, the suckers who don't know any better.." But seriously, who doesn't complain? I'd like to meet the person who isn't at least mildly ticked upon being visited by a BSOD.

    Once a program goes over a few million lines of code, no one person can hold the structure neatly in their head.

    Encapsulation and modularization are your friends ..

    This is particularly true with operating systems, which have skyrocketed in size and developed thousands of byzantine byways. Windows 95 had eleven million lines of code; Windows 2000 is slated to have a mind-blowing twenty-nine million.

    ..too bad the people from Redmond don't make nice to these two potential buddies..

    On top of the software issues, there's the challenge of hardware. The explosion of cheap PCs has created thousands of different machines built in completely different ways. This one has a nVidia graphics chip; that one has a Turtle Beach soundcard; yet another has some memory sold out of the back of a van in Mexico. Such variability makes it hard for software to run smoothly on each box.

    GPL your drivers!!

    I don't know.. After reading this entire article, I was first surprised that the writer even knows the correct term for a BSOD, and also I just have to ask: Can anyone come up with any reason why free software would not be considered a Very Good Thing to inject into the software industry, as far as the average end-user is concerned? Obviously it's not quite so helpful to big business. ;)

    --

    ~ Kish

    1. Re:Print it out? This isn't all very obvious? by cabbey · · Score: 2

      I'm going to kill whoever thought it was a good idea to have the ads reload every 10-15 seconds on the site that article is on. Grr.

      take a deep breath... get in line... right-click->Open Frame in New Window... move on with life.... ;)

      I would imagine that a greal deal of commercial stuff is actually good and relatively bug free.

      Once upon a time... yeah. But the lemmings in the industry are dragging everyone else with them. Even the Blue Giant has moved up their release cycles, products that used to ship a version every couple years now ship on a 3 quarter cycle... and these are things far removed from the .com hype. The products caught up in the thick of it are quarterly.

      Encapsulation and modularization are your friends..

      OO is a fairly good paradigm yes, but it has some glaring problems. Especially in the realm of this discussion....

      There is a piece of code I own that was written with entirely too much OO on the brain... every thing is an object, and everything is encapsulated. A simple trace through the section for one invocation involves something like 25 instances of about 40 classes (this is when inheritance sucks) on three threads. It has taken me over a year to have even a marginal feel for this code... and I understand it at the high level, and have full design docs at my disposal. This code by the way, is well under a KLOC in total... closer to 1/2 that. It doesn't need to be this complex; I've redrawn it on paper down to as few as 8 objects in the process of understanding it.

      Managers view programmers as a resource, programmers are considered plug replaceable. I watched recently as a wet behind the ears college kid was plopped into place replacing a veteran of almost 20 years in the industry, who had inherited the code several years ago from another who had been around as long as he had. This poor kid is in over her head... and we all try to help her out... but she doesn't have a snowball's chance in hell: that component is just plain fsck'd, the first three new features management pushed down her throat resulted in the component being completely broken - not just a little flaky - completely broken.

      Andreessen's quote: "We have, historically, definitely prioritized features over time and time over quality," describes near all of the industry by now.

      It's all about the deadlines... psychotic as the auther called them. My management recently respun the "final" build about 8 times after giving it to the test organization, each time promising it would be the last one... never once did they push the ship date. Final testing happened in a couple days, instead of a couple weeks it was originally planed for, or the couple months asked for to do it right.

      At the level of the programmer, it's all in the person. There are some who take immense pride in the quality of their work; they view bugs in thier own code as an afront to their engineerring ability. There are those who only seek to work on the new/popular/fun stuff; their code often contains half completed implementations with comments like "this is uninteresting". (actual quote from actual shipping code from that last reference!). I count myself lucky to work with the former rather than the later.

    2. Re:Print it out? This isn't all very obvious? by Daniel · · Score: 2

      > encapsulation and modularization are your friends..
      OO is a good paradigm yes, but it has some glaring problems.


      This strikes me as..well..a really strange response. Object Orientation is certainly meant as a way of encapsulating and modularizing code -- but so is everything else under the sun! I can write modularized code in C, C++, Python, or Scheme if I feel like it; those cover about as wide a range of programming paradigms as I can think of. Modularity has a lot more to do with finding the right abstractions for your problem than with the specific way of programming you choose. Heck, I bet you could even write modular code in assembler (I'm not going to volunteer to try it though :-) )
      The problem with any encapsulation is finding the right one: one that's as simple as possible but no simpler. As you observed, object-orientation is just as susceptible to programmer error as anything else. I believe that the Linux kernel may actually be fairly modular for such a beast, and the Hurd certainly is -- both of these are written in C. Emacs is an unholy mixture of C and Lisp; I haven't closely examined the source but given that so much functionality is available as Lisp hooks I don't see how it can help but be well-written internally. (I've embedded scripting languages into some of my code -- it really makes you break stuff up in a better way) Shall I go on? Have I demonstrated my total cluelessness? :P Do you believe that modularity and the particular programming paradigm used are orthogonal?
      Daniel

      --
      Hurry up and jump on the individualist bandwagon!
    3. Re:Print it out? This isn't all very obvious? by cpt+kangarooski · · Score: 1
      And no, Microsoft does not make all known proprietary software products, contrary to the belief of many conspiracy theorists who have spent too much time on board alien space ships.. ;)

      Don't tell me, tell Microsoft. They either believe it, or plan to make it reality as rapidly as they can.... ;)

      --
      -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
    4. Re:Print it out? This isn't all very obvious? by cabbey · · Score: 1

      very true. and yes you can write modular code in assembly... and if you've got a good macro interpreter first you'll still be sane when you're done. :)

      I think though that you're binding a given language to a given paradigm, as this statement refering to C, C++, Python and Scheme alludes:

      those cover about as wide a range of programming paradigms as I can think of.
      and then saying that a concept such as modularization and encapsulation can be bound to any paradigm/language pairing.

      At least that's how I read your statment.

      I disagree on which level the 1-1 binding is... I think there is a binding between the concept (such as modularization and encapsulation) and the paradigm (here OO). And that paradigms can be bound to any language. For example: OO-RPG (try not to laugh... it exists) and functional Java.

      I would never for example expect a procedural/functional paradigm design to encorporate encapsulation and modularization under the same concept as OO.

  42. Pretty even with open source offerings by heroine · · Score: 2

    So far the commercial offerings are pretty even with open source offerings. Everything crashes. Having a source tree to compile makes no difference if you can't navigate the 100,000 lines of code that make it up. If you're dealing with a niche market of users who are less interested in CS than they are in playing guitar you won't get any feedback from the users. You're the only one who knows that source code well enough to hack it.

    If you're dealing with a niche market made up of CS majors you'll get cleaner Makefiles and configure scripts but that doesn't make the software any more reliable. Only when you deal with one or two fundamental, basic necessities of computer operation does the source code become useful.

    In 4 years of producing source code, the lion's share of complaints were from users who can't compile the source code while binary releases were merely a matter of resetting LD_LIBRARY_PATH. It's a lot easier to give them a binary than start an endless discussion on compiler flags.

  43. Um, no.. by Kitsune+Sushi · · Score: 3

    The grand majority of your project time should be spent in the design phases. The less time you spend on design, the more likely you're going to fuck up during implementation, and thus the more time you're going to spend doing testing. Design should consume about 50% to 70% of a project's time (or at least closer to those figures than 33%). After you have a full, working design down on paper, implementation shouldn't be all that hard to nail down quick unless your programmers really are quite clueless. The reason you should spend so much time on design is so that before you even write a single line of code, you know everything that the program is supposed to do. You figure out the best way to implement each feature, and whoosh! You're off. A lot of bugs are solved this way before you even go to your favorite text editor. Moral of this story? If you don't implement something incorrectly in the first place, you won't have to fix it later. It's a Good Thing. And most of your bugs will be typos and other assorted weirdness rather than critical design flaws. A change in design during implementation is much harder, and quite time consuming. You'll be much better off if you have an extremely clear view of the design beforehand. How much testing you do shouldn't really be set down as any predesignated percentage, AFAIC.. You test it until it's done being tested. Besides, how much time that will require depends entirely on your licensing and how you plan to test it. ;)

    --

    ~ Kish

    1. Re:Um, no.. by whoosp · · Score: 1

      There are different kinds of design, you can't just use one "x%" statistic to describe the time necessary.. Take, for example, a program that is supposed to reverse a string. The design spec will say: * Dialog will pop up with an aspect ratio of 15x6 * Dialog will have an input field that is 60% the width of the dialog * Dialog will have an "OK" button directly to the right of the input field * The input field on the dialog will accept all character input such as ascii, DBCS, SBCS, etc * User clicks OK, a new dialog pops up with the string reversed. * etc So this is handed off to the programmer. And the programmer is the one who has the expertise to design what he/she does: * Once the user clicks OK, go to Parse_Input() * In parse_input, if any of the characters are not ascii, go to Non_Ascii_Parse() * In parse_input, if the characters are all ascii, reverse 'em * etc While the programmer is working on implementing the spec, the tester can go through the spec and /design/ the test plan: * Test running the app on a japanese OS * Test running the app on a US OS with a japanese IME (input method editor, allows you to type japanese characters) * Test running the app on OS#1, OS#2, OS#3 * Test running the app when the system is very low on memory/disk space * Use characters such as & and * and tab in the input field and make sure program has correct output * etc With proper peer review (say the design spec didn't account for non-ascii and the tester or programmer noticed), the major issues can be caught sooner rather than later. But even after the design spec is 'done', the programmer will run into problems that might be best solved by changing the spec. Or a customer calls in to say that they need this program to do bidirectional as well which results in more work in adding to the design spec, more work for the programmer, more work for the tester. I don't think there's any one "% design time, % coding time, % testing time" that will apply to all software projects, or even all software projects of the same class. Plus, not all software designers, programmers and testers are of the same skill level.. a lesser skilled programmer will probably need more time than a more experienced one. So maybe in that case, the designer would allocate extra time in design stage and make the spec much more detailed to help the programmer with code flow, etc.

    2. Re:Um, no.. by whoosp · · Score: 2

      That sucked, my apologies for not using preview :-) Here it is in better form:

      There are different kinds of design, you can't just use one "x%" statistic to describe the time necessary.. Take, for example, a program that is supposed to reverse a string.

      The design spec will say:
      * Dialog will pop up with an aspect ratio of 15x6
      * Dialog will have an input field that is 60% the width of the dialog
      * Dialog will have an "OK" button directly to the right of the input field
      * The input field on the dialog will accept all character input such as ascii, DBCS, SBCS, etc
      * User clicks OK, a new dialog pops up with the string reversed.
      * etc

      So this is handed off to the programmer. And the programmer is the one who has the expertise to design what he/she does:
      * Once the user clicks OK, go to Parse_Input()
      * In parse_input, if any of the characters are not ascii, go to Non_Ascii_Parse()
      * In parse_input, if the characters are all ascii, reverse 'em
      * etc

      While the programmer is working on implementing the spec, the tester can go through the spec and /design/ the test plan:
      * Test running the app on a japanese OS
      * Test running the app on a US OS with a japanese IME (input method editor, allows you to type japanese characters)
      * Test running the app on OS#1, OS#2, OS#3
      * Test running the app when the system is very low on memory/disk space
      * Use characters such as & and * and tab in the input field and make sure program has correct output
      * etc

      With proper peer review (say the design spec didn't account for non-ascii and the tester or programmer noticed), the major issues can be caught sooner rather than later. But even after the design spec is 'done', the programmer will run into problems that might be best solved by changing the spec. Or a customer calls in to say that they need this program to do bidirectional as well which results in more work in adding to the design spec, more work for the programmer, more work for the tester.

      I don't think there's any one "% design time, % coding time, % testing time" that will apply to all software projects, or even all software projects of the same class.

      Plus, not all software designers, programmers and testers are of the same skill level.. a lesser skilled programmer will probably need more time than a more experienced one. So maybe in that case, the designer would allocate extra time in design stage and make the spec much more detailed to help the programmer with code flow, etc.

    3. Re:Um, no.. by Joseph+Vigneau · · Score: 1
      Perhaps I should have included requirements specification, as well as functional design in the original guideline. The implementation phase is relatively high because I'm including unit testing as part of the implementation cycle. After the dust settles, the whole thing needs to be tested in many ways, including input verification, as well as stress testing. This will hopfully iron out any unforseen situations, like thread deadlocks and such introduced in the implementation phase. However, I completely agree that the design, interface contracts and all, should be committed before implementation. Unfortunately, many parts of these specifications depend on integration with other, third-party software whose interface specifications or documentation may not be complete.

      How much testing you do shouldn't really be set down as any predesignated percentage, AFAIC.. You test it until it's done being tested.

      Unfortunately, my clients have strict deadlines that need to be met, for business reasons. Each day of slippage can result in a loss of hundreds of thousands of dollars for these folks. Which is why I spend a lot of time pushing back on them when they ask for more features after the design phase.

    4. Re:Um, no.. by Anonymous Coward · · Score: 0

      The step he missed is called "prototyping". You know, where you implement a toy version so you can know the design really works, instead of convincing yourselves it would and then finding out you were wrong and not being able to start over. The catch is to keep them from shipping the prototype.

      If you have something intelligent to say, you'll log in or get moderated up so I can read it. Otherwise, you're wasting your time.

      Writing for idiots who can't judge posts by their content would be a waste of time.

    5. Re:Um, no.. by Salamander · · Score: 1

      >The grand majority of your project time should be spent in the design phases

      I agree with you, but only if you're using an expansive definition of "design phase". IMX one of the biggest problems on projects is that people think "design" refers only to sitting in a big conference room, away from any computers, drawing a bunch of crap on a whiteboard. WRONG A functional design process is iterative, alternating between sessions in the big whiteboard room and sessions actually trying things out or modeling performance or doing something else to get the hard facts needed to make the whiteboard sessions productive.

      One of the biggest problems with most programmers is the sick desire never to write code that doesn't go into the product. That means no prototypes, no simulations, no test programs, etc. Another favorite quote from Brooks is "plan to throw one away; you will anyway." Perhaps one measure of a well-run project would be how much of the code written did not end up in the release.

      --
      Slashdot - News for Herds. Stuff that Splatters.
  44. ironic.... by Anonymous Coward · · Score: 0

    I tried to print out the web page, but netscape crashed on me.

  45. Paperclip by Imperator · · Score: 2
    To those of us whose idea of an elegant OS is Unix, that paperclip seems really stupid, and we laugh at it. But not every user can sit down in front of an unfamilier UI and get their work done.

    I like the paperclip. It saves me time. I can show a user how to use it to find the answers to their questions without asking me. Being able to type "How do I change the margins?" and get an answer is very useful if you need that sort of help. Think of it as a cute/annoying first-person graphical front-end to searcheable help files.

    Believe it or not, Microsoft actually does spend some time researching UI intuitivity.

    --

    Gates' Law: Every 18 months, the speed of software halves.
  46. Software doesn't have to be buggy... by Anonymous Coward · · Score: 0
    Software design refuses to follow the systems used in other types of engineering... Proper design and design review is not done. A previous poster said a software project should be 33% each design, implentation, testing. A better system would be design (following the systems used for others types of engineering, i.e. formal reviews, etc.) taking 75%, coding 5%, testing 20%.

    When things start to slip behind schedule, several things are often done - programmers code like hell, often on little sleep, and more people are added. Both screw things up, and _will_ make things later and buggier. Management & marketing toying with features & ship dates are also a recipe for disaster.

    One way to enhance software design is to make it much easier to sue software makers for lost time and money due to bad products, and get rid of those end-user agreements that try to limit liability.

    Finally, why do programmers try to pull all nighters and program on 1 hour of sleep and 32 mountain dews? Idiots. No one can work well that way.

    1. Re:Software doesn't have to be buggy... by Anonymous Coward · · Score: 0

      This is not true. I know of many companies that develop software under formal process' that approximate the percentages that you gave, and are modelled after the formal methods found in other types of engineering. However, most of these companies are involved in the development of bespoke sytems, not systems for the open market. Aditionally there is a huge amount of research that goes into developing and refining the software engineering process. This can be seen in any of the standard texts on software engineering as well as the wealth of journals available on the subject.

    2. Re:Software doesn't have to be buggy... by Wentley · · Score: 2

      Take a guess what commonly worshipped software development beast is at fault for the problems you and others here have described:

      The Hacker.

      The Hacker is someone who spurns top level design, and just wants to "write code."

      The Hacker doesn't want to hear from a usability engineer, he wants to "release often" and have random people all over the 'net find his bugs.

      The software industry is permeated by hot dog coders who, umm, basically are just coders. It's a real problem, and is worse in the Free Software community than in the Commercial Software business. "Open Source," also known as "fix it yourself," while viewed by some people as the central philosopy of Free Software development, is also merely the least wobbly leg it leans on. So we end up with Byzantine software, designed by nobody, and added to by everybody, that works well at the things coders have felt a need for, but has a User Interface reknown throughout the rest of the world as cryptic. Emacs is probably the supreme example of this design philosophy.

      Please don't bring up "Peer review" to argue against my point. The classic notion of "Peer Review" that has increasingly been distorted by "Open Source" advocates, has to do with a body of peers with credentials. Not the guy with the loudest mouth on Usenet.

    3. Re:Software doesn't have to be buggy... by Morpheous · · Score: 1

      What you are saying is indeed interesting, but does top level design always lead to better code? I think sometimes it leads to the opposite, because those who do the design are oftne not those who implement it. It must then be interpreted by the coders, and it often contains errors b/c the designers don't understand the technical issues at work. They just want "features". Sometime I think the results would be far better if the programmers did a bigger chunk of the analysis, too. But hey, that's just my $0.02 (although yes, I do program for a living).

      --"A man's Palm is his best friend."

      --

      --"A man's Palm is his best friend."
      (IIIx, that is...hehehe)
  47. How can consumers know if the product is buggy? by IpSo_ · · Score: 1

    It seems publishers of software products often take care of "testing" the software for the companies which create it. (ie: Activision does some testing for id software?) Why not have these companies that test the software release information about the bugs they find? Even, just make up some way to rate a product, and put that rating on the box somewhere. Similar to the current "movie like" ratings you see on computer gaming products. A bug rating of "A" would represent a minimal amount of bugs found during testing. A rating of "F" would tell consumers that there were many bugs found during the testing phase which were not fixed before the product shipped. If there was a central body that oversaw this rating, I think software companies would quickly clean up there act after there software got a "F" rating for bugs.

    Of course, does anyone look at those "movie like" ratings on games anyways? :)

    --
    Open Source Time and Attendance, Job Costing a
  48. Customer Choice by NickHolland · · Score: 3

    In the 1950s through the 1970s, people bought cars based on features and looks, not based on reliability and quality. There were a few cars that were well built and lasted, but for the most part, they rotted on the lots, while their flashy but unreliable competition sold.

    People used to line up to see the new models. People with money lined up to BUY the new models. Knowing full well it probably didn't start any better than the old one.

    It wasn't that Detroit was incapable of BUYING a quality product. It was that the consumer was unwilling to buy the boring but solid product. It wasn't until the late 70s and early 80s that consumers suddenly demanded QUALITY over LOOKS from Detroit, and Detroit responded (in the auto industry, the problem was the speed at which the change in consumer attitude took place. You can't change the manufacturing criteria from flash to quality overnight..and no one was sure if this was a passing fad or a real trend)

    The facts are, if the consumer demands something with their money, they will get it. Complaints don't mean a thing.

    Another example: Airlines. People complain about late flights, they complain about lousy service, but they book the cheapest flight. Duh! Leaving on time costs money! Great service costs money! If the consumer buys the cheapest product, they can complain until they are blue in the face, nothing will change, at least not for the better.

    It is simple economics. There is great demand for flashy software. There is little demand for quality software. While that is the case, that's what the consumer gets. The software industry better hope consumers don't change their mind on flash vs. quality overnight, like happened with the auto industry.

    I've been supporting bad software for many years now. I'm starting to detect a change in attitudes towards business people (although, I am probably guilty of contaminating the sample!). I think this is good.

    Consumer complaints don't enter into economic decisions. Dollars do.

    Nick.

    1. Re:Customer Choice by cpt+kangarooski · · Score: 1
      Another example: Airlines. People complain about late flights, they complain about lousy service, but they book the cheapest flight. Duh! Leaving on time costs money! Great service costs money! If the consumer buys the cheapest product, they can complain until they are blue in the face, nothing will change, at least not for the better.

      My experience with Southwest Airlines, which is really cheap, is that they leave on time and arrive on time. All the time. Perhaps this is because they feel that there's more money to be made if they stick to their schedule whenever possible. I like to think that it's because they have their values in the right place. Short term profits shouldn't be more important than behaving honorably and doing your best for customers. Do that, and the money will follow, cause that's the kind of stuff that customers will come back for.

      --
      -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
    2. Re:Customer Choice by Anonymous Coward · · Score: 0
      And don't forget that for most of the 90's, Southwest was the ONLY profitable US-based airline. Their pay scales were/are above industry average, too.

      You don't have to lose money in order to provide a quality product at a low price.

  49. Who's to blame? Evil pirates of course! by Anonymous Coward · · Score: 0
    Why does photoshop cost $900?

    Pirates!

    Why do I need dongles/key disks?

    Pirates!

    Why am I required to have the software call some server on the modem periodically?

    Pirates!

    Why does most software suck?

    Pirates!

    Yes pirates. The software makers scapegoat for everything.

  50. I mostly agree with this article, however... by FallLine · · Score: 1


    I mostly agree with this article, however I think the industry will stabilize. I believe that more and more software/hw purchasers are starting to realize just how buggy software is. The market is going to mature, it is just a matter of time. When enough people get hurt in sufficient proportions, things must change. Its simply a function of the market; consumers haven't been demanding quality software. When they do, software will rise to meet those demands.

    I think that the recent press attention given to Linux and other open source efforts is one of the first signs of movement. Most people couldn't care a less about "free" software, what they're looking for is more reliable, yet functional software. The linux community is starting to provide sufficient functionality where most people can consider it. However, this does not mean that Open Source must (or will) supplant commercial software. Just that the Open Source community offers the first enduring choice, commercial companies are going to turn around. They might adopt psuedo open source solutions (eg: Sun's recent licenses), but effective quality assurance and simplicity can stop most all of these bugs.

  51. sometimes worse is just worse by mcc · · Score: 2
    ok, what you say is true.. but not always.

    some programs all that matters is whether they get the task done, and not whether they do the task well. But not all. the perfect example of something that works the other way is a web browser: stabilty really _is_ more important than features there. Because it isn't simply performing a certain task and then leaving; it's omnipresent, always there running in the background, never being quit since ther'es no way of knowing when it will be needed again.

    as someone on an OS with no memory protection (macintosh) i wind up with this problem amplified-- since any one program crashing automatically means i have to reboot. And MSIE causes more crashes than any other app for me, almost always while i'm just kinda checking on something on the web as i do something in another program. (and stability is one of the main reasons i switched from netscape to begin with.)

    which brings me to the most important thing: the ship-first-fix-later philosophy doesn't work unless you actually fix later. Meanwhile the web browser companies _never_ go back and do the fix-later part; they just ship, over and over, constantly adding new features and never considering he validity or stability of old ones. The proverbial feature freeze doesn't even happen _after_ the product is shipped.

    The point is, even if features are more important than stability, at some point stability should be at least a _consideration_.

    -mcc
    why web browsers suck: http://home.earthlink.net/~mcclure111/cyberleary.h tml#discontent

  52. Another Factor? by AngryDaveD · · Score: 2

    There are many different factors that weigh in on software quality. The article mentioned some of them:

    1. Complexity: For many projects it isn't possible for a single person to understand the details of how every single part of the system works. This leaves the project with a number of possible sources for bugs.

    2. Testing: It's impossible to test the entire range of possible inputs and compare to outputs. Many real-world stimuli can't be predicted in testing, and often can't be dealt with.

    There's another factor, which the article didn't mention:

    3. Unlike other industries, there's no leeway. Either a product WORKS, or it doesn't. There's no such thing as kind-of-works. Take the automotive industry for example: Cars still have showstopper bugs (cars have been recalled, as have most consumer products), but there are fewer possible causes of a showstopper bug. Automotive showstoppers are almost always safety related. But if it turns out that the car has a part that is prone to leaking, the manufacturer waits until the consumer notices it and brings it in to be fixed, because even while leaking, or while the engine is knocking, or there is hesitation before acceleration, the car will continue to work acceptably. Consumers work around these bugs EVERY DAY. Just like I work around the fact that my toaster's timer isn't quite exact, often pushing it down for a second run cause the toast didn't get as brown as it usually does.

    However, with a software product, every piece of the product is in such a delicate balance, it takes only one thing to go wrong for the error to propogate through the rest of the system, causing a crash. And often, the error propogation is completely unpredictable. This means that every part of the system has to work exactly as defined, (with no allowance for random fluctuation or acceptable levels of correctness), when the slightest variation can through every other piece of the system out of whack. In essence, every error can potentially destroy the entire system, no matter how trivial that error might be.

    This is why software companies release products with licenses that disclaim responsibility. They know they can't predict every possible usage situation. In places where such predictability is absolutely crucial (air-traffic control being the canonical example) products are written for a specifically defined environment, with a specific set of interactions. The focus is entirely on reliability in a single environment, resulting in a loss of flexibility and features. In that situation, flexibility and features aren't necessary.

    But in the consumer market, the story is quite different. Users want the utmost reliability, with flexible usage environments and all the features (yeah, everyone would accept a stripped down product, but only if it were stripped down to what they use). The bug situation is only exacerbated when the programmer has to worry about the actions of yet another software program affecting the operation of his or her own product, something which is not as bothersome in a well-defined environment.

    Not even automotive companies will warranty a car which has been used in a way not predicted by the manufacturer, nor will any other company if they don't consider the product's day to day use to be normal. It's just much harder to define what normal use is going to be in the software world. Ideally, it would be "Used in exactly the same way, on the exact same machine, w/ the exact same setup as the developer's machine." But in the real world, that's never going to happen. That's one of the reasons big, single purpose servers tend to be more stable than my machine at home. The usage environments are far more well-defined than that of the average PC user.


    1. Re:Another Factor? by sreeram · · Score: 1
      All the reasons pointed out (complexity, testing and leeway) could contribute to the bugginess of software, but I don't think the root cause is any of them.

      None of the three problems is peculiar to software. Both hardware and software can be terribly complex, suffer wide ranges of inputs/scenarios and/or don't have too much leeway. And we have seen such software/hardware that work and those that don't. Why then do we compare software against machines?

      The answer to that is precisely the point of the Shift article - that we have made hardware manufacturers live up to some standards. And we have not exacted the same of software vendors. It is a fallacy to find excuses for the rampant bugginess of today's software - as though something inherent about software or software development were causing those bugs.

      We just need to get tough.

      Incredibly, there are many things about software (as compared to hardware) that should alleviate all the three problems mentioned above. If anything, even the most common day-to-day pieces of hardware are much more complex than similar software (I am measuring complexity here by the difficulty of getting one person to hold it all in his/her head). If you think MSIE is too big for one person to understand, then let me tell you about microelectronics.

      The most telling argument in support of this is seen in why software patents are bad. Part of the argument goes: Hardware (drugs, machines, etc) is so difficult to research, design and test. These are real objects, prone to real influences - friction, environment, tolerances, noise, energy fluctuations, etc. To predict and account for all the real-world inputs/scenarios and to make the product/process robust is difficult. On the other hand software is a mathematical model. A line of code will work the same regardless of real-world stuff. Software should work as designed.

      That today's software doesn't work as expected can only mean one of two things - that programmers are by and large incompetent as compared to other engineers or that customers are not tough enough.

      Sreeram.

    2. Re:Another Factor? by Anonymous Coward · · Score: 0

      "However, with a software product, every piece of the product is in such a delicate balance, it takes only one thing to go wrong for the error to propogate through the rest of the system, causing a crash."

      Functional (vs. imperative) programming can
      alleviate this much, but the whole industry
      is addicted to C and C++. One day...

  53. software industry like auto industry of the 70s by 10am-bedtime · · Score: 1
    complacency kills. i'm glad free (and open source) software shines the naked light on quality issues.

    you think you're a programmer? do you think you're a quality programmer?

    1. Re:software industry like auto industry of the 70s by Anonymous Coward · · Score: 0

      Kinda makes you wish there were more Japanese software developers.

  54. Re:ignorance by TummyX · · Score: 1

    You're ignorant.


    Encapsulation and modularization are your friends..

    This is particularly true with operating systems, which have skyrocketed in size and developed thousands of byzantine byways. Windows 95 had eleven million lines of code; Windows 2000 is slated to have a mind-blowing twenty-nine million.
    ..too bad the people from Redmond don't make nice to these two potential buddies..


    Lets take windows 2000. that 29 million lines of code isn't ALL the kernel. Windows 2000 is the MOST modular OS I know of. Everything you need is either in DLLs or even better - as COM objects.
    The source code to Windows 2000 isn't all in 1 files you know.
    In that 29 million lines of code - include IE5, IIS, DirectX, and all the programs and utilities that comes with W2K.
    they aren't being developed out of one source file, they are modular. Lets say that someone doesn't like the look of the quicklaunch bar on the starmenu and wants to add another one. He doesn't have to change shell32.dll or explorer.exe, he just makes a COM object with the coorect interfaces (IBandObject, IObjectWithSite etc) and adds it to the registry.
    Complain about Windows, but not about it's modularization. Just cause we use COM don't do lame things like executing utilities and capturing output.

  55. I know you won't believe me.. by Anonymous Coward · · Score: 0

    ..but as I was reading that article Navigator 4.61 pulled the ol' Bus error crash. I just had to laugh.

    1. Re:I know you won't believe me.. by Anonymous Coward · · Score: 0

      I would recommend you pass the word on to Marc Andreesen, but I suspect he's off picking out the color scheme for the interior of the glove box of his latest European sportscar right now and can't be bothered.

  56. ship date by Anonymous Coward · · Score: 0

    Mark Twain has a famous quote >If I had more time, I would have written you a shorter letter. Implying, that with more time to think through his ideas, he could express them more succinctly.

    Not all software gets bigger with time. I know of one exception. It's an SQL Anywhere product with a Powerbuilder front end. It tracks the money coming in. It fits on a very tiny portion of its CD. It's very fast, stable, and has very few bugs. I haven't found any after a year. It runs on NT.

    It CAN be done.

  57. SEGV: Tarring us all with Windows brush by hazeii · · Score: 1

    This article is written from a Windows-user point of view, surely (i.e. by someone who lives in a world where software does suck, bigtime). How many of those comments does anyone think applies to 'free' software?

    We've really noticed how when our project gets email, the Windows users are "Hey! I've downloaded your software so you owe me a favour, and I want this changed, do it for me NOW!" and the ROTW (Rest of the World) is like "Thanks for trying guys, btw, maybe you could improve it by coding this idea/applying this patch)".

    --
    All your ghosts are just false positives.
  58. The solution by SheldonYoung · · Score: 1

    Crappy software will always exist because not every developer really cares about their product. Just like how their will always be at least one construction company that builds shoddy houses.

    For free software the solution is easiest. Try it and if you don't like it you didn't lose anything.

    For commercial software the solution is easy, if you don't like it, don't buy it. If you don't know if you like it, don't buy it.

    Unfortunately, unwitting people will commercial software without trying a fully functional evaluation (if available). These are the people that get screwed by exchanging their cash for crap. These are the people we need to protect with a suitablity-for-use law.

    By opening the door your new car, you agree to the following: 1) If the car explodes, too bad 2) If it is missing features we say it has in the advertising, too bad 3) If it is missing a tire, too bad 4) If the white plastic shrink wrap was missing on delivery, send the car back within 90 days

  59. Consumers by miracle69 · · Score: 1

    I've read many comments about how the software industry isn't like other industries, and I think it is all full of crap. Why aren't they?

    They make a product. They sell it to the masses. The masses buy it.

    Software is indeed a complex entity, but we're accustomed to dealing with complex products. How many of you own an automobile? How many of you know more than curosy knowledge of how the car works? How many of you know your car so well that you can break it down into bits and pieces and put it all back together again?

    I imagine that the answers are Most, Few, Hardly Any.

    And in fact, we've seen shitty cars being made. We've seen them sold to the masses. And we've seen the masses buy it.

    But someone decided that enough was enough - for whatever reasons - and Ralph Nader published his infamous book, _Unsafe at any Speed_ , and the public woke up to the reality that they didn't want shitty products, and the companies changed the product to reflect what the consumers wanted, not just what the bottom line was. And it worked.

    Albiet, most software crashes don't kill people, and it will be harder to convince the masses that they don't need to stand for shitty software.

    It probably won't be because someone writes a book, or someone goes on a big TV or political campain.

    What probably will cause the masses to wake up is when, bit by bit, they are exposed to software that doesn't crash. Why use Windows to surf the web and read email when I was able to use Linux to do the same thing, and I didn't have to reboot, and the GUI e-mail client, though it crashed, didn't take down the system, thus I could continue quicker? And slowly, as people see that there is another way, they will begin to accept products that work and are stable, and then they will begin to demand them.

    An companies will produce products that fit the bill, because if they don't, the buck stops somewhere else.

    --
    Linux - Because Mommy taught me to Share.
  60. Quality Isn't Rewarded by Anonymous Coward · · Score: 0

    Quality software isn't rewarded in the market. That's the problem.

  61. The incredible, editable browsers by wilkinsm · · Score: 1

    First, a quick postlude by the choir...

    *** Amen, Amen, Amen! ***

    Okay, to the grit. Halfway through "Brigitte Nolan" get into "why browsers suck." I'd just thought I'd fire up oleview and see how many interfaces the intergrated IE 5/explorer exports these days...

    *counting*

    Oops, I lost track after 500. The plain old "HTML Document type" has over 130 alone. IE has more hooks than than velcro, and if just one of them is misused or misfunctions, asta la windows, baby.

    Netscape has about 20, and still can't get it right.

    And that does not even count having the program work right in the first place.

    Complex? hell yes. Stupid? oh yeah.

  62. Take the box back? by ricOS/2 · · Score: 1
    As one tester points out, the most serious criticism a customer can make is to "actually return the box. And that almost never happens."

    For this to happen, stores need to start ACCEPTING returns! Most stores around here say that music and software cannot be returned except for exchanges for the same title. This is to combat piracy... It also keeps you from returning bad software! They just won't take it back!

  63. Blame to go around by SlydeRule · · Score: 1
    While much of the blame for crummy software can be placed on management priorities, there is plenty of blame to go around. Programmers bear responsibility on at least two counts:

    First, for not having the guts to say "no". But it does seem rather pointless giving up one's job, knowing that there's always some fresh-faced kid straight out of college who'll agree to do whatever the boss says.

    Something that we can control, though, is that we programmers (in general) hate doing quality-oriented stuff. Analysis, design, documentation, coding with clear (long) routine names and variable names, putting in all of the right error checks, etc. The important thing to us is minimal keystrokes and maximal cool. Perl poetry and C++ hackery are exalted, while quality-oriented languages like Eiffel are snubbed because they're not kewl to code in.

    Perhaps we should clean our own houses first?

    1. Re:Blame to go around by lenski · · Score: 1
      1. Just say no. Sure. Try it sometime: I did that once. Our group got fired.

      There are some exceedingly powerful incentives to accede to management directives.

      2. Choose a language that encourages quality work. Try that too.

      Question for the community: When was the last time management allowed you to choose your language of implementation? Particularly when you were maintaining an existing valuable codebase?

      It isn't a question of kewlness, it's a question of the value of rewriting multimillion-line systems almost from scratch while the market is racing past your company.

      Time to think about reality...

  64. I'll never stop laughing again.. by Kitsune+Sushi · · Score: 2

    And I owe it all to you!

    If you honestly thought that I meant that the entire bulk of Windows was compiled from a single source file, I don't think you have any right whatsoever to call anyone ignorant.. except, perhaps, for yourself.

    Anyway, I'd say something more useful, but you're obviously trying to craft a troll. I kind of got the feeling right off the bat, but I thought this post was a complete riot. Sorry, you'll have to do better than that to sucker me in. ;)

    --

    ~ Kish

    1. Re:I'll never stop laughing again.. by TummyX · · Score: 1

      Well duh.

      What you were doing was saying windows wasn't modularized. Was it so extreme to take of the point of view that you thought windows was one source file. After all, how do you know it isn't? Do you work for microsoft? Microsoft as 'we all know' are crappy programmers no?

    2. Re:I'll never stop laughing again.. by HeghmoH · · Score: 1

      I dunno, somehow having the entire operating system expressed as (assuming 40 characters per line) a single, 1.16 gigabyte text file seems a LITTLE BIT absurd.

      --
      Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
    3. Re:I'll never stop laughing again.. by Anonymous Coward · · Score: 0
      After all, how do you know it isn't? Do you work for microsoft?

      You obviously do. Why don't you tell us whether it is or not?

  65. Moore's Law by miracle69 · · Score: 1

    I've thought about this quite a bit, and I almost want it to be an "Ask Slashdot" question, but here is as good a forum as anywhere else.

    Could the rapid proliferation of shitty software be related to Moore's Law?

    Are software developers developing new software/features without optimizing current code just so they can state that it works on the latest processor?

    I think some are. Take Windows. It gets bigger and bigger with no real significant improvements. 3.1 on my 486-66 (back in the day) seems to have run as quick as 95 did on a Pentium 100, which seems to have run as quick as 98 did on a Pentium 200. But try running 98 on that 486-66, and the desire to pump bullets into the machine is damn near irresistable.

    Next, Take Linux. It gets bigger and bigger with significant improvements. It runs on my 486-66, my Pentiums, and My First SMP Machine [TM]. And the differences in X are appreciable, but I can run X on the 486-66 and not want to shoot the machine.

    I compare my experiences, and I can't help but wonder if Moore's law has contributed to crappy software. Linux is used by many, and optimized by many - to run on my SMP machine and my 486-66. 98 isn't, and, as a result, its flaws are many and become glaringly obvious as the hardware you use becomes older and older.

    --
    Linux - Because Mommy taught me to Share.
    1. Re:Moore's Law by Anonymous Coward · · Score: 0

      That's Squirtle's law: the speed of software halves every two years.

  66. Problems rendered by your comments by rtaylor · · Score: 2

    The opensource movement doesn't have enough control to be fully recognized by the article. Aside from that, OpenSource software is STILL plagged by these problems.

    Redhat can't go a week without having a security problem found. It rescently IPO'd. I only expect this to get worse.

    Both KDE and Gnome have some serious problems. Partially due to the small number of developers on the projects trying to do a big job.

    The Linux kernel (ugh..) also has some very serious problems. Albeit not as bad as the more popular windows, not as good as it could be.

    In my conclusion, GPLing doesn't make for a better product. Just makes people feel better about themselves. As linux becomes more commercialized, these problems will only get worse.

    I still fully believe that the best Linux kernel & library set was around the 1.2 kernel releases. I don't see this changing for quite a while.

    OS/2 was quick at fixing bugs, but it shipped with alot of them. Microsoft obviously has bugs (notice how it performs better if everything on the machine is M$ though?). Macs die too.. Don't forget that. Linux takes a little longer to kill, but just give it a load over about 25 and watch it plummit.

    BeOS will be my next try... I hear its great for multimedia stuff, but not to expect much in the office suit department.

    Yes, yes... Linux is still more stable than some of the others. I just wish the hardware that was reported as being supported, was truely (stably) supported. SBLive anyone?

    --
    Rod Taylor
    1. Re:Problems rendered by your comments by chromatic · · Score: 2


      Redhat can't go a week without having a security problem found. It rescently IPO'd. I only expect this to get worse.

      So... how many of the security problems are in programs written by RedHat programmers?

      Believing that software gets worse when a company gets public investors is as naive as believing that software is buggy because consumers are computer-ignorant and want lots and lots of nifty features.

      --
      QDMerge 0.21!

    2. Re:Problems rendered by your comments by pb · · Score: 1

      Oh god, if you're going to gripe about the linux kernel, don't gripe about driver support. Many options are marked as unstable, and even some pieces of hardware don't function as advertised with different hardware.

      I have a TV card that works badly in Linux. Why? Well, for one thing, I'm not using a video card that's supported. For another, there's a DGA bug in xawtv. But the linux kernel is doing a fine job.

      If you want stable driver support, go use an older version of Linux, FreeBSD, a Macintosh, or any vendor-supported machine. Even buy a Linux machine from a Linux vendor. I'm sure they take care of supported hardware for you.

      ...and if you want better driver support, contribute! Write code, bug a vendor, sign an NDA if you have to, or even submit a patch that marks the driver as *unstable* in the kernel. Whatever. But whining doesn't lead to better driver support.

      And for the record, I've never managed to crash linux due to high load. I've gotten it to be generally slow and not terribly usable, but I've never gotten it to crash like that.

      --
      pb Reply or e-mail; don't vaguely moderate.
    3. Re:Problems rendered by your comments by Anonymous Coward · · Score: 0

      Believing that software gets worse when a company gets public investors is as naive as believing that software is buggy because consumers are computer-ignorant and want lots and lots of nifty features.

      But they are, and they do! This is an example of market forces at work.

      RH6 is prettier and supports more hardware than prvious versions, but it shipped with a quite a few glaringly obvious UI bugs; my favourites:

      - a version of Netscape that crashes if you load *any* applet

      - an Enlightenment version that doesn't raise windows if you click on their toolbar buttons to focus them

      - a GUI (Gnome) that can be hard-locked by apps and take the keyboard with it, forcing an unsafe reboot if you don't have another machine handy to telnet in from

    4. Re:Problems rendered by your comments by chromatic · · Score: 2


      RedHat 6 came out months before RedHat went public.

      Besides that, RedHat did not write Netscape, so it is unfair to blame them for Netscape's bugginess (it hardly seems fair to blame Netscape for it -- I think the definition of a web browser has to include random crashes anymore).

      On this RH 6 box right here, Enlightenment is working just fine, with regard to focus. I don't use Gnome, so I won't comment on that, except to say that my X used to do the same thing, until I realized that the stupid onboard video chipset needed a tweak in my XF86Config.

      Yes, some companies care more about the bottom line than quality software. That doesn't mean that all companies do.

      RedHat may ship buggy stuff now and then, just like most everyone else, but until I see otherwise, I'm convinced they're trying to do the Right Thing.

      --
      QDMerge 0.21!

  67. Re:Mythical Man Month: The bazaar model by Le+douanier · · Score: 1



    Quote from CatB about Brooks law (in The Mythical Man Month):"adding developers to a late
    software project makes it later."

    Another quote "But if Brooks's Law were the whole picture, Linux would be impossible."

    That is why I love the bazaar model and the Free Software philosophy. You can check that tyou are using good software and fix it/improve it if this is not the case.

    Why add a feature that would add more bug. If this feature is usefull this will be in the next release, if it is not usefull enough nobody will care.

    --
    "The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
  68. features vs fixes by josepha48 · · Score: 1

    It is simple really. Features vs Fixes. With every release of software companies feel compelled to release new features in there software.

    Look at Microsoft. (No I am not bashing them). There window 95 OS for instance, had a new look compared to teh windows 3.1 look. It was 32 bit as opposed to 16, and there were man new features in it. People loved all the new features, yet there were many new bugs. Plug and play for example. This was a new feature. In theory it was good, but in practice it became plug and prey. Prey the OS recognized your devices. Pray that there were not conflicts between devices either.

    There are problems even in the Linux system too. They add new features to a stable kernel and then bugs creap in. They do get fixed, but more features are added in at the same time.

    Most people see a peice of software and they suddenly seem to have visions of what this could be. They take the package and then add to it. They add more and more, until they have hacked the system to a state where it is no longer a good implementation it is just a querky working peice of software. In some cases they rewrite parts of the code (this happens in the Linux kernel). Thsi is good. It keeps the features and allows for better implementation of the system. However in other cases the code has been thru so many hands that it is almost impossible to rewrite in the time that corporations allot.

    This is the difference. In the corporate world you have clients, deadlinesm and deliverables. This is pressure to release a peice of software, even if it has bugs. The bug fixes are hacks, to make things work.

    Personally I am not into software that has that many features, after all how many features in Word does the average user use? I use either a simple text editor or HTML editor. Other than that I only use word when others need to send me word docs. Or when I have to do a design doc for work. Even then I could get away with an HTML editor if they'd let me.

    --

    Only 'flamers' flame!

  69. Don't bother reading this.. It's a flame. ;) by Kitsune+Sushi · · Score: 1

    This is a classic example of why I have a hard threshold of 1. It does have relavence, it was a quote from the fscking article, you twit. And secondly, if you were smart, you'd realize that it didn't get moderated up. Once you have so much karma, your posts start off with more points (you can choose not to invoke these karmic powers, but I'm often lazy). I thought some AC might have answered my question. Instead, I'm once again reminded at why these people are too stupid to think up a user name and a password, then log in. ;)

    --

    ~ Kish

    1. Re:Don't bother reading this.. It's a flame. ;) by Anonymous Coward · · Score: 0


      I've seen some other posts of yours, and you
      are truly an asshole.

      I was not aware of this "slashdot karma", but
      how you got it is beyond me.

  70. Capitalism ruins everything by anonymous+cowerd · · Score: 2

    Compare Microsoft's resources with those of the Linux hackers: M$ has a thousand times more money, M$ has access to every piece of hardware on the market plus early access to all the new designs still under development, for every Linux hacker there are ten M$ programmers and two dozen support staff. According to traditional capitalist theory, a programmer at M$, with his potential to become a millionaire from stock options, should be vastly more motivated than a Linux hacker working for free.

    So why doesn't Linux suck half as bad as those products described in that article? Could it be that capitalism ruins everything? When a Linux hacker, or even a tenth-rate amateur hacker like me, produces a piece of code, we do it because we want a working program. When M$ does whatever you'd call what it does, it couldn't care less about how well the program itself works; the one and only consideration is, "how much money will this thing bring us?"

    And it isn't just software. It's the pesticide-laden, hormone-laced food you eat and the polluted air you breathe; it's the way you waste five or ten hours of your lives each week sitting in traffic jams, because "the system" requires everyone to be at their work station at 8:00 AM sharp; and when you drag yourself home from work, it's the idiocy you're offered as "entertainment" on TV. See, food, water and air don't count for anything; the hours of your life are valueless; art is nothing but another commodity - the only fundamentally important thing, the one criterion by which all human effort is planned and judged in this society, is money, money, money.

    The lust for money, accurately described in the Gospel as "the root of all evil," dictates every facet of American life, including even immaterial things like religion - nowadays, seemingly, a wholly owned subsidiary of the more pro-business of America's two pro-business political parties. Life in the U.S.A. is primarily controlled by the very rich and by corporations, and every day that goes by sees the corporate stranglehold over your life and mine, even down to the most insanely minute detail (e.g. what files do you have on your hard drive? the NSA has got to know! what did you smoke last weekend? piss in this cup so the boss man can check!) only tighten.

    Karl Marx spelled out a potential solution a century and a half ago. But ninety percent of the people reading this post, having had their brains marinated in anti-socialist, pro-capitalist propaganda their whole lives, will be so spooked by the recital of that dread name, that they won't ever bother to even consider the possibilities of a different form of government than the absolute, unlimited reign of capital.

    No! instead of that, we all must have faith in the all-beneficent "invisible hand" of capital! Everything will come out for the best in the end! Sure it will.

    Yours WDK - WKiernan@concentric.net

    1. Re:Capitalism ruins everything by scrytch · · Score: 3

      Why yes, just look at the thriving Chinese, North Korean, and Cuban software outfits. Oh and you can spare me the claptrap about how those aren't "true" communism/socialism/whatever, because central control in the name of "the people" has corrupted and failed every last time.

      Shove it.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    2. Re:Capitalism ruins everything by Anonymous Coward · · Score: 0

      Hmm..it ruins a lot of things but not everything. In regards to the last comment Socialism doesn't have to be nationally cetralised to work. I'd like to see how our planet would cope if every Chinese, Indian and African owned a car. Or had a McDonalds on every street corner and had sophisticated marketing programs aimed at bringing forth rapid cultural change throughout all aspects of these less developed societies, with the aim of bringing them in line with what we believe "is the right way" Would the economy crash first or the world's ecology( ..then the world economoy)? Hey I might be wrong, it may be a raving success :-). Somehow I don't feel it would be. Then why do we preach how great our system is, when it doesn't strive for any ideal. When we program are we not trying to achieve the best program we can. Strive for excellence in what we do. Capitalism does not strive for the majority of the people, that's its great flaw. And it doesn't. We are stuck with it because we don't really know any other better way. We can learn a lot from socialism to improve what we've got now. Sharing code is quite a socialistic trait. And a good counter balance to commercial s/w (which has its place as well). Jason Ljubas (maybe we can form the quasi-capitalistic-socialistic s/w foundation)

    3. Re:Capitalism ruins everything by Anonymous Coward · · Score: 0
      I'd like to see how our planet would cope if every Chinese, Indian and African owned a car. Or had a McDonalds on every street corner and had sophisticated marketing programs aimed at bringing forth rapid cultural change throughout all aspects of these less developed societies, with the aim of bringing them in line with what we believe "is the right way"
      Be careful what you wish for. The latter has been in progress most of the last two decades, and is approaching the point where the former will be a reality within the next two.

      I wouldn't start investing in any beach property...

    4. Re:Capitalism ruins everything by fidel · · Score: 1

      A point to be made is that with capitalism, is
      that the worth of everything is in terms of money.
      For instance, everyone knows how to run transport
      systems at a profit, just run only the most popular services.

      Of course, what happens to the person who can't
      get home at 11pm? How do you measure that cost
      in money terms? The driver's wages, and the cost
      of fuel are easy.



  71. A bit misguided by Anonymous Coward · · Score: 1

    Some things to think about: 1. The poster and /. reveal a bias by their constant use of "commercial" in their editorializing. This problem is hardly limited to commercial softare; in fact, to be objective, it's absurd to suggest that open-source software is even as reliable as commercial software in general. In the last few years of using Linux, I'd say that less than half of the programs I've tried compiled or installed correctly, let alone ran reliably. This experience is synchronized with the general perception that open-source software is a bunch of hacked-together ports, all relying upon incompatible libraries, and that one is lucky to get *anything* working. Let's take off our open-source blinders and be objective. We are nowhere near being the kings of reliability. 2. This piece is pitting "honest" and "conscientious" programmers against "bottom line-driven" and "greedy" management. I would say, as a software engineer who reads the industry publications, that this is an inaccurate stereotype of management, and so much anti-management propaganda. Most of management is non technical and caught up in the industry mantras of "software quality" and "quality management". The author comes off sounded more like a disgruntled anti-management programmer than an objective reporter. In my experience, management has been very concerned about quality and the firm's reputation for quality. Deadlines are often brutal to all parties concerned, but are seldom (at least from my reading) quite as one-sided as the author presents them. 3. "Software is an industry none dare question." This is so absurd that I hesitate to critique it. Most users and developers regard the software industry with a degree of disdain unseen in other industries. Remember, both users and software developers have to use software products to meet their deadlines, and the central thesis of the author's article is that software is riddled with bugs. Computers, software, and the like all receive raised eyebrows from nontechnical folks, and technical folks are sick of system crashes (as a Win32 developer, I must reboot my Win 95 system an average of 3-4 times each day due to lockups). The author's claim is patently ridiculous. The only thing he says that's even more absurd is that software hasn't increased our productivity (because it crashes periodically, and then there's down time). The net increase in productivity is obviously very high. One wonders: did the author type his article on a typewriter and mail it into a publisher? No. He used a word-processor because he wants to be able to block delete, cut and paste, and use custom layouts--things that greatly increase his productivity. Regardless of what he says, he obviously believes something quite different. Also, the communications aspect he mentioned on the previous page obviates his claim about productivity. Software-based communications has revolutionized the way business takes place because it allows us to do much, much more in much, much less time. It's not perfect, but it's amazingly better than doing everything in Mayberry, where you'd need a human operator (can't use any software, like the modern telephone industry) to connect your calls, or just drive over there (in a car that doesn't use a software program to read its digital chipset).... 4. "Software is badly made. More than that, it is often horribly made. It is developed with the sort of irresponsible abandon that would be unconscionable if it were applied to bridge-building, car-making and possibly even plumbing." Actually software is used in hospital life-support systems, NASA and aerospace industry guidance systems. Amazing that problems are so rare that they make headline news when one occurs (e.g., the Mars lander). Besides the Y2K problem, users of large-scale proprietary softare-based systems have been very silent about how their software was developed with almost criminal abandon. It's just not the case. Desktop applications tend to be mostly usable, but crash occasionally because their publishers were driven to focus on features, and some of the features were not adequately tested, even by well-meaning software quality management protocols. They're not awful. They need improvement. 'nuff said. I don't have the time to respond to every point. My only hope is that this community, which got to be where it is by being a bunch of independent thinkers, hasn't been here so long that it has lost its ability to think critically, and that we have become lazy in accepting pro-open source propaganda as easily as the rest of the world accepts M$'s propaganda.

    1. Re:A bit misguided by Anonymous Coward · · Score: 0

      Well said.

  72. what's more is... by / · · Score: 1

    When companies like Adobe and Microsoft have software behemoths that so completely dominate their sectors that they exclude most other competition, the last (and perhaps greatest) source of competition the company has is itself; in order to remain profitable from year to year, new products must be sold to replace the ones currently installed. The problem is, most of the installed software is good enough for the current task (which is why it was bought and installed in the first place).

    Enter the bugs. The foremost reason for why people replace their current versions with new ones is that the new ones promise to fix the bugs of the old ones. This means that if the company fixes all the bugs in its product before releasing it, it will have nothing to fix for the next version and it'll be forced to make some real (and costly) innovations. Of course, the new version will introduce its own new bugs, but that fact won't be apparent until after the product has been paid for.

    Asking for there not to be bugs is like asking MS not to make the next version of MSWord use a new and incompatible file format so as to force users to upgrade and spend more money.

    --
    "If one is really a superior person, the fact is likely to leak out without too much assistance" -- John Andrew Holmes
  73. Ask The "Perfect Expert" by Anonymous Coward · · Score: 0

    Y'know, that thing in Corel's WP7 and later, it let's you ask plain-english questions and get bacvk answers without A) Insulting your intelligence, B) sucking down your CPU time or C) sucking down your RAM

  74. Re:Mythical Man Month: The bazaar model by barlowg · · Score: 2
    "Brooks's Law" as you call it is not a definite relationship, as you seem to believe. Rather, Brooks shows that as you add people to a project, communication problems tend to overwhelm the project. In another work by Brooks, No Silver Bullet, Brooks argues that no "silver bullet" (technological advance) had yet been produced that would advance software development by an order of magnitude. I think that we are now seeing this silver bullet, the internet. It allows for communication between vast numbers of people across a wide area.

    The principles of The Mythical Man-Month also apply to open source, however. Obviously as you add people to an open source project, the per person productivity decreases. (Which is much of what Brooks says in MMM) The reason open source projects are successful are good organizational structures, which Brooks emphasized.
    --
    Gregory J. Barlow
    fight bloat. use blackbox.

    --
    Gregory J. Barlow
    fight bloat. use blackbox.
  75. Free software isn't affected? by VAXman · · Score: 4

    Anybody who read The Cathedral and Bazaar (most people here, I'm assuming), know that the entire PREMISE of the free software industry is "release early, release often" -- which means that free software uses the attitude described in this article, only on steroids.

    I find it scary that people think this is limited to commercial software. The article mentions that there are 5 patches for NT 4.0 -- there are 12 for the Linux 2.2 kernel, and that is just for the kernel (in many cases, the packages distributed on top of that have patches also, there are probably thousands of patches and updates collectively to every packages distributed in Red Hat 6.0, for example), AND Linux 2.2 has been around for less than 1/4 as long as Windows NT 4.0.

    Feee software usually doesn't have formal testing either. Instead of a dedicated testing team like most commercial software has, the testing philosophy is to release it and for users to test it. Not good preventive treatment obviously. Nobody is going to test if the new SCSI driver is going to wipe off your hard drive - it's left for the beta testers to find this.

    I can think of five or six showtopper bugs off the top of my head in Red Hat 6.0 that would have prevented the release from cooming close to shipping out the door had it been a serious commercial system, but it was released anyways.

    I have also looked at the source code for many free projects such as GCC and GIMP and noticed that the code quality was quite low. For example, malloc() calls were usually unchecked (especially in GIMP). I have worked on commercial projects before, and checking malloc() is rule #1 -- if you happen to run out of memory while using GIMP, it'll blow up, where as commercial systems will simply fail to complete the current operations. If such a high profile package is of such low code quality, I expect the lesser profile packages are considerably more buggy.


    1. Re:Free software isn't affected? by Nexus7 · · Score: 1

      Windows is 5 patches to what? It still duplicates the start bar all over my screen when text scrolls in an xterm. Still moves start bar icons around for fun. At least Linux's patches do something. They're tested by a cast of thousands, so they generally don't break much else. People can read the source, and see what is affected.

      5 Windows patches != 5 Linux patches.

    2. Re:Free software isn't affected? by Adrian+Harvey · · Score: 1

      Firstly, there are not 5 patches to Windows NT, there are 5 Service Packs. These are a combination of a large number of smaller fixes rolled togeather. There are a large number of "Hot fixes" also, which usually just fix one, or a number of smaller bugs, and are later rolled into the next service pack.

      Secondly, Free software certianly does have a testing phsae. This is what all the "unstable" release versions are all about. With free software however you are free to disregard the warnings if you wish.

    3. Re:Free software isn't affected? by VAXman · · Score: 1

      Firstly, there are not 5 patches to Windows NT, there are 5 Service Packs. These are a combination of a large number of smaller fixes rolled togeather. There are a large number of "Hot fixes" also, which usually just fix one, or a number of smaller bugs, and are later rolled into the next service pack.

      Yeah, but all of the Linux patches all fix more than one thing also.

      Secondly, Free software certianly does have a testing phsae. This is what all the "unstable" release versions are all about. With free software however you are free to disregard the warnings if you wish.

      I understand this but my point was, it has no FORMAL test methodology. The methodology is "throw it out to the beta testers", rather than first testing it.

    4. Re:Free software isn't affected? by RelliK · · Score: 1
      Exactly! Free Software has no testing cycle and the code quality is very poor. That is why commerical software such as Windows is so much more stable then Linux... errr... wait...

      I can think of five or six showtopper bugs off the top of my head in Red Hat 6.0 that would have prevented the release from cooming close to shipping out the door had it been a serious commercial system, but it was released anyways.

      I can think of five or six showtopper bugs off the top of my head in Windows 98 that would have prevented the release from cooming close to shipping out the door had it been a serious commercial system, but it was released anyways.

      --
      ___
      If you think big enough, you'll never have to do it.
    5. Re:Free software isn't affected? by Adrian+Harvey · · Score: 1

      Yeah, but all of the Linux patches all fix more than one thing also.

      I understood that, but I was just trying to point out that counting patches was neither a measure of the number of bugs in the original product, nor of the software's inherent quality (or lack of such)

      I understand this but my point was, it has no FORMAL test methodology. The methodology is "throw it out to the beta testers", rather than first testing it.

      Ok, I see what you meant. I thought you were implying that just because test products were freely available, they weren't in test.

      I however, don't think that a formal pre-release test would necessarally improve things, or even make sense for many projects. Most free projects these days are completely open development model, and there is no stage iduring which it is not "thrown out to the testers". Some form of formal testing as a part of the unstable phase might be useful in some cases though (especally before the transition to a "stable" version).

    6. Re:Free software isn't affected? by Ranger+Rick · · Score: 1

      > Anybody who read The Cathedral and Bazaar (most
      > people here, I'm assuming), know that the entire
      > PREMISE of the free software industry is > "release early, release often" -- which means
      > that free software uses the attitude described
      > in this article, only on steroids.

      The difference is that free software (in most cases) releases early, but they don't call it a 1.0 release! The premise of "release early, release often" is a continuous alpha/beta cycle, *not* "every release is production code".

      --

      WWJD? JWRTFM!!!

    7. Re:Free software isn't affected? by Anonymous Coward · · Score: 0

      I understand this but my point was, it has no FORMAL test methodology. The methodology is "throw it out to the beta testers", rather than first testing it.

      That's how free softwares are suppose to work, to open up the code so everyone can test and fix it. Why do you want to test it first when the whole idea is to let everyone test it together?

    8. Re:Free software isn't affected? by Lauri+Alanko · · Score: 1
      I have also looked at the source code for many free projects such as GCC and GIMP and noticed that the code quality was quite low. For example, malloc() calls were usually unchecked (especially in GIMP). I have worked on commercial projects before, and checking malloc() is rule #1 -- if you happen to run out of memory while using GIMP, it'll blow up, where as commercial systems will simply fail to complete the current operations. If such a high profile package is of such low code quality, I expect the lesser profile packages are considerably more buggy.

      Though it can be argued that the code quality in GIMP is low in places, I would just like to note that GIMP doesn't use vanilla malloc at all (well, almost), but the glib wrapper g_malloc. It doesn't need to be checked, because if the allocation fails, an error handler is automatically invoked. Thus, if the g_malloc call returns, it has succeeded.

      Some plug-ins seem to use plain malloc, though. They should probably be fixed.

      Lauri Alanko
      nether@gimp.org

    9. Re:Free software isn't affected? by Omnifarious · · Score: 1

      The difference here is that most Open Source projects are open about their bugs, and make an honest effort to fix them.

      As for the malloc check problem... I never check my mallocs. I tend to try to arrange it so the program will segfault if a malloc ever returns 0. The problem is that out-of-memory errors are really hard to deal with properly, and I doubt that it's worth the effort and code bloat to do so. One nice thing about C++ (and Java) is that new throws an exception, which makes out-of-memory errors much easier to deal with. :-)

    10. Re:Free software isn't affected? by Anonymous Coward · · Score: 0

      Oh joy. I hope you are cursed to use a word processor that you wrote with that philosophy. So that you can see the wisdom of it when your Great American Novel crashes unsaved because there wasn't enough memory to run spell-check.

    11. Re:Free software isn't affected? by JordanH · · Score: 2

      Anybody who read The Cathedral and Bazaar (most people here, I'm assuming), know that the entire PREMISE of the free software industry is "release early, release often" -- which means that free software uses the attitude described in this article, only on steroids.

      Anyone who has read The Cathedral and The Bazaar will recognize that this apparent contradiction, "How does quality, useful software come from this anarchic-no-formal-spec/testing?" is at the heart of the whole essay.

      I don't see that much similarity with commercial software and free software releases. Sure, the philosophy is "release early, release often" with free software, but there's absolutely no pressure to release before you feel it's ready.

      Feee (sic. Freudian slip? - JordanH) software usually doesn't have formal testing either. Instead of a dedicated testing team like most commercial software has, the testing philosophy is to release it and for users to test it. Not good preventive treatment obviously. Nobody is going to test if the new SCSI driver is going to wipe off your hard drive - it's left for the beta testers to find this.

      Well, the fact that this works at all may well be an indication that dedicated testing teams are overrated. With Open Source software, if you have a release, you can not only report a problem, but potentially, if you are so inclined, provide a fix. This is not the case with commercial software. In fact, in most commercial software shops, the testers are not even allowed to propose fixes. By eliminating this extra communication, things can be done rather more efficiently.

      Here's the Open Source scenario: A new kernel is released with a new SCSI driver. This is a development kernel. Literally thousands of potential developers download the kernel and get it running. Some small number reports that their drive was wiped. A few actually debug it and propose fixes. The kernel developers have an open discussion about this on the Internet and determine the best of the proposed fixes and it goes into the new development kernel. A patch is made available to fix the problem before the new development kernel is made available.

      Eventually, the development community blesses some set of code as a stable release. There's very little chance that a stable release will wipe anyone's hard drive. It, by some chance, it did wipe someone's hard drive, some set of qualified kernel developers would start to work on this isolated problem and come up with a patch, usually within a day.

      Here's the commercial scenario: A new release candidate comes out of development. The testers get ahold of it and exercise it with all of the SCSI cards/drives they have in the lab. It doesn't show any problems. It's released. A whole lot of people complain that their hard drives are wiped. The help desk people who receive the complaints first start to blame the customers for something stupid and tell them to reinstall. Customers reinstall and still have the same problem. Eventually, this is realized to be a problem, and the company's PR machine jumps into overdrive. Data is collected, but at arms length as much as possible. The company is afraid of liability so they admit nothing. Developers and testers duplicate the problem in the lab a fix is developed and a complete QA cycle is performed on the patched system (liability, you know). Weeks later, the customers get a patch.

      Now, MS has been using beta testers for years in much the way Open Source does, but with the considerable difference that Open Source testers are often able to provide solutions.

      We read in the article that QA testing is increasingly slipshod with commercial software. MS is big on the HUGE beta distribution so that they can get coverage of the many many combinations of software/hardware they need to test against. MS really HAS to do this as application programs on their OS's are known to bring the whole thing down. This is relatively rare on other OS's.

      As the article points out, the vendors attempt to explicitly exclude themselves from any liability if their system wipes your hard drive, so I'm not sure that I have much confidence that their software has been well tested either.

      I have also looked at the source code for many free projects such as GCC and GIMP and noticed that the code quality was quite low. For example, malloc() calls were usually unchecked (especially in GIMP). I have worked on commercial projects before, and checking malloc() is rule #1 -- if you happen to run out of memory while using GIMP, it'll blow up, where as commercial systems will simply fail to complete the current operations. If such a high profile package is of such low code quality, I expect the lesser profile packages are considerably more buggy.

      As others have pointed out, your analysis of GIMP is not entirely correct (it mostly uses a wrapper malloc()), but you have inadvertently brought up an important point here. Software quality experts have recognized that Code Reviews are the single most cost effective thing you can do to improve software quality. Many people are suprised that code reviews, on average, turn up more defects than do formal testing. Open Source is like one huge rolling Code Review, with the Internet discussion forums being the communication media. You have now weighed in on quality issues in GIMP and it will be reviewed. There's a good possibility that someone will fix it if you have a valid point.

      Contrast this process with commercial software where, in my experience, you almost never see review of code that has been formally tested and released. Usually, there's a lack of political will to make changes to code that's been "working" in previous releases to future releases. Check the CVS histories of some of the bigger Open Source projects and you'll see a lot of ongoing continual refinement. I like to believe that Open Source product quality is getting increasingly better, while most commercial software I've been involved with has gotten worse over time.

      Also, I think you have worked in rather good commercial shops with real standards (always check malloc() return, for example). I was just reading today that the MS Office products don't "like" to work with documents on floppy drives as they tend to create temporary files on the same source that the document comes from and they don't gracefully handle out of disk space problems gracefully. As the article points out, standards are falling rapidly in the industry as a whole.

      I guess the proof of the pudding is in the eating. Linux and FreeBSD now have a reputation for stability and quality. Maybe that reputation is undeserved, I don't know. If the software is of such low quality that it doesn't meet your stringent standards, then don't use it.

    12. Re:Free software isn't affected? by Anonymous Coward · · Score: 0

      I like to believe that Open Source product quality is getting increasingly better, while most commercial software I've been involved with has gotten worse over time.

      Bit rot??

    13. Re:Free software isn't affected? by Anonymous Coward · · Score: 0

      Java does throw OutOf MemoryError, which isn't quite an exception (it doesn't have to be declared) but can be treated the same way.

  76. But can you pay your employees? by Anonymous Coward · · Score: 0

    The projects may end up better if they have more time but the company could also lose revenue and not be able to pay their employees. Let's say you put quality first but your competitors don't and they out market you with glitzy hype and frequent buggy releases, well do you give in and follow their lead or do you stress quality? Will the customers care? If we use Windows as an example then no the customers don't give a damn about quality and will put up with a lot of bugs just to have what they have been told to perceive as the latest and greatest. At this time the public thinks "bigger faster better more" and not "stable" so the software companies have given them what they wanted. It is the fault of consumers for putting up with it in the first place.

    1. Re:But can you pay your employees? by Anonymous Coward · · Score: 1
      Customers do grumble, but they don't
      • lobby for liability from vendors
      • demand longer product reviews that focus on stability
      • refuse to buy crap
      so - surprise! - they'll keep getting crap so long as there are big incentives for giving it to them.
  77. The Road to Software Hell by rlp · · Score: 5

    Want to produce really bad software.
    It's easy if you follow just a few
    simple rules:

    1) Produce no documents - avoid creating
    requirements documents, design specs,
    etc. Just jump right into coding.

    2) If it's a large project, divide the
    work into several different development
    groups, and make sure they don't
    communicate. If they can be
    geographically separated, so much the
    better.

    3) Don't hire any experienced
    programmers, or if you make the mistake
    of hiring them, don't listen to them.

    4) Make sure that managers create
    impossible schedules. Nothing produces
    bugs like highly caffeinated over-worked
    sleep deprived programmers.

    5) Change requirements (unwritten of
    course) frequently. Be sure and add
    plenty of new features at the last
    minute.

    6) Be absolutely certain, that you don't
    learn any lessons from industry history.
    Don't read Brooks, Deming, Humphrey, or
    any other Software Engineering or
    Quality literature. And for God sake's,
    DON'T look at 'http://www.sei.cmu.edu/'!

    7) Avoid any and all code inspections.

    8) Avoid creating any sort of
    development processes, or if you do,
    make them so pointless and burdensome,
    that they are self defeating.

    9) Do believe that you can test quality
    into a product. But be sure to compress
    the testing schedule just in case.

    10) Three words - "Ship it anyway".

    --
    [Insert pithy quote here]
    1. Re:The Road to Software Hell by Anonymous Coward · · Score: 0

      11) Rotate people through the development team. Move the original developers on to a new, higher-priority project. Pick up the slack with contractors and new hires.

    2. Re:The Road to Software Hell by meatcycle · · Score: 1

      You missed one:

      XX) If the programmers tell you they can't get a 3 month project in 3 weeks, and that they need more time, don't listen. Just throw more programmers at the project

  78. It's all our fault, isn't it? by wilkinsm · · Score: 3

    *Flame suit on*

    Yes.

    Question: When was the last time you returned an high tech item because it was flakey?

    For the average Joe, I'd venture that the occurance of these events are far and few between. One reason is with complex items it's harder to determined exactly what the problem is, or who is at fault. Consumers are becoming lazy in their shopping skills. If I buy a knife set with a broken blade, it's easier for me to put blame on the manufacter than when I buy a piece of software. I know a broken blade when I see it, but do I recognize a broke program? How can I be sure it's not the hardware's fault or the operating systems fault?

    Another Question: When was the last time you bought something new that had a users manual with a wiring scematic in the back? Manufactuers don't even bother anymore. They know that most of us are too clueless these days to figure them out anyway.

    So the software companies can get lax behind their lawyers and their propertery magic while the world around them falls apart.

    1. Re:It's all our fault, isn't it? by remande · · Score: 2
      Frankly, when I see a Windows app crash, I can't tell whether it is the fault of the app or the underlying OS. And if it's the latter, what chance do I have of getting that fixed?

      I tried Windows programming back in the mid-90s (I am a dyed-in-the-wool Unix programmer). I gave up because, unlike Unix, I couldn't tell my bugs from Bill's bugs. And if you don't have confidence that your code has your bug, how can you reasonably debug?

      In personal computing, this causes a lot of finger-pointing. I can't take responsibility for any Windows software I ship because I can't guarantee you that my code won't break Windows. I can pretty much guarantee that my code won't break Unix or Linux. If my code does break Unix, I can show the vendor what I did and show them a Unix bug--Unix is not supposed to allow mere apps to break it. If my code breaks Linux, I can hire someone to see how and fix Linux!

      It's this sort of thing that prevents customers from expecting their software to work first time, every time. Even the most clueless of newbies realize that Windows is not a rock-solid platform.

      --

      --The basis of all love is respect

  79. Economic theories don't break sofware, people do. by Anonymous Coward · · Score: 1

    I don't think it's capitalism as much to blame simply ill informed people making bad decisions. As a very senior QA Engineer here in the valley, I have seen it everywhere. Most business are run by people who's only knowledge of current technology is the latest buzz words. They are obsessed with playing with MS Project instead of ensure that something does what it says it's supposed to do. I guess if you are to blame anything it's fear of "not shipping at the end of the quarter" and then not being able to explain to some board of directorys why they fucked up. So instead of making something that can make everyone proud at a company, it's ALWAYS about covering shit up that is only mildly difficult. But that's human nature everywhere. I also know of some really crappy is comming from Australia, Canada, and England. So I don't think America has cornered the market on greedy businessmen or stupid programmers.

    Oh yes, and since you love the NSA so much, I understand they have recently procured some encryption software created in AUSTRALIA, that isn't y2k compliant.

  80. Bugnet.com by whoosp · · Score: 1

    I work in the software industry and I've found bugnet.com to be a very useful site when discussing things such as software quality and bugs.

    This article is related to this topic, it talks about some people's experiences with the software industry's attitude towards fixing bugs.

  81. Oh, what a crock of SHIT! by BOredAtWork · · Score: 1
    Come on, buddy. Snap back to reallity, will ya?

    I don't claim to be an expert in political science, or much of anything else, but I've read more on it than probably 95% of the population has, and I'm minoring in it at school. The basic, fundamental TRUTH to politics is that it's a means to an end; no matter the system, the FINAL END is always a happy functional society, where everyone has everything they could ever need. No poor, no war: that about sums it up.

    Socialism and Capitalism just take different (drastically different) approaches to achieving the SAME end. Socialism says, "start everyone off under government-enforced equallity, and eventually the need for government will disappear." This (falsely) assumes that everyone will be motivated to be a good citizen, and contribute to the good of the nation, rather than just themselves. Capitalism is 180 degrees different; it assumes people are inherintly selfish, and will better their OWN situation. As this happens, it boosts the economy, and betters the situation of others. Eventually, everyone's happy. This is also bullshit; however, because it's based on a true assumption (we're selfish bastards at heart), it's closer to fully functional, and it's the system that works best in practice.

    You can spew as much socialist crap as you want; but until you change the basic nature of man to be such that we seek to better the lives of OTHERS before our own, it's JUST NOT GOING TO WORK IN PRACTICE. Come on, free software developers are as selfish as Mother Teresa was. They want a working system, and want to do something they enjoy. She wanted to better her chances of getting in to Heaven, and wanted to feel good about herself. Every motivation for everything we DO is selfish, if you look deep enough. And until this changes, man just ain't gonna be able to function in a pure socialist society.

    --

    --

    --
    Just lurking, thanks!

    1. Re:Oh, what a crock of SHIT! by anonymous+cowerd · · Score: 1

      You say:

      >Socialism and Capitalism just take different (drastically different) approaches to achieving the SAME end.

      No, the purpose of capitalism is to increase the wealth of the owners of capital. Period. There's a silly, empty myth about the automatic beneficence of the "invisible hand," but capitalism has no inherent interest whatsoever in "a happy functioning society." If the interests of capitalists are served by peace and general prosperity, then they may strive for peace and prosperity; if it maximizes profit to inflict war or starvation on foreigners, or even on their own nation's general public (e.g., the Great Depression), then that's exactly what a capitalist government will do.

      Socialism, at least in theory, does intend to create that "happy functioning society." Naturally, the first thing a sensible person says is, "Yeah, sure, it intends to do that, but how well does it work out in practice? Look at Russia, North Korea, etc., etc."

      I've been down that road on Usenet before, and I type slowly and poorly enough to make it preferable to cut-n-paste:

      > > Communism and socialism have been given their shot, and left a legacy of economic failure and human misery for all to see.

      >Where? In Russia? Holy cow, the Russians have fucked up each and every form of government they have ever tried since the days of Genghis Khan. Russian monarchy was an unmitigated disaster for centuries, the shame of Europe. Post-monarchy Russian republicanism dissolved in chaos in a single year. On top of that, the Russian Communist Government were under assault from day one, by the various expeditionary forces which invaded Russia to back up the White Russian counter-revolution, by the embargo of the entire outside world, by a demonic Nazi invasion that killed off a third of the adult male population, and by a nuclear-armed Cold War which was deliberately intended to force them into bankruptcy - at the cost of risking a nuclear holocaust. Not to mention the attack from within - you have to be pretty crazy to describe Stalinism as a logical outcome of Marxist theory. Who murdered Trotsky?

      >Since the Russians are your exemplar, why don't you judge capitalism by the way the Russians practice it? In the few short years since the Russians have reverted to capitalism, despite the fact that we have called off the "Cold War" and poured billions of dollars into the new Russian Republic, the life expectancy of the average Russian has gone down by seven years! So much for the blessings of the "free market".

      >As far as socialism is concerned, the fact is that each and every one of the "developed countries" is run according to policies which are part of the programs of the Socialist Parties of the early 1900s. I'm talking about things like public schools and old-age pensions. Don't take my word for it, go look up the official platform of the American Socialist Party of 1928. According to Milton Friedman (!) that Socialist Party was "the most influential party in the history of this country", and "every one of its 1928 platform planks" was later enacted. So if you think the U.S.A. has been successful over the last seventy years, then you agree that socialism works.

      End quote. You say:

      >Eventually, everyone's happy.

      Keynes had it, more accurately: "Eventually everybody's dead."

      Finally you say:

      >Every motivation for everything we DO is selfish, if you look deep enough.

      Maybe so; the main point, then, is that socialism does represent the self-interest of the working class, that is about ninety percent of the American public, whereas capitalism directly serves only a tiny minority of rich capitalists. The feast is intended for the nobility and them alone, even if they do now and then toss us dogs a few table scraps.

      Yours WDK - WKiernan@concentric.net

    2. Re:Oh, what a crock of SHIT! by Garth+Vader · · Score: 1

      Communism and socialism have been given their shot, and left a legacy of economic failure and human misery for all to see.

      Another thing people forget when using the "Communism has been tried and failed" argument is the circumstances around it's attempt. Russia was backward compared to the other western nations before WW2 they advanced signifigantly before and during the war. After the war where they lost 20 million people and had their industrial base burnt to the ground, they were forced into a cold war with the Americans who lost 300k and none of their industrial base during the war. In order to keep the Americans from nuking the hell out of them Russia had to pump money into their military instead of into helping their people. This is where you get the infamous food lines everybody uses as evidence of the failure of Communism. I'd like to see the eastern seaboard burned to the ground and see how well the US recovers with a hostile power threatening them constantly.

    3. Re:Oh, what a crock of SHIT! by Anonymous Coward · · Score: 0
      Imagine someone stealing from you. That is done out of self-interest, and for that reason, is a Good Thing, right? [sarcasm]

      Or consider slavery. It has been practiced in an essentially capitalist fashion, with slaves being bought and sold -- and certainly not assigned to their masters by the government! In many places and times, there has been a market for slaves, and the market is always right [sarcasm].

  82. Good Things (tm) do exist! by laktar · · Score: 1

    This article tries to make it seem as if bad software is innevitable as it gets more complex. While most software is unstable crap that has lots of bad code (even Linux is full of bad code as much as I hate to admit it), software exists that has good, tight, stable code. Just think OpenBSD. Because the codebase is so tightly controled you have extremely good stable software that's really well coded. This is just making excuses. I don't upgrade a lot, because often things get worse rather than better. The problem is that most software gets to a stage where it does what I want and has plenty of features, but from there instead of just making the code tight and stable, most companies/developers start just haphazardly adding code and making the product worse. How about instead of this just trying to make the existing stuff better? I know it's not glamorous, but we need to do it.

    -Laktar, a.k.a. Nick Rosen, laktar.dyndns.org


    If I Ever Became An Evil Overlord:
    27. I will never build only one of anything important. All important systems
    will have redundant control panels and power supplies. For the same reason I
    will always carry at least two fully loaded weapons at all times.
    -- Peter's Evil Overlord List, http://www.eviloverlord.com/lists/overlord.html

  83. Liability vs Reliability by Baldrson · · Score: 2
    Reliability starts with liability.

    Back in the mid '70s, when I was at CERL, Sherwin Gooch came up to me on the verge of panic. He said something to the effect "We're dead. Software engineering is no longer a profession!"

    What rattled his cage was a court case in which the defendant, a software engineer, was held immune to the claims damage by his client. In the opinion, the judge in the case held that software engineering was not an engineering profession in the same class as civil engineers, and that therefore the programmer could not be held liable for damages resulting from his software.

    Sherwin was right. It has taken decades for the demand for highly skilled programmers to rebound from the lows they experienced in the late '70s when I was doing systems programming at Control Data Corporation's side of the PLATO project for about $20K/year.

  84. Shovelling crap by Anonymous Coward · · Score: 5
    I do have an account, I just don't think I want it to be trivial to work out who I work for. You'll see why.

    Pieces of this are true, the pressure builds up and management applies pressure, frequently in the wrong places.

    I work for a company that makes specialized software for select clients. We have a sales team which goes out and beats the bushes looking for customers. We rarely have more than about thirty active customers at any one time -- we do a large project, deliver it, and get out.

    My part of the project was babysitting the deliverable builds (the code builds that actually got shipped to the customer) and constructing the master images of the software the customer would receive. It would get handed off to the QA team, usually with the admonition "Important -- We must ship this today!"

    Usually with this sort of admonition, you knew in advance that the disc you'd just sent to QA would go to the customer no matter what (since the inertia in fixing any problem was a minimum of three hours, plus the minimum three hours it takes to install and set up our product and run the basic basic basic smoke tests). And frequently, the contents of the disc were crap.

    At one point, we listed (in earshot of the manager in charge of the project) the criteria for QA approval to ship. The candidate master must be round, gold, and have a hole in the middle. Someone observed that a maple dip doughnut could satisfy these requirements, and be just as functional in the hands of the customers. (More so, since they'd have something to eat while calling Customer Support.)

    The root cause of our problem was that we were too customer driven. There are direct competitors in our space for the same customers, and the sales team is under incredible pressure to make the sale and bring home the deal. If that means saying Yeah, we can do that when they don't have the first goddamn clue about how hard it might be to do that. The contracts team then rolls in and agrees to many things with regards to functional spec and deadlines, and they are under lots of pressure to close the deal. The technical people who try to estimate the complexity of the requirements are under a lot of pressure to make the estimates low -- still competing against the other companies in our space, you know!

    So these deals are impossible before the CEO (or whomever) finishes signing his name on the deal!

    And then QA gets the heat to sign off on this candidate which would better be used as a drinks coaster!

    These deals we write usually have performance clauses for delivery -- we agree that we will deliver the finished product no later than this date, and will affix penalties for each day (frequently in the area of $10K per day) that the product is late. There have been times we shipped blank tapes or CDs with a product label on it simply because we were contractually obligated to ship something. Now is that insane or what?

    The big problem in our space is that no one is willing to say "no" to the customer. If you don't say "yes", then our competitors will, and we will lose the deal. It means that our competitors get the customer's money instead of us while the customer figures out the awful truth!

    Our company even went so far as to regiment an ISO9001-like procedure that says every release candidate must to A, B, C, D... There's a form that each candidate has and it goes through each section from being ordered, built, tested and approved by QA, then duplicated and shipped. In practise, we ship a fair number of 'one timers' and dummy up the paperwork afterwards.

    I don't know what the solution is. I know in our space the problem isn't likely to go away -- one hears stories of the competitors making huge deals that fall on their faces with the customers paying the tab. Sometimes we get to go in and try our luck -- sometimes not.

    So what do we do? Listen to the technical people. You pay them big bucks for a reason! Walk away from sales that require the impossible. Avoid deals with financial penalties for late delivery. And stop trying to lay the failure or success of a product on the heads of QA! They don't make the product crap, it's already crap when it lands on their desk.

    Maybe liability for software would help. I'm sure the company would jack prices through the roof to cover the added risk, but it would sure as hell focus the attention of the managers and developers and make sure the company wrote deals that made it better to deliver late software that worked and not the other way around like it is today.

    Late and right beats on time and crap every time -- or at least, it should.

    1. Re:Shovelling crap by tzanger · · Score: 2

      If that means saying Yeah, we can do that when they don't have the first goddamn clue about how hard it might be to do that.

      Then that same sales critter gets a new asshole and gets to call the customer and tell them that he was wrong. I'd go as far as to say he got 0% commission if not negative commission for bringing in a useless sale. Far too often the sales force is clueless about what has to be done. They're just there because they said they've got the gumption to make the sales and get into people's faces. Who cares if they have no clue what's possible or not?

      If they're bringing in negative sales (sales which generate negative profit for the company due to impossibility, customer service, etc.), they should be compensated in kind. "Sure Bob, you brought in 300% raw sales than anyone else, but you also cost us 5000% more than anyone else because you keep selling what we don't make!"

      The big problem in our space is that no one is willing to say "no" to the customer. If you don't say "yes", then our competitors will, and we will lose the deal. It means that our competitors get the customer's money instead of us while the customer figures out the awful truth!

      And what of your company's reputation... the reputation of being the company that always says "yes" and ships shit? Customers do care about that stuff. Sometimes you have to risk a sale but the customer more often than not will then question the other tenders if one stands up and said "uh..."

      Our company even went so far as to regiment an ISO9001-like procedure that says every release candidate must to A, B, C, D...

      As I said in a different post, GIGO. ISO means nothing other than that there was a documented procedure to get from A to Z. You can still ship shit with a well documented procedure! Go for six sigma and then you'll have something to brag about!

      Basically what I see as the biggest problem is that the upper management... the guys who don't seem to do anything but in fact are responsible for the entire company... those guys need to have technical knowledge or at least have a clue as to how things get from concept to CD. If they don't, the company is doomed.

      Again, I know -- the company I currently work for just went through it -- the COO now has a clue and the entire company (~150 people) has a new 'life' breath to them... it's amazing.

      I'm not flaming you personally, and I do know I'm preaching to the choir here... I guess I'm just venting.

    2. Re:Shovelling crap by dennisp · · Score: 1

      HEH. It's a laugh when you read 300 posts and they're all about the same neverending dance. Actually, I received a release candidate for a product from our san jose offices yesterday that's supposed to ship next week -- and surprise, it was utter drivel; and they had been telling us for weeks that they were making progress.

      Anyway, it's even more fun to get a look into some companies when you come on board as a consultant. After a week I find 3 or 4 people who probably still have a copy of "learn C++ and MFC in 21 days" taped to the bottom of their desk and spend half the day asking one of their buddies how to do something. The leads, however, are too busy actually getting the work done to even notice -- as well as mid management who are too busy taking flack from upper management about not being able to produce 200,000 units of product by next week for a big OEM deal with xxxx.

      It doesn't hurt to release crap from time to time though :). After a year and almost getting nowhere, sales decided that particular division HAD to have something -- so alpha 2 turned into gold and we ended up with sales of 22 million even despite it being complete crap :). It's better than being in the hole because of 4 million in R&D expenses. Fortunately for us, our target market is the end-user who is so used to complete crap that they don't know the difference. Of course, most of our deals are OEMs with hardware manufacturers, so we have to get it past their people first -- but they usually don't care if the product has a nice UI and partially works.
      ----------

    3. Re:Shovelling crap by SimonK · · Score: 1

      That sounds just like my former employer. You have my sympathies and I recommend you do what I did and move. There are better jobs. Have faith.

    4. Re:Shovelling crap by RalphEJohnson · · Score: 1
      "Late and right beats on time and crap every time -- or at least, it should."

      This resonates with me. I wish the world worked this way. However, it doesn't seem to.

      The way the world really works is described by Richard Gabriel in his paper usually called Worse is Better but which is really called "Lisp: Good News, Bad News, How to Win Big". If you want to make the world a better place then you need to know how it works. Otherwise, your attempts to change it will be futile. Most software development methods ignore the lessons of "Worse is Better". One method that pays close attention, and still manages to deliver quality software, is Extreme Programming. Extreme Programming does not work in every situation (for example, it requires small teams) but it handles market pressures well and pays very close attention to users.

  85. Quite obviously.. by Kitsune+Sushi · · Score: 1

    ..you are clueless, and have no idea of what I meant. Go waste time playing in the sand somewhere else. ;)

    --

    ~ Kish

  86. Plug-ins by Anonymous Coward · · Score: 0

    Well that's why you have a plug-in and scriptable design. Little (features) that plug-into a core program and an easy to use scripting language for those one-off tasks.

  87. But Linux is the product and result of capitalism by Anonymous Coward · · Score: 0
    Sorry, but software is inherently hard, and requires competition to raise the bar of quality. Since we are abandoning MS software for alternatives now, we can safely say the market has worked.

    Anyway, if the contrary were true, North Korea would be Silicon Valley.

  88. can we say Unreal? by Anonymous Coward · · Score: 0

    I think the first horrid software job that I can remember in a game was the original release of Unreal. Anyone remember? You would die from sitting on a moving lift. That was all there was to it. The Unreal Tournament edition site blatantly makes fun of their past. This was a hideous creation and they still didn't get it even close to right for 3 or 4 more patches. Disgusting. Just another prime example of absolute CRAP.

  89. other industries are deplorable as well by cthonious · · Score: 1

    My car, for instance, for all the care I gave it, began to literally fall apart once the 50,000 mile warranty was up. Little bits here and there just started to fall apart. Nothing serious mind you, but I'm putting up with more and more aggravations every day. Sure, my car works, but it aggravates me that it was literally designed to fall apart. They have this "down to a science", I think. My old Volkswagen ghia, which I could almost have kept running indefinitely (well sometimes they just get too old), never had this problem ...

    Most industries are quite in tune with the "planned obsolesence" ("process optimization", in industry parlance) concept, which is ruinous to the customer, but there isn't anything one can do about it. Microsoft (and most windows software) software is even more deplorable still, but it's essentially the same thing: keep the product cycle churning. Don't let the customer stop to think. In the auto industry, they make things seem better by creating a "fake company" (Saturn: and by "fake" I mean it is designed to present the customer the illusion of competition) which markets itself as "a different kind of company", when, in reality, it's the exact same bullshit that GM makes elsewhere. In the software industry we have the MacIntosh (Apple fans please calm down, it's not personal). It's funny how people just lap this shit up (but mostly, the "lapping up" is done in commercials which are of course not real).

    All I can say is thanks, Richard Stallman and friends.

    --

    support gun control: take guns from cops
  90. Well.. by Kitsune+Sushi · · Score: 1

    The words "buffer overflow" come to mind.. Try firing that huge bastard up in your favorite text editor! =P

    --

    ~ Kish

    1. Re:Well.. by Robert+S+Gormley · · Score: 1
      3am error, forgetting an RS.MoveNext to step through a recordset and generate static html (for CD burning - no lectures on dynamics!) -

      CPU dutifully chugs off, hard drive going like a bat out of hell. Robert comes back in a few hours and sees a lovely message on the NT Server - "Disk Full" - WTF? I had eight gb free.

      Investigate. Find a lovely 8.2gb HTML file composed of one MONSTER table.

      I'd love to see Netscape 3 handle that...

      --

      Open Source. Closed Minds. We are Slashdot.

    2. Re:Well.. by Anonymous Coward · · Score: 0

      I'm sure emacs could do it... =P

    3. Re:Well.. by Anonymous Coward · · Score: 0

      Sure, T is almost always the answer to questions of the form "can Emacs...?", but this time I don't think so. Remember, elisp steals a few bits from pointers for tagging object types, so I doubt the usable address space exceeds 1GB.

    4. Re:Well.. by Audin · · Score: 1

      So you need a 64 bit machine.....emacs can do anything...

    5. Re:Well.. by Anonymous Coward · · Score: 0

      > Remember, elisp steals a few bits from pointers for tagging object types, so I doubt the usable address space exceeds 1GB. The trick is to take the bits on the "right" side and to address 32 bit words - not bytes.

  91. 2,500 bugs... not as bad as it sounds by kinesis · · Score: 1

    I worked on Communicator 4.X back when Netscape wasn't AOL so I have some perspective on this...

    There's a good reason that so many bugs get "latered" or marked "wont fix". Those bugs probably weren't that important!

    My point is only that not all bugs are created equal and that saying a product may ship with 2,500 known bugs isn't quite as bad as it sounds.

    e.g.

    Bug #1 - "Alignment of radio buttons in news server pane of preferences dialog not up to spec"

    Bug #2 - "Monitor detonates sending shrapnel into users face when you resize the main window"

    Most software ships with several hundred bugs similar in kind to Bug #1. If you're lucky, you'll only get a dozen or two as severe as our second example.

    As an aside, it would really suck to get assigned an "exploding monitor" bug... because then you have to reproduce it!

    :-)

  92. feature creep by Anonymous Coward · · Score: 0

    Of course, everyone *says* that they'd rather have slimmed down software that works. They just don't *buy* it.

    How many people actually use 5% of the functionality in MS Word? Almost everyone uses it.

  93. TummyX is a known astroturfer by Anonymous Coward · · Score: 0

    That's all I have to say.

  94. Some foresight . . . by Magus311X · · Score: 1

    I just finished reading this article and as I look at my wrist to check the time, I notice something:

    My watch crashed.

    Resetting the time and alarm, and inputting all the phone numbers, scheduling, speed dial numbers and such is quite a nuisance, and I must live with these crashes until I get a new watch. And this brings up an interesting point.

    I remember a while back with all the Java and Jini hype and how we'll have interactive toasters and lawnmowers and such, and how everything will be networked and have its own IP and do this, that, and the other thing. Well, if we're going to have all of these nifty devices, we sure better hope there aren't any bugs in the software running them.

    A toaster which has a glitch which can result into it bursting into flames will not go over well with the general public, as with an automated lawnmower that can't tell your dog apart from crab grass.

    Most consumers have seemed to tolerate the crashes that plague them daily. Yet if, say, a trailer hitch on a stationwagon is too low and continually grinds into parking curbs, there's free repair from your local dealer available in a few days. I don't see most software companies waving a free patch around after a week or so.

    If we're going to have this happy wired world with everything from servers to wristwatches having their own IP, I think some better standards need to be established or adopted by major software firms before some terrible disaster occurs in the not so distant future.

    1. Re:Some foresight . . . by whoosp · · Score: 1

      Most consumers have seemed to tolerate the crashes that plague them daily. Yet if, say, a trailer hitch on a stationwagon is too low and continually grinds into parking curbs, there's free repair from your local dealer available in a few days. I don't see most software companies waving a free patch around after a week or so.

      Key words: "Local dealer" & "software companies". According to your analogy, it's the place you bought the software that should be providing the free patch, no?

  95. When Comctl32.dll is not Comctl32.dll? by cpeterso · · Score: 1

    Drudd's post is right on. Comctl32.dll is a great example. Windows 2000 includes a new version of the common controls, called Comctl20.dll. For backwards compatibility, it also includes a Comctl32.dll. Unfortunately, the Comctl32.dll in Windows 2000 is a different Comctl32.dll than other versions of Windows! Windows 2000's Comctl32.dll is a simply a wrapper DLL that thunks API calls up to the new Comctl20.dll.

    As a third-party developer, if you link your program with Comctl32.dll on NT4 or Windows 9x, you must code around known Comctl32.dll bugs. When users upgrade to Windows 2000, your program dynamically links with the "improved" Comctl32.dll (which calls buggy new code in Comctl20.dll). Your tested program suddenly inherits new bugs from Comctl20.dll. Plus, your work-arounds for known bugs in Comctl32.dll might have bad side effects when the bugs disappeared in the Comctl20.dll.

    This is a terrible design decision and typical of Microsoft's "engineering". On Linux, a library developer would probably ship the well-known old .so and the new .so with different filename reflecting the library version numbers. Remember the problems of some Linux distros mixing up libc5 and libc6? Microsoft does this all the time..

  96. Pretty even? - what planet do you live on? by SurfsUp · · Score: 2

    So far the commercial offerings are pretty even with open source offerings. Everything crashes.

    On my planet, the open-source OS I use... Linux... doesn't crash nearly as often as closed-source windows (95/08/NT, take your pick). Furthermore, most of the open-source apps I use exhibit a far higher level of base stability than their closed-source commercial counterparts, even though the open-source apps are generally far younger. On your planet, things may be different.

    --
    Life's a bitch but somebody's gotta do it.
  97. Windows DLLs: Threat or Menace? by cpeterso · · Score: 1

    Oops, one more comment:

    Writing programs that rely on Windows DLLs is like a building a house of cards. Here's a great DDJ article about how to solve your DLL woes - past, present, and future!

    "Windows DLLs: Threat or Menace?"

    Here's an excert:

    The answer to the almost limitless problems of DLLs is obvious: Don't use them. Wherever possible, use static linking. Imagine the benefits. Some other developer's boneheaded installation or poorly designed updated DLL will not break your application. Your application won't fail because a component is missing, or because a registry setting has been lost or modified incorrectly. Your application won't behave differently depending on the applications already loaded, as a DLL-based application can if another application has already loaded a different copy of one of its components. Your installation will be exceptionally simple, and an uninstall will be just as easy.

    I should warn you of one small hassle if you try DLL-free development. Your users won't believe that there is only one file to install.



    1. Re:Windows DLLs: Threat or Menace? by Malor · · Score: 1

      There is at least one problem with this approach: bugfixes.

      Consider the case of MFC42.DLL. There's a series of nasty Y2K date bugs in this DLL. If you are dynamically linked, your Y2K problems go away when Microsoft fixes them. If you are statically linked, you have to fix and recompile yourself -- and you may not even know that early versions of the DLL have these problems. Finding out by getting a panicked call from a user with a broken app is not a lot of fun.

      Now, if you statically link against a perfect .DLL, you're set forever -- but Microsoft != perfection. And they often don't even admit to bugs, instead just quietly fixing them. This makes it tough to know when you should update your .DLLs and recompile for your users.

      I don't think the .DLLs themselves are really the problem. I think the REAL problem is that Microsoft doesn't manage them very well.

    2. Re:Windows DLLs: Threat or Menace? by tzanger · · Score: 1

      You're advocating linking everything statically? That's stupid, but highly highly effective.

      The whole point of shared libs is to reduce duplicate code. What's wrong with including a menu button to report all used DLL versions? When you get a bug report in, get the output from that window and you can quickly build up a little database of what happens with which versions of which shared libs...

      ... linking everything statically ... are you sure you don't work for Western Digital? :-)

    3. Re:Windows DLLs: Threat or Menace? by Salamander · · Score: 1

      >There is at least one problem with this approach: bugfixes.

      In the end it depends mostly on whether you expect later DLL versions to fix or introduce bugs. Both happen, but I'd have to say that with MS the latter is more common. That's sad, because statically linked executables are a waste of both disk space and memory, but that's life.

      The thing I really hate about MS wrt DLLs is the double standard they apply to distribution. Any MS app is likely to "upgrade" anywhere from a couple to a couple of dozen widely-shared DLLs to the latest version for its own benefit, making each browser upgrade (for example) an OS upgrade in disguise. However, this privilege exists only for MS products. Other vendors can't even ship the official MS-approved versions of system libraries without special permission - rarely given - from MS, let alone versions that have been hacked to their own app's nefarious ends. It's very frustrating to see your app trashed repeatedly by MS apps, and you can't even make sure you're loading the correct version as shipped by MS at some prior time to remain operational.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    4. Re:Windows DLLs: Threat or Menace? by Smallest · · Score: 1

      The answer to the almost limitless problems of DLLs is obvious: Don't use them. Wherever possible, use static linking.

      This doesn't help in the case of ComCtl32. There's no way to statically link the code in
      ComCtl32, like there is with the MSVC DLLs - unless you want to write your own versions of the basic windows controls... yuck.

      --
      I have discovered a truly remarkable proof which this margin is too small to contain.
  98. Big bad Bill by Pope · · Score: 1

    I read an intreview with Gates himself in a magazine a little while ago.
    The interviewer started to ask why there were so many bugs in the new version of Office.
    Quoth Mr. Gates: No! There are no significant bugs in our released software that any significant number of users want fixed.

    You can read the rest here

    Makes me sick.
    But, when did any figurehead EVER not lie in the face of the truth?

    PPoE

    --
    It doesn't mean much now, it's built for the future.
  99. User friendliness overlooked by Ukab+the+Great · · Score: 1

    While bugs certainly suck and no doubt cost billions in productivity, I think that one thing left out of the sucky software picture is lack of user-friendliness. In the world of Windows and Linux, if a program is hard to use or has a cumbersome interface, nobody gives a second thought about. Keyboard shortcuts for basic functions (like quitting an app) are often poorly chosen and differ from one application to the next. Different applications often deviate from a standard interface, making each new program a confusing challenge. And yet people continue to tolerate this. Microsoft continues to use big words like "user-friendly", but no one questions why a fully 32-bit non-backwards-compatible OS like windows NT still sticks with unintelligible DOS naming conventions for program files. While certainly the mac has had it's fault in certain areas, the applications for it always for a standard

  100. The views of a college student/programmer by Amokscience · · Score: 1

    What I find sad is that most of the CS majors(programmers) I have met through college ( a CS top 10 university) have so little experience with practical programming. They know next to nothing about software design, coding techniques, documentation, development cycles, etc. At least at my university there is little focus on programming style or project management.

    I've found that books like Code Complete, Writing Solid Code, Effective C++ absolutely invaluable in shaping my view of programming. The problem, as I see it, is that bad habits form early and programmers, being the stubborn bastards that we are, are loath to change habits on account of someone else's advice. Mostly we seem to have to actually get bit by the problem before we wake up and take action.

    Good programming practice is boring and requires intense discipline. BUT IT'S WORTH IT. I'm a believer. I've done it the hard way and the boring way and the boring way was magnitudes easier and quicker once the boring(spec'ing, documentation, design) work was completed.

    There are exceptions but that's exactly the point, isn't it? It is the exception when someone (or some group) can hack code together that's on-time and robust without going through the boring stuff.

    Users are the problem? Yeah, when they're brainwashed into it. I'll concede that the majority are probably tickled pink with new features and fancy graphics and slick animation... which wears off after the 5th crash in an hour. You pay for a lot of this software, complain complain complain.

    I have some suggestions which have differing degrees of merit/practicality. And I'm sure they've been brought up before in other books and papers and articles.

    - Write programs with the intention of porting. This forces many potential bugs that are hidden in one platform/compiler to rear their ugly heads.

    - Have a more 'open' development process. For gaming companies this means that once you've achieved a certain level of completeness put some of the internal progress online for your sonsumers to view and track. This is already popular with .plan files and such but I've noticed some really nice touches like publishing internal "bug fix of the day" or inviting people to the company office to test and give feedback.

    Obviously the OSS method invites peer review/monitoring. Big plus there.

    - Complain to your university about it's curriculum/focus. Maybe you won't get any benefit from it immediately.. but where do you think your future co-workers will come from? You'll probably get some BS about "we're not here to train programmers we're here to educate computer scientists." (I can't begin to say what's wrong with that). Since CS majors, from what I've seen at job fairs and the like, are the single greatest pool of new programmers, it seems to make sense that you'd train them as PROGRAMMERS as well as computer scientists. Suggest a alternate curriculum to focus in more specific programming topics like specific languages, design, documentation, cross-platform dev, networking etc.

    btw: Is there a program 'quality' standard or award? I'm not aware of any that applies to general computer software. Nor of any general download/ewview site that rates programs on someothing other than features. I am reminded of the console gaming market where crashes in titles seem a rarity. I think I rememebr one Nintendo (8-bit) game that crashed. (Granted that, compared to the PC market, they have very homogenous hardware constraints.)

    Apple used to be very anal about who got the 'seal of approval' as well.

    Anyways, I'm rambling. I hope I've made some sense.

    --
    Fsck cluebie moderators. I'll say what I want, offtopic or not. And fsck having to qualify every bloody statement just
  101. Alice in Wonderland by coyote-san · · Score: 2

    The article, like the rest I've seen that covered this topic, never addressed the Alice in Wonderland quality to life when you're used to Linux and forced to buy Windows for something.

    I normally run Linux exclusively and don't accept contracts for non-Unix work, but I recently needed business accounting software. So I bought the higher-priced software that I knew many of my clients used. It was Y2K ready. According to everyone I talked to, it was the best of the breed and could handle my company moving from single-programmer-in-a-garage stage to multimillion dollar company. (Yeah, right.)

    It was such a load of crap that I demanded my money back (and got it, since their packaging did make a money-back guarantee) and am doing those tasks by hand while the Linux accounting packages stabilize. I decided I simply couldn't afford to lose any more weekends to produce a "professional" invoice after 6 hours of struggle, instead of whipping out an "unprofessional" one in 5 minutes with vi and lpr.

    Some of the problems were related to the fact that I installed it on a laptop. The high latency display makes the "friendly" animations that appeared on every single fscking page a smear. But the software also clearly had absolutely no usability studies; e.g., I could enter POs but I never found a way to list open POs and associate checks with the PO.

    Oh yeah, that was probably covered in the tutorial. The one that used lots of multimedia (always fun on a laptop) to train a clerk in advanced computer skills like using the mouse to pull down a menu. There was, as far as I could tell, no way to get a top-level summary for people who know computers but not accounting.

    On the bright side, the company was willing to offer me support. At a fee for each incidence, and the fee was apparently *not* waived if the bug was because *they* screwed up the configuration. Nothing gives you a warm feeling like spending hundreds of dollars on a commercial accounting program, hitting 'create new business' button and watching it shit all over the floor because it's missing some value in one of its VB scripts. (That warm feeling is enhanced when you see that they want to charge you money to fix it. I think the feeling is due to acute alcohol poisoning....)

    Oh, I almost forgot. A few months after installing this program my laptop took a hard crash. I picked up a virus even though it's never attached to the net, always in my physical control, and I only install commercial software in the original shrinkwrap. Surely a coincidence.

    I actually enjoy it now when people tell me that Linux is hard to install. I tell them that I routinely install Debian in less than an hour, it takes me longer to burn the CD-Rs than it does to build a working system. But let me tell them about how long it takes me to reinstall Windows from my Toshiba disks (although that's not really fair since two hours are consumed removing those packages always in high demand in professional offices, like the big Disney Channel icon). Or let me tell them about the last "big, easy to use" Windows application I tried....

    --
    For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  102. This is such crap! by braindamage.org · · Score: 1
    Software is not the same as other engineering. All of you people talking about spending some huge amount of time on design before writing any code are completely wrong. This idea that we can simply design the whole thing up front has lead to a lot of late/bad software. People simply aren't smart enough, we can't see all of the problems in advance. Furthermore, things will change, it isn't marketing's fault, it is reality.

    To learn about effective software design practice check out extreme programming.

    This can also be seen in the free software world. The failed projects started out with grand plans and a lot of talk. The successful ones started out with a little bit of useful, working code then built on it; rewriting and refactoring along the way. The Linux kernel, for instance, has been rewritten many times (supposedly).

  103. Over-simplification. by FallLine · · Score: 1


    Capitalism works for more reasons than pure greed. One of the more important reasons is because things are de-centralized. That is a subtle, but significant detail. Communism/Socialism assume that resources can be efficiently allocated with central planning. Central planning simply doesn't work. This has been shown a thousand times over, in a thousand different ways.

    In other words, even if your socialist country was populated by cloned Mother Teresas; it still won't work.


    I don't see the current problems in software as market failure at all. The problem is that users haven't been demanding quality software, instead they've been purchasing software on pointless features, eyecandy, techiness, "compatibility", etc etc etc. Perhaps this is failure in a sense, in that people don't always know (or do) what is best for them. However, I'd far rather have a system which experiences a little bit of turbelence than an unwieldy impersonal bureaucracy (even if they don't ultimately crash).

    1. Re:Over-simplification. by Anonymous Coward · · Score: 0

      [attacks on central planning] Where is the business that works *exactly* like the New York Stock Exchange. Every business I've ever heard of does something like central planning. Period. So, in a sense, Communist countries were the ultimate in big businesses.

  104. Now that's funny.. by Kitsune+Sushi · · Score: 2
    OO is a fairly good paradigm yes, but it has some glaring problems. Especially in the realm of this discussion....
    There is a piece of code I own that was written with entirely too much OO on the brain... every thing is an object, and everything is encapsulated. A simple trace through the section for one invocation involves something like 25 instances of about 40 classes (this is when inheritance sucks) on three threads. It has taken me over a year to have even a marginal feel for this code... and I understand it at the high level, and have full design docs at my disposal. This code by the way, is well under a KLOC in total... closer to 1/2 that. It doesn't need to be this complex; I've redrawn it on paper down to as few as 8 objects in the process of understanding it.

    Well, to begin with, I meant that comment as a reference to extensively huge code that you couldn't hold in your head anyway. That said..

    One problem I've noticed with a lot of C++ programmers (and hopefully they are still novices when they outgrow this mentality) has to do with the following.. C was a hammer, and C++ is a sledge. We have C++ because there were a few railroad spikes that C just couldn't nail down as elegantly as we would like. Unfortunately, now some people always bust out the heavy ammunition.. But to be honest, not every problem is a railroad spike. ;) C++ is deep and complex compared to C, and how complexly you program something should be directly affected by how complex the program needs to be. Not only that, but even if using C++ is deemed appropriate, you don't have to overkill just for the sake of overkill. =P

    In the end, a program is only as good as the programmer. Better tools often make for better work, but even a sledgehammer won't help a stumbling buffoon nail down a railroad spike if he's too drunk to even stand still..

    Anyway, enough of that.. I'll now simply comment on the post as a whole: I agree. Excellent points, all.

    --

    ~ Kish

    1. Re:Now that's funny.. by cabbey · · Score: 1
      Well, to begin with, I meant that comment as a reference to extensively huge code that you couldn't hold in your head anyway. That said..


      14,000+ source files last I checked - some build as many as two dozen classes, 262Mb worth of sources in the build tree before compilation/generation begins. At that point... yeah encapsulation, modularization, anything to help....

      One problem I've noticed with a lot of C++ programmers (and hopefully they are still novices when they outgrow this mentality) has to do with the following.. C was a hammer, and C++ is a sledge.


      They aren't... they're novices when they LEARN it... it won't be for a couple years in TRW untill they catch on. Java then is the giant Acme(tm) mallot used by Willey Coyote.

      We have C++ because there were a few railroad spikes that C just couldn't nail down as elegantly as we would like. Unfortunately, now some people always bust out the heavy ammunition.. But to be honest, not every problem is a railroad spike. ;)


      But look how the schools teach them (at least everything I've seen).... they start them out with procedural gorp in basic or pascal (C if they've got a clue), then move on to some "real world language" which will depend on what other department CS has to kiss up to in order to get funding... FORTRAN, COBOL, RPG or some similar form of brain damage will be inflicted. Then they'll get into some kind of real CS languages... Lisp, Forth, Ada, SmallTalk, C++, etc... but by then it's graduation. So what's the overall progression.... from little teenie hammers up the scale to the 25lbs sledge; with promises of bigger and heavy machinery in grad school....

      Then they get out and what do all the industry mags plaster on the covers? C++, C++, C++, Java, Java, Java, Objects, Objects, Objects. So what do they pull out of the tool box to hang a picture with? a 2p nail and a 25lbs sledge... sure a week later when you notice the holes in the schedule -er wall- you'll suggest a pushpin -er shell script- eventually they'll catch on.

  105. it's not just commercial software! sheesh! by Anonymous Coward · · Score: 0

    I honestly can't believe so many people here feel that just because a piece of software is commercial it has to be fucked up! Sure there are shitloads of unfinished games and other buggy commercial products, but for each of these there is some half-assed open source copy that is just as bad. Just because millions of people can see your code and fix does not mean they will. I'm sure anyone here can think of good and poor software, both commercial and open.

  106. Cost Optimization by Quinthar · · Score: 1

    I'd say it all comes down to optimizing costs. Currently, for whatever reason, buggy products still make money.

    There's some sort of cost relationship between product stability, feature lists, and usability. Businesses, as in any industry, manage those costs to generate the most revenue in the shortest time and for the smallest investment.

    Labeling buggy products as Bad is as meaningless as labeling super-featured products as Good. It's an entirely subjective experience that ultimately is resolved at the cash-register. That which makes the most money at the least risk will always win.

    Customers don't realize that short term wins (acquring products quickly and cheaply) have long term consequences (platform stability, overall software quality). Currently customers don't have the skills or experience to work factors into their own cost minimization equations, so they're effectively "weighted" at zero.

    As the industry matures people will surely start to pay attention to these things, and businesses will have to account for this to remain profitable.

    The big problem is that due to the institutional ignorance of the human population, The Masses are easily manipulated for the profit of The Individual. The current lack of understanding of the customer base has proven to be very profitable, so large corporations find it safer to continue to rely upon (and even take pains to ensure the existance of) this ignorance than to take a risk upon developing good software to satisfy a small (and statistically shrinking?) group of enlightened users.

    As long as The System allows The Corporations to manipulate The Masses for their own profit, this will continue to be the case. The goal is for The Masses, and through them, The Government, to recognize that corporations are only *allowed* to exist because they are a tool believed to assist in increasing the standards of living for The Masses. Once this understanding is gained, then The Masses, via The Government can reshape the public tool called the corporation for their own benefit.

  107. User friendliness overlooked by Ukab+the+Great · · Score: 1

    While bugs certainly suck and no doubt cost billions in productivity, I think that one thing left out of the sucky software picture is lack of user-friendliness. In the world of Windows and Linux, if a program is hard to use or has a cumbersome interface, nobody gives a second thought about. Keyboard shortcuts for basic functions (like quitting an app) are often poorly chosen and differ from one application to the next. Different applications often deviate from a standard interface, making each new program a confusing challenge to learn. And yet people continue to tolerate this. Microsoft continues to use big words like "user-friendly", but no one questions why a fully 32-bit non-backwards-compatible OS like windows NT still sticks with unintelligible DOS naming conventions for system files. And these problems are *NOT* due to management pressure and short deadlines. They are totally the fault of the programmers. While certainly the mac/apple has had it's faults, mac applications have always had interfaces consistent with that of the operating system. Keyboard shortcuts for mac appliations have *always* been consistent and well thought out. I think the windows/linux users have something to learn from the mac users, who will not hesitate to harshly criticize a program whose UI is crap.

  108. You're missing one important point by Anonymous Coward · · Score: 1
    The problem with this idea is that you miss things on screen that you would otherwise see on paper. People always talk about the paperless society, but, for whatever reason, you see more mistakes on paper than you do on-screen.

    I work for a large publishing house, and all of our subeditors sub articles on-screen, it gets laid out, and then they proof the print. The changes are made, the story is printed, and then they proof it again. If more changes are made, they print it out again, ... continuing until there are no more mistakes found.

    Do you program? Take a large program that you're working on sometime and print it out. Have a good long read of it. Whenever I do that, I will inevitably find a section of code where I think to myself, 'what the hell was I thinking? And why didn't I catch that earlier?'

    I don't understand it, but it's true.

    1. Re:You're missing one important point by Zurk · · Score: 1

      yep. its probably due to the speed of the scrolling and the fact that you can refer back to stuff on paper fairly easily as compared to (say) scrolling back to point n on the screen (where n was 7 pages back). all my (reasonably) crash free programs have been printed out and stared at in the toilet or some other places.

  109. Ironic.. by sporty · · Score: 1
    It's ironic in that sense, since a lot of freely done projects, OSS or not, are of better quality.

    In java for instance, there was never a table/spreadsheet widget. I wanted to design my own, but got agravated since I'm doing a table widget project than my original one. After searching around, a single person run company, who gives out the java class for free, had a very nice one. Since I could just download the class (lib), I could compile it in. He worked on it in his own free time and maintains it. The class was free for non comercial projects.

    Apache,FreeBSD,snarf, BSD/OS, Perl, Lynx. All once started from independent, free form designed projects (Yes..BSD/OS was once BSD 4.something). They made their own schedules.

    Can't release it today? Maybe tomorrow. Once it's done I'll announce it. If I'm a day late of my own personal schedule, no biggie.

    --

    -
    ping -f 255.255.255.255 # if only

    1. Re:Ironic.. by Zurk · · Score: 1

      thats it. the commercial pressure to ship on time will kill most projects. the bugs are induced due to lack of enthusiasm and the time pressure.

  110. Quality? by Robert+S+Gormley · · Score: 1
    No. I work for a company *very* closely tied to MS - they actually invited three of our guys to help them spec. out the "Designed for 2000" criteria.

    The deadline is being pushed back because it IS vapourware - Yes, it IS coming, but Microsoft knew they had no hope of getting it out by its supposed delivery date.

    --

    Open Source. Closed Minds. We are Slashdot.

    1. Re:Quality? by whoosp · · Score: 1

      More likely that the engineers knew that there was no hope of getting it out by its supposed delivery date, but the VP's / marketing team pretended not to hear because they are the ones who care more about publicity and revenue than quality.

    2. Re:Quality? by rve · · Score: 1

      Well, it worked, didn't it? Several other companies have discontinued development of their OS because it it will never be able to compete with W2K, which for quite some time now has been just about ready to ship
      Just like Intel's vapourware has already pushed most competitors out of the market, even though McKinly will most likely not be ready for another year or two. Other companies have more or less discontinued development on their product becaue it will never be able to compete with McKinly, which has been just about ready for several years. Vapourware is great. True, you can't actually use it, or even sell it, but it's a fierce competitor in the marketplace.

    3. Re:Quality? by Anonymous Coward · · Score: 0
      What is more, it only works because we, the users, keep hissing at it. Which company is getting the most free publicity on Slashdot?

      Let's take vaporware announcements for what they are: statements of intent, and simly ignore the claims until the product is actually available to verify them.

    4. Re:Quality? by Robert+S+Gormley · · Score: 1

      I wasn't arguing whether it worked or not, just that the original poster's logic was flawed (imnsho) :)

      --

      Open Source. Closed Minds. We are Slashdot.

  111. I've got news for you... by Anonymous Coward · · Score: 0

    Open Source software is CRAP.

    I hate to tell you this kiddies but....

    gcc is poor and produces bloated code compared to it's commercial counterparts.

    I know you zealots won't belive this but ask yourself:
    If Open Source was the best, why would any commercial software exist? Who would PAY for inferior software when a superior system is FREE?

    Don't believe the hype.

    1. Re:I've got news for you... by Zurk · · Score: 1

      PHBs would *always* pay for inferior software than use a free alternative. Also the same with the average person on the street..because you pay for it its intrinsically more valuable. gcc is far superior in terms of cross platform compiling than *any* commercial compiler and is at least as good as most commercial compilers in terms of performance. gcc code ia also smaller (last time i checked) than the ever so hyped MSVC++.

    2. Re:I've got news for you... by poohbear_honeypot · · Score: 1

      Only to a very small percentage of installed systems. 99% of them run one ins set: x86. It's all a matter of perspecitve.

      ---
      Joseph Foley
      InCert Software Corp.

    3. Re:I've got news for you... by RallyDriver · · Score: 1

      I've got better news for you - gcc produces better code than commercial compilers - that's why the majority of CLOSED SOURCE operating system kernels are compiled with gcc. In HP's case I had this verified by one of the developers when dealing with a bug in the pre-release of HP-UX 11.00 - why do they use it? Because it produces tighter, faster code than their own compiler.

      The monetary price of software is almost 100% orthogonal to its intrinsic quality - you're paying mostly for things like support and marketing. How much do you think Microsoft spends, in terms of $ per license sold, on Win9x development? It can't be more than 20 or 30 cents.
      How much on marketing? How much on tech support?

  112. Bug-Free Software: IT CAN BE DONE by Anonymous Coward · · Score: 1
    It's not impossible to write bug-free software, whatever people say. I don't mean piss-ant little pieces of theoretical software, I mean big hairy complicated opearting system components and complex applications.

    Two examples:
    Part of the Multics operating system was written, using 60s technology, that is, mostly a pencil, paper, and competent mind. It was, essentially, the VM/buffer cache manager. It had one, count it, one bug, and that was due to the programmer being misinformed about the API he was calling. Read the story, told properly, at this link.

    The BBC Micro was an 8-bit microcomputer produced by Acorn. It had, like most others at the time, BASIC supplied in ROM. It was a very good BASIC, much better than many others at the time (and a lot better than that written by Mr Gates and Mr Allen). The author, Roger Wilson, wrote it in about 3 months (all in assembler, of course), as scheduled. He was then expected to proceed to testing and debugging, but stated this was not necessary as he had written it to be correct. It was, pretty much. It had about 2 minor bugs.

    So, it can be done. You can even do it under commercial pressure.

    Nicolai

  113. Bitten by the power trip. by Robert+S+Gormley · · Score: 1
    Gotta love it... not.

    Moderators who disagree with things, so mark them as flamebait.

    This bites.

    --

    Open Source. Closed Minds. We are Slashdot.

    1. Re:Bitten by the power trip. by Anonymous Coward · · Score: 0

      You're right.. why the heck was that marked as flamebait? Crazy.

  114. Buggy moderators by JPelorat · · Score: 1

    To the moderator who labelled Max's post 'Flamebait':

    You are a moron and a shining example of the petty shite-headedness of the average web user. If there were justice in the world you would be consumed by cockroaches, but I suppose we'll have to wait for meta-moderation.

    Actually, what I'm hoping is that I'll make you so mad you'll waste another point on me as well, and that's one fewer down-mod that someone else will have to suck on.

    The moral: Disagreement with a poster is no reason to get spiteful with your moderator points.

    Shame on you.

    --
    Hokey statistics and ancient misconceptions are no match for a good thought in your head, kid!
    1. Re:Buggy moderators by Max+von+H. · · Score: 1

      Couldn't have said it better.

      Thanx

      PS: There must be a bug in The Slash, 'cause I get moderator's privilege at least twice a week now... How ironic.

      --
      -- It's always darker before it goes pitch black.
    2. Re:Buggy moderators by JPelorat · · Score: 1

      Good, someone booted it back up the food chain.

      And there is a certain squalid irony in the fact that IE just crashed on me whilst reading your reply. Some people have all the luck... =)

      --
      Hokey statistics and ancient misconceptions are no match for a good thought in your head, kid!
    3. Re:Buggy moderators by tzanger · · Score: 1

      PS: There must be a bug in The Slash, 'cause I get moderator's privilege at least twice a week now... How ironic.

      Actually I emailled Rob about this earlier last week.. Essentially they're cutting the number of people elligable to moderatorship (metamoderation uncovered a bunch of abusers) and who's left is getting it more often; that's all.

      I think he mentioned something about giving moderators more points per turn, but I dn't remember now :-)

  115. Same here... by Anonymous Coward · · Score: 0

    I run a small retail business with point-of-sale records kept in xbase format. For doing things my purchased program won't let me, I own FoxPro 2.6, but 99% of the time I use my trusty single-floppy copy of FoxBase+ 2.10. (And I'm dreading the day I'm forced to move to Windows.)

    1. Re:Same here... by nmarshall · · Score: 1

      just wait, i use a windows based POS... and it's flaky as hell. we "upgraded" the other day one POS is dead, and the other now, sometimes scans sometime doesnt...

      although ALT-TAB to play sol.exe is kind of fun...


      nmarshall
      #include "standard_disclaimer.h"
      R.U. SIRIUS: THE ONLY POSSIBLE RESPONSE

      --
      nmarshall

      The law is that which it boldly asserted and plausibly maintained..
      --Colonel Burr 1783
  116. Screed (and first post!) by Technik~ · · Score: 1

    What should be explicitly said in Clive Thompson's article is that while
    software is not like other products, except, perhaps, commercial art or
    illustration, it must be managed like it was just another engineering
    project. In that regard, the failure of software to deliver is plainly a
    failure of management.

    Cynicism aside, most of us have experienced the project manager or,
    worse, the project management team, without a clue as to what the
    programmers are doing. Not that the manager isn't coming from a
    technical background but that they simply don't have personal experience
    with the tools and technologies their programmers are using and without
    it they are unable to distinguish between honest underestimations and
    outright bullshit for project milestones. They got their specs from
    the business people, probably didn't understand them, tossed them to
    the senior developers who (if they bothered to work with the DBAs and
    Sysadmins) passed back a project model or at least a logical diagram of
    the data and of the system. This draft suddenly gets set in stone and
    approved, often after the team has begun work. Maybe the project model
    wasn't even done by the developers. It might be done by the project
    manager themself or a dedicated functionary who just scribes these
    things all day.

    This is compounded by programmers- and I've been here myself- dazzled
    with their own innate superiority who blithely assume that they can "get
    up to speed" with a new tool, technology, platform, co-worker, team,
    boss, project, whatever in less time than it takes to cook an egg.
    These programmers probably want to cloister themselves until the job is
    done. Version management? Source control? Approved methodology? Review?
    Hey, did anyone check if it works? Nothing is more frightening than
    leaving the average developer alone in a cube for six weeks. It takes
    discipline to do these things and most people, myself included, don't
    take to it unless were forced to do so.

    The third ingredient in this recipie is the tools themselves. If there
    is a method for choosing development tools, what criteria are used? As
    often as not, the tools are bought and paid for before the development
    team is assembled. Are these the best tools for the job? Maybe. Or maybe
    the box was just the nicest color, or the sales rep. made the best pitch
    or took the manager to the nicest restaurant, or- and this is usually
    the case- a competitor or colleague used the tool successfully for a
    project that bears little resemblance to the one at hand.

    What should be dawning on you if you've read this screed is that no
    blame goes on the customer. All they did was ask for something, it was
    the entire development process that was supposed to field that request,
    sift through it, prioritize the goals and result in a software product.
    If it didn't, it sure sounds like a management problem to me. I've got
    it, let's shuffle the cubes around.

  117. Simple answer by Jimhotep · · Score: 1

    you get what you accept

  118. Too formulaic by Anonymous Coward · · Score: 0

    There are horses for courses.

    Did Linus divvy up his time like this writing linux. I bet he just started coding.

    I hope different approaches are allowed for rocket ships and pacemakers then for computer games.

    1. Re:Too formulaic by MassacrE · · Score: 1

      I wonder how many lines of say, the first ten versions of Linux are still in 2.3

      none? probably.

      Don't knock design until you look at linux-kernel. Linus doesn't look at design (although you can see some rather heated arguments about it sometime).

      He gets to look at things after implementation. You can easily tell if someone thought things through before starting to implement. If it is ugly or a hack, he won't take it 99% of the time (the other 1% I think happens when he knows other people will quickly make it right ;-))

  119. That article... by tzanger · · Score: 3

    ... sucks.

    I am a software developper. Even if I can't spell it right. :-)

    While I haven't read a single comment on this article yet, I am willing to bet that most are "great article" comments from people thinking that it is the boss' fault. Let me ask you this: Who told the manager that they could do it in three months? Who didn't tell the boss to fuck himself when he moved the ship date up six months??

    Jesus that article riled me up! It makes my profession out to be a gang of unprofessinal 31337 dudes who like to do nothing but play Quake all day, scarfing pizza and mountain dew and whine that they didn't get enough time when the ship date draws near.

    If you see the development taking much longer than you originally estimated, you get off your ass and tell your boss. You tell them as soon as you see the problem, not 1 week before the ship date when nothing can be done. You don't sit there and pull all-nighters trying to get it working at the last minute. I know; I've been there. If your boss won't give you more time you tell him that the product will NOT be done and will be full of bugs. Walk if you have to. How many articles on /. of late have talked about all the boundless opportunities for people skilled in software?!!

    What else... oh yes... the "big code can't be tested" arguement. Whatever happened to programming modularly, testing it thoroughly and eliminating the bugs through good software design? Oh yeah, I guess that's too logical. The shuttle/MRI/microwave/car/elevator/aircraft computer programmers must have it all wrong, after all. Thank God someone in the games field has it right!

    "PCs are all so different!!" Gimme a break! If it doesn't work on PC 'X', and you suspect hardware after you've elimiated all reasonable doubt that it's your software, you buy PC 'Y' and try it. It sounds like these guys have zero problem solving skills! Also sounds like they're programming too close to the hardware; that's what APIs are for and if the APIs are bad... well then at least you've done what you could and can try to contact the vendor for a workaround.

    No software can be perfect; another fallacy. Sounds like laziness or lack of time. Or both. Either way, most people know what they're getting into when they sign on, or they find out shortly thereafter. Either way it's ultimately the programmer's responsibility to make the code good. Bugs will crop up after ship date, but if you've programmed correctly and used proper coding procedures you will have a detailed map of what goes where and can test inputs and outputs to find out exactly where the bug lies to correct it and bring you that much closer to a perfect program.

    GIGO -- it's as simple as that. If you hack it together, you'll be hacking it forever. Stand up for your rights and stand behind your work. Whatever happened to being proud?

    1. Re:That article... by Zurk · · Score: 1

      if you tell the boss to fuck himself, he'll fire you. no second thoughts.

    2. Re:That article... by tzanger · · Score: 1

      if you tell the boss to fuck himself, he'll fire you. no second thoughts.

      And if you tell him that literally, I wouldn't blame him. My mom taught me something ages ago called 'diplomacy'. It's the art of saying "nice doggy" while trying to reach for a large rock.

      Similarly, if my boss told me to fuck myself, I'd quit. No I'm not financially stable, no I'm not sitting on a wad of cash. I do have a particular sense of self-worth and what I expect from my peers and from my employers, though.

  120. Crash due to high load! by tilly · · Score: 1

    OK, it won't crash you but unless you have been good about ulimits the following shell script will lock any Linux box hard. (Heck, pretty much any Unix as well.)

    Before running make sure that you have shut down everything that you care about. When you get tired of an unresponsive box, turn it off by hand.

    Save the following as a shell script and execute it...

    #! /bin/bash
    # Tie up some memory
    perl -e 'push @big, 1 while 1' &
    # Spawn another me and wait on it
    $0
    # Oops, that one died, try again...
    $0 &
    # Stick around and keep trying to lock up the last process slot..
    while ( sleep 1 )
    do
    $0 &
    done


    When you are out of RAM and out of process slots, you are SOL...

    Cheers,
    Ben

    PS Note that I am careful to have the processes "chain out". That is to avoid having a lot of processes trying to be created at the same time. (Confuses the scheduler and slows down the creation of new processes.)

    --
    My usual seat in the cluetrain is at A HREF="http://pub4.ezboard.com/biwethey.ht
  121. Stable/Unstable by Eric+E.+Coe · · Score: 1
    You are ignoring the differences between stable and unstable release tracks incorporated into almost every kind of free software in active development.

    And if you see some obvious improvements to be made in some package you work with, then send in a patch.
    --

    --
    An esoteric scratched itch:
    Homeworld Map Maker Tool
    1. Re:Stable/Unstable by VAXman · · Score: 1

      You are ignoring the differences between stable and unstable release tracks incorporated into almost every kind of free software in active development.

      No. Linux kernel 2.2 has *12* patches. 2.2 is (supposedly) the "stable" branch. 12 patches to a stable branch in less than a year???? And this is somehow "more stable" than Windows NT which had had five in the course of five years?? Please explain, I must be missing something.

      And if you see some obvious improvements to be made in some package you work with, then send in a patch.

      Look, I'm a full time EE and I work upteen hours every week. If you think I have time to fart around with buggy, unreliable software like Linux and its ilk and submit my patches you are dead wrong.

      If it's not source, it's not software

      Keep chanting the slogans...

    2. Re:Stable/Unstable by seeken · · Score: 1

      Service packs seem to change a lot of stuff, suddenly, rather than Linux patches, which in the stable brances change a little bit of stuff at a time. I think the Linux way is better. At least i know that any bug I find will probably be fixed soon! I haven't bothered to DL NT service pack 5 yet, mainly because Civilization II and Quicken run just fine for me. Likewise, I haven't bothered to patch up to 2.2.12 because everything (with one irratating but rare exception) works fine for me in Linux.

      Microsoft has said five versions of w2k- doesn't this make you suspicious after the w98se bs? They're going to make you pay for patches! Remember when Bill Gates said that nobody would buy software to fix bugs? We'll, he must have decided that he was wrong.

      Anyway, when this industry matures, customers will mature and demand quality. Let the ucita go through- it will be the downfall of the commercial software business. Open/Free software will win because no other model will be credible.

      Surfing the net and other cliches...

      --

      Surfing the net and other cliches...
      (Who Meta-Meta-Moderates the Meta-Moderators?)
    3. Re:Stable/Unstable by remande · · Score: 2
      No. Linux kernel 2.2 has *12* patches. 2.2 is (supposedly) the "stable" branch. 12 patches to a stable branch in less than a year???? And this is somehow "more stable" than Windows NT which had had five in the course of five years?? Please explain, I must be missing something.

      It makes no sense to measure reliability in numbers of patch releases, especially when comparing proprietary with open source software. How much is fixed in which patch? Remember that open source software makes orders of magnitude more releases than closed source software, by design and for those who want it. Linux has distributions so that end users don't have to deal with the pitter-patter of little releases.

      Look, I'm a full time EE and I work upteen hours every week. If you think I have time to fart around with buggy, unreliable software like Linux and its ilk and submit my patches you are dead wrong.

      If you don't have the time to fart around with Linux, what do you have the time to fart around with? I'm not ready to say that Linux is the most reliable OS around, but I am ready to say that it is in the upper echelon. That is, other OSs may be more reliable than Linux, but it seems that nothing short of mainframe-style enterprise OSs is much more reliable than Linux.

      If you're talking about enterprise-level systems like big-assed financial mainframes, I agree. You don't have the time to fumble with Linux--it's not built for the Big Guys (for that matter, neither is Unix). If you're dealing with Unix-sized problems or smaller, Linux is about as reliable as you're going to get.

      At my network shop, we have three platforms: Solaris/Sparc, Linux/Intel, and NT/Intel. From our experience, Linux/Intel is about as reliable as Solaris, and much more reliable than NT. IMHO, Solaris is the Unix benchmark, so Linux is beautifully reliable for the types of jobs it takes a Unix box for.

      --

      --The basis of all love is respect

    4. Re:Stable/Unstable by ChrisWong · · Score: 1

      No, Rob, the poor guy doesn't want to hack source
      code to make things work. He's an EE, dammit, not a
      software engineer. He just wants his software to work,
      like his coffee machine, calculator or even the SCO
      Xenix machines you used to work on. The poor,
      idealistic fool. :-)

    5. Re:Stable/Unstable by Eric+E.+Coe · · Score: 1
      Well!

      You are ignoring the differences between stable and unstable release tracks incorporated into almost every kind of free software in active development.

      No. Linux kernel 2.2 has *12* patches. 2.2 is (supposedly) the "stable" branch. 12 patches to a stable branch in less than a year???? And this is somehow "more stable" than Windows NT which had had five in the course of five years?? Please explain, I must be missing something.

      As others have responded, the number of releases is not nearly as important as what and how much things are being changed... Besides, I go with what my distro (Debian) provides - 2.0.36, which has settled down considerably - no new releases in a while. It works fine for me.

      And if you see some obvious improvements to be made in some package you work with, then send in a patch.

      Look, I'm a full time EE and I work upteen hours every week. If you think I have time to fart around with buggy, unreliable software like Linux and its ilk and submit my patches you are dead wrong.

      Suit yourself. I'm a busy person too, so I haven't contributed much in that way either. But since you found the time to complain, I figured you must have the time to be a little more specific than a generic, unsubstantiated smear like "buggy, unreliable software like Linux and it's ilk".

      If it's not source, it's not software

      Keep chanting the slogans..

      I borrowed that "slogan" from NASA, who apparently insist on source to help ensure reliability. I thought it would make a pretty good signature. I still think so.
      --
      --
      An esoteric scratched itch:
      Homeworld Map Maker Tool
  122. It's the process! by Anonymous Coward · · Score: 0

    I firmly believe if software houses would get their heads out of their asses and not let contractors/rogue individuals design/implement in any way they wish for job security, that we would be in a lot better position. I have been absolutely stunned by the apparent lack of thinking when certain individuals go out to develop a new feature/program. They just see the deadline next week and don't even consider that someone may need to look at/fix/upgrade their piece of crap code. And its not even that - there are individuals so firmly entrenched in the hack-and-slash mode of coding, that they will fight all attempts to actually do software engineering, not high-school hacking. I am not even going to get into the lack of communication between software teams.

  123. Re:Mythical Man Month: The bazaar model by Sludge · · Score: 1

    I think it would be correct to say that Brooks essay No Silver Bullet stated that there would be no algoithm or coding method that improved software across the board in the next ten years. This ten year period was over two and a half years ago.

    Most programmers are in unison in agreeing that the Silver Bullet didn't emerge.

    While you may argue that the Internet is a silver bullet, in-house development is far more efficient a method as far as communication goes than the Internet. The Unreal team had members from across the globe for the first half of their game design. In the end, they all met in Canada to finish it off, as development was going too slow.

    The closer to realtime communication is, the less time spent concentrating on synchronizing everyone's thoughts on matters pertaining to the project.

    The reason the development of a free Unix works very well over the internet, is that it is broken up into very small parts. If one person is to develop 'grep', they would not need to be continuously in synch with someone who is writing an archiving tool.

  124. Pure And Undiluted Bullshit by Anonymous Coward · · Score: 0

    Software is not the only industry that struggled with bugs in it's early years. The aerospace industry was plagued with them until techniques and processes matured to the point where "bugs" are less likely.

    Same with bridges and architecture. The funniest thing is, most bridges and arcitecture designed today are safer because of computers and software.

    Games? Who cares if some loser's machine spontaneously reboots at 3AM in some frag war. It's not the end of the world.

    The recent satelite mishap? Metric vs. English? Well, NASA went all metric years ago. Why did their contractor write their commands in "english" units? Who the hells cares? How did the design pass inspection and get on a satellite? That's the real question. If their contractors handed them a bag of shit, would they dutifully seal it into the sattelite without looking in the bag?

    The SEI? Their great contribution to the article was the incredible statement that tyops occur every 4.7 lines. Needless to say, those lines won't compile, will they? It would be so rare for a tyop to be a bug, that your time is best spent elsewhere.

    Some stupid article like this comes out every several months, and as always, they are wrong. If you really think you should be able to buy COTS software for $80 that is guaranteed to run your powerplant, satelite, car or airliner without mishap, you need to lay off the glass pipe or get some psychological counseling. The hardware costs money, the software costs money.

    Finally, I've been writing software for 12 years, and all I can say is there are no true standards for programmers/software engineers. I should be able to walk up to any group of programmers and discuss back box/OO techniques, regardless of the language used, and have their complete attention and understanding. The industry is nowhere near this level of expertise.

    Personally, I've been criticized on two occasions for belittling other programmers (1)called programmer a "Worthless Chimp"; (2) called programmer an "Incompetent Shithead". Well, sorry, but when the project is late, and a couple programmers are doing nothing but collecting their paycheck and playing games under win98, and have zero interest in learning XML/UML/OO/C++/Java (even just the *techniques*) I get pissed.

    Oh well, I'm sure things will only get worse now that the goverment will be teaching schollchildren not to be "hackers". Sigh.



  125. "A fool with a tool is still a fool" by HerbieStone · · Score: 1
    Now this might be completly offtopic, but I really feel the need to reply on this one.

    I've seen Eifel and it's a nice programing language. Well I've never written code for it because it's proprietery and it isn't cheap. But what I REALLY wanted to say is:
    Eifel and any other programing language won't change the problem we got with software quality A BIT! "A fool with a tool is still a fool" (don't remenber who said this one) and someone who doens't care to make good code under C won't care to make good code under Eifel.

    So please, before you mention another Silver Bullet. Say what it is really worth and under what conditions. Greets MadMike

    1. Re:"A fool with a tool is still a fool" by Anonymous Coward · · Score: 0
      I've seen Eifel and it's a nice programing language. Well I've never written code for it because it's proprietery and it isn't cheap.

      You should try writing code in it (I'd personally recommend Lisp, but that's just me). There is a free compiler available for Eiffel. I don't have an URL handy for you but if you just head over to Google you'll no doubt find one.

      But what I REALLY wanted to say is: Eifel and any other programing language won't change the problem we got with software quality A BIT! "A fool with a tool is still a fool" (don't remenber who said this one) and someone who doens't care to make good code under C won't care to make good code under Eifel.

      It's not a silver bullet, but it is certainly easier to write good code in less time in about any language other than Intercal, Brainfuck, C and C++ for a non-fool.

    2. Re:"A fool with a tool is still a fool" by SlydeRule · · Score: 1
      I've seen Eifel and it's a nice programing language. Well I've never written code for it because it's proprietery and it isn't cheap.

      For a GPL'ed Eiffel implementation, go here. Precompiled versions are available for Windows, Mac (PowerMac & 68K), HP-UX, Amiga, OpenStep, and oh yes, Linux (RPM and glibc2).

    3. Re:"A fool with a tool is still a fool" by HerbieStone · · Score: 1

      Hey, thanks pal for the link. But I have already downloaded it before I wrote my last post.

      When I said "I will never code in Eiffel", I didn't say I would never program SMALLEiffel. Sadly I didn't had enough time since now to really get into it.

  126. first timer feels cheap and dirty by Anonymous Coward · · Score: 0

    ...are you talking about "first post" or "first sex"?

    1. Re:first timer feels cheap and dirty by Issue9mm · · Score: 1

      there a difference?

  127. You want a vocational school, not a University by Anonymous Coward · · Score: 0
    You can study Computer Science very effectively without any access at all to a computer. I think you are mixing up a degree in CS from a university with a programming certificate from a vocational school.

    If you really attend a top 10 university, please do your bright classmates a favor and transfer out, you don't belong there. Closed minded or otherwise misguided students like you ruin it for the good students who can see the bigger picture. (I remember students in my data structures class whining because we used Modula-3, a "non-practical" language)

    Your university years would be better off learning how to learn and opening up your mind rather than practicing such a simple vocation like programming.

  128. Paper is easier to read and edit, but.. by The+Cunctator · · Score: 1

    I agree with you that paper is easier to read and annotate. However, it's harder to shape, reconfigure, and retransmit. I often print out my programs and read from printouts. I believe in the toilet development cycle. On the other hand, you can't test a paper printout of your code and tweak-n-run (or tweak-n-compile). Paper is good because of its permanence; it's bad because of its permanence.

    Speaking of publishing houses, I'm writing a book for a publishing house that doesn't even lay out using computers. After the manuscript has been submitted, any changes are extraordinarily costly and time-consuming. That's just awful. But also somewhat beside the point.

    I'm talking particularly about collaborative processes, e.g. largescale coding projects, or website development, or even political discussion. There, paper is a powerful broadcast medium, but crappy for feedback response. A lot of it comes down to the whole CVS issue, making sure that everyone is, if you'll pardon the expression, on the same page. That's just too damn hard with paper if you're talking about something that multiple people are contributing to.

    If you're the only one working on a project, then paper is awesome. It's nice even to have paper copies of documents. But only copies. If I go to a meeting and meeting notes are handed out, that's pretty cool. But I'd want them also available in electronic form somewhere, preferably with some discussion mechanism attached.

    As everything we do becomes more and more "living", the advantages of paper will become fewer. Would you print out the code of some collaborative project to look at, if by the time you came back from the toilet the code would be changed in some way? Everything's going organic, baby. Fortunately, we can expect that paper will become "living" too. (See Diamond Age, e.g.)

    --

    --
    Make mine methylphenidate.

    1. Re:Paper is easier to read and edit, but.. by cpt+kangarooski · · Score: 2
      I agree with you that paper is easier to read and annotate. However, it's harder to shape, reconfigure, and retransmit.

      While I'll grant you all of that, the guy who's post you're responding to was discussing publishing. And on that note, many compositors still remember how to shape, reconfigure and transmit paper. It's messy and slow but we can do it. Because our _real_ media has been film, not paper. Except for the few lucky souls with digital presses, it still is. All hail film.

      obProgramming: film based computers would just be like really really slow crt based computers (which were used in the 40s and 50s, IIRC)

      --
      -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
  129. Grandpa speaks: Bill's to blame by Anonymous Coward · · Score: 1

    who's _really_ to blame?

    I remember the good old days, before Microsoft all software was bug free, fast, efficient, easy to use and cheap. What's more, the company that sold you the software, used to send a team cheerful techies who installed the software for you free of charge, answered all your stupid questions patiently, and gave you a warm hug when they left.
    There was such a thing as a helpdesk, but it was only ever used to thank the company for their great service, since there never were any problems.
    Then came Microsoft, and it all went downhill. They invented the bug, and shrink wrapped it, bloated with features nobody needs, and lacking in features everybody needs, and sold it for millions of bucks and your immortal soul. Because nearly everyone is stupid, and MS mainly target stupid people who don't even write their own kernel, MS made a bundle, while philantropic organisations IBM, and later Sun, were forced to include bugs in their software too, or face losing market share, which would deminish their charity funds.
    The most evil thing to date is, that MS demands an exploitative license fee for everyone who wants to include bugs in their software too.

  130. It's pretty simple... by Oxryly · · Score: 1

    All the talk about how "its the customer's fault" has a edge of truth to it.

    There are companies out there that strive to release solid bug free code "when its done". They get trampled in the marketplace because they take too long and offer too few features.

    Programmers are only human, and if you want to increase the reliability then decrease the functionality/features and increase the development time.

    Better programmers loosen the coupling between the reliability and features/development time, but only within limits.

    Oxryly

  131. People for Ethical Treatment of Software by Ellen+Spertus · · Score: 2

    New York, NY, Jan 13 -- People for the Ethical Treatment of Software (PETS) announced today that seven more software companies have been added to the group's "watch list" of companies that regularly practice software testing.

    "There is no need for software to be mistreated in this way so that companies like these can market new products," said Ken Granola, spokesperson for PETS. "Alternative methods of testing these products are available."

    According to PETS, these companies force software to undergo lengthy and arduous tests, often without rest for hours or days at a time. Employees are assigned to "break" the software by any means necessary, and inside sources report that they often joke about "torturing" the software.

    "It's no joke," said Granola. "Innocent programs, from the day they are compiled, are cooped up in tiny rooms and 'crashed' for hours on end. They spend their whole lives on dirty, ill-maintained computers, and are unceremoniously deleted when they're not needed anymore."

    Granola said the software is kept in unsanitary conditions and is infested with bugs. "We know alternatives to this horror exist," he said, citing industry giant Microsoft Corp. as a company that has become extremely successful without resorting to software testing.

    [I don't know who wrote this. I wish I had. -- ES]
  132. The solution. (Ask any hardware engineer) by Morgaine · · Score: 5

    Question: For similar levels of complexity, why do software systems typically exhibit many more bugs than (digital) hardware systems?

    Answer: Because the component parts of hardware systems are almost entirely isolated from each other internally, ie. almost all interaction is through the component interfaces. When one part fails, the others continue working: in computing terms this is very much as if each part had its own processor. The failure of one part can of course stop the hardware system as a whole from functioning productively, but it is far more common that only part of the overall functionality is affected.

    Solution: Use the MMU to isolate software components from each other and to make their internal structure entirely hidden, leaving only their interfaces visible (an OO approach is implied). Then multitask their methods using a dedicated event-driven component scheduler.

    Needless to say, this would require a dramatic change in almost all our software tools as well. Backward compatibility would be minimal.

    In academia I used to do research in hardware/software for parallel OO systems, and this is one of the ideas that popped up. I've had a design for a Unix Object Infrastructure based on this approach on my whiteboard for some years now, but the spare week of kernel hacking I had planned has never materialized. Perhaps this should be turned into a Linux or BSD community project instead.

    It would be rather nice for the free/open operating systems to take a quantum leap beyond the traditional Unix feature set, and possibly solve or at least reduce the woes of the software engineering industry at the same time. :-)

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    1. Re:The solution. (Ask any hardware engineer) by Morgaine · · Score: 2

      If anyone's interested, we could set up a mailing list and start brainstorming.

      --
      "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    2. Re:The solution. (Ask any hardware engineer) by jetson123 · · Score: 2
      Solution: Use the MMU to isolate software components from each other and to make their internal structure entirely hidden, leaving only their interfaces visible (an OO approach is implied).

      Using the MMU for this purpose is a poor engineering tradeoff.

      C and C++ are exceptional among programming languages in terms of the poor fault isolation they provide. Most languages do better. Some, like Java, do very well.

      However, while lack of fault isolation is one of the biggest problems in C/C++ software, even with excellent fault isolation, there are still plenty of bugs possible.

    3. Re:The solution. (Ask any hardware engineer) by Morgaine · · Score: 2

      Using the MMU for this purpose is a poor engineering tradeoff.

      The standard allegedly "good" engineering tradeoff (providing isolation through language alone) is the source of precisely the problem outlined in the article. Since you mention C++ and Java, all real-life non-trivial programs in C++ are permeated with leaks in the object encapsulation, aided and abetted by the amazing actual complexity of the language which only becomes clear after you've experienced it in the field. [And as a C++ developer until recently, I have, alas.] As for Java, its far better attempt at protection makes programs sufficiently slower that the vast majority of commercial software manufacturers say "no thanks" and stick with C/C++ in order not to lose the competitive edge.

      The theory of pure software OO is great. In practice, it hasn't worked, and we're still stuck with the problem of endemic unreliability when programming in the large.

      All the above problems are compounded by the fact that all the objects are in one and the same reliability pool. One bombs its processor and they all bomb. Object-level, hardware-assisted multithreading is the only way around that on a single CPU machine.

      Finally, yes, bugs are still possible even given the proposed Unix Object Infrastructure, that's very clear. However, each object fault would kill only one object directly, while the rest of an application would continue running with a reduced functionality determined by how the failed component interacts with others through its object interfaces. Huge complex systems typically have a plethora of independent paths running through them, so the isolation of fault lines is statistically likely to produce a marked increase of resilience in the face of internal software bugs. And that was what the article was all about.

      --
      "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    4. Re:The solution. (Ask any hardware engineer) by Morgaine · · Score: 2

      Note that if a JVM were implemented on top of a hardware-assisted system as described, UOI/Java would in many cases run faster than UOI/C++ or UOI/C, because the non-objective parts of C and C++ would have no hardware protection and therefore would be slowed down by substantial defensive programming code that would be almost entirely absent in UOI/Java.

      --
      "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    5. Re:The solution. (Ask any hardware engineer) by wocky · · Score: 4
      Question: For similar levels of complexity, why do software systems typically exhibit many more bugs than (digital) hardware systems?

      In my opinion, they don't.

      I've heard the "hardware engineers know how to build reliable complex systems" argument numerous times, usually from hardware engineers. But the software they complain about is far more complex than the hardware by several measures.
      • It requires much more control state to describe the software.
      • The environment that that the software has to contend with is much less well-defined.
      • The functionality required of hardware is much less than that required of software.

      For a typical digital chip, there is in fact some software which is exactly as complex: the hardware description language code for the chip, and perhaps a cycle-accurate simulator written in something like C. How many bugs are there in these pieces of software? As many as there are in the chip.

      A modern CPU may have hundreds of errata, but most go unnoticed. You just don't get many level 3 interrupts while a floating point instruction is stalled waiting for the translation lookaside buffer. Besides, if the problem causes the system to crash, the user will just blame Windows anyway :-P.

      The hardware engineer complains "but those are very exceptional conditions..." Exactly, and they're similar to the type of situations that tend unmask software bugs.

      People are inherently bad at envisioning corner cases. The digital hardware engineers are lucky in that they at least have a well-defined finite-state abstraction to work with. You can buy commercial tools to help with test generation and state-space exploration. The corresponding tools don't exist for software.

      It's true that hardware engineers have to deal with issues such as signal integrity and noise, metal migration, power supply droop, and so on. They generally do a fairly good job on these, but these are all phyiscal issues related to implementing the digital abstraction. As such, they are amenable to the standard engineering practice of giving yourself a little extra margin. If we knew how to easily provide extra margin for discrete behavior, software would be a lot more robust.
      --
      David
    6. Re:The solution. (Ask any hardware engineer) by Anonymous Coward · · Score: 0

      Maybe now the world is ready for Lisp Machines, as opposed to fifteen years ago. Or at least Java Machines to pave the road.

    7. Re:The solution. (Ask any hardware engineer) by Salamander · · Score: 1

      >Solution: Use the MMU to isolate software components from each other

      Great idea! And I'm not just saying that because I pretty much suggested the same thing in one of my own posts. ;-) Now...when are the hardware designers going to give us hardware on which MMU manipulation isn't such a performance-killing pain in the ass? Better granularity would be nice too.

      --
      Slashdot - News for Herds. Stuff that Splatters.
    8. Re:The solution. (Ask any hardware engineer) by Virgil · · Score: 1

      The main reason that hardware is more reliable in my opinion is that the testing is much more stringent in hardware designs than in software designs.

      The reason for this is hardware is expensive. There is a real cost associated with a piece of hardware, someone somewhere had to have built it. Software on the other hand is relatively free. Sure you have development, marketing, and distribution costs, but no more than any hardware design. But once the design is done, you can ship as many copies as you can sell for almost nothing. You can't do that for hardware.

      In addition to this, you can't ship a patch to hardware (well you can sometimes, but it normally isn't very easy). If there is something wrong with a hardware design, it normally has to be recalled (if the hardware company is willing to take responsibility for the bad parts). This is much more expensive. Look at the Pentium bug. Ultimately it was a very smart stratagy for Intel to recall the bad parts, but you know that it cost them an arm and a leg.


    9. Re:The solution. (Ask any hardware engineer) by Anonymous Coward · · Score: 0

      This is not an acceptable solution in that it is too slow. Look at the Newton. The Newton was a practical embodiment of all these academic ideas of encapsulation and abstraction. And it was SO SLOW---a Newton running on a 160MHz StrongArm feels slower than a Pilot running an 8MHz 68000.

      Another issue is how backward compatible are you willing to go. Bwds compatability makes everything so much harder. This is just as true under Unix as under Windows---there are plenty of suboptimal things in Unix to retain compatability---and that's compatability at the API level, let alone at the binary level.
      Even with the best will in the world, you hit problems. If you look at QuickTime, it was designed from the start as this component model with APIs between pieces, in the hope that the abstractions would be able to grow. In many ways it succeeded remarkably well. But when you try to apply the model to media that simply weren't envisioned in the initial design (for example MPEG with its out-of-order encoding and no tables into the stream for random access, or streaming media of indefinite duration), things start to get a little kludgey. Of course you can still get things to work---but it becomes more and more painful and less and less reliable.

      At some point you want to completely ditch everything and start again, saying "knowing what we know now, how do we design the architecture". But how can you do in the commercial space? People are frequently not willing to do that even in the freeware space.

      All these comments about "well-defined API, use of OO, design patterns etc" are frequently beside the point. They are useful if you are doing the same thing that's been done many times, and you now know all the surprises. They are not useful when you don't know what are you doing now and really don't know what you'll be doing in a year.

      In the space of OSs for example, people have been dealing with the main ideas of OSs for long enough that there are few surprises left. There are arguments about details, but general agreement. But get beyond that to say distrbuted file systems---if you want varying levels of transparency and migration here, people are still trying to figure out how to solve this. Get beyond this to an issue like "how to deal with interesting video hardware---maybe an mpeg decoder, maybe a video capture card" in some fashion that's generic, that plays well with other apps, that allows some degrees of sharing and not others etc, and you're in a wild terrain where no-one knows what the hell they're doing.

    10. Re:The solution. (Ask any hardware engineer) by Nopaca · · Score: 1
      I'm afraid that I don't have the hardware background to really add much technical talent to such a project. However, I am very interested in discussing this proposal, since I've been wondering about the possibilites of such a system organisation for a while now. There may be additional reasons that a viable form of this arrangement could improve the quality of software.

      However, you have left no way to reach you. If you read this, please send me an email.

  133. Foreign Programmers Cause The problem by Anonymous Coward · · Score: 0

    Things have got a lot worse in the last few years due to the willingness of employers to use H1 visa type programmers with minimal skills and experience, because they will work cheap, and never say no. Most of the time they are not willing to stick up for themselves--must be a cultural thing from a rigidly stratified caste based society---or their work.

  134. Yes, but... by Joseph+Vigneau · · Score: 1
    Did Linus divvy up his time like this writing linux. I bet he just started coding.

    Linus didn't have a schedule to keep, or clients to satisfy :^)

    1. Re:Yes, but... by Anonymous Coward · · Score: 0

      And the design was mostly done already.

  135. Bogus Comparisons by Anonymous Coward · · Score: 0

    I'm sick of comparisons between software and various unrelated products, i.e. in the article (paraphrased), "If manufactors created razors like current software then ..." etc. So what ? Software is required to do *way* more then 99% of other products. A razor does just *one* thing, my computer does millions of really complicated things.

    1. Re:Bogus Comparisons by Anonymous Coward · · Score: 0
      And here I was, thinking that computers just performed boolean operations (AND, OR, and NOT) on patterns of bits. Silly me! Computers aren't really just collections of logic gates, after all! Imagine my embarassment for discovering that.

      After all, if all they were were logic gates, then a comparison with a razor blade, or some other binary device, would be eminently reasonable. Indeed, it would be the only sensible comparison you could make.

      Software is required to do TWO things and TWO things only. For EACH function, the PRECONDITIONS must be met at the start and the POSTCONDITIONS must be met at the end. NO other requirements exist. And, if those requirements were met, no bugs would exist, either.

      My computer doesn't do anything complicated - it performs basic binary operations on basic binary data. Nothing more. Older computers performed octal operations on octal data, or decimal operations on decimal data, depending on the era. Now, THOSE were complicated! Binary stuff, in comparison, is trivial!

  136. Indistinguishable from magic by JohnBigBoote · · Score: 2

    The following snippet of wisdom is attributed to Arthur C. Clarke: "Any sufficiently advanced technology is indistinguishable from magic." You've probably seen it come by thanks to /bin/fortune. For all intents and purposes we are at that point today with computers. Now, of course, if you ask someone, "are computers magical?" they will respond in the negative. But consider how people treat computers and how people treat mystical or magical objects. Magical things are acausal, random, and only to be handled by the priesthood. Computers are acausal, random, and only to be handled by the (computer) priesthood. In this regard, the flakiness of computers adds to their mysteriousness. And even the priesthood is not immune to this. The first thing a computer programmer will do when his or her program crashes is to run it again! As if maybe this time it will work and the bug will just be gone somehow. The social implications of magical technology are huge -- without a proper understanding of what technology is and what it can or can't do (and how it should or should not behave), the general public will continue to accept buggy software and, when it crashes, attribute it to the anger of the gods.

  137. Why does Windows crash so much? by webster · · Score: 1

    She said:
    "Why does Windows crash so much?"
    I said:
    "Why don't you use an operating system that doesn't crash? Besides, it's free!"
    She said:
    "It's just too hard to learn."
    I said:
    "I guess you just answered your own question."

    --

    Information is not Knowledge
  138. Is it the tools/way software is developed?? by F13 · · Score: 1

    Does anyone think its the tools that are used now to develop software with maybe are just not sutible for the fast pace of development. I know there are rapid development tools and the like (that are supposed to speed up development time - arn't they, but do they improve it??), but what if the bugs are in the development software.??

    What I'm trying to get at is the way software is developed wrong or just not sutible any more ??. Do we need a new way?

  139. Some real-life examples of poor testing by jd · · Score: 1
    The European Airbus aircraft was fitted with an automatic override system, to prevent the pilot from performing dangerous manoevers. At it's first public showing, the pilot flew low over a forest. The computer detected an apparently smooth surface below it, decided the pilot was trying to land, determined the landing gear was still up and the speed was too great... All on board (journalists and crew) were killed. The pilot, not the software company, was blamed.

    The Ariane 5 rocket was one of the most advanced, computer-controlled rockets of it's time. The level of software control was amazing. In it's first flight, it blew up. The programmers had apparently put an incorrect sign in a calculation and the guidance system went into a catastrophic positive feedback loop.

    London's 999 service (the UK's version of 911) was partially computerised in the 1980's, with ambulance requests being relayed and dispatched by computers. The monitors were set to display each request. If an unanswered request was pushed off-screen, a warning message would be added to the display. Unfortunately, this is an unstable feedback loop. On one busy night, the entire system freaked, loosing a large number of calls and sending the displays into an inescapable infinite loop of error messages. An unknown number of people died, that night, from these bugs. Beyond a brief mention by the national press and the return to a manual system, no attempt was made to hold the software firm accountable for injuries or deaths resulting from badly-tested software.

    Software I've had a hand in debugging, for a company that will remain nameless, has had astonishing, trivial bugs. Some were through using positively ancient 3rd-party libraries (ever hear of upgrades?). Others were caused by the AWFUL output of automatic code-generators that rival The Last One in their uselessness. Absolute filepaths littered the code (gggghhhh!!!). An apparent ignorance of what a compiler warning means further led to shoddy code. I re-wrote the application, almost from scratch. The compiled binary, for a Sparc Solaris 2.5 box started off at 11 megabytes. After upgrading 3rd party components, and doing the code PROPERLY, I reduced the size of the binary to 1.5 megabytes. With a bit more time, I could probably have fitted this evil monstrosity onto a single floppy. I want to know how the hell someone could write SO BADLY that the resulting code was almost an entire order of magnitude larger than it should have been. Never mind how most of that extra code was pure bug.

    The PDP-8 had an interesting bug in it's firmware. Popularly known as the HCF ("Halt and Catch Fire") instruction, the computer could be put into a catastrophic state which resulted in the computer self-destructing.

    A number of Commodore PET computer games, when released, simply failed to run. The software not only contained fatal bugs, it contained bugs that would have prevented any testing or use at all, crashing on initialisation. This software was never tested at all, before release.

    JAVA was originally designed for embedded devices and machinary requiring fault-tolerent software. It's licence specifically prohibits such uses and the language implies that it has not been ensured to work in the very environments for which it was intended.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Some real-life examples of poor testing by phliar · · Score: 1
      The European Airbus aircraft was fitted with an automatic override system, to prevent the pilot from performing dangerous manoevers. At it's first public showing, the pilot flew low over a forest. The computer detected an apparently smooth surface below it, decided the pilot was trying to land, determined the landing gear was still up and the speed was too great... All on board (journalists and crew) were killed. The pilot, not the software company, was blamed.

      AARRGGHHH!
      Airbus airplanes have many problems to do with computer control of the systems; however this accident did not depend directly on this computer control. But first, a few facts:

      • Three people were killed, not all. (There were 136 people on board, 130 + 6 crew.)
      • The flight control system has no way of `detecting a smooth surface.'
      • the landing gear was down and the speed was too low.

      In brief, the problem was that there was management pressure on the pilots to give "a good show". The pilots were too low (50 feet) and too slow, with engines at flight idle. The pilots were complacent and did not follow checklists. They overrode the flight control system, and did it too long; by the time the crew realised the trees were too close, well, the trees were too close. Those big turbofan engines take a little while to spool up, so even though the CVR [Cockpit Voice Recorder] transcript mentions things like TOGA - Take-Off/Go-Around power, they did it all too late.

      This accident actually is related to the topic of the thread but not in the way you think it is. The lessons are:

      1. don't let management pressure you into showing off and doing unrealisitc things; and
      2. don't rely too much on those automatic protection systems, especially when you override them. (Think how many times you have done something stupid while thinking you were an unpriv. user and then realised you had su'ed while you make that frantic reach for Ctrl-C...)

      Here are some links:

      The Accident Report
      The CVR transcript

      Anyone interested in the problems of and with automation in Real Life should be reading the RISKS digest.

      PS: The HCF instruction was a joke, son!

      --
      Unlimited growth == Cancer.
    2. Re:Some real-life examples of poor testing by Anonymous Coward · · Score: 0

      The Ariane 5 crash stemmed from assuming the well-tested Ariane 4 software would work fine in different hardware. They ran without overflow exception checking, read some nonsensical value from a device Ariane 5 wasn't meant to use after launch, the avionics went nuts, and they had to destroy it.

    3. Re:Some real-life examples of poor testing by mce · · Score: 1
      Your description of the Ariane 5 problem isn't exactly accurate. For more information about what happened, check out the ARIANE 5 Flight 501 failure report, which is the official report about the accident. It is, however, correct that it was (amongst other things) a case of poor testing.

      --

  140. It's the Customers Fault by thales · · Score: 1

    How do most customers react to buggy software? They buy Brand X'es DooDad 2.0. It crashes several times a day, locks up the PC, and runs slow as hell. They spend a year downloading patches, that sometimes work, finding workarounds, and ignoring some of the bugs. Brand X ships DooDad 3.0. Do they tell them where they can stick it? NO, They send them 50 bucks for the upgrade! Buggy software will last as long as there is a market for it.

    --
    Quemadmodum gladius neminem occidit, occidentis telum est
  141. Only buy where you can return. by Anonymous Coward · · Score: 0

    You can choose where to shop you know.

    I do take buggy software back and get a refund.

  142. Well.... by Anonymous Coward · · Score: 0

    IE Crashed twice on my while reading this article. Isn't that nice?

  143. A fine example by skroz · · Score: 1

    I experienced such a moment today. While using a piece of commercial, closed source software today, I discovered a simple bug, one that could _easily_ have been fixed had I access to the source. Since I'm not using the most up-to-date version of the company's software, I'm forced to either upgrade, or do my best to work around the bug.

    I'm not suggesting there's some kind of conspiracy among commercial software developers, but it is frustrating to see a mistake made that any programmer worth his keyboard would have easily spotted. Why do things like this happen? Because companies throw more and more programmers at a taksk, hoping to solve a problem with sheer numbers. When will they learn that quantity is no substitute for quality?

    Argh.

    sKroz

    --
    -- Minds are like parachutes... they work best when open.
  144. Look what capitali$m did to me! by gsherman · · Score: 1

    Let's see...

    * Pulling down the big bucks (6 fig's if I worked full time, which I don't) as an independent contractor.
    * Working 80% from home to do development, 20% on-site to install stuff and hold hands with my users.
    * Work at my own pace on whatever schedule I choose, with the only criteria being that I pump out working stuff for people in a reasonable amount of time.
    * Control over what technologies I use on a project. Users are happy to let you choose what to use, especially when you tell them you're much more likely to achieve success with oss-product x than css-product y. More importantly, to ensure that my stuff works, I climb up on the backs of smart guys by reusing their open source code and objects (***Code Reusability*** should be getting a lot more mention on this thread!).
    * The choice to accept or decline projects, so I don't get myself in a real jam.

    WDK, do you really see me having a better life in the world you envision? If you take every point above and picture it in a Marxist/Leninist/uniform/sameness-type work, these things just evaporate! The freedom I have simply goes away. I become a clock-puncher like everybody else, or the converse: every software developer gets to live the good life like myself, which I don't see happening all at once.

    You might say I'm privileged to have these conditions. I do feel fortunate, but not particularly special (every couple months or so I learn that a friend or acquaintance of mine has negotiated themselves a similar set of circumstances). Thankfully I live in a socio-economic system that makes all this possible. And of course, I have to perform in order to make this happen as well: I do my work methodically, pay attention to the details, listen and respond with lightning speed to my users, and constantly seek out the latest and greatest bounty of code/objects the web has to offer. (Needless to say, I am very grateful to the entire open-source movement.)
    Well, you must have expected you'd get a response from well-fed capitalists (in the US, at least). Good luck on proving your ideological stance to others, but for now I just ain't buyin'.

    Yours,

    GSherman

  145. politics, enonomics, and other ramblings by MillMan · · Score: 1

    I've seen a few good responces here about how a lot of this boils down to capitalism, or at a level lower than that, human greed. When microsoft releases a new product, they don't do it because they want to distribute an improved version to everyone, they need to make money, or they go out of business. This is no secret. Everyone knows it. Open source is a different philosophy. I'm not a linux expert, but generally it seems new linux code is released when it's truely ready, and is either something new, an improvement, etc. Not just more bells and whistles. Of course human greed it still a part of this, we can't really escape it. But I'm sure you'd agree that linux is a superior operating system. So even with human greed present, we can still improve on a lot of things. Those who say otherwise can frankly go to hell.

    Capitalism pretty much dooms us to the microsoft scenario, forever. In a capitalist system, you either kill, or you are killed. Microsoft suceeded at this, by whatever means necessary. They did what they were "supposed" to do.

    The software industry bears out problems with our system more than many others. I'll compare it to the auto industry. First, keep in mind that the auto industry has PLENTY of recalls on their cars. In fact, you see product recalls all the time, in every industry. Any given car probably has a few problems. But these few problems aren't necessarily going to crash the car and kill you. Plus many of the problems happen over time. With software, everything has to work just about perfectly or the system crashes. Many of the problems with cars build up over time, parts wearing out, etc. With a computer program, this time interval is going to be very short. If you have some sort of cascade error, etc, when your processor runs millions of instructions per second, its going to crash really quickly. So really I don't see the software industry as being much different as any other. They all have their problems.

    As posted in other responces, short timelines and marketing play a big part of the problem. Again, I don't see much of a difference between this and any other industry. Marketing exists everywhere. The marketing department doesn't care about saftey, functionality, etc, they only want what will make them money. The only thing that holds them back is the threat of lawsuits and bad publicity.

    Any economic system that puts money before anything else is bound to have these problems across the board. There is no escape while you're stuck in the box of capitalism.

    Think I'm just some anti-social communist who hates society? If so, ask yourself why you had that reaction. You're taught from birth not to challenge the way things are, or be different. Those that do are labeled outcasts, troublemakers, etc. There were a lot of good posts on this coming out of the littleton colorado tradgedy here on slashdot, so I won't expand on that any further.

    By our culture's standards, Bill Gates really is the ideal man. He's sucessful. He has a lot of money. He has more money than the total GDP of the 50 poorest countries in the world (give or a take a few, I can't remember the exact number I read). Does he deserve that? I don't think so, and I don't think you do either.

    The level of technology we have achieved has given us the power to give everyone the necessities, food, water, shelter, etc. Yet we can't even achieve that. Black people are lazy and violent, 3rd world countries are run by corrupt governments, so if they go hungry, its their own damn fault, right?

    An economic system is basically just a way to distribute scarce goods. We don't have to convert to communism, socialism, or any other -ism to improve the average person's life, materially and mentally. We just need to find a better distribution method, and a better model for what should be produced, and how to go about it. Easier said than done of course, I don't have any simple solutions, because there aren't any.

    So instead of just asking yourself "why does bill gates suck so bad?" ask yourself "what forces in this world made him what he is, and allows him to continue with what he is doing now?"

    We all have to be part of the solution, because the citizens of this country collectively control this country. We have simply given those "in power" the actual power. When we don't ask questions, they'll do what they want. If we ask questions and make demands, they'll do what we want.

    This is the real road to solving "why software sucks" along with most other problems. It's not as easy as just getting more time to code or having power over the marketing department.

  146. We sabotaged the media and shipped by Anonymous Coward · · Score: 1

    At one company I worked for (sometimes known as the "IBM of the UK"), vital parts of the product hadn't been coded at all but we "shipped it" on time. What we did was begin to write the tape and then forceably interrupt the tar. Then we shipped "on schedule".

    This bought us an extra week so we could ship something that had at least compiled! Needless to say, the product sucked then and still sucks today!

    1. Re:We sabotaged the media and shipped by Anonymous Coward · · Score: 0

      This sounds like the hard drive manufacturer that paid their employees to place orders, and then shipped bricks to them. Something about meeting a quota to keep the stockholders at bay.

  147. Yada yada yada... by Anonymous Coward · · Score: 0

    This is the software crisis revisited. Brooks pointed it out over 20 years ago. Guess what? it still hasn't been solved. Only now, we have millions of more computers, running billions of lines of source code. It just makes the problem much more visible.

  148. Except for GNOME, of course by Anonymous Coward · · Score: 0

    Subject says it all

  149. Not all software sucks. Features vs stability. by Anonymous Coward · · Score: 0

    Customers are just getting what they will settle for. That's the free market for you. The free market is not supposed to give what you need or want. It's supposed to give what you will most willingly settle for.

    You can get stability: remember there are mainframes which have been running even before some of you here have been born. Some of those apps may actually run for years or nearly decades.

    A problem for most PHBs and purchasers is that you can count features but you can't count bugs and reliability as easily.

    That said it is not impossible under many circumstances, but still people don't do it. I've seen lots of Tender specifications and requirements and so far have not noticed stuff like "Mean operating time before crash/unscheduled shutdown must be > 2 years, penalty for each crash = $XXXXXX ". Hmm, if I ever write a tender spec, I think I may put stuff like that in. Don't just specify downtime, specify lack of reboots, if not people like Microsoft will just work on making their stuff reboot even faster ;). Make them suppliers think and sweat a bit..

    Also no one has succeeded in throwing one of those "class action" suits at shrinkwrap software manufacturers. How come those idiots sue McDonalds when they spill hot coffee on themselves but don't sue Microsoft when Windows crashes and loses their info? Weird.

    Open Source Software is NOT the cure. The reason why Open Source Software _so_far_ is relatively stable is because for now the software is more programmer driven than feature/time (more features in a shorter time) driven. Stability is just a (desirable) side effect of current Open Source Software practices.

    If things change, and open source programmers start focusing more sticking in features by a certain date than on doing what they know how to do well, then OSS will be just as unreliable.

    Cheerio,

    Link.

    1. Re:Not all software sucks. Features vs stability. by Anonymous Coward · · Score: 0
      How come those idiots sue McDonalds when they spill hot coffee on themselves but don't sue Microsoft when Windows crashes and loses their info?

      Probably because Microsoft didn't refuse to pay for skin grafts after the users spent seven days in the hospital with third-degree groin burns from a Windows crash.

      There are lots of good examples of frivolous lawsuits; this is not one of them.

  150. An historical perspective on software development by cmarkn · · Score: 2
    Taking an historical perspective on software development, it is an art still in its infancy. The Programmer's Stone makes a reference to the design of cathedrals, how analysis using modern tools finds that they are well optimized. What it doesn't mention is that we only see the ones that survived. In the early days of cathedral building, many of them failed, literally crashing to the ground. Unfortunately for the people in them at the time, but fortunately for us, the failures were big enough that they could not be overlooked. And so the state of the art of cathedral building advanced with each failure.

    Nowadays most software failures are considered annoyances rather than catastrophes. Because of this, they don't justify the time and money it would take to advance the state of the art of software development. Nothing will happen until users recognize how much software, and for that matter hardware, failures are costing them, and start refusing to pay those costs on top of what they are already paying for the software itself, and become willing to pay the upfront costs to stop them in future development. That recognition will not come until something catastrophic happens. It will only be when enough people die because of a software failure that enough attention will be paid to the state of the art to make some genuine advances. Until then we'll be stuck with meaningless exercises in paperwork such as ISO 9000.

    Maybe then we can actually get some standards for hardware as well, so that the operating system doesn't care which sound card or which video card or which printer it has installed, just like when it sends email it doesn't care whether it is going to a Macintosh, a Linux box, a Windows machine, or a TV set.

    --
    People should not fear their government. Governments should fear their people.
  151. black art by Coffeine · · Score: 1

    Software engineering is still too much of a black art.

    Just take any software engineering course at your local University and you will see why. There are so many design methods, none of which solve the problem of producing "good" software. Nobody seems to know how to produce a good product. We know certain truths about design such as adding more programmers to a late project makes it more late, but most things are still a mystery.

    There are many reasons for late/bad software, I have heard users are to blame, managers and programmers themselves; that there are bad design principles, the specs were done poorly, etc. Even though we seem to know what we are doing wrong, why do we keep on repeating the same mistakes.

    A professor of mine blames it on poorly educated designers, i.e. people coming out of business colleges with a VB degree who think they know how to code the perfect system. I would have to agree with him here, I think managers and programmers both need more training in software engineering. Just because you can write a sweet algorithm does not make you able to design a complete system.

    All in all I still think software engineering is a black art, we know the problems but they are not solved. Sometimes we manage to produce a good system but this is rare.

    Anyone else care to comment.

  152. MSDN & MSJ by Anonymous Coward · · Score: 0


    MSDN is the biggest pile of useless crap I have
    ever seen. We do a great deal of windows
    development, and I can tell you from experience
    that MSDN (the official Windows docs) are awful.
    It is not reliable documentation (like one has
    under linux w/gnu libs) but simply content
    spewed out so that people think that microsoft
    is doing it's job.

    MSJ (the magazine) is marginally better, but
    unofficial (ie. the info there is "as is"). At
    least you get it from human beings, not the VB
    program that generated the MSDN docs...)

  153. Most have to keep mutating to avoid competition by Anonymous Coward · · Score: 0

    If they don't keep changing something else will eat em for lunch.

    Do you really believe all those DLL and API problems are mainly because Microsoft "screws" things up?

    Nah. It's because if Microsoft freezes DLLs and their APIs, they will end up like those BIOS manufacturers. And BIOS manufacturers don't make big money...

    Think about it. If the API's are frozen for > 2 years, someone is going to come up with a Windows compatible. Why do you think Windows 2000's dlls aren't quite the same as Win 95? Because of idiocy?

    Yes because users are idiots, and keep playing Microsoft's game even though they keep moving the goal posts. Give me the reasons why users upgrade to Win 2K and Office 2K- the most stupid and most common is "Because other people are doing it".

    Of course sometimes Microsoft screws up too - that's when they move the goal posts and the rest of their team haven't realised it yet ;). But it doesn't matter since customer stability + reliability expectations have gone down to an all time low.

    Cheerio,

    Link.

  154. Purely perspective, my friend. by Anonymous Coward · · Score: 0
    For me, the exact opposite is true. My NS 4.6 on WinNT crashes perhaps twice a week while my IE5 will bail at least once per use.

    One thing's for sure, using Windows sure makes computing an interesting crap-shoot. It's like trying to predict when someone will jump in front of your car.

    -SG

    NerdPerfect.com... Give me geeks or give me death.

  155. That's it... by Alternity · · Score: 1

    I send that URL to the management/sales/marketting team of our company. Let's hope this makes them realize a few things...

    --


    "If liberty means anything at all, it means the right to tell people what they do not want to hear"
  156. Re: Why GPL rocks by Jeremi · · Score: 1

    Show me some major bugs in NT that stops software development

    I won't do that (there probably are some, but I can't think of any real show-stoppers at the moment). I will point out, though, that Windows presents the developer with hundreds of relatively complicated and difficult-to-use APIs. Such a byzantine environment leads to bugs that would not have occurred in a simpler system.

    Windows tries to be everything to everyone, and also keep backwards compatibility with all software and hardware, all the way back to 1985. Complexity increases past the capacity of even the most intelligent programmers, and surprise surprise, out come the bugs.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  157. Opendoc by Anonymous Coward · · Score: 0

    Opendoc

  158. Re:here's an article for you by Anonymous Coward · · Score: 0

    Isn't it incredibly sad that there's an actual human being who thought it worth his time to type that? I'm drunk and I still wouldn't waste time typing that. Poor idiot.

  159. It's obvious :) by ceeam · · Score: 1

    Inaproprate tools!

    C - is a portable assembler and not many more IMHO.
    It's good for OS kernel and stuff, but doing something as complex as, say, a simple window manager in C is not justified. No, I can't point you a good alternative, but it MUST BE without 'pointer' concept. I'm 100% sure about that. Runaway pointer is a cause of almost all fatal program errors.

    C++ - is just a monster. Akin to PL/1 on old IBM's. Akin to M$.

  160. or by Anonymous Coward · · Score: 0


    Either that, or you could actually
    *engineer* software, rather than patching
    it together in a random fashion.

    Yes, it's hard. But it's possible.

    A start would be to not make product
    teams out of recent college grads.

  161. He's right by gabedude · · Score: 1

    I have had this happen to me lots of times. Press alt esc instead of rebooting and it will go away. I don't know if it is a windows bug though.

    --
    Wherever you are, there you are.
  162. Public ship dates aren't the only problem by Delf · · Score: 1

    Here's the explanation I got while working on contract at a major publisher of games and consumer applications:

    If you're working on commercial shrink-wrapped titles destined for home users (games, print shops, garden design, etc.,) most of the money spent on that class of software is spent during the Christmas Buying Season. It doesn't matter what date you announce; if you miss Christmas (which means in-store by October, which means Gold Master released to manufacturing in September) then your company is screwed.

    No matter how good your program, no matter how good your marketing, PC consumers just don't buy enough software over the rest of the year to make up for missing Christmas. Thus commercial titles get booted out the door in September, no matter their state of readiness. The announced ship date isn't really a factor in this segment of the software market. If it's on the shelf in October/November, it'll sell, no matter how buggy. If it's on the shelf bug-free on the promised date in March, it'll sell maybe 10- to 25% as many copies. As another poster pointed out, it's simple capitalist economics - make the most money, in the most expedient manner.

  163. Return software? Not around here... by cybersquid · · Score: 1
    An excellent article, but one point is interesting. The article states:
    ...the most serious criticism a customer can make is to "actually return the box. And that almost never happens."

    I don't know where they shop, but around here (S. California) the software stores will not accept opened software for return. Only as exchange for the same title.

    If it doesn't work with your system, then it's your fault. You didn't read the requirements right, or you have the wrong machine or something. It's your fault. Go away.

    Of course, those are Windows apps. I mostly run Linux, which is generally quite reliable. The applications with the worst reliability are non-open-source, commercial programs:

    • Netscape Communicator
    • Stardivision (now Sun) StarOffice
    • Corel WordPerfect (which I've given up on)

    OpenSource if definitely the way to go.

    P.S. - Netscape did crash while I was typing this.

  164. IMB? by Inoshiro · · Score: 1

    ""You can disclaim whatever you want," says Emery Simon, counselor to the Business Software Alliance, which includes giants such as Microsoft and IMB."

    Methinks they rushed this article a tad quick out the door, or a company named IMB as big as Microsoft or IBM exists -- and I've not heard of it! (shudder)

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  165. Re:That's what windows is heading towards by TummyX · · Score: 1

    Windows 2000/NT is heavily COM based now. Standard services are starting to have COM wrappers. DirectX was written using COM from the ground up.
    COM strictly speaking is for defining interfaces - which is a wonderful way to write programs (especially large sophisticated ones).
    isolated each component of your project and write and debug them seperately.

  166. Captialism=freedom, Marx=fairy tales by Anonymous Coward · · Score: 0

    Good grief, you are pumping Marx in 1999? How much more proof do you need that captalism won and that Marx failed?

    we all must have faith in the all-beneficent "invisible hand" of capital! Everything will come out for the best in the end! Sure it will.
    ...yes it will, and I'd wager money on it in a Julian Simon kind of bet any day.

  167. Return it? Yeah, right. by dalin · · Score: 1

    the most serious criticism a customer can make is to "actually return the box. And that almost never happens."

    Does anyone actually know of a store that will allow you to return software? Maybe even for cash back? The only one I know of is Babbages, and there's only one in my area at a local mall, and it's not even that big of a store. Selection is low, and what is there is 95% games, not counting the console section. These days, if it's open, the assume that you just copied it and want your money back. Who cares if the software really is crap.

    Hell, I even had this problem once with hardware. I purchased a cdr from a local, large business supply chain only to have them tell me that I had likely already copied what I had want to onto a cd, and that no, they weren't going to take it back. That was an intersting fiasco. In the end, however, they took it back. Muhah.

  168. parallels between revolutions by soren.harward · · Score: 1

    I'm working on a paper (which I eventually hope to be able to turn in for some class) dealing with parallels between the Information and Industrial revolutions. One of the major parts is about safety; at this time a century ago, the working conditions of most factories were terribly unsafe; think the Triangle Shirtcoat factory fire (lots of extremely flammable lint lying around; many young women died because of inadequate fire escapes so they jumped from the top stories of the burning building). It took some major (and much publicized) disasters for people to begin calling for safer working conditions en masse. I have the suspicion that it will take a similar mass failure in the electronic realm for a similar push for more bug-free software -- I don't claim to know what the failure will be, I'm just willing to bet that it will be a significant catastrophe. We've already had several minor accidents, like the Mars Orbiter or THERAC-25, but it's going to take something severe that affects many people, like a massive communications infrastructure failure. Though I don't think we have a lot to hope for right now, I have the feeling that eventually, peer-review of a program's source code (under any license, just as long as it's checked) will become basically mandatory, either by the laws of free-market economics or by (yuck) government mandate. The Free Software/Open Source communities already have the structures in place, putting us ahead in the game.

  169. Interesting by jfunk · · Score: 2
    That's a very interesting idea.

    It could have articles and documents about the software design process that programmers can learn from and send to their managers.

    Some interesting topics:
    • Why counting lines of code is a futile measurement.
    • How to write software that is truly intuitive and doesn't actually need signifigant documentation (but write docs anyway, of course).
    • How to write clear, concise docs.
    • Solutions to common programming problems/flexible software frameworks.
    • How to get your development teams to communicate effectively.
    • This list can go on for quite a bit, so I'll truncate it here.


    It would be a great first step to cluefulness.

    I'd be more than willing to help out in any way possible. I've had a lot of success with bosses in my own professional endeavours.

    But then again, my bosses have all been experienced engineers who actually listen to me and respect what I say. I guess I'm very lucky.
  170. Re:CTRL-ALT-DEL WARNING by Emil+Brink · · Score: 1

    Um, don't click that link. It leads to an evil page featuring infinite pop-up windows. Extremely annoying.

    --
    main(O){10<putchar(4^--O?77-(15&5128 >>4*O):10)&&main(2+O);}
  171. Software is like sex. by Courier · · Score: 1

    That's right. Software just like sex depends on what and how. Take windows for example. It might have all the pretty and "friendly" interface but if you look beyond that there isn't much to enjoy. Sex with a pretty person might seems great but it doesn't go to well if he/she is empty headed. Eventually you'll get tired of him/her. Software is like that too isn't it? You can buy Unreal and have all the nice little eye candy or you can get quake 2 which doens't look at nice but runs faster and doens't crash your machine.. So it's your choice.. chose the bimboware or the geekgirl/guy ware..

  172. Adios Computer Industry! by yorkie · · Score: 1

    I am thoroughly cheesed off with the whole industry. I've worked in support/servicing for around 10 years, and never have I had as many problems as now.

    I first realised that the industry was in a mess around 5 years ago, and wanted out, but I was still getting paid well, and was reasonably happy.

    Since then, things have gone downhill, but the icing on the cake was when I was supporting a Internet product, with a team of around 5 developers. The manager didn't have a clue - constantly changing specs, asking for new features at short intervals, and getting 'programmers' to modify each others code. I say 'programmers', as most of the code was actually Lotus Notes scripts.

    The product was appalling. We had serious problems getting working support for all major browsers. Additionally the major customer reported odd bugs with on version of IE3 that we could not replicate.

    The management then had some glossy brochures printed, listing features not implemented, or not tested, including non-Windows client support. The programming team had a few days to get the software to match the specs, and it still sucked.

    Eventually I got so pissed off that I never showed up after payday. I was happier not working for the next 3 months.

    Since then I have gone to support CA Unicenter - CA Unicenter seems to be the biggest heap of junk going, and they have the nerve to charge out on site visits to get it working, mainly due to the lack of accurate, in depth documentation. There is at least one, and sometimes three, CA engineers working on site to get the product working. There are also a number of 3rd party products that are equally as vile.

    I felt so bad this morning that I didn't want to power up my PC, purely due to the mess here.

    The big problem is that there is nothing else I am experienced in that will pay my mortgage.

  173. Microsoft's view on shipping quality software by Dacta · · Score: 1

    http://msdn.microsoft.com/library/Welcome/dsmsdn /stone033099.htm

    (You may need a free Online MSDN account ?)

    I quote:

    My father was a software engineer, from the 1950s until just a few years ago, working on trajectory systems for spaceships, and eventually solving such problems as, "What is the formula that gets a Volkswagen from Florida to Jupiter?" In all that time he knew of one production bug (notwithstanding having me as a son). When I tell him that I've never heard of a major software release that didn't ship with scores of "known issues," he reacts as if I had thrown acid in his face: he takes off his glasses, shakes his head and rubs his eyes really, really hard. You see, when I was a kid, after a good day of work my dad would bring home pictures of other planets his programs helped make possible. Now, when I visit him, it's everything he can do not to beat me with his walker for my past involvement in ActiveX.

    I think this is called the "near enough is good enough" principle of software engineering.

    In their defence, having worked on huge, understafted projects, I agree with some of their points.

    1. Re:Microsoft's view on shipping quality software by Anonymous Coward · · Score: 0

      Ha! That's great!

  174. Re:Mythical Man Month: The bazaar model by Anonymous Coward · · Score: 0

    Linux is never a late project. It comes out when its done. That's the crucial difference -- no hard deadlines.

  175. just digging a deep hole by madpuppy · · Score: 1

    no matter what the reason that commercial software is buggy, articles like this one will only make people see the true value of Open Source Software. having laws passed to wash thier hands of responsability/liability is not a way to gain a loyal following of repeat customers. The true power and value of the OSS alternative is evident more and more every day, propriatary software digs themselves deeper and deeper into the mire with these tactics while OSS plugs away improving and refining without worrying about deadlines or BIG profits.

  176. The Inmates Are Running the Asylum by jonr · · Score: 1

    The Inmates Are Running the Asylum by Alan Cooper says it all. Go and read it! It very nicely summarizes what is wrong with this industry, and has some good ideas how to fix them.
    J.

    1. Re:The Inmates Are Running the Asylum by Anonymous Coward · · Score: 0

      Was your copy of the book bound upside down? Mine was, so I was wondering if this was a statement by the author or just a manufacturing error.

  177. Re:CTRL-ALT-DEL WARNING by m3000 · · Score: 1

    That was the point of the link, to give an example of when CAD would have to be used. I guess I should have explained what would happen better though. Sorry if I caused any fustration.

  178. wrongo by JamesKPolk · · Score: 1

    Funny that the guy who invokes Karl Marx is the same guy who invokes the christian Bible. Of course, "anonymous cowerd" couldn't even get the biblical reference correct. It's "The love of money is the root of all evil", not money itself. Big difference there, if you happen to live by the Bible.

    And I presume "anonymous cowerd" doesn't, because he agrees wholeheartedly with Karl Marx, the guy who spelled out the following goals, among others, in the Communist Manifesto, section 2: (translated by co author Frederick Engels)

    1. Abolition of property in land and application of all rents of land to public purposes.

    2. A heavy progressive or graduated income tax.

    3. Abolition of all right of inheritance.

    4. Confiscation of the property of all emigrants and rebels.

    5. Centralisation of credit in the hands of the State, by means of a national bank with State capital and an exclusive monopoly.

    6. Centralisation of the means of communication and transport in the hands of the State.

    7. Extension of factories and instruments of production owned by the State; the bringing into cultivation of waste-lands, and the improvement of the soil generally in accordance with a common plan.

    8. Equal liability of all to labour. Establishment of industrial armies, especially for agriculture.

    9. Combination of agriculture with manufacturing industries; gradual abolition of the distinction between town and country, by a more equable distribution of the population over the country.

    10. Free education for all children in public schools. Abolition of children's factory labour in its present form. Combination of education with industrial production, &c., &c.

    This list is quoted directly from the Communist Manifesto, as translated by frederick Engels. Now, this was written about a century ago, so some of these things aren't so revolutionary now. However, he who claims to support Marxism must support all 10 of these, and some others:

    The bourgeois family will vanish as a matter of course when its complement vanishes, and both will vanish with the vanishing of capital. -- Communist Manifesto, section 2

    So the state will raise everyone's children.

    The bourgeois sees in his wife a mere instrument of production. He hears that the instruments of production are to be exploited in common, and, naturally, can come to no other conclusion than that the lot of being common to all will likewise fall to the women. -- Communist Manifesto, section 2

    Obviously women who marry are just the tools of their husbands, Marx thought. So, let's just abolish the whole thing.

    I don't loathe communism, and socialism, due to any "brainwashing." I have perfectly good reason to oppose it all/

  179. Re:Mythical Man Month: The bazaar model by Gid1 · · Score: 1

    I think that's the key to it... as soon as there's a deadline, compromises occur.

    If a programmer/designer knows they have a deadline, they usually work to that deadline, and as a result, will break that deadline.

    Of course, the alternative, no deadlines, may stop the project ever finishing. A happy medium is needed.

    I'm contracting at a very large computer company at the moment.. my original manager was great, and set targets, but then understood when we broke them. It worked well.

    Then a new manager took over (one who needed a really good beating with the clue-stick), and started acting like a twat. The project then became late. And later. And later.

  180. Objectiv testing. by homomorph · · Score: 1

    What we need is an objectiv messure when
    a testing for a programme is complete.

    Not many testers og programmer knows it.
    But there is a kind of tools called
    covering tools that gives that kind
    of objectiv messure.



    1. Re:Objectiv testing. by AeiwiMaster · · Score: 1

      What is this covering tools?
      How is thy used ?

      Do you have any links ??

    2. Re:Objectiv testing. by homomorph · · Score: 1

      Here your can read about Code Coverage Analysis.

      Does anybody know if the linux kernel is tested with a covering tool ?

      If not it could be a great project to do.

  181. I wasn't going to bother, but.. by Kitsune+Sushi · · Score: 1
    Flame on! I'm gone..
    I'm so sweet like a nice bon bon..

    Let the debunking begin!

    The opensource movement doesn't have enough control to be fully recognized by the article. Aside from that, OpenSource software is STILL plagged by these problems.

    First off, I don't think I said open source. I said free software .. Second off.. what is meant by "plagged"? Maybe you're trying to say "plogged" (a retarded way of saying "plagued")? I dated a girl from Wisconsin once who hated hard a's, and pronounced as many of them as she could in this incorrect fashion. "I've got the plog!" It was really scary. =P

    At any rate, you're trying to say that the free software movement doesn't have enough clout.. not control.. the FSM isn't synonymous with Big Brother, you know (or.. maybe you don't know..). And yes, it certainly the fsck does. Luser.

    Redhat can't go a week without having a security problem found. It rescently IPO'd. I only expect this to get worse.

    This is incredibly vague. Er, I mean "vog"!

    Both KDE and Gnome have some serious problems. Partially due to the small number of developers on the projects trying to do a big job.

    Wow, you're so.. specific.. big boy. Yeah, right. Care to define "serious problems"?

    The Linux kernel (ugh..) also has some very serious problems. Albeit not as bad as the more popular windows, not as good as it could be.

    Hmm.. More ultra-specific detail.. I bet your gf (or bf, or, well, whatever.. one can't be too presumptuous these days) must know precisely what to do in bed, so good are you at making your thoughts clear!

    In my conclusion, GPLing doesn't make for a better product. Just makes people feel better about themselves. As linux becomes more commercialized, these problems will only get worse.

    How in the fuck did you conclude anything? All you said was "those things have problems". Hell, my life has problems, but I wouldn't consider it total lossage (not just yet, anyway). If you can't actually back up anything you say, why bother saying it? Just to try and troll? Why don't you get a real distro like Debian, smart ass? =P

    GPL makes for a better license. This better license allows for a better development model. This better development model allows for better products. Will everything that is GPL'ed kick ass? No. Will the stuff that does (or could) actually be worked on, while everyone ignores the stuff that sucks? Yes.

    By the way, you seem to think that anything "commercial", by definition, sucks ass. Do you think that Red Hat and the other companies that put together distros write the entire OS? Or even most of it? Or that every company in the world is a seething pit of 9 to 5 code monkeys who can only dream of the ultimate enlightenment that is hackerdom because they aren't "cool" enough by your standards? heh.

    I still fully believe that the best Linux kernel & library set was around the 1.2 kernel releases. I don't see this changing for quite a while.

    You apparently have a sickness. Have you gotten that checked out yet?

    OS/2 was quick at fixing bugs, but it shipped with alot of them. Microsoft obviously has bugs (notice how it performs better if everything on the machine is M$ though?). Macs die too.. Don't forget that. Linux takes a little longer to kill, but just give it a load over about 25 and watch it plummit.

    That's really.. exciting. Or.. ah.. not.

    BeOS will be my next try... I hear its great for multimedia stuff, but not to expect much in the office suit department.

    Did anyone really give a fuck what OS this nut is going to try next? Is that not totally offtopic? =P

    Yes, yes... Linux is still more stable than some of the others. I just wish the hardware that was reported as being supported, was truely (stably) supported. SBLive anyone?

    Again, you're so.. specific.. For all I know you're not even using Red Hat, but rather one of those really gimpy distros, like, ah, what was the name of it.. LinuxOne or whatever? =P

    Personally, I think all of this person's arguments stem from the following:

    User Info for rtaylor (70602)
    http://www.idiotswitch.org
    Karma 1 (mostly the sum of moderation done to users comments)
    User Bio
    FreeBSD User and Electronics student...

    Naturally I don't care if FreeBSD folks don't care much for GNU/Linux, but if you're going to try to argue a point, at least back yourself up with some examples.. some kind of evidence.. So you sound a little less like a troll and more like an actual biped. ;) By the way, no, I don't think all FreeBSD users are fanatics. I think this one, however, is. Of course, there are fanatics everywhere. They all scare me. ;)

    In short, when I read that post, the words "holy war" came to mind. ;)

    --

    ~ Kish

  182. software tougher to make than soap . . . by werdna · · Score: 3

    Even when there exist objective criteria defining what software is intended or supposed to accomplish, and even when there exist objective and consistent criteria concerning aesthetics of UI design, art and related subject matter, software is just plain hard to make.

    Software is much tougher to make than soap.

    Why? Because even a relatively trivial program involves express specification of changes to a massively large state space. In the analog world, an engineer infinitely narrows the scope of vastly larger state spaces to be considered by making assumptions that things behave continuously -- not so with code, which grows combinatorially and discontinuously complex with each additional variable, object or control statement.

    Nowhere does this become clearer than when one is asked to engage in true quality control: proving a program correct. Methodologies that work beautifully and elegantly in the small to demonstrate the accuracy of a code segment grow unmanageably out of control when facing a 100,000 to 1,000,000 line program. And in turn, we then have the bugginess of the proof --viz. was the spec specified adequately-- to consider as a new "quality control" issue).

    Even the very process of quality assurance in code is harder than Q/A for soap. A scientist may often presume safely, and can often prove, that if the soap behaves properly at two ends of a temperature range, that the soap will behave properly between them. This is almost never the case with code, it being in the nature of digital things to exhibit discontinuous behavior.

    The bottom line is that excellent code is enormously expensive -- requiring only the brightest, best and most sophisticated management, quality assurance, design engineers and technicians. Noone wants to pay for what they claim they are entitled to expect. However, this is like most things in life. You can get:

    Good. Fast. Cheap.

    but you only get to pick two.

    Regrettably, management is evaluated more closely for fast and cheap, so noone really worries about good, just so long as its "passable" (and its often easier to pass blame to the coders for "good" than it is to blame them for "fast" or "cheap").

  183. Some Ways In Which This Article Sucks by bcaulf · · Score: 1
    All quotes are from the original article by Clive Thompson.

    • Thompson seems to think bugginess is new.

      The software industry's response to this crisis is to concede defeat-to shoot for software that's "good enough." What "good enough" means is, of course, a matter of some debate, but critics say it is quickly becoming a euphemism for "riddled with errors"-particularly in the overheated, rush-to-market realm of net apps.

      Software has been rushed to market ever since there has been software. Net distribution has reduced the friction of putting out a new version and made it practical to have a massive public beta or to cheaply distribute a patch to new customers. But good enough software goes back decades earlier. Unix was developed as "good enough" for cryin out loud.

    • Thompson seems to think that released bug fixes are a measure of bugginess.

      Windows NT, hyped endlessly as a way to revitalize computing, was shipped in such a state that this year Microsoft released its fifth-fifth-"service pack," designed partly to patch the latest swarm of bugs.

      That's just stupid. True, if a package were bug-free, no bug fixes would ever need to go out. But everyone who uses software seriously has understood for a long time that large software products all have lots of bugs. The fact that MS sends out bug fixes only means that they have the same feet of clay as everyone else.

    • Thompson uses some phrases without identifying where they come from.

      ..."good enough"... ..."death march"...

      AFAIK those phrases were defined in the context of software development by James Bach and Ed Yourdon, respectively. They should be credited.

    All in all it was a pretty fluffy piece of work I thought.
    1. Re:Some Ways In Which This Article Sucks by Thomas+Wendell · · Score: 1

      Mr. Thompson derides the software industry for the frequency of errors in newly written software. But yet he neglects to capitalize Internet. He mentions "IMB" as being a software giant comparable to Microsoft. He mentions "lawsuits by unreasonably customers." These are just the errors that distracted me while trying to read his article. How is it that he "shipped" this product with such obvious errors? Could it be that he had to bypass testing in order to make his deadline? Are we to take it on faith that his research and insight are better than his typing? It's ironic that an article that attempts to expose the evils caused by pressure to meet deadlines, lack of discipline and disregard for quality so clearly shows that those problems are in fact not limited to the software industry.

  184. Here is a very simple piece of code with bugs by Anonymous Coward · · Score: 0

    OK Here is a piece of code that works on my systems but is buggy

    #!/usr/bin/perl

    print "Hello World\n";


    Seems simple enough and works fine for me.

    But there are bugs in it ....

    1. perl is probably not in that location on your system.
    2. There is no exit
    3. No comments
    4. It doesn't work from a web server (hang on where are the specs for this program)
    5. It doesn't take my name in and print it out.

    Bah someone obviously didn't write the specification for this program, but if people tried to use it I am sure lots of people (who didn't know what it did) would say it didn't work, it has bugs in it.

    It is impossible not to write a buggy piece of code even something as simple as hello world!

    (I must admit I wrote a program the other day that ran first time, has over 100 sub routines, a couple of thousand lines of code and it worked first time as *I* specified it to, its a shame its not what the customer wanted, but he didn't specify it ;-)

  185. Re:That's what windows is heading towards by Morgaine · · Score: 2

    AFAIAA though, Microsoft aren't heading in the direction of hardware-assitance for their component architecture. They should. It might allow them to get back in control over their big unreliability problem.

    While it may not be quite so urgent for us in the free/open operating systems world, I think it would give us an interesting spur if Microsoft suddenly came out with this kind of thing. It might jolt us out of our complacency and move the Unix architecture on a notch.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  186. Wrong work model is source of problems by Hard_Code · · Score: 1

    Programming is fundamentally a creative, imaginative, and intellectual process. Being that, things only get WORSE if you force people to code faster or longer or harder. That's why bugs multiply. That's why throwing more peopl at a late project makes it later. Much of the industry is working under the wrong model. They view programmers as assembly people on an assembly line. Everybody does their thing and at the end a perfect product comes out. This is fundamentally wrong. Would you ask a scientist to work 80 hour weeks and expect his research to happen faster?

    What needs to be done, and what is currently done correctly in some segments (some game companies), is that there needs to be a partition created for purely Research and Development. This research and development should be ongoing and unaffected by the external considerations of PHBs and marketroids, like advertisements, deadlines, and IPOs. Another group who actually /makes/ the project should communicate with the R&D group and use what they've come up with if they can. This happens in some gaming companies (a segment notorious for its fast pace and deadlines). They've learned that they'll just kill their projects by forcing everybody faster. They set aside an R&D group which develops things the actually product coders can use. This is why you see game engines being developed separately from games. This is why you see some games from a given company all having the same general interface or look and feel. The R&D group produces the non-time-critical things. The other group produces the content and the actual product. I would much rather be working under the R&D model, where I could actually develop /better/ things than just more /crappy/ things. I think the industry needs to just treat programmers as scientists...put em on some floor away from other people...give em beverages, music, free reign, close the doors, and just wait for the magic to happen. You can't force magic.

    --

    It's 10 PM. Do you know if you're un-American?
  187. Product reviews should list the bugs! by dwalsh · · Score: 1

    In addition to the points raised here about what coders and managers need to do, I would add one thing that the computer media need to do. (By computer media, I mean anyone who reviews products).

    Talk about the bugs!

    Rate the product for stability. Any and all bugs encountered during the review should be listed in an appendix. When office suites, browsers etc. are being compared, say which is the least buggy, and factor it into your decision about who should be the winner. I am tired of reviews that just compare feature lists. Reviews I've read over the last 10 years rarely mention bugs, and never give an overall assesment of stability. And software quality has gone down and down. The customer needs to be able to an informed choice based on quality before the industry will be forced to clean up its act.

    --
    ${YEAR+1} is going to be the year of Linux on the desktop!
  188. Re:True by Anonymous Coward · · Score: 0

    Free software just sucks less because you can take out the money factor. Plus if you've got the source and you have the time and know-how, you can fix it yourself. Any major software undertaking is going to have bugs these days, like it or not.

  189. Shrink Wrap SW Market The REAL Problem by Anonymous Coward · · Score: 0
    We need to move to web-based apps so problems can be fixed in real time. Waiting six months for a CD to ship with a fix will definitely frustrate anyone.

    Yes another reason why shrink-wrap CD-based software is a dead paradigm.

    1. Re:Shrink Wrap SW Market The REAL Problem by Captain+Teflon · · Score: 1

      There are few SW companies these days that do not provide patches for download.

      Part of the thrust of the article IMHO was that the Web has made things worse rather than better as regards software quality. In many ways, the web has just meant we don't need to wait six months to replace our current set of bugs with a different and possibly larger and costlier set of bugs, we can do it right away.

      Anyone who has tried to upgrade IIS and MS proxy server and keep their PCAnywhere and ARCServe in sync with the various service packs will know this is NOT something that can be done in realtime. You endup in this downward spiral of patch/upgrade escalation which seems destined to hit Mutually Assured Destruction at any moment.

      Linux is better at this sort of thing, but you still spend lots of time keeping your web of mutual version compatibility in sync.

      --
      Eagles may soar, but weasels don't get sucked into jet engines.
  190. Sorry but design is not all, implementation matter by renoX · · Score: 1

    I've already seen a project where the design was really polished, but the implementation was done by a beginner which was more or less on her own.

    The result was of course a piece of sh...

    Was it her fault ? No, of course, we all began one day and all beginners should be closely supervised with his code reviewed, etc, etc.

    To summarize: design is important, successfull projects do spend a lot of time in the design phase but good design alone is NOT enough...

  191. Legal Issues... by Spasemunki · · Score: 1

    I think one of the most intriguing issues raised by this dealt with the way licensing agreements are distributed. I suppose that I have never really thought about it before, but it is bizarre that they can try and argue that opening a box to look at an agreement you never before read can comprise agreeing to the terms. Based on that and the fact that at least one company in the article had had success suing past the agreement, it sounds like the current method of distributing licensing agreements could constitute an unconscionable contract, making them basically illegal and void. It would seem that it shouldn't be too hard(if you remove the obsticle of the software industries hoardes of lawyers) to argue that it is unreasonable to expect that if anyone knew that just opening a box to read an agreement constituted agreeing not to sue of the product was responsible for hosing their data they would go ahead and do it. Of course, if you actually want to collect damages, the problem becomes proving that a single product did the damage, instead of you symantic driver conflicting with a packard bell dll and all of them getting raised to a low boil by your buggy M$ operating system. But the licensing contracts themselves seem to be impeachable.

  192. Wiring schematics! by Quazi · · Score: 1

    I had one with my Commodore 64! ..but I haven't seen one since. The reason why we don't have wiring schemnatics anymore is that they would give us incentive to climb inside the system and "mess with it". Well, the way most EULA's are made is that if we "mess with it", we will void the warranty.

  193. Re:Why GPL rocks.- that cracks me up !! by DarkFaerun · · Score: 1

    - that cracks me up !!

  194. talk about your irony... by Anonymous Coward · · Score: 0

    ...I was just starting to read page five of the article when it disappeared and I got a DNS screen. Then even my back button couldn't retrieve the article. At least I didn't have to shell out any $$$...

  195. Historical Perspective... by R.+Anthony · · Score: 1
    It's taken the successes of the open source movement to cast adequate light onto the inadequacies of our current corporate based software development system. It's hard to imagine that people can be creative and productive outside a regimented, authoritarian profit driven environment, given the lack of historical perspective common among today's population. However, Leonardo Divinci didn't need a supervisor, his creativity and genius were governed by his enlightened sense of man's purpose, and no doubt the incredible joy one attains through the creative process. Of course the Medici family, his primary benefactors, would stop by occasionally. However, despite all the tales of poisoning and treachery, they were actually pretty good bosses - having been the financial engine that fueled the Italian Renaissance.

    Today the Medici's would have set up an office and secretarial pool right inside Leonardo's studio. He would have been flooded with memos and diversity training seminars. Tortured by all too often incompetent project managers, and forced to put up with a general environment of mediocrity. Who's to say whether the Renaissance would have ever taken place if Leonardo had been forced to undergo the same working conditions software engineers are forced to contend with today?

    Is it any wonder that mediocre, bug infested bloatware is the end product of such a system? On the other hand, look at the open source community. That's where the real Renaissance is taking place, and it's about time. It's also no wonder why this community is in abject terror of the corporations swooping down on them and corrupting the entire process. The sad thing is, their fears are not groundless...

  196. Re:Mythical Man Month: The bazaar model by Anonymous Coward · · Score: 0
    In the 'free software' world, communication overhead is reduced because dissatisfied coders will simply split off and start their own project. This way, the teams can be fairly small. The resulting programs are smaller, too, and you end up with a 'toolbox' kind of system, where for every component there are 10 others competing with it. In other words Unix.

    Bloatware (Netscape, MS products, Staroffice, Corel) could never be produced in this way; it just isn't manageable.

    The net result, I think, is partly an improvement in efficiency (it prevents software and software projects from becoming too big for their own sake), partly a shift of the burden to the user (they have to choose among 20 window managers and get them to cooperate with the rest of their system; and that's just the window manager).

  197. Re:ignorance by Salamander · · Score: 1

    >Windows 2000 is the MOST modular OS I know of.

    Then you need to broaden your horizons. NT actually does OK, I'll grant, but it's no shining example.

    --
    Slashdot - News for Herds. Stuff that Splatters.
  198. d00d, where's the DBA? by Anonymous Coward · · Score: 0

    You know, the guy in the purple robes who's at the three-week seminar in Vienna. The one who didn't set up any database authorities for you, and doesn't know what a query plan is and who won't return your calls when you tell him the select statements are sequentially searching that 2 petabyte table with your cleverly designed indexes. The guy who never heard of update statistics. The guy who installs version 22.1 of the database, but neglects to get the associated compilers and libraries.

  199. How sad - Not a single word on design or analysis by narsiman · · Score: 1

    Coding, coding, coding - When you buy a house dont you ask for plans (of course you dont ask for cars but you trust that that the next door (non sleazy) automotive shop knows everything about your car). Ask for the design for the product. What design - i dont know pick up any one of those million models. Ask for their analysis diagrams, the methodology they used - wouldnt you do that if you bought a house - hell they are not giving away their source code. I mean what did they intend when they built a particular aspect. I agree with the quote from /. M$ just lowered the bar for entry into soft. dev. and subsequently all products suck now. A tool is just as good as the hand that it is in.

  200. Why counting lines of code... by Chalst · · Score: 1

    ... is a futile measurement: I saw a `Programming Pearls' column in an old CACM that had the best illustration.

    The author of the article (a software consultant) found a piece of code of the following form:

    a1 := f(1);

    a2 : =f(2);

    etc for 500 lines. Needless to say the (ir)responsible programmer was paid per line...

  201. Uh, Bullshit by Anonymous Coward · · Score: 0

    What FUD.

    Gcc does NOT produce tighter, faster code. This has been proven again and again.

    You slashdotters ARE A BUNCH OF KIDS WHO DON'T KNOW WHAT YOU ARE TALKING ABOUT BECAUSE YOU HAVE NO REAL TECH EXPERIENCE.

    1. Re:Uh, Bullshit by Anonymous Coward · · Score: 0
      This has been proven again and again.

      Ah yes, Proof by Vigorous Assertion. Very convincing. Next time try using evidence ("HP-UX was built with GCC because it's better than the HP compiler"), or at least well-founded arguments ("Intel paid people to improve GCC's Pentium code generation").

  202. Re:Capitalism ruins everything (?) by daemon23 · · Score: 1
    You have a point, but I think you missed the actual cause.

    The assumption that any social or political system will revolutionize life and make for peace and happiness, be it capitalism, socialism, communism, or any other, is fundamentally incorrect. What is really needed is ethics on the part of the people; most any system will work, to some degree or another, if people are ethical. But they often aren't. Capitalism ultimately fails because greed and lust for material wealth becomes the focus of life for too many, and those who become or are born rich seem, all too often, to lack any sort of restraint or values. Socialism (as has been seen) ultimately fails as those with power subvert what may have been a good idea into something that suits them better. Communism (the true form) usually fails from laziness of the minority.

    So what can be done about this? Simple--encourage ethical behavior. Respect other people. Be honest. Share your time and talents in your community. Stop talking and DO SOMETHING--ethical behavior is an active thing. Don't be quick to take offense at others' mistakes or even their intentional words and actions.

    Just my two cents.

  203. The Truth of Software Development by Hamletlere · · Score: 1

    Articles like this one are very ignorant of reality.

    First, comparing software development and applications to bridges and cars is ridiculous. If cars broke apart if any part in them was misinstalled by so much as a tenth of a millimeter (the equivalent of a line of code), we'd see a LOT more problems with cars. In truth, a car is a hell of a lot more fault-tolerant than software. The same with bridges. One misplaces screw won't bring down a bridge, but one miswritten line of software will bring down the application.

    Second, as for some of the other facts in the article, here's the ugly truth: software quality has to be weighed against the cost of producing that quality. When a company puts out a software product, it has to weigh the quality of the product (the more bugs in the product, to lower the reputation of the company) against cost (in this case, time-to-market: if you are late, it doesn't sell). What would have happened if id software just NOW put out Doom, totally bug-free? Could it compete against the more-buggy but nicer looking games like Half-life? Not a chance.

    Also, as a user, do you want to wait an extra 5 years for a product? If you have a million lines of code, it could easily take that long to fully test it. And remember, any fix put in for a found bug can easily create more bugs (as a developer, I certainly know this is true).

    It all comes down to this: it is impossible to write bug-free code (of any realistic complexity, at least). It is not cost-effective to test code until it is (visibly) bug-free. The best a company can do it make a product bug-free enough to have users want their product.

    One more thing: cars have bugs in them all the time. That's why you need a warranty. It's the car-equivalent of sending out patches after the car is shipped (and if the bug is bad enough, a recall).

  204. picking nits. by Anonymous Coward · · Score: 0
    As for the Bible misquote, it depends on how you read the post. I read it as saying that the "lust for money" is the root of all evil, which is very similar to the original quotation anyhoo.

    As for the point that being steamrolled into coming to work at 8 AM, when 10 AM would do just fine and cut down on traffic problems, that's certainly valid, as is the claim that quality is undervalued compared to hype in many industries, and not just ours. I don't know that socialism will fix this, although it's a tempting thought, most likely all the more prevalent because the "socialist" European countries seem to Americans to be more concerned with quality of, say, films, rather than blowing up buildings and screaming. On the other hand, the exploding buildings are still bringing in the $$$. It's easy to see how someone makes the leap that this has much to do w/ socialism, but it's perfectly possible to live in a capitalistic economy and not buy everything that comes up the pike.

  205. Haha by Anonymous Coward · · Score: 0

    Where is the GPL video editing software? Wheres the GPL copy of soundforge? Sure things like apache and wu-ftpd are fast, but when it comes to enterprise applications, forget it. A bunch of programmers in their spare time cannot compete with a million dollar company. Again I will mention the lack of GPL video editing software. Has GIMP made a dent in sales of Photoshop? Nope. Does Adobe care? Nope. As for bugs what are you talking about? I haven't found one single bug in any of the applications/OS'es I use.

    1. Re:Haha by Anonymous Coward · · Score: 0

      man youre a twit. search on freshmeat for the sound and video stuff or look at the previous askslashdot. not found one single bug ? hahahaha. you must be blind.

  206. Of COURSE it is OK. by Anonymous Coward · · Score: 0

    What most of you don't realize, is that software is a SOLUTION (hopefully).

    It SOLVES a PROBLEM for people. Just because a piece of software has 1, 100, 1000000 bugs in it doesn't change how much of a solution it is.

    I can show you some bug-free software which isnt a solution.

    I would rather have IE5 with 2,500 bugs than Navigator with none.

    1. Re:Of COURSE it is OK. by gig · · Score: 1

      > I would rather have IE5 with 2,500 bugs
      > than Navigator with none.

      Please elaborate. What is IE 5 a solution for?

      There is very little IE 5 only content available on the Web, or even IE 4 only content. Almost all content is designed to the lowest common denominator between Navigator 3, 4 and IE 3-5. The performance hit a Windows installation takes for installing IE 4 or 5 is routinely shown to be between 10 and 20% in speed and stability. The confusion it adds to the Windows interface (browser and window toolbar very similar but not the same) seems to me personally to be an undesireable feature (but then, I work on a Mac all the time these days).

      This is an honest question. I may be personally biased against IE 5 because I'm a Web developer and it's made my job much tougher, but I'd like to know what users are gaining from it that someone would trade a bug-free Navigator for a 2500 bug IE.

  207. 5 service packs != 5 patches by strobert · · Score: 1

    If you think 5 NT 4.0 service packs are like 12 kernel patches you must be crazy. And I don't even want to count the number of "hotfixes" available. Your disdain for Open Source software and reality makes me think you are really a Micorsoft employee (one of the folks they send out undercover trying to create havoc). If you think code quality in commercial products is so great then why does my NT workstation find ways to run out of memory all by itself (oh and forget checking malloc, when NT runs out of virtual RAM it croaks bad).

  208. Software behavior: "...as if at random" by cworley · · Score: 1

    "If builders built buildings the way programmers wrote programs, the first woodpecker to come about would destroy civilization" -- I wish I new who said that first. I first heard it back in '82, when I got my first programming job.

    At first, I thought the problem was: trying to define an analog world via a discrete logic; you can predicate every point you can think of, and still not adequately describe a multidimensional problem space (i.e. it takes an infinite number of points to fill a 3D space).

    Ever since Chaos theory was postulated, I believe it to be the finest description of software: "A sufficiently complex system behaves as if at random". That's software.

    The onus is always placed on the programmers: "why can't we figure out what the stupid woodpeckers do?"

    Believing the blame is ours, I once sought refuge in high level tools, CASE systems, and ISO 9000 paradigms. Only to find out that there are no "silver bullets" for software; adding more software to solve the problem of software only adds to it's complexity, and worsens the problem.

    I see every youthful programmer fall into this trap: we always want to write a new language or a new tool that will make programming simpler, but we inevitably add to the complexity (I apologize to all my previous employers for every programming aid I've ever written!)

    The problem is exacerbated by the marketing Balmer'$ of the world: software is a product: you cut a CD for a nickel and sell it for $100.00 (that nickel amortizes the software development cost). If there's a problem, sell them the update for another $100.00 next month. Balmer and Gates have made a little profit with this paradigm.

    But, we've found the solution. Open Source.

    It parallels the analog world: do you expect your automobile to run without tune-ups and never break down? Do you expect that, if your car breaks down, you can call high-school dropout tech support in Detroit and have them describe the fix via pushing buttons on the dashboard? If that doesn't fix it, are you supposed to buy a new car?

    The current paradigm is maligned; yet users buy it hook, line, and sinker (often blaming themselves for the problem)!

    As George Bonser said: "would you buy a car with the hood welded shut?"

    Service is the answer. Software is a service, not a product. In an unprecedented throat-slitting, golden-egg-laying-goose-for-dinner maneuver, Balmer said that last week; legitimizing the Open Source movement. The only way to quickly and deterministically service a product is to have the source... find "what the programmer was thinking", and fix it or do it the way the programmer intended. Guessing and hacking at dialogs and re-installing are too frustrating and unproductive.

    --
    When I die, please cast my ashes upon Bill Gates -- for once, make him clean up after me!
  209. Some other factors. by Anonymous Coward · · Score: 0
    US aerospace (military and commercial) create million-line SW projects with very few bugs compared to the designed-for-Wintel world. Several differences:

    Language: Most, including the commercial stuff, use Ada because they recognize that code that is more readable is more easily peer-reviewed, tested, debugged, and maintained. So what if it takes a little longer to write and complile.

    Processes: Most have lots of well-defined and well-trained processes. There are whole organizations (external and internal) devoted to the topic.

    Time & money: They are essentially without competition and are usually provided sufficient money and time to do things right.

  210. Not necessarily management, its the software by dbrown · · Score: 1

    The reason that many software products are bad has more to do with the actual software itself rather than its development process or the management involved with the product.

    10-15 years ago computers had much less memory, much less disk space and therefore could not handle the complex programs that we have today. The software that we have today are UI driven, need to communicate with many other services and are expected to share data via some interface.

    The software that we have today is several orders of magnitude more complex than software even 5 years ago. Most hardware drivers are really stable. Why? They are small, concise, and completely self-contained, which reduces their complexity. Large software procducts do not have this benefit of simplicity.

    If you have ever been on a large software product, you know how complex it can be. Tracking down every single bug/dependancy is a time consuming task usually requiring a large team of quality assurance engineers. Fixing most bugs are easy. Fixing some others can result in complete re-writes of subsystems, or directly affect whole pieces of the software.

    When it comes down to shipping a product, most companies want to ship bug-free software, but its impossible. There will always be bugs. So, a decision is made to not fix some bugs deemed "not harmful". Most of these bugs have work-arounds. Sometimes management makes bad decisions based on pressures from executive management to ship the product. But, when it comes down to it, the bugs are not in the system because of poor management, its due to the overly complex software.

    Software is like atomic particles in a chaotic system. You can easily predict the outcome of one or two particles, but as you add a third particle the system becomes more difficult, adding a fourth, or fifth particle makes the system impossible to predict for all except the most powerful computers.

    As software becomes more and more complex, we will see less and less control over its quality. Yes, poor management and poor design philosophies exacerbates the problem, but the underlying problem is still the complexity of the software.

    You think the weather is difficult to predict? Wait another 20 years and see where software is.

  211. q0: The top 20 things programmers say when their p by Anonymous Coward · · Score: 0

    see http://www.MacKiDo.com/Humor/programmer_excuses.ht ml for some insights let's add question #0: what OS do you use?

  212. What to say when asked for a time estimate? by bharlan · · Score: 1

    Ever been asked in the hallway for a "rough estimate" of how long it might take you to finish a particular bit of software? (Other phrases might be "wild guess" or "pull a number out of your ...") Did you throw out a certain number of weeks or months? Did this number later appear on multiple versions of a development schedule? Were you later accused of missing a deadline because "you said you could do it in three weeks?" This is an example not of schedule negotiation, but of an ambush.

    So that I can save time on long explanations in the hallway, here are some issues that must be discussed first.

    According to Steve McConnel in "Rapid Development" and cited studies, your estimate of the product schedule is accurate within only a factor of four, AFTER you have an approved product definition. You drop to a factor of 1.5 only after you have a product design specification that details the implementation. In the hallway your estimate is worse. You aren't sure what you're being asked to build, and you don't know yet how you're going to build it.

    Why do developers always underestimate development time? Because we are being asked to estimate the effort for one specific feature at a time. But features do not live in isolation. Features work together in a framework with many assumptions about what constitutes reasonable behavior. If you naively try to implement only features that are listed on paper, you will later hear questions like "Doesn't it dynamically update and save the results? Why can't I use this data in the other dialog? Of course that's required! Otherwise, what good is it?" We may be accurately estimating times for anticipated features, but we do not attempt to quantify times for unknown or implied features. Nor do we allow time to correct our original design. As soon as a feature is implemented, we realize the first specification was ambiguous and meant something different to everyone.

    In short, the interaction between features increases your effort non-linearly as the number of features increases. Five interdependent features may need to be counted as fifteen new features, with extra work for each new interaction.

    So let's assume we've figured out how to give a reasonable range of delivery times after having a product definition approved. We visualize all the known features. We try to quantify the magnitude of the implied features. We estimate a range of delivery dates within a factor of four, like 3-12 weeks or 2-8 months. We can't be more accurate at this point in our project without violating causality and other physical laws. We can imagine making the low estimate maybe 10% of the time. We can imagine making the high estimate 90% of the time. We're still in trouble.

    According to "Death March" by Edward Yourdon, a typical software project now begins with a hard deadline and big expectations of what it can do. The deadline is the least flexible parameter. What about other parameters of features, staffing, and quality?

    During early negotiations (and yes they are negotiations), your customers, management, and marketing are going to play hard-ball when it comes to features. Your product must do everything. No, they can't rank the features because they are all essential. So you put this parameter aside for the moment.

    There might be some flexibility on the staffing. The company might be willing to throw money at your product manager. According to Yourdon, staffing follows some kind of inverse-square law. If you halve the amount of time for a project, you need to quadruple the number of programmers. The bigger the team, the longer it will take for them to work together well. Increasing staff shows diminishing returns. You can only add the developers early. According to "The Mythical Man Month" by Frederick Brooks, adding developers to a late project will delay the project further. Staffing is not easy to adjust, and staffing always has an upper limit.

    Software quality, maintainability, robustness, stability, and usability, also can be degraded to improve your schedule -- to a point. If you overshoot your tolerance for poor software, you will also take too long to test and stabilize your product. Feature upgrades can be fatal. Better not push this parameter too far.

    You can delude yourself. You can pretend that some magic silver-bullet technology will make you vastly more productive. You can pretend that your team walks on water, that 18-hour days can be sustained for months without burnout, that the project will never change scope again. But let's assume you're not on drugs.

    You have the classic inflexibility matrix. The few parameters you can adjust, staffing and quality, are also the riskiest. Given all your hard constraints, you may find that the outer bound of your estimate well exceeds the acceptable delivery date of the project. What can you do? You can try to refuse the assignment, but you probably missed that opportunity. The rules changed when you were not paying attention.

    Yourdon recommends triage of features, against the wishes of your sponsors. Divide features into "must have," "should have," and "could have." Don't let too much fall into the "must" category. If your users and managers wanted everything in the "must" category, then it's their lost opportunity. You'll have to prioritize for them. Give unequal scores to these features, such as 9 points for "must," 3 for "should," and 1 for "could."

    Try to identify components that allow you to implement these features. Components should be parts of development that can proceed independently. The more you sub-divide your components, the better you can scale your productivity with more developers. Set the score of a component to the sum of scores of features it supports. Try to appraise the difficulty of implementing and testing each component. Don't worry about high scores that are easy to implement, or low scores that are hard to implement. These are casualties that will survive or die on their own.

    When you start coding, begin with high scoring components that are hard to implement. These components represent the riskiest part of your development. Reduce your biggest risks quickly, and guarantee the most useful features. The last few panic-stricken weeks should be for easier components, not the riskiest ones. When you inevitably run out of time, you still might have something you can ship. Don't leave too much wasted code behind.

    Start coding while your sponsors are waiting to launch the project, preparing slides and strategic documents. According to Steve McConnell, this "fuzzy front end" wastes the greatest opportunity to improve the delivery date.

    Of course you still need sensible development practices such as described in "Dynamics of Software Development" by Jim McCarthy. Nightly builds, source/configuration management, risk monitoring, and benchmarks are still important. You won't speed up your project by abandoning previous good practices.

    In short, you probably can't negotiate your development schedule. But you can prepare your sponsors for reality. Don't make it easy for them to ignore realistic schedules. You must find flexibility somewhere, so prioritize features for them. Those who set your constraints will have to make hard decisions eventually. Most likely they'll prefer having fewer features rather than nothing. Or they'll decide extra features are worth a delay, after all.

    --
    (Reality reasserts itself sooner or later.)
  213. Software ISN'T the only industry by strobert · · Score: 1

    I never get why people insist bugs only occur in software projects. Now don't get me wrong I see a serious problem in the Software industry. But There are plenty of other industries which have similar problems:

    We would never have electrical fires if there weren't "bugs" in the wiring.

    I think a lot of folks would say there was a Show stopper in the titanics flood control design (the bulkheads didn't go to the ceiling.

    If you have ever bought/lived in a house, there are alwaysd little things here and there (i.e. bugs). Shoot the tract home I grew up in had lots of them (I don't think there was a pair of studs 16" apart).

    Now I personally think the state of the software industry is in shambles. People are writing tons of throw away apps using these cool nifty visual tools, only problem is the apps stay around and become huge piles of junk.

    Part of the reason is most managers know nothing about software so it is harder for them to see what their butchering of schedules does to the code. (If I make a crappy kitchen table it is far easier for the common person to see it is bad. It is much harder for a barely computer literate person to tell what good vs. bad code looks like.)

    Also, although the buck does stop with the developer on schedules, most developers won't quit over the issue of code cleanliness. I have had many co-workers who weren't willing to get fired on the principle of staying a professional programmer by insisiting on producing professional code. I was that way for a while (my first few years as a profesasional coder). Now I don't, (partially beauce the supply/demand curve for programmer is in my favor) but at least a portion of the blame needs to rest on the managers pushing for the tight schedule.

  214. Extreme Programming by DonWells · · Score: 1

    A new methodology called Extreme Programming (XP) has been emerging. The idea which is relevent here is to allow customers to make business decisions and technical people make technical decisions. Also of note is the methodologies emphasis on getting developers to work together as a cooperative team. As well as ways to make code more legable without lots of (obsolete) comments. An introduction is provided at ExtremeProgramming.Org

  215. Normal people don't get it: CODE must be perfect by TwoEdge77 · · Score: 2

    I think the thing that people don't understand is that programming is the only place(well okay, genetics is the same too) where your work must be perfect. You can inject typos in essays, we get the message. But you inject a mispelled command in a program => crash. I don't think everyday people understand this concept. You can't just do an allnighter, and get a "B". It must always be perfect.

  216. Commercial software bugs - elimination-HOWTO by bvmcg · · Score: 1

    Much of my work involves console games. When publishing a Nintendo or a Playstation title, let me tell you - you will NOT get a major bug out the door. They don't give a damn if you're missing Christmas with your hot, new title. If something corrupts a memory card or locks up the game mid way through, you're not shipping. Nintendo and Sony won't allow it. You're going to fix the problem and wait for testing all over again. Period.

    Consumers need to demand a similar approach with commercial software. (Pick an OS)-certified should mean that it's been tested extensively under the given OS by some third party who hasn't got a strong stake in whether the product ships on time.

    Becoming certified would become a sellable marketing point, and in time, major bugs would be a thing of the past.

    In the mean-time, it would be nice if PC Labs or another of the ultravisible PC media companies would publish a monthly table of major products and a respective danger level. "UNTESTED" the first month, followed by graduation to one of "STABLE," "UNSTABLE," or "DANGEROUS", the ranking of which would be updated with each subsequent patch level. This would finally pressure Microsoft et al to stabilize each release before jumping back into adding shiny, new, sellable features.

  217. Poor software is a business model failure by jkorty · · Score: 1

    Poor software is a result of the failure of the software business model, not of the technical model. Only if and when software companies become legally liable for what their products do, in the same way auto companies are liable, will there be a sea-change in software quality. With the liability comes the corporate-wide desire to do the job right, by any means possible.

  218. A true "Dr. Evil" view of the universe ... by timothy · · Score: 2

    "Capitalism ruins everything."

    Suuuuuure, it does. Right. "Tell me again how sheep's bladders may be used to prevent earthquakes ..."

    Responding to the entire post would overlap with the comments arelready posted (and as Mark Twain would say, would annoy the pig), but a few things stand out as too silly to let fly (and make me suspect that the whole things was flamebait anyhow ... ) So, OK:

    - " ... pesticide-laden, hormone-laced food"? Ah, strictly a capitalist invention there, you betcha! If you want some good wholesome pollution, or were wondering what the practical upshot might be between mostly-capitalism and sort-of-socialism, visit the former East and West Germanies, or the countryside outside of Prague, or many many places in the former Soviet Union where toxic (including radioactive) waste was brazenly poured into lakes and rivers. TMI and the Love Canal have nothing on consequence-free socialist management policies.

    - Time wasted in traffic jams? Surely you jest. Would you rather be waiting 10 years for a car, or queuing for *bread*? How about signing up 6 or 10 years in advance to get a telephone, and paying your brethren electrician a few bribes along the way? And besides, you don't have to take that job if you don't want it. Sorry. ("Aw daddy, I like all these diamonds, but they're so heavy! Why did you make me take so many?!") There's no pleasing some people, I guess.

    Get this much straight: Capitalism is actually fairly agnostic about what you *do* within it; it defines certain things as moral (free exchange of goods, including services, including philosophy, including whiny, illogical peaons to governmental oversight and meddling in everything, etc.) and after that, you're on your own to find the path you think is best. Captitalism defines possibilities; socialism draws up job lists.

    Cheers,

    timothy

    --
    jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
  219. Software Quality by frankensnake · · Score: 1

    I've worked Software QA for about 3.5 yrs. now, having switched over from development and I can certainly sympathize with the article. While everyone rants and raves about the development process, few people seem to comment about the QA process.

    Yes, QA often gets garbage to test and not enough time to do it, but in my experience, Software QA programs are also often inadequate. Few if any CS programs dedicate any instruction to testing. My own experience in my CS work in College consisted of 1 chapter from the Software Engineering book and 2 lectures. That's all. Everything I know about testing software I've taught myself.

    At my last job (a well known and respected networking company), I did an informal poll of about 20 testers and found that only 3 of them could explain the differences between system testing, functional testing, integration testing, and unit testing. And some of these people had 10+ years experience as testers and were technical leads!

    Another problem is this--a lot of talented engineers don't want to test. Software test is often viewed as the bastard step-child compared to development. Talented people view it as a stepping stone to development, not as a career. Many of the people I've worked with that have tested for many years are just not motivated. It's as though they went into a tech career for the $$$ but would rather be elsewhere. People who have a passion for breaking software are hard to come by. Consequently, you get a lot of interns, new grads, and inexperienced engineers working test, with unmotivated people leading them. A bad mix. . . Bugs that QA should find often slide through to Beta sites or even worse, paying customers in a "final" product.

    Management often doesn't understand the role of Software QA. My feeling is that QA should be actively involved from early on in the design process since that's the place where most catastrophic bugs get spawned and act as the enforcer (i.e. QA should force developers to follow procedures and have the proper documentation).

    I personally like test a whole lot more than development. I was bored with writing code, but have a blast trying to break it. I work with some real test talent at my job now, but that hasn't always been the case.

  220. Hey it's the customers' fault by Fudge · · Score: 1

    As a programmer, I have spent a long time pondering the reason(s) for buggy software. Some customers blame programmers, other's just blame software companies in general. While I do feel that I can always plan and implement better and should strive to do so, management seems to be the one more willing to ship soon than ship right. So many programmers blame management.

    Various managers have told me, on and off, that I shouldn't blame them. The stockholders demand a speedy shipment. Not only that, but it has been shown time and time again that consumers will buy the product with the most features rather than the most stable product. Magazine reviewers don't help this problem much; they can be quite forgiving of bugs they encounter (after all they were probably reviewing a beta).

    So down the road after buying the software, the consumer plays with it, finds the bugs, blames the programmers, the programmers blame the managers, the managers blame the consumers, and so the circle of frustration continues.

  221. you mean: the academic solution by cworley · · Score: 1

    Obviously an academic. Spend a few years in the real world.

    I've been a software programmer for hardware companies for over twenty years. I've heard so many EE's tell we idiot programmers to "just use the black-box appraoch".

    The truth is:

    1) Hardware is simpler than software; it's easy to compartmentalize (firmware, like hardware, is also much simpler), and

    2) Even so, hardware does suffer from the same ills as software.

    Stick that in your academic ear!

    It really irks me when I see another EE who's taken the requisite programming class, written "hello whirled", and come to the conclusion that software is simple, programmers must be dumb!

    Hugs & Kisses,

    Chris

    --
    When I die, please cast my ashes upon Bill Gates -- for once, make him clean up after me!
  222. put the blame where it belongs, on marketing... by Anonymous Coward · · Score: 0

    You can sell a perfect product only once, so never produce anything perfect. This is something like the first rule of marketing. This also applies to software. Just sell the product with the bugs, so people will have to buy the upgrades and newer versions too!

  223. "The most expensive line in the high tech industry by Anonymous Coward · · Score: 0

    is 'It would be cool if it worked.'." - Jean-Louis Gassee, current CEO of Be

  224. Hypocrite by Anonymous Coward · · Score: 0

    What was the original ship date of NT 5?
    (hint: vague, but a while back)

    So, let me see if I understand you correctly. You complain about companies rushing software out the door, but when Microsoft takes the time to get it right, rather than ship buggy software, you blame them for not rushing it out the door.

    You Microsoft bashers never cease to amaze me.

    1. Re:Hypocrite by pb · · Score: 1

      Did I complain about not getting it out the door?

      How about if I just complain about going back on your word? I think that's what a ship date is. That would be hypocripsy, and supporting a company that follows those practices.

      Microsoft has, without fail, announced products whether or not the time scale was reasonable or if the product existed, just to delay the competition. That is abusing the system to your own ends.

      --
      pb Reply or e-mail; don't vaguely moderate.
  225. Quality vs Price? NOT by Bernal+KC · · Score: 1
    Sorry, but your car analogy contradicts your airline hypothesis.

    The demand for quality and reliability in cars was spearheaded by Japanese imports - Toyota, Honda, Datsun. Economy cars. They got their toe in the door via their price point. They shattered the market by delivering superior quality and reliability too.

    The software industry is hooked on obscene margins and untenable R&D costs. Sooner or later the market will correct this transient condition. Let the current rulers of the profit addled heap cling to their status quo (UCITA) at their own risk. All that is needed to shatter the rule of buggy software is an existence proof for affordable, durable value on the desktop or on the net.

    Going with the runaway metaphor, I beieve software is in the Stanley Steamer phase of evolution. Not very widely used compared to other mass market consumables (houses, cars, guns,...). Operated by trained specialists that accept the occasional exploding boiler. Where software is thriving in truly mass markets -- it works flawlessly. Witness ATMs.

  226. Objects and lists by Morgaine · · Score: 2

    Good point, but alas I doubt if the world is ready. We've lived so long with the current standard style of programming that the lessons learned on the specialist machines that emerged from the AI scene have been entirely forgotten, it seems to me. They were just too far ahead of their time.

    It's an interesting analogy though. Perhaps a hard object-oriented system architecture could fire the imagination in standard computing circles where a list-based architecture previously failed.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  227. Re:Windows DLLs -- is the nightmare ending? by chart · · Score: 1

    I have spent the last couple weeks sorting out horrible DLL issues for the install of our upcoming software release.

    MS makes it almost impossible to find out info about which DLL version you want and where to find it. Just when I thought I had it down, they released VBRun60sp3.exe and we decided to recompile some of the software with VS SP3, so we needed new files. Oy! (Yes, they're most are on the VS SP3 CD, so they're not too hard to find, but you still have to look at all the versions and test the files and such.)

    One amusing anecdote: MS has a "Library Update" out right now that is supposed to fix problems that may have been caused by software developers installing DLL files individually, the end result being that they may be out of sync. The kicker: MS won't let developers redistribute this with our software -- they recommend we install the DLLs we need individually!

    Anyone who has played around with Windows 2000 knows there's an interesting new DLL feature -- software installations CAN'T update system DLLs. If they do, W2K notices and makes you put the W2K CD in so it can copy the old one back in. Supposedly, this is part of a new direction MS is moving towards, having system DLLs only be updated by MS packages, and never by software installs.

    Will this make our lives easier, because we can wash our hands of it (from a tech support standpoint -- "call Microsoft"), or will it just make things worse?

    --
    Cara Hart chart@eNOSPAMfurn.com Systems Administrator eFurn.com, LLC. and ARITEK Systems, Inc.
  228. Alas, no by Morgaine · · Score: 2

    Sorry to disappoint you, but I'm a software professional, not hardware, although academia did teach me how the hardware fraternity did things because the EE and CSc sides were very sensibly integrated.

    That was a previous life though. The lesson that the real world then taught me is that software is more complex than hardware only because it is architected on an appallingly bad infrastructure that makes it almost impossible to increase the size of a software system without making complexity go through the roof.

    The reason for that is simple: lack of system-guaranteed isolation between components, which means that thirty years of development of structured programming languages *still* results in an unstructured nightmare in the presence of faults. That doesn't happen in hardware, except in the single instance of the power rail(s) being compromised by a major failure.

    And it's precisely at that problem that the above solution is targetted: to provide a little hard structure to control the programming complexity in the same way that the O/S controls the complexity among interacting processes, a well tried and tested strategy it seems to me.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    1. Re:Alas, no by cworley · · Score: 1

      The vent was worth it (even if you're not a EE)! ;)

      Nevertheless, if your solution has not solved the problem (and OO* hasn't), then it's not the solution. As much common sense as OO, iso9000, CASE, etc... make, they have proven that, in the real world, they are not the software development silver bullets they claim to be.

      Your argument is a kin to saying "if everybody would be nice to each other, we'd have world peace". Dream on.

      The solution is not in the development cycle.

      The solution is Open Source (if you read my other post).

      Chris

      --
      When I die, please cast my ashes upon Bill Gates -- for once, make him clean up after me!
  229. Hardware vs software faults in large systems by Morgaine · · Score: 2

    Those are all good points, but you've missed something. Yes, software systems are often much more complex than hardware ones, but why? After all, hardware systems sprawl out across the entire globe in an interconnected mesh, yet when the hardware of a router in Paris goes down then the hardware of the rest of the Internet continues quite happily doing its thing. How come? Let's examine this a little more closely.

    Add software to the equation: now the software in the router in Paris goes down and, excellent, the software in the rest of the Internet continues happily working away. So far so good.

    Now consider that router again, except this time look inside it: its SNMP module (just one component of hundreds within the router's O/S) decides to express a coding bug, and what happens? Ooops, IOS has just trashed everything in memory and the router reboots or hangs indefinitely.

    What's the difference between these scenarios, and especially between the two last ones in which it is software that has failed? Simple, in the first two cases, there is faultline isolation between the components of the system, whereas within the router's software there is no isolation between software components in the presence of a fault at all. So many years of structured programming, all for nought.

    *That* is a key reason why software is more complex than hardware in so many cases. It's not just a matter of size and of the number of internal states. Complexity can be controlled by a simple strategy of divide and conquer, as long as black boxes can be made truly black. In standard computing, this is impossible in the presence of bugs, and all large systems have bugs. The approach is utterly flawed for computing in the large.

    What I'm proposing is a little extra structure to control the chaos, because chaos is precisely what the software world is fighting, although it's rarely expressed in those terms.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
    1. Re:Hardware vs software faults in large systems by wocky · · Score: 1

      Where feasible, this sort of "communicating but mostly autonomous" agents model can indeed isolate failures. It applies to software on single systems just as it does to the internet. My computer doesn't crash due when a bug brings down the FTP server; I just lose a little functionality. So why isn't this model used everywhere? Because the complexity of coordinating a collection of agents so that they can robustly accomplish a task is daunting. The distributed programming literature has a long and distinguished history of buggy algorithms, even for such "simple" tasks as mutual exclusion. Something nontrivial like a parallel garbage collector can be fiendishly difficult.

      Developing a distributed, fault-tolerant version of any algorithm is much more difficult (and bug prone) than getting the same algorithm working on a single processor. So why bother? To tolerate failures that are viewed as likely. Since failure of a network node is a common event, it's not surprising that networks are designed to handle it. It's not simple though, it's not cheap, and it's not perfect either. Witness the occasional widespread network outages that you read about. Yet another @#!% corner case...

      To sum up, you can try to control the chaos, but it requires a lot of extra structure, not a little. Exercising this control is very costly and error-prone. Unless you're trying to guard against failures that are either likely or catastrophic, you're probably better off devoting your resources to getting a "traditional" implementation as bug-free as possible.

      --
      David
  230. Not Twain by Anonymous Coward · · Score: 0

    "I have only made this [letter] longer because I have not had the time to make it shorter."

    Blaise Pascal



  231. Performance and granularity by Morgaine · · Score: 2

    Yes, those are precisely the main areas of concern. You can definitely get good performance for a small number of large objects, but PC MMUs aren't really intended to cater for huge numbers of tiny objects directly.

    However, creative design may be able to overcome the problem to some extent if some feature can be exploited to make a good tradeoff, rather like caches do in another problem area. Whether this is possible here remains to be seen.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  232. Professionalism by Foosinho · · Score: 1

    A clean product - maybe not. But cleaner is a very good idea, because the products are all the public have to judge the people behind the industry by.

    What if the software (or that buggy OS) is used in a life-critical system? Does the programmer have a responsibility to ensure (to the best of his ability) a bug-free system? I would think so! Would civil engineers be allowed to build buggy bridges, or doctors perform buggy surgury?

    Someone needs to stand up and stop the madness.

    Cheers,
    Brian

  233. Why hardware works better than software by pocari · · Score: 1
    Question: For similar levels of complexity, why do software systems typically exhibit many more bugs than (digital) hardware systems?

    I seem to recall that when I graduated with about 70 other CS majors, there were also 270 EE majors in my class. Living in Silicon Valley, I seem to know ten times the number of software engineers as I do hardware engineers--and there seem to be many more software companies.

    I don't mean to say that a college degree in CS is the only possible qualification for programming, but:

    • the shortage of software engineers and high starting salaries has attracted less qualified (and interested) workers to software than to hardware
    • there are no qualifications needed to get a programming job, and no certification or credentials you could get even if you wanted to--at least EE's can get PE certification
    • many programmers lack not just credentials, but any training of any type in software engineering, or even two-week courses in the programming languages they use
    • demand will continue to outstrip supply of qualified people for a long time
    I don't know any hardware engineers who got into the field by accident, but I know plenty of bright people who have ended up programming because it was the best-paying option available. They might like to get more training or education in the field, but no employers will pay for it, and nobody will really care when they look for their next job anyway.

    Number one programming job interview question: name a product you have shipped. It doesn't matter if said product was buggy, unprofitable, or if the team that created it was homicidal at the end--shipping is what counts.

  234. All-nighters by Mornelithe · · Score: 1
    Anyone can program on 1 hour of sleep. Well, that is, they can do it if they can program. It just takes lots of hard work and intesive training. I for example, fancy myself as a computer scientist/programmer in training. As a high school student, I get an average of 6 - 7 hours of sleep durring the week. Now, this is no where near the 1 hour amount that computer programmers get, but I'm sure I'll have more extensive training when I get into college. At first this type of thing was rathar strenuous, but as you slowly wean yourself from the luxury of a 9 - 10 hour night of sleep, you find yourself more alert that when you started. Of course, I supplement my sleep on the weekends, but programmers should be able to do that too, right? As to who can work well on a schedule like this: I'm in as many honors classes as possible, and have been for all 2 1/6 (about) years in high school, and I have an approximate average of 98%, and as for me being an idiot, you can talk to my friends about me.

    Incidentally, about the Dews. 32 cans at 12 fl. oz. per can would be 12 quarts (about 11.4 liters for those on the metric/SI system). I don't drink too much caffine until later in the day, but I'd say if you had 12 quarts of Mountain Dew in your system, not only could you program/work, you could probably run a marathon and chop a few sequoias down, unless your heart exploded first, which is another whole topic for discussion.

    In general, I'd say programmers pulling all-nighers is not a big problem with the software industry, although I reserve the right to change my mind at any time. That's all for now.

    "An empty head is not really empty; it is stuffed with rubbish.
    Hence the difficulty of forcing anything into an empty head."
    -- Eric Hoffer

    --

    I've come for the woman, and your head.

  235. Chances are.. by Kitsune+Sushi · · Score: 1

    ..if you're going to school to learn programming, you aren't going to learn much. Potential programmers are well advised to know something about programming before going to school. The most exciting thing you're likely to learn inside an educational institution is probably assembly language. College should be viewed as a way to get a degree, and thus, respect from most businesses who might be looking to hire programmers (many of which appear to be utterly clueless). Or at least you should study/practice some real programming languages outside of school during your stay there.

    Hell, even people who want Web designers have ridiculous requirements. A while back I was doing Web searches for such jobs (just to be cute), and most of them required two years experience in Java (I don't think Java had been public for two years at the time =P). Not that I can grasp why you would need Java to do Web design, but whatever.. I've found that having Java applets on your page is generally a good way to make people never come back to your crappy Web site.. =P

    --

    ~ Kish

    1. Re:Chances are.. by bharlan · · Score: 1

      Most implementors of web sites using Java would use the Java on the backend where a database lives. Only the server needs to understand Java, not the client browser. I daresay that browser applet code is less than a percent of all existing Java code.

      --
      (Reality reasserts itself sooner or later.)
  236. Of course not.. by Kitsune+Sushi · · Score: 1

    Anyone who actually thought I was insinuating that design was the end-all and be-all of computer programming, and that implementation was not important in the slightest.. Well, honestly, I'm insulted that anyone would think I would make such a ridiculous and paradoxical statement. Design is the most important, but every phase of coding any given project deserves the utmost attention. Design shall simply consume the most time.

    And yes, anyone who throws a novice at a nicely polished design and doesn't throw any help her way needs to be slapped upside the head. Well, unless you're really just not that concerned about whether or not she fails. You could have just as easily said that design is not enough and it's important you bug test. That's true, too.

    Point is, I never said design was enough. I said it's your foundation. Would you build a house on top of a giant mud pit? No, of course not. You're going to find some good dirt and build a pretty foundation, then build it on top of that. However, you can't do a whole lot with just a foundation. You'll be pretty pissed the first time it rains if you're unfortunate enough to live there. Come ooonnn..

    --

    ~ Kish

  237. Interesting notion.. by Kitsune+Sushi · · Score: 1

    However, I can think of far better languages to use for that kind of thing than Java. Besides, you ever notice how most programmers can't do Web design to save their lives? And that most Web designers just don't have what it takes to be a programmer? It seems like a bad idea to bundle up all of the jobs of running a Web site into one position.. Likely, something is going to be terribly wrong. ;)

    --

    ~ Kish

  238. Will Code Generators Help? by Anonymous Coward · · Score: 0

    How many bugs can be attributed to the fact that programmers spent their time writing lines of code, instead of building systems.

    If programmers could spend more time developing systems, and let the actual implementation code be automatically generated, would the number of bugs go down?

    If programmers could spend more time simulating the behavior of programs using high level models, would the quality of the code implementation increase?

    Will the preview function increase the quality of my post?

    rogerd@rmii.com

  239. Your scales are off. by FallLine · · Score: 1


    First off, the NYSE is not the only market. Markets are present in virtually every aspect of modern western life. From going to the grocery store, to CPU prices, to car prices, to house prices, to business prices, to ...you name it. There is a certain dynamic to these markets, in that NO ONE sets the price and the quantity.

    Even big businesses are subject to these market influences. They don't operate in a vacumm. Furthermore, not even the largest fortune 500 firms are anywhere near the size of the USSR bureaucracy. To even make such a comparison is naive at best.

    Many would argue that big businesses are victims of their size. But in either case, their sucess or failure doesn't cause people to starve. When a big business performs poorly, their profits or sales are affected since no one is forced to buy from them.

    In a communist bureaucracy, some group is always setting prices, quantities, etc. When they choose badly (and believe me, they do) there is no immediate recourse for the people. Everything is administated, and legislated. It is simply impossible to legislate for every eventuality. And even if there were laws on the book, it requires that there be some supreme intellect that knows best.

    Try not to think of companies themselves as being infallible. Think of it in a more darwinian light. That is: Individual companies can and do fail, nor is any one company 100% efficient. Rather companies on the whole compete in an open market, and governed by market influences, they are constantly pursuing these certain efficiencies.

  240. Formal methods? by Anonymous Coward · · Score: 0

    I'm surprised that nobody has mentioned formal methods for specification, design and implementation. Back in the 60s & 70s people like Dijkstra declared that programming was a mathematical discipline. Check out Seven Myths of Formal Methods for a summary that dispels the standard myths. This is also really good. Formal methods won't solve all problems, but they're useful.

    You know, nobody builds bridges without mathematics anymore.

    What? Software is more complex than bridges? People have mentioned design. Design is about breaking down complexity. Some people are good at it, most are bad. A good understanding of mathematics helps.