Slashdot Mirror


Why Buggy Software Gets Shipped

astonishedelf writes to mention an article in the Guardian about the hard reality of why buggy code is sold on retail shelves. From the article: "The world's six billion people can be divided into two groups: group one, who know why every good software company ships products with known bugs; and group two, who don't. Those in group 1 tend to forget what life was like before our youthful optimism was spoiled by reality. Sometimes we encounter a person in group two, a new hire on the team or a customer, who is shocked that any software company would ship a product before every last bug is fixed. Every time Microsoft releases a version of Windows, stories are written about how the open bug count is a five-digit number. People in group two find that interesting. But if you are a software developer, you need to get into group one, where I am."

422 comments

  1. Windows Software Shop :-) by Whiney+Mac+Fanboy · · Score: 4, Insightful
    Typical Windows Software house:
    Vault's backend makes extensive use of features specific to Microsoft SQL Server. Contrary to popular belief, SQL isn't portable.
    *shakes head* and then this:
    Linux and MacOS users have problems over how end-of-line terminators show up.
    Ouch!

    Anyway, I do agree with the author for the most part (its all pretty 101 risk assessment stuff). It is inevitable that software will have bugs in it (especially commercial software shipped to a schedule). This is not really news tho'.

    What I would like to see is some vendor honesty. How about making a list of known bugs available to your customer prior to purchase? (I know, I know, fairly warning a customer is madness, etc etc).
    --
    There are shills on slashdot. Apparently, I'm one of them.
    1. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      Tell me, oh wise consumer (which you obviously think you are, seeing as how you blatantly point out your purchasing decisions even in your own account name), how many of your kind would even be interested in wading through a potential list of tens of thousands of bugs, all described in a technical manner? Oh, that's right, none. Because the people like you who are complaining about it aren't the people that are actually using the software.

      Oh, yes, by the way...did you notice that Mac OS X has been updated...oh, I don't know...several point revisions, and Apple isn't making a "list of known bugs available" to their customers "prior to purchase," at least not in any way that's going to draw the attention of the people that would need to read it? I bet you did, but you ignored it because you dropped a few thousand on a computer that you're trying to define your personality with. Grow up. Everyone else will, I'd suggest you start early if you don't want to be left behind.

    2. Re:Windows Software Shop :-) by packetmon · · Score: 3, Interesting

      How about making a list of known bugs available to your customer prior to purchase?</i> I don't think the Board of Directors on any publicly traded company will allow this. The problem with many traded companies (and I'm using publicly traded companies since MS is mentioned) would be that the company wouldn't likely meet financials. Hence many pouring out shoddy programs. Imagine the trading price of MS if it did ship a list of known bugs alongside their products... I would think consumers would wait for a stable product before buying. Even if they did ship what they deemed a stable product, whose to blame for someone finding a flaw? The programmer who didn't have an insight to think outside the box similar to the hacker (and I use that term in its purest sense) who broke the product? Speaking of MS...

      From:  Microsoft Security Response Center <secure@microsoft.com>
      To:  "xxxx" <xxxx@hushmail.com>
      Cc:  Microsoft Security Response Center <secure@microsoft.com>

      Thank you for the update with regards to your findings. We are still
      going through the repro stages of the case and there appears to be some
      confusion over the concern. Do you happen to have a network trace of the
      behavior that I could work with our development teams in reviewing to
      ensure that we are looking at the same concern and avoid any possible
      confusion on the matter?

      Thanks,

      Adrian
      Microsoft Security Response Center

      I've broken MS' MSRPC in a real bad way. There are no ifs ands or buts. I passed the information off to Microsoft instead of passing code to a full disclosure list. I've replicated this over and over, remotely and locally. I know for a fact because of the architecture of networking they will never be able to fix this. So what would you think as a consumer about to purchase a product with a hole that can never be filled.

    3. Re:Windows Software Shop :-) by Sproggit · · Score: 2, Interesting

      No no no no no no!!!

      It is NOT inevitable that software will have bugs in it.
      By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.

      This whole fucking "tinkerer" mentality that self important developer assholes have foistered on the rest of mankind, is no different from the self important tinkerer mentality that steam engineers foistered in the 1800's.

      Take solace in the fact that the software development world will ultimately fall into the same engineering disciplines as steam and mechanical enginering before it, and whatever mankind pulls out of our asses after it.

      Software and any other IT components will ultimately be consumer grade, and the inner mechanics (and bugs) will be a problem for the engineering QA department.

    4. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 2, Insightful

      All bridges DO have defects - a weld may be slightly off-center. A beam might be 1/8" wider/longer than it's supposed to be, the cement covering it may be cracking. The point is that we're all human and imperfect, so therefore the things we create are imperfect.

      It is the job of the engineer (whether for bridges or software) to make sure that the mistakes that ARE made are not the critical ones - the ones that make the bridge collapse or the software crash.

      Until the human race as a whole attains God-hood (whatever your diety, this is unlikely), this is a fact of life.

    5. Re:Windows Software Shop :-) by Whiney+Mac+Fanboy · · Score: 4, Insightful

      By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.

      I didn't say all software will have major bugs that lead inevitabley to the collapse of the software. Just that all software will have bugs.

      All bridges have defects too you know - the suspension cables will be slightly uneven, or some features of the fascade will be unsymetrical. Bridge engineers make damn sure there are no structual problems that will lead to collapse (but even they fail sometimes).

      I wish software engineers would be more like bridge engineers as well, but the cost of failure (and the cost of fixing in the event of a failure) are so different between bridges & software that its not likely to change.

      --
      There are shills on slashdot. Apparently, I'm one of them.
    6. Re:Windows Software Shop :-) by Loki_1929 · · Score: 5, Insightful

      "How about making a list of known bugs available to your customer prior to purchase?"

      There are several reasons not to do this. Not the least of which is simply that most customers don't want to know what's going on inside the application. They want to click "Button A" and have "Box X" pop up and start flashing - or whatever. They don't know that 300 lines of code went into making that happen and they're fine with not knowing that. They certainly don't want to be forced to actually understand what each of those 300 lines of code are doing. Try to explain it to them and watch their eyes glaze over in a hurry. You can try to simplify the explanation for them, but it'll never be enough because they can't grasp the problem without understanding what goes in to making it work; a necessity in understanding why it doesn't.

      The point is that when you get into listing bugs, you have a number of caveats. First of all, in their eyes, you're telling them that the application you're selling them is broken. Sure, those bugs may never actually affect them. They may even be in parts of the code that aren't even used yet because it's part of a feature not currectly activated. But hey, you're selling them a broken program. Remember the Pentium floating point fiasco Intel had to suffer through? What was wrong with their processor? Nothing that isn't wrong with anything ever manufaturered: minor defects that rarely or never manifest under normal operating conditions. What happened when the news got out about the floating point bug that didn't affect more than a hundreth of a percent of buyers - if that? The 'public' went ballistic about it and Intel was eventually forced to do a recall of CPUs that were perfectly functional. Nevermind the fact that AMD and Intel routinely publish a long (and growing) list of 'errata' for their processors that are chock full of bugs. The moment the public got news of a single errata (which, again, didn't even affect them), they demanded replacement "working" products. Are you, as a company, going to expose yourself to that kind of liability?

      Basically, the customer doesn't understand the inner workings of your application, doesn't want to understand the inner workings of your application, and if you try to make them understand anyway, bad things will likely happen to you. People can handle unexpected behaviors (bugs) when they're discovered and a promise is made to make it right (patch, updates, etc). But if/when they get wind that you knew the bug was there, and that there were others? That's a receipe for disaster.

      What geeks/coders need to understand is that we make up a vastly small minority of software users. Unless and until a vendor is selling products to, and only to those who are informed, knowledgable, and intelligent about computer code, you will never see a list of known bugs right on the box. If it's there at all, it'll be made as obscure as possible so that your average Joe can't find it. Why? Because average Joe will go nuts regardless of how inconsequential the bug is, or how much it would push back the release of the product to stamp out all the (known) bugs.

      Personally, I don't blame developers and vendors one bit for obscuring the known problems. When I run into a bug in something like MySQL or PHP, I can find out about it, whereas slightly-above-average Joe (beginner PHP page creator) would have a heck of a time. I find that to be ideal, as I can find the information I need and Joe's not taking up the vendor/developer's valuable time whining about 10,000 bugs he'll never see in his life.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    7. Re:Windows Software Shop :-) by StarvingSE · · Score: 1

      It is NOT inevitable that software will have bugs in it. By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.

      Yes, for any non-trivial software system, it is inevitable. How would you go about testing every-single logic path within a large system? There are tools that do a good job at estimating test-coverage, but it can only be an estimate. For example, if you have a loop that contains even one simple conditional inside of it, it is near impossible to test every single outcome. There are so many branches that it would never be completely tested in one's lifetime.

      Take solace in the fact that the software development world will ultimately fall into the same engineering disciplines as steam and mechanical enginering before it, and whatever mankind pulls out of our asses after it.

      Software and any other IT components will ultimately be consumer grade, and the inner mechanics (and bugs) will be a problem for the engineering QA department.


      The difference between a mechanical engineer and a software engineer is so fundamental that your comment just looks silly. A mechanical engineer creates something tangible: engines, parts, whatever. It can be built, it can be visually inspected by quality assurance, etc. Software is intangible. You can't inspect pressed CD's of software visually and find bugs. Because of this, your argument is essentially flawed.

      --
      I got nothin'
    8. Re:Windows Software Shop :-) by TheJediGeek · · Score: 3, Insightful
      While it's true that many things in the world do have defects, that's not really the issue.
      That whole article sounds more like "We, in group one, are the cool kids. All the cool kids accept bugs. Why aren't you a cool kid?" It is loaded with the underlying tone of "I'm smarter than you because I accept bugs as normal"

      After the condescending beginning, which assumes that every single person in the world has an opinion on software bugs, the loser then goes on to make excuses.

      "Bugs are inevitable, so why bother fixing them?"

      The idea of fixing bugs is NOT a binary one: Fix all or fix none.
      There should be a point where an effort is made to fix as many bugs as possible, or at least the ones that cause major problems. Minor bugs can be acceptable, but the current trend is for show stopper bugs to be left in for whatever reasons.

      Then there's the excuse of "fixing a bug may introduce new ones!" TEH NOES!
      "It might not work so I won't even try." Seriously, if I had this kind of attitude where I work, I'd be looking for a new job pretty quick.

      The entire thing just sounds like a condescending pile of excuses from a lazy, incompetent developer. Maybe he's trying to get a job writing technobabble articles since he probably won't be a developer much longer.

    9. Re:Windows Software Shop :-) by Richard+Steiner · · Score: 1

      You are failing to differentiate between known defects and unknown defects. Release with the former can be controlled to a large extent. The latter are inevitable in any complex system (as you say).

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    10. Re:Windows Software Shop :-) by pthor1231 · · Score: 1

      Don't be so quick to discount the cost of failure of software. The classic example being Therac-25, which was responsible for at least five patient deaths.

    11. Re:Windows Software Shop :-) by morgan_greywolf · · Score: 3, Insightful

      Imagine the trading price of MS if it did ship a list of known bugs alongside their products... I would think consumers would wait for a stable product before buying.

      Nonsense. Every major open source project has a complete list of bugs for all versions of their product for all to see, usually right on their Web site, which you can read prior to downloading. For instance, if you click on the Release Notes for Firefox, linked to from the front page, you'll see not only a list of known issues in the current production release, but there's a link to their Bugzilla database so that you can read bugs that have recently been filed against it.

      If people would really not buy a software product if they knew about all of it's bugs, then why would they download and install any open source applications? Because they don't have pay for them? Just because you don't pay for a piece of software, that doesn't mean it costs the user $0 to install and use.

    12. Re:Windows Software Shop :-) by colmore · · Score: 4, Insightful

      Reading this made me cringe:

      "All the reasons are tied up in one truth: every time you fix a bug, you risk introducing another. Don't we all start out with the belief that software only gets better as we work on it?"

      Holy shit! I can't imagine being on a team with that attitude? Do you people write tests? There are dependable ways of insuring that changes don't re-introduce old bugs, and if you can't fix one thing without causing a seemingly unrelated problem, you're working with some pretty smelly code.

      There's definitely truth in the statement that the need to use software and the need to eliminate bugs can be at odds with each other once the bugcount is low enough that the product is usable. But... isn't that obvious? How many open source projects out there (without version numbers approaching a known irrational number that is...) can really brag of being bug free?

      BUT this article is a good reminder of why I'm glad the boxed-software days are coming to a close. Software should either be written with a client present or by people who intend on using the product themselves. Trying to come up with a featureset for some vague "target market" is a horrbile way to write software. Software is unique because it is both engineering and design at every phase of its creation... and without set feature requirements and feedback, there's really no way to know if what you're making is well engineered or not. Anyway, don't work in a closedsource / many customers environment... it's bad for the brain.

      --
      In Capitalist America, bank robs you!
    13. Re:Windows Software Shop :-) by Khammurabi · · Score: 1
      What I would like to see is some vendor honesty. How about making a list of known bugs available to your customer prior to purchase?
      Unfortunately vendor honesty has nothing to do with it. If a software vendor posted a list of all known bugs on the internet, that vendor is then liable for any of those bugs that can be exploited. In addition to the liability concerns, it scares away customers. A good portion of people that buy software fall into group 2 (Software has bugs?), and as such will gladly visit your competitor's site which does not proudly display it's bug count.

      Software ships buggy because it's often not cost effective for mid to small size companies to spend X months eradicating them. And (for those unfamiliar with bug fixing) it is not uncommon to introduce one new bug for every two fixed. Thus the process is often not as straightforward as you may think.

      Bug fixing takes away time and resources from feature development, and therefore cuts into a companies ability to compete effectively. This is not to say that bug fixing never occurs, but merely that it is usually given a lower priority compared with deal closing features. The best analogy I can give is that it's similar to buying a new car. If you buy a brand new model right away, it's going to have problems. If you instead wait two years (AKA v2.0), most of the major problems should be gone.
    14. Re:Windows Software Shop :-) by lowrydr310 · · Score: 1
      I wish software engineers would be more like bridge engineers as well, but the cost of failure (and the cost of fixing in the event of a failure) are so different between bridges & software that its not likely to change.

      The world of software engineering is a different place in the Aerospace industry, specifically when you're developing flight control software. Failure is not an option, and therefore a significant amount of money and time is spent ensuring there are no problems.

    15. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      Actually, having a bug list would make me *more* happy about and likely to use the product. If the number is particularly small, then it'll be proof that it's reasonably stable and that care is given to bug fixing.

      In other words, it's only a bad idea to release bug reports if you have a shitty product. Some high profile companies need to start doing this as advertising, to get public awareness of it.

    16. Re:Windows Software Shop :-) by Whiney+Mac+Fanboy · · Score: 1

      True, true.

      Note that software that is going to be used somewhere where fatalities are possible will tend to use similar design & qa principles to bridge building :-)

      Also - I bet I can find a few collapsed bridges that have resulted in the deaths of more then 5 people.

      --
      There are shills on slashdot. Apparently, I'm one of them.
    17. Re:Windows Software Shop :-) by packetmon · · Score: 2, Insightful

      It does cost zero to install and use. What I was talking about was on a corporate level just so you understand. I don't see IT managers of Fortune 500's or 1000's rushing to replace IE with Firefox do you? Since you want to bring up Firefox (which is what I'm using just so you know), you do know that throughout this year there have been just as many if not more bugs with it then IE. If you also care to notice, Firefox as does most software developers place their bug notices mainly after they've been patched. Not once have I seen any developer of any software place a "Hey before you use this product here are its bugs" note on any site, disclaimer, etc.

    18. Re:Windows Software Shop :-) by idontgno · · Score: 2, Funny
      Failure is not an option

      According to TFA, in their software shop failure isn't an option there either.

      It's standard equipment.

      Buh dum ching!

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
    19. Re:Windows Software Shop :-) by crawling_chaos · · Score: 1
      You are failing to differentiate between known defects and unknown defects. Release with the former can be controlled to a large extent.

      Yep. Fire the QA department and just ship it. Voila, no known defects!

      --
      You can only drink 30 or 40 glasses of beer a day, no matter how rich you are.
      -- Colonel Adolphus Busch
    20. Re:Windows Software Shop :-) by IngramJames · · Score: 1

      The difference between a mechanical engineer and a software engineer is so fundamental that your comment just looks silly. A mechanical engineer creates something tangible: engines, parts, whatever. It can be built, it can be visually inspected by quality assurance, etc. Software is intangible. You can't inspect pressed CD's of software visually and find bugs

      In addition to which, I suspect that the average bridge has many fewer parts than the average non-trivial computer app. If you think of code as parts used to build something, then how many comparable parts does (say) a bridge have? 100,000? Half a million? Well, that's a half-meg bridge, you've got there, mate. That should be testable in a pretty thorough way. When your bridge starts to have 10 million individual parts, then things will go wrong more easily, and there are bound to be flaws. Large software apps have many more instructions than that, all wrapped up in logic paths which may have multiple different entry points.

      Also, flaws in buildings tend to be fixed without most people being aware of them. Got some damp in your office? The builders will come in at the weekend and drill down in the basement. Got a buggy GUI? Everybody will notice that. Bridge cable has come loose? A guy goes up and fixes it. It doesn't tend to affect the people driving over the bridge to work much.

      OTOH, it is true that in my experience, some software developers could take a great deal of benfit from engineering practices. The cowboy "fly-by-night" approach had me reading code today that made my eyes hurt. I had to scroll the page to see all of the variable declarations on a few of the methods. I'll leave the twisted, tangled, uncommented mess that was the actual code to your imaginations.

      --
      'No rational religion claims "supernatural" exists, that's an atheist slander.' - seen on slashdot.
    21. Re:Windows Software Shop :-) by operagost · · Score: 1

      RTFM, then!. It's right there! And I know of about 10 other software programs where the "readme" listed known issues with workarounds.

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    22. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0
      Linux and MacOS users have problems over how end-of-line terminators show up.
      I once had a subcontractor call me and complain about this. I was using Windows pretty much full time then (now use Linux almost exclusively) and even I knew about the utilities `dos2unix` and `unix2dos` which many distributions provide by default. I bet he felt like a serious ass after complaining so loudly about nothing. Jeez it's not rocket science ;)
    23. Re:Windows Software Shop :-) by Fulcrum+of+Evil · · Score: 1

      What's your problem with known defects? Some defects are important (crashing, dataloss), while others are not (bug in query processor makes it take longer, some function returns failure in an edge case when it shouldn't, but nothing is impacted). There's also the fact that some of the important defects are either a result of an edge condition (weird data, underspecced hardware, extreme load) or will only be seen by a very few people. At that point, it becomes an economic decision.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    24. Re:Windows Software Shop :-) by edremy · · Score: 1
      How about making a list of known bugs available to your customer prior to purchase?

      You can get software that will do this, or at least you could a number of years ago. I used to admin a machine with a copy of the molecular mechanics program Sybil on it. Sybil shipped with full eratta- a list of every known bug in the program, how to trigger it, the effects and the status of fixing it. I think it was three volumes.

      Sybil also cost something like $20k/year for our academic version IIRC. I think the commercial version was in the six figures per year per copy.

      --
      "Seven Deadly Sins? I thought it was a to-do list!"
    25. Re:Windows Software Shop :-) by AuMatar · · Score: 1

      Bridges *do* eventually collapse. If you throw maintenance money at it, it will take a while. If you don't, it will only be a few years. Of course, we occasionally see the complete curveball like the Tacoma Narrows bridge.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    26. Re:Windows Software Shop :-) by Keeper · · Score: 2, Insightful

      The idea of fixing bugs is NOT a binary one: Fix all or fix none.

      You fail to differentiate between known and unknown bugs. You can't fix a bug you don't know about.

      My general rules/laws/axioms about bugs:

      Some bugs are worse than others.
      Fixing bugs is good.
      Fixing bugs may introduce unknown bugs.
      Introducing bugs is bad.
      There is always at least 1 unknown bug.
      Unknown bugs are found over time.
      All bugs cannot be found in finite time.
      Uknown bugs may be worse than known bugs.

      If your goal is to ship with zero bugs, you never ship. If your goal is to fix every known bug before you ship, you risk shipping a product with serious unknown bugs.

    27. Re:Windows Software Shop :-) by Bigboote66 · · Score: 1

      Typical Windows Software house:

              Vault's backend makes extensive use of features specific to Microsoft SQL Server. Contrary to popular belief, SQL isn't portable.

      *shakes head* and then this:


      *shakes head*? Is this your condescending reaction to the poor tool who doesn't realize that SQL is portable. If so, then you're the one who's deluded. Sure, you can write simple applications using ANSI-standard SQL and get the job done, as long as your requirements for peformance are extremely low. As soon as you start pushing a system, though, you're going to find quickly that your ANSI standard SQL that runs great on one dbms runs not so great on another. The solution may not even involve writing SQL that contains vendor-specific extensions - it may simply be another ANSI-standard statement that makes the SQL behave better on another platform.

      And the standards say nothing about the performance impact of various isolation levels. If you think that a high-volume system designed around Oracle, even one using no Oracle extensions, can simply be dropped into MySQL or SQLServer as-is and still perform acceptably, you've obviously never attempted to do so.

      Large scale projects like PeopleSoft that run on a variety of back-ends didn't just achieve that by following standards in their code - they had to test the system on all the supported configurations, and make tweaks to their access methods for every new one they support.

      -BbT

    28. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0
      Software should either be written with a client present or by people who intend on using the product themselves.

      ROFLMAO. Man you really don't live in the real world at all, do you. Why in the hell would someone who just wants to send email or browse the web, or play GTA have to write the code or be present when it's written? See how absurd your statement is?

    29. Re:Windows Software Shop :-) by objwiz · · Score: 2, Interesting

      I disagree.

      I think the laywers won't allow us to release that information for fear of making lawsuits that much easier.

      I work for a commerical software developer (hence unnamed to protect blah blah). Yes we do ship with known defects. Our lawyers look over everything to the nth degree. They look at every screen we developed. They look at every report the program generates. They look at every help link. The list is pretty long.

      Yes BoD is about ensuring the company is profitable. But profitable doesnt have to mean shoddy and many companies honesty try to deliver quality products. So I feel its a bit contrived to suggest that the BoD primarily responsible.

      If anything releasing bug information would make the company more reputable therefore more profitable because more customers would be interested in dealing with a sincere and honest company (my program managers hold that view anyways).

    30. Re:Windows Software Shop :-) by scatters · · Score: 1

      The other big difference between using Open Source vs. a Microsoft product, is that I don't have to fork over substantial amounts to cash to be what is in essence a beta tester (and before everyone flames me saying 'you don't have to pay to be on the MS beta program' - I KNOW! I'm talking about the fact that the first gold release of their software is about beta quality), and then have to fork over additional cash to get support, not to mention the frequency of "Ooops, did we put a massive vulnerability in the application that cost your organization real money. Our bad, but there's nothing you can do about it because we don't accept liability for any loses arising for the use of our product". Things need to freakin' change!

      --
      A One that isn't cold, is scarcely a One at all.
    31. Re:Windows Software Shop :-) by Kuros_overkill · · Score: 1

      Here is my problem with the known vs unknown debate.
      You are always going to release with an unknown quantitiy of unknown bugs, regardless of any attepmt to fix known bugs.

      (Once again, its not a binary operation, you don't either release with known bugs, or release with unknown bugs...)

    32. Re:Windows Software Shop :-) by japhering · · Score: 1
      It is NOT inevitable that software will have bugs in it.
      By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.


      Really bad analogy. Bridges don't ever change their position. The forces acting on the bridge are well
      known and well studied. Software, while well studied, is never static. Its very nature is always dynamic and when you add people to the mix you will always have bugs. In order to have bug free code, you have to a perfect person writing said code. You won't find anyone that is perfect 100% of the time.

      In the last 20 years, I've spent thousands of hours in code reviews with 100s of people examining the code. Yet, nothing that has been through any of those processes are bug free.. might have minimal bugs, but definitely not bog free. Even machines can't produce bug free code, because somewhere along the line
      a person wrote some of the code.

      Now, having said that, software is getting better (I know oxymoron) as the tools development tools improve the resulting software improves.. BUT it will never be perfect.
    33. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      (WIN95 + WIN98 + WINME + WIN2000 + WINXP)/WIN3.1 * (EXCESSIVE CAFFEINE ) * ( LOUSY DESIGN) * ( ARROGANCE)^2 = WINDOWS VISTA...in all it's glory

    34. Re:Windows Software Shop :-) by JebusIsLord · · Score: 1

      wow. Count the straw person falacies in the parent post to win a prize!

      --
      Jeremy
    35. Re:Windows Software Shop :-) by sammy+baby · · Score: 1

      See, you have your knowns, and you have your unknowns. And with the unknowns, there are your known unknonws, and your unknown unknowns.

    36. Re:Windows Software Shop :-) by Coryoth · · Score: 1

      It is NOT inevitable that software will have bugs in it. By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.

      It is somewhat inevitable that software will not be perfect, just as a bridge is unlikely to be perfect. The difference currently, however, is that engineers who build bridges bother to do some analysis and provide assurances with regard to the quality of their work. That is, while the bridge may not be perfect, and likely has flaws, the engineer can say with confidence under what stresses it will stand, under what weather conditions it will survive, etc.

      What we lack in the software world is assurances, not a lack of bugs. For some reason because developers can't say "this will work perfectly" they refuse to make any effort at all. The bridge building equivalent would be saying "well inevitably the welders are going to get a seam slightly off, so fuck it, we'll just slap something together any old how". You don't have to be able to say "this software will never crash", but being able to say "under these conditions, this software will never crash" is quite manageable. Of course the trick is managing to write your software well enough that the conditions you can guarantee lack of crashing for a reasonably broad. Of course if you have such a goal in mind, and intend to be able to give such guarantees, then it gets a little easier.

      The real key is assurance - being able to state the bounds on when your software is guaranteed to work.

      Jedidiah.

    37. Re:Windows Software Shop :-) by honkycat · · Score: 1

      True, but the purpose of testing is to convert unknown bugs into known bugs. The longer you test a system, the more bugs will be found. If you make a change, you may have added more unknown bugs. You then need to reset the testing clock to shake out these new unknown bugs.

      If the bug you fixed was minor, it may not be worth the cost of the additional testing to be sure you didn't accidentally introduce a show-stopper bug.

    38. Re:Windows Software Shop :-) by Tim+Browse · · Score: 2, Funny
      I've broken MS' MSRPC in a real bad way. There are no ifs ands or buts. I passed the information off to Microsoft instead of passing code to a full disclosure list. I've replicated this over and over, remotely and locally. I know for a fact because of the architecture of networking they will never be able to fix this.

      And yet you can't work a 'preview' button? :)

    39. Re:Windows Software Shop :-) by Tim+Browse · · Score: 1
      I wish software engineers would be more like bridge engineers as well,

      Reminds me of something I read once, where someone got fed up of hearing "If we built bridges like we do software, most of them would fall down!" and decided to research bridges built over the past 150 years or so. He found that about half of them had fallen down.

      I forget who it was - I thought it was Jon Bentley (of Programming Pearls) but I have never been able to find the reference again :-(.

      Anyway, regardless of anything, I want it to be true.

    40. Re:Windows Software Shop :-) by Sj0 · · Score: 1

      By the time something is tangible, it is too late. Something I don't think you understand is that "looks good" doesn't mean anything. your software might have a pretty interface, but what matters is that it actually does the job without falling apart. Similarly, you can take a look at a large piece of metal and decide it's quite pretty looking, but suprise suprise, the rod is meant to anchor the bridge to the ground, which contains sulphor or something, but the alloy its made of doesn't have any sacrificial zinc and the bridge is going to collapse within 5 years.

      If anything, I'd argue that engineering in an imaginary digital world is far easier than engineering in the analog physical world. Problems you experience are digital in nature, and don't often take 5 years to show up.

      --
      It's been a long time.
    41. Re:Windows Software Shop :-) by sheldon · · Score: 1

      Another one...

      When you're building a bridge the specs say it needs to handle two lanes of cars and that's what you build to.

      With software, the specs may say two lanes of cars, but eventually someone is going to try to land a Boeing 747 on the bridge and then complain when it doesn't work.

    42. Re:Windows Software Shop :-) by Walt+Dismal · · Score: 1
      Today, Detroit auto engineers announced they were shocked that anyone would ever get angry over buying a lemon. "It has so many parts, we can't be responsible for everything that happens!" said Ernest Gumption, designer.

      In unrelated news, an SUV carrying eight auto engineers home after work rolled over and burst into flames, killing everyone. Rescuers tried but failed to save the life of driver Ernest Gumption, who perished in agony.

    43. Re:Windows Software Shop :-) by FooBarWidget · · Score: 1

      And look at the number of people complaining about bugs in open source software. Lots of people even think closed source software have less bugs because they don't have a public bugs database.

    44. Re:Windows Software Shop :-) by Tim+Browse · · Score: 2, Interesting

      My favourite version of this was a comment someone made on here a while back - something like "That bridge you made was great! Can you do us another one, only this time make it work in a universe where electrons have +5 spin..?"

    45. Re:Windows Software Shop :-) by leomaster · · Score: 1

      Several things wrong with this comparison. 1. Bridges are physical objects constructed in a specific locale with a limited set of conditions under which the bridge must function. 2. Bridges have (relatively) few parts. 3. Bridges can be inspected physically. 4. Bridges tend to be relatively static. 5. Bridges don't typically have to compete against other bridges for users. 6. There are a (relatively) small number of bridges constructed each year and their construction takes place in a (relatively) well-known environment (i.e., the engineers CAN do tests, even rearrange the end points if necessary to better meet the needs of the bridge. 7. The major structural supports for a bridge tend to be either left alone or shored up (strengthened in place) whereas software engineers rebuild the bridge frequently. Imagine: A bridge built to meet all possible conditions, span all possible lengths, make use of all possible positive material attributes, and be usable under any conditions and in any locations in the world. Add to that, there are 27 competing bridges offering the similar options and at similar price points. Additionally, if a bridge goes down unexpectedly, there is a thorough investigation and the designer and builder can face a stiff penalty if they didn't do their job. Software engineers can't be held to that level of liability under most circumstances because they usually only control the softare itself (bridge) and not the location (operating system), or the environment (hardware).

    46. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      If they are real defects then the bridge breaks. This is why there are tolerances for acceptable results. If the bridge is properly inspected then these variances are within spect then they are not defects, and, in theory, the bridge should not break.

      The same is true for software. For example, real time software should react within designed limits. If not, its broke. The big problem with software is that often any variance is a problem.

    47. Re:Windows Software Shop :-) by frank_adrian314159 · · Score: 1
      *shakes head*

      I don't know why.

      After about fifteen years or so of writing database apps, I've learned that one cannot develop secure and performant SQL code without tailoring it for the individual databases you use. This goes for Oracle, DB2, Informix, MySQL, PostgreSQL, and (yes) SQL Server. The fact that you think that standard SQL (and don't get me started on ODBC and the different vendors' mongrel APIs) can be used in a portable manner with acceptable performance tells me you probably haven't developed very large databases, or run a server farm so oversized that performance isn't an issue for your system.

      --
      That is all.
    48. Re:Windows Software Shop :-) by Xyrus · · Score: 1

      "I wish software engineers would be more like bridge engineers as well, but the cost of failure (and the cost of fixing in the event of a failure) are so different between bridges & software that its not likely to change."

      The old bridge anaolgy. Ok. So you're building 1-mile long bridge across a ravine. You have you engineers test the geology, you design, and you build it to spec right?

      No. Software is more like building a bridge to a place that no really knows. The customer for your bridge won't let you test the geology for stability using your own tools, you have to use their's. Only their tools don't do what they think it does.

      Mid-way through the project, your steel-reinforced concrete pylons are replaced by aluminum girders, despite your protests that they simply will not cary the load.

      Later on, you find out from one of your engineers that the tools you had to use from the customer did not show the lava-spewing volcano in the path of the bridge. In the meantime, an earthquake occured at the start of the bridge and shifted the whole thing by a half-mile.

      Finally, the customer has figured out where they "really meant" the bridge to go. To your surprise, they wanted the bridge built in the next state over. Oh, they also no longer need a suspension bridge. And it needs to be gold not green. And you have to build it out of wood.

      In a mad effort, your team picks up what they can from the bridge, haul it over to the new location, cut it back, quickly add on wood where possible, then paint the whole mess gold.

      In an ideal world, the cutomer would come to the table with a list of requirements. These requirements would be used to guide R&D to come up with a conops. The developer and customer would work things out at a high level until it was agreed upon. The developer would then create a user-level design matched to the requirements/conops, possibly with some prototyped functionality. Again this would be discussed until and agreement was reached. Then the developer would create a solid technical design based off the prototypes, user-level design, conops, and requirements. This represents the UNCHANGING blue-print for the software. The customers would get exactly what they wanted, and you would produce a solid software product.

      But in all my years of software developement, I've never seen this "ideal" happen. This includes much lauded CMMI certified places.

      ~X~

      --
      ~X~
    49. Re:Windows Software Shop :-) by GeorgeMcBay · · Score: 2, Insightful

      The software and bridges/houses argument is as stupid as it is old. Do you know what the cost of software would be if it had to be as failsafe as you want it to be? You'll be paying several orders of magnitude more than $500 for your copy of Adobe Photoshop if it has to be certified crashproof, and honestly the price just wouldn't be worth it. It isn't that nobody knows how to make nearly defect-free software.. there are companies that specialize in this while writing software for applications where peoples lives are on the line (control system for spacecraft, etc), the problem is that creating software like that is RIDICULOUSLY EXPENSIVE, and there is no silver bullet that will fix that. Are YOU going to pay the costs of all that reliablity? Do YOU want to deal with the stagnation in, say, videocards, due to the fact that every videocard driver has to be 100% crash-free, and the time lag that such engineering would involve?

      I don't think you've thought this thing through to the real world economic implications.

    50. Re:Windows Software Shop :-) by pnewhook · · Score: 1
      I would counter that with bridges are built better because the engineers involved don't get half way across then go "I know what would be cool to put in! A loop!" and proceed to start building a loop without telling anyone and no clear requirement for one.

      Or a new engineer on that bridge doesn't look at the work of his predecessor and go "what a pile of crap!" and proceed to rewrite it despite it being complete and functioning properly.

      --
      Tesla was a genius. Edison however was a overrated hack who liked to torture puppies.
    51. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      "If your goal is to fix every known bug before you ship, you risk shipping a product with serious unknown bugs."

      That makes absolutely no sense at all.

      You ship with the serious UNKNOWN bugs regardless of whether you fix known bugs or not. That's why they're called unknown bugs. How is shipping with known + unknown bugs than shipping with just the unknown bugs. Some people post the stupidest things.

    52. Re:Windows Software Shop :-) by shrikant.s · · Score: 1

      as the author says, the context of the bug(s) is very important and that decides whether the software gets shipped with the bugs or not.

      releasing the number of bugs to general public would cause severe negative publicity for the software coz the average joe bloke would get something like "This software xxx bugs". The statement does not tell whether these bugs are show-stoppers or just minor glitches. releasing extra info like severeity/priority would be too much info for an average bloke.

      Vendors do have a known issues link in their websites or product manuals(some at least..). even this can be misrepresented by a statement like "...has some issues with Windows XP"

      So, it is upto the vendor to decide fairly (for themselves and their customers) what bugs can be shipped and what can be revealed..

    53. Re:Windows Software Shop :-) by dilvish_the_damned · · Score: 1

      I didn't say all software will have major bugs that lead inevitabley to the collapse of the software. Just that all software will have bugs.

      There is software that is bugfree. Its just that its obsolete.

      --
      I think you underestimate just how much I just dont care.
    54. Re:Windows Software Shop :-) by Decker-Mage · · Score: 1
      Actually no. I've been doing software engineering for over 30 years now and have a proven track record of zero bugs and I don't do small projects. Then again, I come from the mainframe world and then the military where bugs cost either serious money or lives and in the case of the military the consequences aren't just fines or firing, it's prision at Ft. Leavenworth.

      Bugs need not exist in any software implementation. In every case I start with a logically proven, correct design. I make extensive use of validation routines, even for something as simple as the system time (I trust, but verify), and that also forms the core of my system/software security regime as well. You won't find any injection attacks working in my code. The only time I have to deviate from the code that is created from the proven design is to work around either compiler or OS bugs and, as with all my code, that is also extensively documented as well. If anything, the documentation I include at every stage of the process is huge in comparison with the actual code, just as I do with any engineering design. Yes, I have worked in a dozen fields of engineering, usually at the same time which is why I'm a system engineer, not just one kind. It really helps to have a background in systems analysis and the social sciences as well. That's useful in making sure that the business/work process is efficient and psychology is everything when designing and user testing the user interface.

      I don't develop software, I engineer it to spec and deliver it on-time, on- or under-budget, and defect free. The way to do that is to demand, or otherwise not engage in the project, total control of the work site, tools used, etc., just as any field engineer would demand. You don't tell me how to design and build that bridge, you tell me where you want it, how much traffic it is to handle (which I'll internally double), maximum vehicle weight (ditto), etc., and my timeframe/budget. The get the f*ck out of my way. You don't like it, get someone else.

      It took some convincing of my superiors to let me run my projects and teams my way but after the ROI on the first project, and the fact that the users loved the software, they let me do it that way ever after. The fact that my team members were able to support the software long after I left (medical discharge) was a huge plus. The first package I wrote, thirty years ago, is still in use and saving the US Army Corps of Engineers a ton of money as well.

      Arrogant? Yep. They get used to it if you deliver.

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    55. Re:Windows Software Shop :-) by pdovy · · Score: 1

      I was once told that it would be great if software was like building bridges, but that if bridge engineers had to operate in the same environment as software engineers, they'd be asked to build a bridge from point A to point B, only to find out halfway through the project that what was really desired was a bridge going from point A to some other point C.

      Point being that if software requirements were as set in stone as bridge building, we'd have much better software, but thats just not reality.

    56. Re:Windows Software Shop :-) by mdfst13 · · Score: 1

      "Why in the hell would someone who just wants to send email or browse the web, or play GTA have to write the code or be present when it's written?"

      That's backwards of what the GP said. Quote: "Software should either be written with a client present or by people who intend on using the product themselves."

      In your examples, the people *writing* the code would also be clients (because pretty much everyone sends email and browses the web; games should mostly be written by gamers). Further, you don't need *every* client to be present, just a representative sample (preferably one that includes at least some non-developers -- unless you're writing a compiler or other developer tool). I.e. it's not incumbent on the client(s) to be present during the writing of the code; it's incumbent on the code writers to make sure that they have (some) clients available while writing the code.

      The fact that you're misunderstanding such a basic issue of software design is emblematic of one of the main reasons why so much software is crap. People just don't get the basics. Gather requirements from actual users; plan your architecture before committing to code (prototyping before architecture is fine, so long as you realize that you can't use that code); write tests before you code and verify that your code meets your tests.

    57. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      The "they shouldn't bother doing it because no one is going to read it" argument is nonsense. Should we not publish the text of the laws our legislatures pass because essentially 'no one is going to read them'?

      The point is that a lot of frustration comes from a user banging his/her head against a wall not having any idea there's a "known" bug there.

      Perhaps you don't understand the nature of information dissemination. There are a few people - information hubs, if you will - who DO read this sort of documentation. (They're often known as experts.) They make use of it by telling other people the portions that are useful to them at that particular time, and thus the information which was once readily available only to the elite is filtered down to those who need it.

      Lawyers do this for the law. Techies do this for bugs and features.

      It should be mandatory that companies issue 'known bug' reports for their software. (IMHO, good documentation should be a requirement as well.)

    58. Re:Windows Software Shop :-) by Keeper · · Score: 1

      "Last bug's fixed! Ship it!"

      Except the last bug isn't fixed. There are still unknown bugs. If you ship a product with zero known bugs, you haven't tested it very long.

    59. Re:Windows Software Shop :-) by pdxChris · · Score: 1

      "Errata" is plural. An individual item on the list is an erratum.

      If you're going to be pedantic, might as well be accurate while you're at it.
      This was the only erratum in your otherwise perfect essay. Don't worry, I won't ask for a recall.

    60. Re:Windows Software Shop :-) by runcible · · Score: 2, Insightful

      > very time you fix a bug, you risk introducing another

      Risk. RISK. Riiiiiiiisk.

      How can you even take umbrage with that?

      Any time you change a code base, you RISK introducing a new bug. You cannot, cannot argue with that.

      --
      remember the wisdom of Mahatma Gandhi: If enough peasants die horribly, someone will probably notice
    61. Re:Windows Software Shop :-) by syousef · · Score: 2, Insightful

      Holy shit! I can't imagine being on a team with that attitude? Do you people write tests? There are dependable ways of insuring that changes don't re-introduce old bugs, and if you can't fix one thing without causing a seemingly unrelated problem, you're working with some pretty smelly code.

      You're new to this aren't you.

      If you can find a way to PROOVE that a less than trivial fix hasn't broken something else, you'd be too busy sailing the world in a multi million dollar cruiser to post to /. - the very fact that you don't understand this makes me immediately think of you as a cowboy coder.

      If you're working on a word processor or other piece of non-critical software no problem. When billions of dollars or lives are at stake you'll need to mitigate the risk with something other than "if you can't fix one thing without causing a seemingly unrelated problem, you're working with some pretty smelly code". Are you willing to bet your life on your code fix? How about the lives of your loved ones. There's plenty of software in a hospital or on an aircraft that must be that good.

      As for tests they can only tackle a very finite number of situations. They're definitely good for finding bugs that have been introduced. They're no use whatsoever for prooving you definitely haven't introduced a new bug.

      --
      These posts express my own personal views, not those of my employer
    62. Re:Windows Software Shop :-) by mpeisenbr · · Score: 1

      Um, No. Making the information available is not the same as forcing users to understand it. The intel debacle was more a public relations problem than a technical problem. If Intel had come clean in the first place, they probally wouldn't have needed the recall.

    63. Re:Windows Software Shop :-) by Anonymous Coward · · Score: 0

      Will you adopt me? *worship*

    64. Re:Windows Software Shop :-) by hackstraw · · Score: 1

      Every major open source project has a complete list of bugs for all versions of their product for all to see

      Also, Netscape would do this as well. See http://wp.netscape.com/eng/mozilla/4.0/relnotes/wi ndows-4.0.html

      There is room for honesty in business. Just think about how customer support would improve if the users were accustomed to having a list of known bugs or issues and not bother with customer support for known issues with possible workarounds.

      Now, check this out: http://support.microsoft.com/kb/811113/

      That is the list of bugs "fixed" by Windows XP SP2, with no list of new bugs or issues that come with SP2. Now, look at the page carefully. I did not use IE to read the page, so that may have an affect, but even the knowledgebase release is buggy.

      Just to get a grip of the number of bugs that were "fixed" by SP2, there are 827 listed on that page.

      1) There are 4 "Summaries" at the top of the page.
      2) Of the 827 bugs that were fixed, most come in the form of a URL like http://support.microsoft.com/?kbid=812203 , but some are in the form of http://support.microsoft.com/kb/812203/ . Notice that both of those links go to the same information. But how in the world can this list that I would assume is computer generated have 2 different URLs? That is a sign to me that the company has little attention to detail.
      3) At the bottom of the list, the List of fixes applies to Microsoft Windows XP Service Pack 2 (I thought this was SP2, not fixes to SP2). Also it must really, apply to Microsoft Windows XP Service Pack 2, because they listed it in a bulleted list 3 times. Along with 2005 Tablet edition.

      These kinds of issues are why I simply do not use Microsoft products. They simply cannot seem to get even the basics right.

    65. Re:Windows Software Shop :-) by hackstraw · · Score: 1

      It is NOT inevitable that software will have bugs in it.
      By your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.


      By your reasoning, there would be no redundancy or over engineering of bridges and they would last forever.

      There is variability in everything. Every nut and bolt on the bridge is unique. Most are within tolerance, some are not. I don't know the details, but many bridges are overspeced, and I would guess that the degree of overspecing varies according to the part. For example, its fairly typical to have 5x overspec on a static tensile load.

      Now, software at this point and time cannot be overspeced. You can't check 5 times to make sure a buffer is not overflowed (poor example, but bear with me). At a minimum, it will make the software 5x slower. The degree of "sanity" checks and error conditions depends on the need for reliability in a piece of software. For example, scientific apps use far less error checking and just "blow up" because they cannot take the performance hit by checking each and every step of the operation. Now, with system level programming, there is a much greater number of checks.

      Yes, software does have bugs, and it always will.

    66. Re:Windows Software Shop :-) by hackstraw · · Score: 1

      The point is that when you get into listing bugs, you have a number of caveats.

      Why is it that people think that computers are something different than any other thing in this universe?

      There are bugs in everything. Cars require a variable amount of gas to get them a fixed distance. Cars require maintenance like oil changes. Cars cannot even go the speed of sound, let alone anywhere near the speed of light. Cars cannot hold an infinite number of passengers, some only hold one or two. Cars don't last forever, and new bugs are found in them over time. Cars are very susceptible to human error which can leave them inoperable.

      Get my point?

  2. Welcome to Group One by eldavojohn · · Score: 1, Insightful
    The world's six billion people can be divided into two groups: group one, who know why every good software company ships products with known bugs; and group two, who don't.
    If you are in group two, than I post this for you.

    Theoretically, there is no language that is more or less prone to bugs than any other language as understood in Turing Completeness. Without delving too much into this, it simply states that all languages emulate a Turing machine to some degree and therefore should be capable of everything a Turing machine is capable of (although I don't think this says anything about time/space efficiency). One language may be better supported than another or have more libraries but we are going to assume these issues to be irrelevent to our discussion on applications--let us look as all applications being written in the same low level language that your computer directly understands. I don't want to compare architectures either, let us assume they are equivalently prone to bugs and are basic Turing machines.

    If we think about a binary executable program (machine language consisting of ones & zeros) then we must recognize that the program's memory space has many many states. Open up your favorite word editor. Type in a sentence you're thinking about. Highlight part of it and bold it. Highlight a different part and hit escape seven times. Do you think that this scenario was tested?

    My point is that it is an impossible herculean task for the developers to test any application in every state. They can come close and smart software design can leave an easier job for the testers but it will never be completely tested.

    I would define the term bug as "undesired behavior" and I suggest they be thought of in this manner. I will also make the statement that no piece of software can be garunteed to be free of undesired behavior due primarily to the above analysis of them being amazingly complex machines with a large state space. To take a stab at it mathematically, this browser (Firefox) is operating with a 48,604 Kb memory footprint (I have many tabs open). That's 49770496 bytes or 398163968 bits. Each bit can be on or off meaning that for the amount of memory my browser occupies now, there are 2^398163968 different possible states for any similar sized application running. Now, to add even more complexity, that state space adjusts according to what the application requires for memory.

    As our applications become more bloated, the situation only worsens. That is why development phases are either getting longer or requiring larger teams from the beginning of the project (mythical man month noted). At what point does the testing phase end? Hopefully never. Hopefully your software that you acquire is supported until the end of time ... but there are already too many projects out there left for dead.

    If you're wondering how companies can ship software with bugs, you should be wondering how is it possible not to ship software with bugs. You should also understand that there are rigorous standards and practices implemented along the way to prevent the most devestating bugs from escaping. If the company making the software has a history of failing in extinguishing the most glaring of errors, simply stop purchasing their software or demand the support you need.
    --
    My work here is dung.
    1. Re:Welcome to Group One by Threni · · Score: 3, Funny

      > If you are in group two, than I post this for you.

      > Theoretically, there is no language that is more or less prone to bugs than any > other language as understood in Turing Completeness. Without delving too much
      > into this, it simply states that all languages emulate a Turing machine to some
      > degree and therefore should be capable of everything a Turing machine is capable
      > of (although I don't think this says anything about time/space efficiency).

      If you understood Turing Completeness you'd be in group one.

    2. Re:Welcome to Group One by hunterx11 · · Score: 1
      Theoretically, there is no language that is more or less prone to bugs than any other language as understood in Turing Completeness.

      I have a theory that most software written today is written by human beings, or is generated by computers in a very predictable and straightforward manner given human input. Actually, this isn't a theory, it's an empirical observation, and I doubt many people would contest its truth. There are differences in debugging languages using different programming paradigms. Non-monadic code written in a functional language, for example, need not have every state checked; the correctness of such code is actually provable.

      --
      English is easier said than done.
    3. Re:Welcome to Group One by YU+Nicks+NE+Way · · Score: 1
      the correctness of such code is actually provable
      Oh? Really? I have before me a small segment of purely functional Scheme which implements an operator called "lambda". It takes a valid expression, and applies the "lambda" operator to it. Can you tell me how much hardware my customers will need to buy to support this feature (called "Church combinator support", for those of you interested)?

      You can't? Gee -- isn't that a bug in the program, open source or not?
    4. Re:Welcome to Group One by greg_barton · · Score: 2, Funny

      Type in a sentence you're thinking about. Highlight part of it and bold it. Highlight a different part and hit escape seven times.

      ON, I did that. Where's my damn easter egg?

    5. Re:Welcome to Group One by jizmonkey · · Score: 4, Insightful

      The article was about why known bugs ("thousands of bugs") aren't fixed before ship, not why all bugs aren't found.

      --
      With great power comes great fan noise.
    6. Re:Welcome to Group One by exp(pi*sqrt(163)) · · Score: 5, Informative
      Theoretically, there is no language that is more or less prone to bugs than any other language as understood in Turing Completeness
      Frankly, this is complete garbage. Try writing an application in the Turing complete language Brainfuck or 6502 assembler and compare that with writing in the Turing complete language Haskell. Turing completeness is completely irrelevant and you're simply quoting CS 101 to give your comments an air of authority.
      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    7. Re:Welcome to Group One by panthro · · Score: 1

      Each bit can be on or off meaning that for the amount of memory my browser occupies now, there are 2^398163968 different possible states for any similar sized application running.

      That's not true at all. First of all, a lot of that memory is the program itself, which isn't going to change, and some of it is probably your OS counting shared library code, which also isn't going to change. Even then, you can't take the variable segments of memory and assume that the application could by its own operation potentially set each bit of memory in any combination of ones and zeroes. There are a lot of memory structures that you can safely say are going to look like such-and-such, greatly reducing your estimate of the number of possible states.

      Anyway, testing software doesn't mean taking every possible state into account. That would be ridiculous. Certain things just shouldn't affect one another, so your ones and zeroes in memory situation would basically be a whole whack of "don't-care conditions" (as in truth tables and such) and a relative few significant bits whose values are largely co-dependent. Good programming should compartmentalize the program so that modules affect each other with minimal interaction and thus you really only have to do exhaustive state tests on very small modules.

      --
      If you're not part of the solution, you're part of the precipitate.
    8. Re:Welcome to Group One by Anonymous Coward · · Score: 0
      [Turing Completeness] simply states that all languages emulate a Turing machine to some degree and therefore should be capable of everything a Turing machine is capable of (although I don't think this says anything about time/space efficiency)

      I believe there is a property that all 'reasonable' models of computation can be emulated on a Turing machine with only a polynomial reduction in time efficiency - hence it makes sense to consider problems in P (computable in polynomial time on a deterministic Turing machine) and NP (computable in polynomial time on a non-deterministic Turing machine) even though we don't actually want to run programs on a Turing machine at all. Unfortunately I can't find any specific definitions or names for this...

      (Assuming that's true, space efficiency cannot get worse than a polynomial decrease, since the amount of space used is bounded by the time spent performing the computation.)

    9. Re:Welcome to Group One by 0xABADC0DA · · Score: 1

      You have a good point about the massive number of states, but you logic is sloppy. You assume that every byte of the heap can have any value, but this is just not true. In a reasonable language there are a great number of states that are simply not possible.

      Just because the language is turing complete does not mean that it produces processor complete binaries. In Java there is no way to refer to an illegal address, so you can emulate a tape machine and you can produce a binary with gcj, but that binary will never issue an illegal reference (either to unmapped memory or to the wrong address). If a variable is a protected field then only the object's operations can affect it, so the number of combinations of states it can take is greatly reduced. In fact, the real problem is not the number of states at all but that the way they are interrelated. You could have only a hundred variables and still not be able to tell whether the program operated correctly.

      If you program your application in Java or Ruby or Python or basically not-C/C++, then you have a whole huge category of mistake and bugs that are simply not possible no matter what the skill level is of the developers. The choice of language is the greatest factor in reducing bugs.

    10. Re:Welcome to Group One by Retric · · Score: 1

      That's one way to think about things, but in the real world there is a huge separation in the number and type of bugs created when you go from one language to another.

      For example :
      C++ programs tends to have a both a large number and a wide verity of pointer issues.
      Java still has pointer issues but most of them are NULL pointer issues.

      Granted they both have casting issues. However, for the same memory foot print you are not going to end up with the same number and type of bugs.

      The real reason why most software is full of bugs is people don't realy care. Yes, software is a hard problem but most projects tend to operate by trimming features to fit the schedule vs. focusing on the core problem until you have a rock solid solution and then adding carefully tested features until time runs out.

      PS: When people do care you see a huge difference. EX: Few people are willing to use an extremely buggy compiler.

    11. Re:Welcome to Group One by Anonymous Coward · · Score: 0

      Theoretically, there is no language that is more or less prone to bugs than any other language as understood in Turing Completeness.

      Turing Completeness is bullshit. A Turing machine has no interactive IO, no graphics, no networking, no threading. It can perform any calculation, but rarely does anyone want pure calculation.

      And there are a lot of language features orthogonal to Turing Completeness that help avoid bugs, like encapsulation and type safety.

    12. Re:Welcome to Group One by LordKazan · · Score: 1

      what exactly does the ammount of hardware required to do an operation have to do with the provability of the correctness of the operation?

      Hint: it doesn't

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    13. Re:Welcome to Group One by eldavojohn · · Score: 0, Offtopic
      Turing Completeness is bullshit.
      That's an interesting statement coming from someone who had to use a Turing machine to post it.

      If you sat down and thought hard enough about your processor(s) as Turing machine(s), languages essentially boil down to a strip of information being interpreted by a window. The languages provide us short cuts to 'speak' to the processor and coax it to do our bidding.

      What is different about a thread that does IO or graphics from a thread that simply does computations? Not much in the eyes of Turing, just different interpretations. I'm rather confused in how you think our GPUs and CPUs calculate the information that it sends to the devices on our machines via memory and hardware. In the end, it's essentially filling bits of information into hardware devices. This information is the result of these calculations that you claim no one cares about. Well, it's funny to say this, but I do care about those calculations and so should you!

      I suggest you read up on Turing Completeness as it is not bullshit and is the very simple logical basis for which nearly all modern computing works.
      --
      My work here is dung.
    14. Re:Welcome to Group One by atrocious+cowpat · · Score: 1
      "Type in a sentence you're thinking about. Highlight part of it and bold it. Highlight a different part and hit escape seven times. Do you think that this scenario was tested? "
      WTF!? I just did what you suggested and Word showed me a nudie pic of Melinda Gates.

      --
      sig? Oh, that sig...
    15. Re:Welcome to Group One by Ruie · · Score: 1
      In other words, what you are saying is "surrender to mediocrity".

      If we think about a binary executable program (machine language consisting of ones & zeros) then we must recognize that the program's memory space has many many states. Open up your favorite word editor. Type in a sentence you're thinking about. Highlight part of it and bold it. Highlight a different part and hit escape seven times. Do you think that this scenario was tested?

      At some point in Russia software was called "mathematical equipment". I believe there was a similar term in English, but I forgot what it is.

      The point being that people first studied what they want to implement, then formed a mathematical model of it and then wrote the software to implement this model.

      With this approach it is not necessary to test every possible way the software is used, but rather enough test cases are made to ensure that the mathematical abstraction got implemented properly (perhaps with some overcoverage to guard against buggy test code).

      A simplistic example is computation of a certain polynomial. It is easy to check what the degree is by examining the software and then you need to check that the values are correct in as many (or more) test points as you have coefficients in the polynomial. If all of these are correct - voila, you know that the answer is right for any argument.

    16. Re:Welcome to Group One by Alef · · Score: 1
      Theoretically, there is no language that is more or less prone to bugs than any other language as understood in Turing Completeness. Without delving too much into this, it simply states that all languages emulate a Turing machine to some degree and therefore should be capable of everything a Turing machine is capable of (although I don't think this says anything about time/space efficiency).

      Please do delve into this, because it makes no sense whatsoever to me. Turing Completeness has nothing to do with how likely you are to make a mistake when you write a program (that is, accidentally write another program than you actually intended to, and then fail to notice it). This is trivial to prove: Give me a day or two and I will design a turing complete language that is so confusing that anything you try to do with it will be riddled with bugs.

      Sure, all turing complete languages are theoretically able to represent any program (including its bugs) that exists in one of them, but so what? It says nothing about the probability that you mistakenly introduce unintended behaviour in a program. What matters is how closely the language is able to transcribe the mental concepts of the problem at hand, and how easily mistakes you make result in a seemingly correct program. And there is a huge difference between programming languages with regard to this.

      My point is that it is an impossible herculean task for the developers to test any application in every state.

      You don't need to examine every possible state a program can occupy in order to make formal assertions about its behaviour. Anyone who has taken a course in theoretical computer science knows this. (The study of formal program correctness is called formal methods.) Also, you might find BitC interesting -- a programming language designed to support formal program verification.

    17. Re:Welcome to Group One by SA3Steve · · Score: 1

      It's still pretty close to the same thing. In order for me to fix bug A, I need to know all of the scenarios that use the code I am changing. All of these new scenarios needs to be retested now as well as all of the different states that can hit this scenarios. Does it have an effect on multi-processor machines...how about different languages...right-to-left languages...etc. You then need to fix bugs found from this process and repeat again...

      It boils down to how severe is the bug compared to how risky is the change in terms of introducing new bugs.

    18. Re:Welcome to Group One by strider44 · · Score: 1

      I think you're firstly misunderstanding the concept of Turing Completeness. All it says is that any sufficiently complex language is logically equivalent to any other sufficiently complex language. Bugs are mistakes due to human error or environmental circumstances, and have absolutely nothing to do with Turing Completeness.

      You also seem to have a misunderstanding about the concept of state in terms of modern applications. You simply can't create a modern application without some sort of loosly coupled modularity. Take your Firefox example - most probably about 46MB of that 48MB would be due to caching, and the majority of the program, since it would be loosly coupled, would only depend on that part of the memory, and as long as that part of the program works for all of its states it will work no matter what the states of the other parts of the program are. Because of this it's an addition operator between modules, not a multiplication operator. Besides this, with a properly modular program it's not nearly as hard as you make it out checking binary arrays.

      Obviously most applications can't be properly tested (though it can be formally tested using an unfeasable amount of time) but the situation isn't as bad as you make it out to be. Bugs are indicative of bad programming, there's no way around that issue.

    19. Re:Welcome to Group One by Urusai · · Score: 1

      Languages are not "prone to bugs". A bug is a failure of the programmer to correctly express their intention in code. Some languages are harder to express yourself in, which appears as being prone to bugs, but that's a social/human issue, not a CS issue.

    20. Re:Welcome to Group One by Alomex · · Score: 1

      What part of theoretically you didn't understand? In practice, low level languages like C are a hell of a lot more bug prone than high level, type checked languages like Java and Pascal.

    21. Re:Welcome to Group One by 0xABADC0DA · · Score: 1

      I suggest you read up on Turing Completeness as it is not bullshit

      I suggest you write "Zen and the art of Program Maintenance: an existential guide to ticker tapes and such". This can be a novel about a rogue program tester and his fight against a headless blunder called "Quality Assurance" that exists only to spread the propoganda that a bug-free program is possible, endlessly toiling away to make the perfect program (this program can be called "Word 2009", since that would obviously impossible to debug fully).

    22. Re:Welcome to Group One by Anonymous Coward · · Score: 0

      Have you considered information theory? The ammount of information explicit within the source on a size / information ratio?

      Or perhaps the built in checks that exist in certian langauges?

      Turing Completeness of a language has no bearing on its potential for bugs based on human developers.

    23. Re:Welcome to Group One by hobbesx · · Score: 1

      Dude, you totally don't understand Turing Completeness.

      --
      This rating is Unfair ( ) ( ) Fair (*) Funny
      Sigh... If only. Modding would be so much more fun.
    24. Re:Welcome to Group One by YU+Nicks+NE+Way · · Score: 1

      Hint: it does. If you don't understand why, then you have forgotten (or never learned) that a computer program is a tool for achieving a goal, not a goal in itself. If my customer can't use the tool, that's a defect. If he or she can't figure out what is necessary to use to tool, then even that's a defect.

    25. Re:Welcome to Group One by LordKazan · · Score: 0, Flamebait

      we're talking about CORRECTNESS you dolt

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    26. Re:Welcome to Group One by Anonymous Coward · · Score: 0

      I would swallow the theoretical bs if it weren't for the fact that Turing Completeness is about computational power and not about susceptibility to defects. Don't utter the holy name of Turing in vain, dude. And go read the first paragraph of the very Wikipedia article you refered us to.

    27. Re:Welcome to Group One by Anonymous Coward · · Score: 0

      Since when was C considered a low-level language?

    28. Re:Welcome to Group One by YU+Nicks+NE+Way · · Score: 1

      "CORRECTNESS. You keep using that word, but I do not think you know what it means."

      Get your head out of your arrogant ass, idiot. CORRECTNESS means "will work in a user's real environment on his or her real hardware in a real world", not "can be proved to require no more than order big-O of n to the fourth storage locations."

    29. Re:Welcome to Group One by LordKazan · · Score: 0, Flamebait

      no correctness in this context is not "will work in a user's real environment on his or her real hardware in a real world" and i haven't any clue where you pulled that out of your ass

      did you get that from your high school microsoft word class teacher?

      correctness in this context is ALGORITHM CORRECTNESS

      ffs you're dense!

      --
      If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    30. Re:Welcome to Group One by hurfy · · Score: 1

      Unless one is writing in machine code isn't a 'language' simply a PROGRAM that translates one set of commands into another set.

      Why is this immune to bugs? I thought we just said programs are buggy? One would hope of course this is an instance were they keep going til they got it right before release. But how can you gaurentee they are not prone to bugs?

      What is stopping me from releasing my own language? Wouldn't be popular, useful, or easy. I bet it most certainly WOULD be 'prone to bugs' however ;)

    31. Re:Welcome to Group One by Anonymous Coward · · Score: 0

      What is different about a thread that does IO or graphics from a thread that simply does computations? Not much in the eyes of Turing, just different interpretations.

      Well, for the former, I'd have to #include a bunch of OpenGL headers and use a much different syntax than for the latter. I'd probably have to come up with a matrix class for the latter, and it might involve fewer floating point operations. Maybe more. And I'd have to arrange different input types....

      Just because the machine that runs two programs is the same doesn't mean the two programs have anything in common, except for a system of representation.

      You are basically saying that, since you can build the universal Turing machine with any programming language, every programming language is equally prone to bugs. How the hell are these two things related? One's a matter of ergonomics, the other a matter of abilities--and if you only had the ability to increment or decrement either of two counters and check if they're at zero, you would have all the capabilities of a Turing machine; but I defy you to port Unreal Tournament to such a system.

    32. Re:Welcome to Group One by Khelder · · Score: 1

      Intercal is another interesting language, thanks to statements such as COME FROM.

    33. Re:Welcome to Group One by TwentyLeaguesUnderLa · · Score: 1
      A simplistic example is computation of a certain polynomial. It is easy to check what the degree is by examining the software and then you need to check that the values are correct in as many (or more) test points as you have coefficients in the polynomial. If all of these are correct - voila, you know that the answer is right for any argument.
      Well, that is, if your "polynomial calculation" doesn't get broken by other factors - for example, integer overflow, the fact that floating-point addition isn't actually commutative, or the fact that your computer has limited memory to store the coefficients and results.

      If I test the polynomial x**3 with x=1, x=2, x=3, and x=10 that doesn't guarantee that it will work for x=-1 (what if somewhere along there it gets treated as an unsigned int?) or for x=2**64. And it CERTAINLY doesn't guarantee correctness for x=2.4.

      And it's not even touching the issue of what the code will do if you give it x="abcde".

    34. Re:Welcome to Group One by rossifer · · Score: 1

      I have a theory that most software written today is written by human beings

      I have a theory about the brontosaurus. Which is mine.

      All brontosauruses are thin at one end, much thicker in the middle and then thin again at the far end. That is my theory, it is mine, and belongs to me and I own it, and what it is too.

      A. Elk [miss]

    35. Re:Welcome to Group One by Ruie · · Score: 1
      If I test the polynomial x**3 with x=1, x=2, x=3, and x=10 that doesn't guarantee that it will work for x=-1 (what if somewhere along there it gets treated as an unsigned int?) or for x=2**64. And it CERTAINLY doesn't guarantee correctness for x=2.4.

      And it's not even touching the issue of what the code will do if you give it x="abcde".

      Well, this is why one tests multiplication first and why we have IEEE floating point numbers - so one is sure what is happenning. And yes, since the code is executed on actual hardware it would make sense to stress test it by putting in many random values and checking that the answer is right.

      Still, suppose you went along my suggestion and then found out that there exists x which produces a wrong result. Due to the known properties of the algorithm and the knowledge of which areas got covered by the test you would be able to deduce quite a bit about what the failure was.

      Contrast this with usual approach of sticking code to provide various features and then taking care of interactions by "beta" testing - this is sure to produce lots and lots of untested corner cases that are a whole lot less exotic than non-commutativity of floating point numbers.

  3. And lo, there was much rebuking by linvir · · Score: 3, Insightful
    I disagree with his grouping. The vast majority of the six billion doesn't give a shit about software bugs. They're primarily concerned with their ability to exchange services and products for money and vice versa, and if they do have free time, they don't spend it fretting about XP's bug count.
    But if you are a software developer, you need to get into group one, where I am.
    Or maybe even better would be for both groups to continue to exist. The Jedi need the Sith, and smartasses who don't worry about bugs need idealistic noobs who find them shocking. This sounds like the case of someone who's managed to become so surrounded by likeminded coworkers that he's completely convinced that his is the One True Way.

    And do we really need that much whitespace on a news page? I know about that whole '10 words per line' usability mantra, but it looks fucking ridiculous. Why can't all the other website owners just think exactly like me?

    Wow, look at all that rebuking. Do I win Slashdot?
    (IAJAFSS (I Am Just Another Fucking Smartass Student))

    1. Re:And lo, there was much rebuking by Itninja · · Score: 1
      They're primarily concerned with their ability to exchange services and products for money and vice versa,
      Or just find/growing/scavaging enough food to stave of painful hunger and/or starvation for one more day.
      --
      I judt got a nre Kinesis keybiartf so please excusr ant egregiou typos.
    2. Re:And lo, there was much rebuking by linvir · · Score: 1

      Maybe that was the case 100000 years ago when humans first entered the scene, but nowadays the majority of humans aren't starving. Where have you been all this time?

    3. Re:And lo, there was much rebuking by Anonymous Coward · · Score: 0

      Africa, Asia, parts of Central America - where there are people starving.

    4. Re:And lo, there was much rebuking by linvir · · Score: 1

      Well said, moron, but 800 million is not a majority, not matter how many times you say Africa.

    5. Re:And lo, there was much rebuking by Anonymous Coward · · Score: 0

      And do we really need that much whitespace on a news page?

      I had a mouth full of coffee when I clicked on that image. You owe me a keyboard.

    6. Re:And lo, there was much rebuking by Itninja · · Score: 1

      Most of the world isn't starving or malnourished; only about 13%.
      But the post said that, apparently, 100% of us are concerned with buggy software. I doubt the 800 million starving/malnourished people wonder "why is buggy software shipped"?

      --
      I judt got a nre Kinesis keybiartf so please excusr ant egregiou typos.
    7. Re:And lo, there was much rebuking by linvir · · Score: 1
      Interesting that you would think this, given that I opened that post with
      The vast majority of the six billion doesn't give a shit about software bugs.
      You try keeping track of what's what on opposites day!
    8. Re:And lo, there was much rebuking by Rice-Pudding · · Score: 1
      I disagree with his grouping. The vast majority of the six billion doesn't give a shit about software bugs. They're primarily concerned with their ability to exchange services and products for money and vice versa, and if they do have free time, they don't spend it fretting about XP's bug count.
      No kidding. I want to be able to USE a software product in the way that it is intended (even advertised) to be used. When a product ships with defects that make me wonder what kind of spaghetti-code mess is behind the pretty GUI, I do get just a little frustrated. I am a programmer, but I would classify myself more as Group 2 than Group 1.

      The author is thinking like a lot of PHBs in large corporations do. But there *is* another side. It *is* possible to develop high-quality software with confidence, especially in medium-sized applications. I know lots of programmers who really should not be writing core software, because they produce bug-prone, non-robust code.

  4. This is why by gentimjs · · Score: 0

    This is one of the reasons I truly despise the economics of commercial software ... ugh ... every word of the post is correct. $DIETY, I hate commercial software.... FP?

    1. Re:This is why by PrescriptionWarning · · Score: 3, Funny

      compiler error: $DIETY does not exist (except in weight-loss applications). Please use $DEITY.

    2. Re:This is why by mypalmike · · Score: 0, Flamebait

      compiler error: $DEITY is just pretend.

      --
      There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
    3. Re:This is why by Anonymous Coward · · Score: 0

      compiler error: $DEITY is a template. Create an instance of this object before use.

  5. A separate question by Southpaw018 · · Score: 4, Insightful

    The argument about the enormous bug count in Windows isn't really about every last bug being fixed. The article fails to address a separate question: whether you're allowing the public to do your beta testing for you.

    The idea of QC/testing/beta/whatever the heck you want to call it is that you get as many bugs as you can fix while accepting the ones that will remain behind. That's absolutely correct. However, there are companies - like Microsoft - that are notorious for either being sloppy and not getting bugs they should have, or just straight up not caring at all and rushing a product to market that legitimately shouldn't be there.

    The argument can even be extended to good coding practices, like worrying about security fron start to finish rather than after you've entered beta (another well known Microsoft flaw, though they're getting better at it). That reduces the number of bugs to begin with, which in turn gives a better product.

    --
    ACs are modded -6. I don't read you, I don't mod you, I don't see you. Don't like it? Don't be a coward.
    1. Re:A separate question by Anonymous Coward · · Score: 0

      The argument about the enormous bug count in Windows isn't really about every last bug being fixed. The article fails to address a separate question: whether you're allowing the public to do your beta testing for you.

      I see you are firmly rooted in Group 2.
    2. Re:A separate question by Ansonmont · · Score: 3, Insightful

      Not a fanboy of MS, but they certainly haven't rushed Vista out. I'll bet that they do ship it in s pretty buggy state when it does come out, but they have delayed its launch it is becoming like Duke Nukem Forever.

      Anyway, yes, most people don't care about software, but you also have to look at what the application is trying to do and what you need it to do.

      1) Rules of thumb: The last 50% of a project is spent taking it from 95% to 100% (or really 99% as the case may be...)

      2) Is the software used for medical purposes? Financial? Downside to those barfing are HUGE. Or is it a game that is meant as a fun diversion? All of those make a difference in people's tolerance for bugs/undesired effects/undocumented features ;-)

      The consumers have spoken with their wallets. So far they have said that low cost up front (PC) is worth more than a more stable, polished platform (Mac). Less true now, thouh, XP isn't that bad. I use PC for work, Mac for home, Linux/Unix rarely.

      -A

    3. Re:A separate question by Anonymous+Brave+Guy · · Score: 1

      But the consumers speaking with their wallets doesn't really tell us very much in the software case. There are far more productive and reliable ways to develop software than those typically used in the mainstream. However, until the mainstream catches up and lots of developers are familiar with better techniques and using better tools, all the big name commercial offerings will be as bad as each other, so there's not much for the consumer to vote between.

      Here's an example: I reported a way to crash Paint Shop Pro X to Corel via their web site not long ago. I was trialling it, and considering buying it, but click the wrong button on the toolbar and wham, segfault city. That betrays a pretty crappy underlying design somewhere. Do you know what they did? They closed the bug. Immediately. Without so much as a "thanks for letting us know".

      Now, I work in software development. We make high performance maths libraries, that are used in things like CAD programs. If a customer of ours reports a crash bug in our code, the average time to sending them a patch release containing the fix is a few hours. Go figure.

      The sad thing is, I did buy Paint Shop Pro X in the end (though through Amazon, who charge about half as much as Corel themselves). Other things I'd looked at and within my budget - the GIMP, for one - just couldn't do what I wanted to, or had similarly obscene bugs. So despite their pathetic attitude to fixing a very serious problem in their software, Corel have wound up with my money anyway. Of course, as soon as someone comes along with a similar "budget graphics" app that has a good range of features and better quality, I'll never be buying another upgrade to PSP. I won't hold my breath...

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:A separate question by pedalman · · Score: 1
      The argument about the enormous bug count in Windows isn't really about every last bug being fixed. The article fails to address a separate question: whether you're allowing the public to do your beta testing for you.
      Agreed.

      I don't know about anybody else, but I have always had a problem with paying for the privilege of beta testing a new product.

      --
      Friends don't let friends line-dance.
    5. Re:A separate question by ACPosterChild · · Score: 1

      If you're on OS X, you're running a FreeBSD fork. Not trying to be pedantic, but pointing out that just because you didn't install it yourself doesn't mean that you're not using *nix on a daily basis.

    6. Re:A separate question by Ansonmont · · Score: 1

      Sure, I know OS X is based on BSD and is *nix at its heart. I even open up the terminal window occasionally to get into it.

      That wasn't really the main thrust of my argument though, just a quick reference to the systems I tend to use, and OS X (CATNAME) is one of them. Sort of like the Square/Rectangle thing.

      -A

  6. Quick Precis by Anonymous Coward · · Score: 0
    Example: Item 10016. Linux and MacOS users have problems over how end-of-line terminators show up. Last October, we tried to fix this and accidentally introduced a nastier bug that prevented users creating new versions of a project.
    Short answer: We're incompetent.
    Long answer: Our code base is so insanely intricate and unmanaged that we can't implement a simple bug fix without inducing an enormous number of regressions.

    Article summary : We're incompetent, but no more so than everybody else.
  7. Member of Group 1.5 Confused by PrescriptionWarning · · Score: 2, Funny

    I propose we call a meeting with Groups 3-12 and 15-20 and see if we can get some kind of real analysis of what Groups 1 and 2 are really thinking.

    1. Re:Member of Group 1.5 Confused by Red+Flayer · · Score: 1

      What, are groups 13 and 14 out to lunch?

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  8. One reason (Ballmer style!) by fak3r · · Score: 0

    Marketing! Marketing! Marketing!

  9. No idea by Unski · · Score: 4, Funny

    ..why buggy $oftware is $hipped. Can anyone help me with thi$?

    1. Re:No idea by Reverend528 · · Score: 1
      ..why buggy $oftware is $hipped. Can anyone help me with thi$?

      Maybe it's buggy because you're writing it in PHP.

    2. Re:No idea by sharkey · · Score: 1

      In other words, "The simplest explanation is the likely the correct one?"

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    3. Re:No idea by Unski · · Score: 1

      Good man (or woman, if that is the case). You avoided the phrase because you didn't need to throw the phrase around as a substitute for actual wisdom. I like.

    4. Re:No idea by zippthorne · · Score: 1

      But what do you know? you're just a slashdot drone trying to be witty.

      --
      Can you be Even More Awesome?!
    5. Re:No idea by Unski · · Score: 1

      Was that spiteful sentence even worth the characters it was written? I don't even know you, troubled little boy. BTW usa.net? What an uncomfortable throwback to 1996 for me it was to see that domain name again.

    6. Re:No idea by zippthorne · · Score: 1

      Well sharkey took "occam's razor" and SOMEONE had to attempt the ad hominem.. but i left it a little too vague it seems.

      --
      Can you be Even More Awesome?!
    7. Re:No idea by Unski · · Score: 1

      * blushes *

      Dammit how am I to know someone on Slashdot wouldn't want to tear strips out of me for no particular reason?!

      Still, damned embarrassing when I think about it..a worthy ad-hominem attack, and I fucking bit!!

      * blushes again *

    8. Re:No idea by lon3st4r · · Score: 1

      d00d, it's not a bug, it's a feature. duh!
      * lon3st4r *

  10. Buggy code is sold because it is demanded by crummyname · · Score: 2, Insightful

    In many cases, the customer *needs* the software now, bugs be damned. If you don't, your company goes under.

    1. Re:Buggy code is sold because it is demanded by drooling-dog · · Score: 4, Informative
      I'm surprised I had to read so far down to find this, the real reason. Stuff gets shipped because somebody needs to make their numbers, now. Sometimes the survival of the company is at stake, and sometimes it's just an individual climbing the career ladder.

      In a previous life I was in charge of software development for a smallish company whose business was scientific software and systems. To my repeated horror, the CEO and the Sales & Marketing VP would get together and decree - perhaps for reasons that were very compelling to them - that major software packages would be released to customers with no testing whatsoever. Stuff went straight from the compiler to the customer, sometimes even without a cursory walkthrough of functionality. For objecting, we, the software people, were branded as troublemakers and criticized for not being "team players". Once labeled in that way, I would be pretty much ignored any time I had to report that a new product or an update was not ready to ship. Needless to say, I left that company in a hail of bullets.

      To this day, I still laugh when I hear people say that Open Source software can never measure up to "commercial standards". Depends on whose commercial standards you're talking about...

  11. The Reason: PHBs by koweja · · Score: 4, Interesting

    99% of the time it's because upper managment either promised the customers features that could not be implemented or gave the programmers too little time and/or resources to finish the job. While not software development, I am having to deal with a similar problem right now. We are moving our website to a new CMS system. So we have to move all of the content from our old pages to the new system using a slow, buggy, web based system. In the beginning we were told by IT that we had until June 5 to complete the move, so we scheduled our time accordingly. Things progressed slowly but in time to meet the deadline. Then Tuesday morning we get a call from the assholes in PR that we have to have everything done by this Friday. We just had our remaining time cut in less than half. There is no way we can get done, so the site will be incomplete. PR gets no blame and we look bad.

    1. Re:The Reason: PHBs by fish_in_the_c · · Score: 1

      ; Perhaps many of us would understand it stated better this way
      ; this piece of code was taken from the secret scripting ;language that is used to run manager training simulators

      ;WARNING: understanding this code may make you
      ; begin to understand management
      ; understanding management has been known to cause
      ; corruption to programmers minds and has been known to
      ; eventually cause promotion from programming to management
      DOLOOP

      IF(want to make $money$)
                  write new software OR new features;

      IF(time proposed to customer by manger LESSTHEN time to implement new feature)
      {
      Terminate ON(time proposed to customer by manger = current time)
                      {
                                      test and fix;
                                      update design documents;
                                      keep organized;
                        }
      }

      IF(time to implement new feature >= time to this point)
      time to implement new feature = Reduce By Half (time to implement new feature)

      time proposed to customer = time to implement new feature
      END LOOP

      --
      âoeTolerance applies only to persons, but never to truth. Intolerance applies only to truth, but never to persons.
    2. Re:The Reason: PHBs by Anonymous Coward · · Score: 0

      Uh, do you work at RegisterFly?

    3. Re:The Reason: PHBs by __aaclcg7560 · · Score: 3, Interesting

      Then Tuesday morning we get a call from the assholes in PR that we have to have everything done by this Friday. We just had our remaining time cut in less than half. There is no way we can get done, so the site will be incomplete. PR gets no blame and we look bad.

      That's always fun. When I was the lead tester for DBZ: Buu's Fury GBA at Atari, the producer revised the schedule without informing us and I didn't find out until two months after that happened. On top of that, Nintendo insisted that we put in wireless multiplayer capability because the title was coming out the same time as the new wireless adapter was being released. That was a disaster in the making since the wireless API was unproven (even Nintendo had a hard time with it), we didn't get the wireless adapters until a few weeks before we were supposed to code release, and I was planning to leave the company because my boss thought I wasn't working hard enough (I worked 28 days straight before I left, BTW).

      I made extensive arrangements to be the fall guy if this blew up after I was gone so my team wouldn't get fired in my absence. Since I was leaving the video game industry, I wasn't concern about my reputation if I had to take the blame. However, everything turned out as I expected. Nintendo rejected the title for wireless multiplayer bugs, the wireless capability was pulled from the US version (the European version shipped with it a month after the US release), and no one on my team was fired. Well, not immediately. Within a year after I was gone, all my team members were picked off one by one even though they were the most experienced people in the department. I guess my boss found out I reported him to HR for an ethical violation.

    4. Re:The Reason: PHBs by Anonymous Coward · · Score: 0

      There is no way we can get done, so the site will be incomplete

      Well, it's a good thing you're spending your time posting on /.

    5. Re:The Reason: PHBs by koweja · · Score: 1

      CMS system isn't responding again, so I can't really be working on the webpage anyway.

    6. Re:The Reason: PHBs by koweja · · Score: 1

      Nope, a college in PA

    7. Re:The Reason: PHBs by koweja · · Score: 1

      That was decent of you. I'm not worried about getting in any kind of trouble for not meeting the deadline since it doesn't seem like any other department is going to either. Besides, it's just PR. Despite what they thing they are not in charge of this project, it extends above, below, and around them. I'm just annoyed by them; they do very little besides create uninformative press releases and stick their noses in other people's business.

  12. ok... but what about? by mseidl · · Score: 0, Troll

    Careless mistakes and security holes? What about MS taking 200+ days to patch a critical security hole? What about bugs/security holes due to bad management styles/lazy programming or a combination of the two?

    Sure, bugs / security things will happen... but how many are too many? And when is an acceptable time frame to fix those, and fix those that pose major security risks?

  13. In my experience, here's the reason by Weaselmancer · · Score: 2, Insightful

    Managers.

    Specifically, managers who don't know enough about the project (whatever it may be) and make unreasonable promises to their superiors about shipping dates. It seems that the way most businesses are set up reward managers who complete projects on time or early, rather than the quality of the product. As a result, managers tend to rush development teams through their tasks and the end result is a buggy release. And a manager with a bonus check.

    If software shops could change their focus to creating a better release product but with a flexible time schedule...say for instance, rewarding managers for fewer bug reports and service calls rather than completion dates, you'd have an entirely different picture.

    --
    Weaselmancer
    rediculous.
    1. Re:In my experience, here's the reason by Anonymous Coward · · Score: 0

      Parent poster must still be a peon.

      I can illustrate exactly why those deadlines are imposed:

      Client: We need this software to show at our conference on date X.
      Sales: We can't deliver that.
      Client: Ok, we'll go somewhere else. Oh, and that next $80 billion in purchases we were going to make from you? You can forget that as well.
      Sales: Oh sorry, did I say we can't deliver that? I was just joking. We can.

      At this point your sales/marketing/CRM people better be prepared to make the client understand that there will be bugs in a shipped product. As long as the sales/marketing/CRM people can do their job (and do it successfully) and the client understands the bug aspect, everyone's happy as long as the major feature sets are complete and delivered on-time. Bug fixing can happen after deployment but the client has to be made aware that bug fixing will happen post-launch.

      You'd be surprised how many clients are satisfied with this approach.

    2. Re:In my experience, here's the reason by Anonymous Coward · · Score: 0

      1) make unreasonable promises to superiors about shipping date
      2) rush development teams and ignor quality
      3) get rewarded (bonus check) for completing projects on time or early
      4) distribute buggy release
      5) PROFIT!

      VS.

      1) creating a better release product with a flexible (longer) time schedule
      2) distribute solid release
      3) reward manager for fewer bug reports and service calls. (How do you reward fewer?)
      4) NO PROFIT!

    3. Re:In my experience, here's the reason by Anonymous Coward · · Score: 0

      If software shops could change their focus to creating a better release product but with a flexible time schedule...say for instance, rewarding managers for fewer bug reports and service calls rather than completion dates, you'd have an entirely different picture.

      Indeed you would. You'd have no customers since neither sales nor marketing would have no idea what to tell them. You'd lose ground to your competitors, but at least your developers wouldn't feel pressured to produce quickly.

      Of course, they might feel pressured after they lose their jobs to an offshore competitor.

    4. Re:In my experience, here's the reason by neelm · · Score: 1

      Not Managers. Consumers.

      Software is a business, like any other, out for profit. The cost to fix the bugs versus the cost to deal with them after launch are considered. Right now, people have no problem buying buggy software, buying support for buggy software, and throwing more hardware at buggy software.

      It's supply and demand and demand for bug-free software is low. Of cource part of the reason for the low demand is articles like these that claim bug free software is not possible. It is possible, just not as profitable.

  14. Nature of Competition by DuSTman31 · · Score: 4, Insightful

    Regardless of the nature of the software development team, the nature of competition remains the same.

    Stagnation is costly - delaying a product launch drives people to the alternatives (both due to the alternatives updating faster, and due to the lack of progress seen by the outside world).

    Of course, buggy software is costly in terms of reputation, as well, so the end question becomes at what point will the delaying of the release cost us more market share then the remaining bugs will.

    Unfortunate from a purists eyes, but it's just the way things go.

  15. Umm... by Anonymous Coward · · Score: 0

    His little 'graph the severity against the frequency', but 'never' make easy changes just because they are easy plan fails when it comes to typographical errors. They may not show often, and are certainly not severe, but they ARE extremely easy to fix, and have no further impact (ie: fixing a typo will never cause more bugs). But, according to his rules, he'll never fix a typo.

    "It is better to ship a product with a known quality level than to ship a product full of surprises."

    And it's BEST to get all the bug out first!

  16. Software can be shipped without known bugs by trelanexiph · · Score: 1

    There are products available, memprof, Coverity nessus which can be used to find and fix common forms of previous bugs. These fix everything from repeating previous security flaws (I note a previously unknown DoS flaw I found in Asterisk's skinny codec ages ago which emulated a bug in cisco call manager exactly, which I found with Nessus), to bad programming, or programming mistakes (Coverity), to memory leaks (memprof). These types of bugs are unacceptable, there are tools out there to detect them DURING THE PRODUCT DEVELOPMENT CYCLE. I am not saying that you can fix every bug every time, but 5 digit numbers of open bug reports are unacceptable.

    1. Re:Software can be shipped without known bugs by tcopeland · · Score: 1

      > which can be used to find and fix common forms of previous bugs

      And there are open source versions of those code analysis tools, too!

    2. Re:Software can be shipped without known bugs by Anonymous Coward · · Score: 0

      Yes, but do they support VB? *ducks*

    3. Re:Software can be shipped without known bugs by Anonymous Coward · · Score: 0

      Shipping software without KNOWN bugs is easy - just skip the testing.

    4. Re:Software can be shipped without known bugs by tcopeland · · Score: 1

      > Yes, but do they support VB? *ducks*

      Touche!

    5. Re:Software can be shipped without known bugs by jdb8167 · · Score: 1

      I went to the Coverity website and got the following when I clicked on their Product tab:

      404
      Not Found

      The requested URL /products/nf_index.html was not found on this server.

      Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

      It turns out that if you have Flash enabled, it works correctly (for very small values of correct.) Wow am I unimpressed.
  17. A grossly oversimplified market explanation by melquiades · · Score: 1, Flamebait

    Software will stop being buggy as soon as people stop putting up with it.

    If people actually stopped buying Windows because it sucks, you can bet your sweet darned bippie Microsoft would stop making it suck. As it is, honestly, why should they care? People keep using Windows. It makes no business sense for them to focus on quality if quality doesn't sell.

    <flamebait>There is already a company that caters to the niche market that actually gives a rat's ass about consumer software quality. It's Apple -- and oh, look at how they just dominate the desktop computer market....</flamebait>

    1. Re:A grossly oversimplified market explanation by Anonymous Coward · · Score: 0

      Funny, that, I just bought my first apple laptop...

    2. Re:A grossly oversimplified market explanation by Anonymous Coward · · Score: 0

      Shut up, bitch.

    3. Re:A grossly oversimplified market explanation by IDontAgreeWithYou · · Score: 1

      Maybe, just maybe, not everybody thinks Windows sucks. I know it's hard for some people in the /. world to believe, but a lot of people (maybe most people) don't think Windows sucks. I run XP. It never crashes. I've never had a virus. It runs every piece of software I need to use. Where does this suck? I will give you that spyware can be a problem, but you just need to be careful of that. Just to try to save some karma, I am not trying to be a fanboy here. I do use Linux and like it, it's just not my primary OS.

      --
      Finding other idiots on /. that agree with your opinion doesn't make it any less stupid.
    4. Re:A grossly oversimplified market explanation by Anonymous Coward · · Score: 0

      Right, because their software never sucks and is never buggy.. You're in for a rude awakening.

  18. bugs, so what? by ComSon0 · · Score: 2, Insightful

    We buy buggy cars, houses, and anything else you can think. Nothing with the aim of perfection *ever* gets done.
    So what's the big deal?
    I understand shipping something like bad tires that will eventually kill people should not be done, but anything that does not cause harm or major finantial distress should just be dealt with during the normal lifetime of a product.
    I am an embedded systems developer. We take care of the functionality problems before shipping and work on the corner cases as we move along.
    There is no way a group of people, doesn't matter how large, can think on every possible problem that can occur.

    Show me one thing that's man made and that's perfect and I will eat my shoes.

    -later!

    1. Re:bugs, so what? by tbone1 · · Score: 4, Interesting
      I work for a company that does medical publishing. Our data is used by many medical professionals in highly-stressful, quick-paced environments. If we mess something up, it can kill people.

      And if our IT staff had the same intelligence, competence, and vision as our management team, we'd kill over 10,000 people a week.

      --

      The Independent: Reverend Spooner Arrested in Friar Tuck Incident - ISIHAC, Historical Headlines
    2. Re:bugs, so what? by magicjava · · Score: 1

      Show me one thing that's man made and that's perfect and I will eat my shoes.

      http://starfcker.typepad.com/photos/stars_ive_spot ted/pamanderson.jpg

    3. Re:bugs, so what? by mypalmike · · Score: 1

      Our data is used by many medical professionals in highly-stressful, quick-paced environments. If we mess something up, it can kill people.

      Are you saying there aren't any mistakes in the data you publish?

      --
      There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
    4. Re:bugs, so what? by magicjava · · Score: 1

      Althought, truth be told, that's two things.

      How does that shoe taste?

    5. Re:bugs, so what? by Al+Dimond · · Score: 1

      Um, that's not perfect, that's grossly out of proportion -- and tacky to boot!

    6. Re:bugs, so what? by Al+Dimond · · Score: 2, Informative

      The Computer Modern fonts (as used in TeX) are perfect! Or, at least, perfect enough that "These fonts are never going to change again". I think the same thing is also true of TeX itself, but I may be wrong. :-P

    7. Re:bugs, so what? by magicjava · · Score: 1

      Sorry my friend, but TeX has nothing on Pammy.

    8. Re:bugs, so what? by Anonymous Coward · · Score: 0

      Obviously your sense of taste is not one of those things.

    9. Re:bugs, so what? by Anonymous Coward · · Score: 0

      My thoughts exactly, for what it's worth... parent also seems to be discounting the possibility of a sanity check, post-view...

    10. Re:bugs, so what? by joto · · Score: 1
      The Computer Modern fonts (as used in TeX) are perfect! Or, at least, perfect enough that "These fonts are never going to change again". I think the same thing is also true of TeX itself, but I may be wrong. :-P

      Well, TeX is certainly approaching "perfect" in the sense that there are no bugs left that isn't a design error. Yet I consider most of the features of TeX to be a design error. Nobody sane would write TeX the way it is written today. It only makes sense when seen in a historical perspective. Sadly, nobody has yet written a "better" TeX yet. At least not one that lives up to it's promise!

      As for the look of Computer Modern fonts, it's perfectly within Knuths right to proclaim they're perfect, but personally I've never been very impressed with them. I much prefer Times New Roman, as it is a font that remains readable even after taking a photocopy of a photocopy of a fax of something printed out with a cheap inkjet printer. Computer Modern requires a high-end printer to even be readable. There's a reason it never became popular as a screen font!

    11. Re:bugs, so what? by Al+Dimond · · Score: 1

      Damn, I always thought Times New Roman was kind of an ugly font (CMR, OTOH can look OK in PDFs if you use dvipdfm, but sure, it's not ideal for screen viewing). But that's just my own opinion. I was being a bit silly with the perfection thing; it has this aura of perfection around it because it's been the same powerful and flexible system for so many years, able to meet the demands of serious document creators. The one place I really think it shows its age, though, is interationalization (in this age of Unicode).

  19. The author of the article... by tcopeland · · Score: 1

    ...Eric Sink, has a interesting piece on his blog about open sourcing Java. He says he's a C# programmer now, so kind of a different perspective...

  20. Why Buggy Software Gets Shipped by goldaryn · · Score: 0

    Why Buggy Software Gets Shipped

    Easy. Because it's nearly impossible to get software bug free. Add time constraints and pressure from above... Even when software is close to bug free, people always want enhancements, new bugs are introduced..

    The best Linux distros test their releases to death, and still require and release regular bug fixes. And that's the difference, really, not to get into the OSS/closed source debate, but it's all down to how you deal with the fact that software is buggy.

  21. That's not what QA is for by BadAnalogyGuy · · Score: 1

    QA is not there to find bugs for fixing. Sure, they may run into a few here and there that are worth the time to fix before the product ships, but by and large the major bugs are caught while the sources are still hot on the developer's local tree. The bad ones that make it to QA fall into one of two categories: 1) bad developers and 2) bad architecture/design. Both of which are great topics for conversation, but not the problem at hand.

    What we are talking about is QA and its role. It's role is to identify and label as many bugs as possible. Ideally, no bug would make it unknown to the wild. Even heinous bugs that wipe out user data and go on to crash international banking servers require no more than identification and tagging by QA. What QA is for is to make sure that all behavior by the product is predictable.

    Now, one byproduct of making the product's behavior 100% predictable and reproducible is that it becomes easier to write the fixes for those features which are labelled as bugs, but that's a byproduct of QA, not its main reason for existence.

    If you work for a company that thinks that QA is supposed to be finding bugs for fixing, you're most likely working in a place where the QA team is stressed out and the product cycle is longer and less productive than other places where QA's role is clearly defined as the assurance of the quality level of a product.

  22. I don't care about quirks/annoyances. by artifex2004 · · Score: 1

    I do care about bugs that crash the program, and I really care about those that cause data loss.
    If you knowingly ship code that causes data loss, you are morally responsible for that loss, especially if you don't warn anyone about it.

    Disabling that dysfunctionality is always preferable to destroying customers' work.

  23. Real reason by gowen · · Score: 5, Insightful

    Because, by and large, no one gets killed when commercial software crashes.

    In those cases where it does; e.g. medical/aviation software, usually embedded people take the time. If aviation software designers cut the same corners (w.r.t. bugs vs. features) that office software designers do, planes would fall out of the air and people would die. So they write well engineered software, in well engineered, fault tolerant languages (lika Ada). (Yes, yes, Ariane, but thats the exception that proves the rule)

    The real reason buggy software is shipped, is because buggy software is accepted by the market, and people will keep buying it, and continue to roll their eyes when it crashes, because they're completely inured to it, and many of them have reached the conclusion that its literally impossible to write robust, stable software.

    It's not, but the profit margins are narrow, and no-one seems to mind (or rather they mind, but keep forking over their money anyway). So no-one bothers to.

    Face if folks, we're enablers.

    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    1. Re:Real reason by Anonymous Coward · · Score: 1, Insightful

      Even in medical systems, you'll have a display that isn't quite lined up, or a non-critical task that takes longer than it should, or similar no-risk bugs. The products still aren't shipped bug-free. The are simply held to a higher standard of what an 'acceptable' bug might be.

    2. Re:Real reason by gowen · · Score: 1

      That's why I said "robust" and "stable" rather than bug-free.
      They're not perfect, but they're much better than commercial office software is.

      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
    3. Re:Real reason by Anonymous Coward · · Score: 1, Insightful

      I think you aren't accurately representing the COST of that embedded software you're citing. PC software, buggy as it is, is exactly what the customers are paying for. That firmware flying the planes, satellites, running cars, is some of the most expensive stuff you can engineer, costing upwards of 500 to 1000$ (or more) per line of code - and even then you have problems. PC software, on the other hand, is produced at a fraction of that. I'm sure people would balk at paying 1000 for a base windows license, another 5k for the basic version of office. They'll jump for that "good enough" version over there for 1/10th the cost.

      There is nothing wrong with this. I don't buy bullet proof armored windows for my house and car. I could conceive of senarios where I would like them, but it's not cost effective for me to do it. How many of you are guilty of buying the cheap plastic version of item X? Don't tell me you won't accept bugs at the right price point.

    4. Re:Real reason by blamanj · · Score: 2, Insightful

      In other words, companies get away with shipping buggy software because they can. If customers demanded it, the way manufacturers of airplanes and medical equipment did, the industry would be force to respond.

      The problem is, computers are so useful, that customers would (for now) rather put up with bugs than do without. Just as in the early days of the automobile, people would put up with the danger of having the hand-crank break your arm if the car backfired while you started it. Cars were new and had big advantages over horses and mules. Nowadays, however, if you tried to sell a car that was likely to break your arm (or even required hand cranking) you'd go out of business in a heartbeat.

      Face it, computers are still in their Model-T era.

    5. Re:Real reason by Anonymous Coward · · Score: 0

      In those cases where it does; e.g. medical/aviation software, usually embedded people take the time.

      Perhaps the embedded people do, but I just left a seat-of-the-pants clinicial software company that had virtually NO process to speak of (source control not consistently used, no testing departement, no test scripts, no requirements documents, no up-to-date documentation, few source comments, no scheduled backups, no revision control, etc., etc.) and has managed to be in business 20 years!

      It just goes to show that quality, even in a 24/7 patient care environment is not Number 1!

    6. Re:Real reason by gowen · · Score: 1

      That's a really good point.

      --
      Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  24. It's the three M's by FidelCatsro · · Score: 1, Interesting

    Marketing , Management and Money

    --
    The only things certain in war are Propaganda and Death. You can never be sure which is which though
  25. Nice excuse, but not good enough by Anonymous Coward · · Score: 1, Insightful

    I agree that for a non-mission critical type of software, bugs are acceptable. As long as there are workarounds (e.g. avoid doing things that cause the bug to occur), it would be ok.

    However, for mission critical software such as medical devices that deals with raditions output or heck even slot machines, bugs are unacceptable.

    A good example is the Therac 25 where due to bugs, it actually injured people. http://www.ganssle.com/articles/disaster.htm

    I hope the poster of this article or anyone who is in group 1 will never work on any mission critical software.

  26. Re:What a load of crap by nasch · · Score: 1

    So there's no possibility of a bug whose cost to fix is so high that it doesn't justify the benefit?

  27. Articles like these make me sad.. by wfberg · · Score: 1

    Articles like these make me sad that slashdot doesn't allow the posting of images in replies. Had this been on fark.com, this thread would be full of Ric Romero images.

    Luckily Ric's wikipedia article suggests a textual equivalent..

    "Determining which bugs to fix should take into account some manner of cost-benefit analysis?! Thank you, Captain Obvious!"

    --
    SCO employee? Check out the bounty
  28. I test industrial software. I watch it ship buggy by Anonymous Coward · · Score: 1, Interesting

    It is in the best short term business interests of the people making the decision to ship software with some bugs NOW rather than ship perfect software later or never.
    You're going to announce that you plan to ship xyz new feature on some date well before that date occurs.
    In this business, you make the announcement for the same reason as in any other business. You don't want your customers to choose an alternative that precludes the necessity of buying from you.

    These schedules are always aggressive. They typically assume no bugs passage release test on the first try.
    Managers who develop these schedules are not stupid. They just have to respond to business as well as engineering requirements.

    Development and debugging are always behind schedule because this is not realistic.

    So, you string the Customer (one company or "the market"; doesn't matter) along with promises and betas, but eventually, they demand the product. Pressure is high and the Customer says give us what you got. (And well scream bloody murder if it's not right, and we know it's not right, and it's your fault, now, give us the f---ing software now!)

    And you ship, because once you've gotten to this point, to ship is a better business decision.

    QED

    PS
    You bet your ass I'm posting this AC.

  29. Five digit bugs are wrong for what reason...? by __aaclcg7560 · · Score: 1

    When I was a lead tester at Atari, there was 3,000+ bugs for Backyard Baseball GCN and less than a dozen open minor bugs when the game shipped. Some people considered 3,000+ bugs to be a high number for a GameCube title. For me, that's being thorough. (Which we had too since the programmers loved inserting phallic imagery into a kids game.) I'm looking forward to seeing how Backyard Baseball 2007 GCN stacks up when it's released next month. My assistant lead tester and I (we both no longer work for Atari) are planning to tear it apart. I just hope I don't have to submit a report to change the ESRB rating for any inserted phallic imagery. From some of the screenshots I've seen so far, we may very well find something.

    1. Re:Five digit bugs are wrong for what reason...? by dogbowl · · Score: 1

      I'd *love* to hear what you find. I left software development last year, but I still check on my former employee's application every so often to see whats happened to it.

      If you find anything good, post it to your blog :)

      --

      These pretzels are making me thirsty.
  30. Group 1, not in my industry.. by s31523 · · Score: 1

    Whats really frustrating is getting people from Group 1 that know why buggy software is delivered to customers, but start to accept this as normal practice. This especially hurts in the aerospace industry when we get crossover managers and software developers from Group 1 that can't understand why we don't release buggy software intentionally and spend a lot of time dealing with their crappy code or improper schedules because they think software verification is a luxury item that is unnecessary.

  31. Known undisclosed broken features by 192939495969798999 · · Score: 1

    I would prefer to at least know the things "you" (microsoft, etc. whoever) know that are definitely broken features of the product. I'd like to see "You can't do this, but here's the workaround" and put that info in some kinda place. Programs used to come with user manuals that told exactly how to do things. Now they pretty much don't come with that stuff, which means I should be able to do anything? Nope, some stuff won't work, but no one told me the Proper(tm) way to do it, so I have to go spend another hr on the internet looking it up. That's broken as hell! Just tell me how to do it the first time.

    Also, the scope of the bugs that exist is super-wide now. There were always some kinda errors in a program that are weird, but main features being broken (especially becoming broken by other installs from same company) is just not acceptable. Sure, a "buffer overflow that is really complex to implement" probably matters to me, but way less than seeing "windows media cant find codec" on a WMV video I need to watch for class in a school lab, on a PC that I can't install anything on.

    --
    stuff |
  32. Why is this "commercial" software specific? by Anonymous Coward · · Score: 0

    I see all the usual flippant comments from the /. banana gallery about M$, but what does buggy software have to do with "commercial" software? All software has bugs, closed source commercial to open source free. While it's popular to only hold up specific examples like IE vs Moz/FF or Linux/GNU vs Windoze, fact is that I have not personally witnessed any better quality coming out of FOSS side vs the commercial side. Like with anything else, several factors play into why software has bugs, most of them focus on the abilities of the developers themselves (give me good developers on a tight schedule vs average/crappy developers with all the time in the world).

  33. Re:What a load of crap by Mindwarp · · Score: 3, Interesting

    How very black and white of you. So the large Investment Bank shouldn't ever put its new trading system in place, which has the potential to make them hundreds of millions of dollars, because of a couple of small, esoteric display bugs in the GUI?

    The real world is all about risk/benefit analysis. The only places that ship guaranteed bug-free code are those where human life is directly affected by the output of that code. For anything other than trivially simple systems the cost/benefit analysis will rule out formal code proof in anything but the most necessary of circumstances.

    --
    The gift of death metal does not smile on the good looking.
  34. because we want it NOW! by LWATCDR · · Score: 4, Insightful

    Look at Vista. Everyone is complaining about it not shipping on time. I have yet to hear anyone say. It is a good thing that Microsoft is fixing all those bugs.
    Product ships late because of bug fixes. Why is it taking so long.
    Product ships on time with bugs. Why didn't you fix the bugs before shipping.
    You just can't win

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:because we want it NOW! by Anonymous Coward · · Score: 0

      In that case, the scope of the project was too wide and/or the timeframe was unrealistic. Fire the project manager.

    2. Re:because we want it NOW! by __aaclcg7560 · · Score: 1

      I very much doubt that Cheney... uh, I mean Ballmer... will get fired anytime soon.

    3. Re:because we want it NOW! by aug24 · · Score: 1
      I'll fix that for ya:

      Product ships late because of bug fixes. Why did you think you could do it so quickly?
      Product ships on time with bugs. Why didn't you tell us? Did you think we wouldn't notice?

      There. That's better.

      Justin.

      --
      You're only jealous cos the little penguins are talking to me.
  35. It's Business by Anonymous Coward · · Score: 0

    while ( ( your_budget ) > ( Estimated_liklihood_of_this_bug_being_a_problem_to _users ) * ( The_foreseen_cost_of_recovering_from_this_bug_if_i t_were_to_be_a_problem ) {
          fix_bugs();
    }
    ship_product();

  36. MS Word Easter Egg by eldavojohn · · Score: 1
    Where's my damn easter egg?
    Calm down. Open up Microsoft Word, type "=rand()" without the quotes and hit enter.
    --
    My work here is dung.
    1. Re:MS Word Easter Egg by cerberusss · · Score: 2, Funny
      Open up Microsoft Word, type "=rand()" without the quotes and hit enter.

      You bastard! When I typed this, my PC froze! But since it's also a server, it rebooted itself, mailed a Nigerian scammer my home address, started a DDOS on the local authorities and blew itself up, taking half of the data center along with it. When I came home, the Nigerian scammer had raped the dog and the cable guy from the ADSL company who had showed up at my house. When I told my wife, she replied that she didn't care since the left me this morning and took the house along.

      So thanks to your FUCKING easter egg, I am divorced, broken, homeless and worst of all, WITHOUT AN INTERNET CONNECTION.

      Thanks for nothing.

      --
      8 of 13 people found this answer helpful. Did you?
    2. Re:MS Word Easter Egg by hobbesx · · Score: 5, Funny

      Think of it this way:
      At least that Nigerian scammer doesn't have your address anymore...

      --
      This rating is Unfair ( ) ( ) Fair (*) Funny
      Sigh... If only. Modding would be so much more fun.
  37. Profitability Uber Alles ... by Infernal+Device · · Score: 1

    The very fact that this discussion arises at all tells me that profitability is of more concern than quality in the commercial software world.

    In the Free Software/Open Source world, that excuse doesn't exist, so what is it? Laziness? Hubris? Apathy?

    --
    "My God...it's full of trolls!"
    1. Re:Profitability Uber Alles ... by BenjyD · · Score: 1

      Lack of time for bug-fixing and the virtual impossibility of proving any reasonable size piece of code 'correct'.

    2. Re:Profitability Uber Alles ... by Aero · · Score: 1

      Laziness? Hubris? Apathy?

      The Holy Trinity is Laziness, Hubris, and Impatience. No patch-pumpkin pie for you.

      All kidding aside, though, impatience and apathy are two sides of the same coin. If you're releasing software out of impatience, you typically don't care about the consequences of not "finishing" the job, as if a software project is ever truly finished.

      --
      We can believe in you for 3 minutes, but beyond that, even the King of All Cosmos can't be expected to wait.
    3. Re:Profitability Uber Alles ... by Anonymous Coward · · Score: 0

      Perhaps because there IS a separate FOSS world from the other one? FOSS developes who live (or take holidays) in the same society as users will quickly find out that normal people don't like mending broken software.

  38. Re:What a load of crap by ch-chuck · · Score: 1

    Hahahah - you have obviously underestimated the irresistible power of the Quarterly Balance Sheet.

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
  39. Re:What a load of crap by BenjyD · · Score: 1

    All software ships with known bugs - if it doesn't, you are either not testing enough, or are only shipping tiny programs. At some point, commercial reality has to come into it and you weigh the cost of fixing the bug against its impact.

  40. Erveytnhig Hmuans Do Has Bgus by magicjava · · Score: 1

    Erveytnhig hmuans do has bgus. Soemohw we mnagae to get aolng.

  41. *BAH* by Anonymous Coward · · Score: 0
    In many cases, the customer *needs* the software now, bugs be damned. If you don't, your company goes under.

    In
    1) *MOST* cases, the
    2) *VENDOR* needs the revenue in order to meet unrealistic sales forecasts and
    3) *PROFIT* now, bugs be damned.

    If you don't, your
    4) *SHAREHOLDERS* get
    5) *PISSED* and run and the
    6) *COMPANY goes TITS*

    The stock market plays a HUGE role in why things suck.

  42. Re: Vendor honesty by Medievalist · · Score: 5, Funny
    What I would like to see is some vendor honesty. How about making a list of known bugs available to your customer prior to purchase?
    Good idea! You go first.

  43. no comment but ... by Anonymous Coward · · Score: 0

    it just shows that being a programmer nowadays is just
    another job you can do. write software, earn money.
    no more moral grounds, or bonding with the software or
    the resposibility of the "thoughts of a computer". very sad.
    just throw together some "software" (my god!! "builds on
    sql server") and sell to some idiots.

    just wondering when this economical bug will hit the
    manufacturing industries. i think some wittier slashdoter
    can come up with horrendous outcomes with this "never mind
    we sell products with bug" mentality in the food,
    pharmaceutical or machine industry ...
    "yeah, we KNOW our sausages; we dont eat them"
    "yeah we build that airplane; but we do fly in them"

  44. If at first.... by Malor · · Score: 1

    If at first you don't succeed, redefine success.

  45. Vendor honesty doesn't pay... by Captain+Sarcastic · · Score: 1

    The problem with vendor honesty is that it backfires on the vendor.

    Let us suppose that WidgetWorx version 1.1 gets shipped. Inside the package is a list that says, "at the time of shipment, these are known bugs/shortcomings/issues."

    An ambulance service that uses WidgetWorx for their dispatching service, and something goes wrong that leads to a patient dying. Said patient's estate could hire a savvy lawyer who would make a wrongful death claim against the ambulance service for "using a software package with known defects, thus indicating negligence." Even if the package did not have anything to do with the patient's death, it would be an indication of careless behavior and "lack of due diligence" by the ambulance service.

    The ambulance service (or its insurance company), in turn, would sue the manufacturers of WidgetWorx to recoup their losses... and the list of issues would make it a slam-dunk.

    I'm not denying that "vendor honesty" as you describe it would be a good thing in a perfect world. Unfortunately, this world, like my grammar, ain't perfect.

    --
    Strike while the irony is hot! -- The Freethinker
    1. Re:Vendor honesty doesn't pay... by Anonymous+Brave+Guy · · Score: 1

      I'm not sure either of your legal premises hold up.

      Firstly, as soon as the ambulance services comes under fire for using a version of WidgetWorx with known problems, they could line up a dozen expert witnesses to testify that pretty much all software has bugs, and it takes someone of the calibre of Don Knuth to produce a complex program that (probably) doesn't (any more). It is therefore unrealistic to expect that any software wouldn't have bugs, even if they weren't disclosed ahead of time.

      Secondly, if the ambulance service purchased/licensed/whatever the WidgetWorx software when its faults were already known and disclosed, surely it would be a slam dunk for them not to be liable for anything? I can't sue my car manufacturer because I can't outrace a Ferrari, even though the spec sheet said top speed of 90mph, now can I? If anything, the liability should arise the other way around: if the software manufacturer knowingly shipped a product that was unfit for purpose because of bugs, then they'd have the moral low ground in any law suit.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:Vendor honesty doesn't pay... by Minwee · · Score: 1
      However, the ambulance service chose to purchase WidgetWorx even though they knew that it had a list of bugs six pages long, many of which directly affected their ability to perform their key tasks.

      What they didn't do was purchase the X-Widget product from a rival developer, which was released with only one page of known bugs, none of which had any impact on their daily ambulance operations. That's clearly negligent and shows that the ambulance service doesn't care about their clients lives at all.

      The notions that X-Widget is completely unusable and has a list of undisclosed bigs that could fill a book is nothing but hearsay and unless you can produce physical evidence to support those claims, they have no place in a court of law.

    3. Re:Vendor honesty doesn't pay... by jc42 · · Score: 1

      Oh, c'mon; how many people (or companies) have ever been sued for using IBM or Microsoft equipment? Anyone with the slightest experience knows how bug-ridden their stuff has always been. But there are no apparent legal repercussions to this at all. And vendors of software with with demonstrably better reliability have a hell of a time breaking into "their" market.

      Let's face it; "bug-free" is neither a marketing nor legal advantage, at least not in the business and retail markets.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    4. Re:Vendor honesty doesn't pay... by Captain+Sarcastic · · Score: 1

      You're probably right, that on legal and moral grounds, the concepts don't hold up. The problem is that, with as litigious as our society has become, neither legality nor morality seem to hold. It frequently turns out to be cheaper for the makers of WidgetWorx to settle than to fight the good fight.

      --
      Strike while the irony is hot! -- The Freethinker
  46. My experience by bbroerman · · Score: 4, Insightful
    I work for a large software shop. In my experience it boils down to:

    1. Accellerated schedules created by management / client without development buy-in.
    2. Management cutting development phases in order to get things done faster to meet dates from #1. (i.e. design reviews, code reviews, phases of testing, etc)
    3. Shipping portions of the development off to India teams (in order to save money) who are under trained, and can't speak the same language as the other developers, and who won't ask questions when they don't understand.
    4. Giving development / design tasks to people with no experience in the subsystem that they are being assigned to, because management believes that one developer is as good as any other... we're just bodies...
    5. Churn in employees... Better / more experienced people leaving for better jobs, and noobs coming in to replace them. After a while, you have too many noobs, and not enough older, more experienced folks.
    6. Colleges not training people on common coding errors, proper design principles, good design patterns, proper testing and documentation strategies, etc.
    7. The old addage: Too many cooks spoil the broth. Some times, there are too many senior developers, architects, etc. workign on a design, an they all have their favorite ways of doing things. Many times, even within a single subsystem, one senior person will move to a new project and a new one will come in, and want to change the process / design to fit his style... and usually at the last minute...

    Now, as to why bugs don't get quashed quickly:

    1. Lack of enough informatin from the person experiencing the problem to allow development to recreate the problem.
    2. High complexity of the systems involved.
    3. Bad library design / separation of concerns / encapsulation, etc. means that a small bug in some unrelated libarary can cause problems where you never expected them.
    4. Developers who aren't experienced enough with the code / subsystem to be able to find said small bugs. (i.e. see number 4 and 5 from last list).
    5. Developers who aren't given training and experience in the proper use of debuggers, memory checkers, etc. (how many college hires out there really know how to use dbx to track down a bad pointer in the free list?)
    6. Too small a staff, too much to do.

    I see each of these every day!
    --
    Logic is the beginning of reason, not the end of it.
    1. Re:My experience by subnomine · · Score: 2, Informative

      I would agree on all points, and add one more group of causes for bugs: morons and crack-heads. Ok, maybe that's obvious...but not to management. I worked for a company whose tiger-team of contract labor consisted of: a drug abuser, a dead beat dad, an imbecile, and one really nice guy of no special education. Of the four, the crack-head hoodwinked management into thinking he was crack-coder, a virtuoso. He used 8 lines of code to copy a (double) into a (long) using sscanf() (instead of just using the cast). No, I'm not one of the four, nor management! :)

    2. Re:My experience by Anonymous Coward · · Score: 0

      Now, as to why bugs don't get quashed quickly:

            1. Lack of enough informatin from the person experiencing the problem to allow development to recreate the problem.
            2. High complexity of the systems involved.
            3. Bad library design / separation of concerns / encapsulation, etc. means that a small bug in some unrelated libarary can cause problems where you never expected them.
            4. Developers who aren't experienced enough with the code / subsystem to be able to find said small bugs. (i.e. see number 4 and 5 from last list).
            5. Developers who aren't given training and experience in the proper use of debuggers, memory checkers, etc. (how many college hires out there really know how to use dbx to track down a bad pointer in the free list?)
            6. Too small a staff, too much to do.


      You missed two.

      7. WDFLFT (We Don't Feel Like Fixing That) Some developers seem to get this attitude after an initial period of enthusiasm for their product. At first they are responsive and communicative, fixing bugs quickly and taking advantage of user input. Over time they start becoming more distant, less responsive, and bugs start to linger even as new features are developed. Eventually, some bugs and/or bad implementations are ignored long enough to become ossified: after screaming about it over and over, the users eventually become inured to it and/or migrate to another app. Fresh attempts to bring old bugs to the fore again are met with a resentful, frosty, often arrogant silence.

      This happens a LOT with software that has achieved monopoly (Microsloth) or near-monopoly (Adobe Photoshop, Avid, several others) status, or is the type where migration to other apps is difficult because of the learning curve (3D rendering/animation).

      8. Code Entropy. I suspect that there comes a point where the price of jury-rigging new features onto an old codebase starts to break things at a rate that approaches 1:1 -- i.e. an average of one new bug created per fix applied. The only solution is a fundamental rewrite, which really should start happening when code entropy goes past 0.5, but often the economic situation of the software company/bad management prevents that from hapening. Eventually the users of the software start sighing about the old days, when a bug was merely a novel oddity instead of something that rules their lives and takes 30-50% of their working effort to get around.

      9. Code bloat. The more complex, the easier to break.

    3. Re:My experience by Siker · · Score: 1

      I am not Indian but I would say that claiming that any India team lacks the skills to do the job is a little bit harsh. I'm pretty sure there are fine programmers in India too and generalizations like those aren't helpful.

      As far as education and college goes, I'll say this again. Today's schools do not work using a problem-solution pattern which leads to students who can quote a great number of books but can't really solve problems unless they have been previously described and solved in said books.

    4. Re:My experience by bbroerman · · Score: 1

      Yes, I shouldn't generalize like that... I should have just said "offshore outsourcing"...

      I'm just currently having a LOT of trouble with our Indian team... they aren't available when we're in the office, they seem to have a holiday every other week, most don't speak English very well, if at all, they don't ask questions when they don't understand (they just say "I'll get that done", and then either don't do it, or do it wrong), and they don't have experience with our system, and yet Management wants them to do x percentage of designs and development work... We went from a very low defect rate but more expensive, to a high defect rate and cheap... Not good...

      I do want to apologize to those Indian programmers who DO have a good education, Can speak English (when working for a US company), and Can do the job proficiently... I do know that there are a large percentage of you out there. I just wish I could be working with you instead of the people that I'm being forced to work with... ;)

      --
      Logic is the beginning of reason, not the end of it.
    5. Re:My experience by Anonymous Coward · · Score: 0

      Don't forget

      Feature creep from marketing & management and even times IT.
      Idiot project managers with no real experience.
      Designers with no practical usability experience.
      Middle management IT dorks that do things like change source code control systems or the development platform halfway through a project.
      Poorly written or non-existent functional specifications / deliverables docs

    6. Re:My experience by CodeBuster · · Score: 1

      Good, Fast, Cheap. Pick any two...

    7. Re:My experience by CodeBuster · · Score: 1

      I'm pretty sure there are fine programmers in India

      There certainly are fine programmers available in India. The only problem is that they tend to cost nearly as much as comparable Americans what with all the salary inflation going on in the Indian software industry. There are only so many good engineers, even in a country the size of India, and not enough to satisfy the worldwide demand so naturally prices have been going up...to the tune of 10% or more each year with top talent getting headhunted constantly because of the "hot" market for good software talent in India. What is left after the good engineers have been bid up are the people who picked up their first learn to program VB book less than six months ago, but have an attitude that their "superior" Indian education, no doubt the legacy of the British way of thinking about education, completely prepared them for everything that they could ever need to know about software engineering in the real world. I have learned these truths from working with our outsourced teams and so I speak from firsthand experiences. There are surely good engineers in India, but they were too expensive for management's taste so they don't work for us.

    8. Re:My experience by Tim+Browse · · Score: 3, Funny
      most don't speak English very well, if at all, they don't ask questions when they don't understand (they just say "I'll get that done", and then either don't do it, or do it wrong), and they don't have experience with our system, and yet Management wants them to do x percentage of designs and development work...

      Hang on...I'm just trying to spot the difference between them and about half the programmers I've ever worked with...

    9. Re:My experience by rp · · Score: 1
      5. Developers who aren't given training and experience in the proper use of debuggers, memory checkers, etc. (how many college hires out there really know how to use dbx to track down a bad pointer in the free list?)


      That reminds me:


      7. Using the wrong tool for the job, e.g. a programming language that orces you to be concerned with irrelevant nonsense (such as memory allocation issues) instead of the issues specific to your development task.

  47. I Thought It Was Relevant by eldavojohn · · Score: 0
    Turing completeness is completely irrelevant and you're simply quoting CS 101 to give your comments an air of authority.
    On the contrary, I thought it to be completely relevant in order to dismiss people complaining that one language is more error prone than another. Recognizing that this would only deviate us from the path of the real discussion, I made the assumption that all languages are essentially equal (the premise being that all interpreters and byte readers are simply Turing machines in the end).

    There are experts in every language that are very capable of emulating almost anything--without many bugs ... how much work and time goes into this is a variant, however.

    You, apparently, did not agree with my assumption. That's fine. Just don't accuse me of throwing in irrelevant information in an attempt to sound like an authority on the matter who is important or intelligent. I know that I am neither and it is insulting to say that I would be so pretentious as to fake it or even desire it.
    --
    My work here is dung.
    1. Re:I Thought It Was Relevant by colmore · · Score: 4, Insightful

      No dude, you're wrong. I suppose you can believe that with sufficient abstraction, you're right, but you're not. All that formal systems theory and Turing business is great talking about abstract systems running abstract algorithms, but such discussions have zero to say about anything having to do with HUMAN error, which is what we're talking about here.

      I've probably spent about equal time writing C and writing in higher level languages, and I can promise that I make fewer errors in higher level languages, doing equal tasks. I think anyone with a lot of code under their belts can make similar statements. The closer to the machine a language makes you work, the harder it is to keep higher level details in the back of your head. In a high-level language, you're much less likely to make a low-level error (and any you make will almost certainly be caught by a warnings mode on the compiler, and this leaves you to keep more of your neurons working on, for instance, keeping your database and its wrapper classes working together correctly -- a task that is, perhaps, a simple afternoon's work in Python, Perl, Ruby etc. two days in C# or Java, and a week of hair-pulling in C... and well... I doubt such a thing has ever been done in assembler.

      Anyway, drop the semantic B.S. this is a debate about practicalities.

      --
      In Capitalist America, bank robs you!
    2. Re:I Thought It Was Relevant by aramael · · Score: 4, Insightful
      I thought it to be completely relevant in order to dismiss people complaining that one language is more error prone than another.

      Why do you dismiss a complaint which speaks to the very heart of the problem? A large class of bugs simply would not exist were a different language used. This is not pie in the sky stuff; it's a real phenomenon.

      If one language is less error-prone than another, then an application written in that language will have less bugs.

      If an error-prone language is being used to write software, then this surely has to be a reason why buggy software gets shipped. Why are you dismissing people who complain about error-prone languages?

      --
      Be true and faithful like your dog; but don't eat vomit like your dog
    3. Re:I Thought It Was Relevant by KingEomer · · Score: 1

      Well, if you think it is practical to ignore the theory behind computers, go and write a program that automates testing for infinite loops. It must catch all of them. Keep in mind that this only tests for infinite loops, nothing else, so it shouldn't be too complicated in your high-level languages of choice.

    4. Re:I Thought It Was Relevant by Anonymous Coward · · Score: 0

      He's not ignoring the theory behind computers. He just understands it better than you do.

      The theory behind machines being Turing-machine-equivalent is all about computing power (or, in the case of diagonalization, in proving what a computer can't do). It has NOTHING at all to do with how easy it is for a human being to program in Turing-machine-equivalent System #1 versus Turing-machine-equivalent System #2.

      And if you think otherwise, I'd like to see you implement an Emacs-sized piece of working, useful software in terms of a Turing machine itself (just a FSM and a tape that's infinite in both directions), without the aid of any software to generate said Turing machine from a more human-oriented language.

    5. Re:I Thought It Was Relevant by KingEomer · · Score: 1

      How easy it is to implement something that can be implemented in different languages isn't the issue. I'm trying to make the point that it is nearly impossible to release flawless code, because due to its complexity, bugs will creep in somewhere. Furthermore, since it is so complex, it takes a very long time for a dedicated team within a company to exhaustively and manually test every situation--the only way, through testing, to guarantee that code is correct. Since, due to the lack of computing power of turing machines, we cannot develop algorithms to test for complete correctness, it becomes infeasible to release completely bug-free code. Now, yes it is still the humans who are at fault, and I'm sure that higher-level languages will minimize bugs. But, humans are humans, and they still make mistakes. So, my above argument that it is infeasible to release completely bug-free code still applies.

    6. Re:I Thought It Was Relevant by TheNumberless · · Score: 1

      There are experts in every language that are very capable of emulating almost anything--without many bugs ... how much work and time goes into this is a variant, however.

      Technically correct, but not useful. Consider that for almost all software projects, the amount of work and time available is limited. Given this, it's fair to say that a language that requires a lot of time to weed out bugs is more "error prone" than a language that does not.

    7. Re:I Thought It Was Relevant by WilliamSChips · · Score: 1

      Turing-completeness has nothing to do with bugs.

      --
      Please, for the good of Humanity, vote Obama.
    8. Re:I Thought It Was Relevant by KingEomer · · Score: 1

      Well, if you mean that turing-completeness can't give rise to bugs, then yes. However, it still impacts our ability to detect bugs.

    9. Re:I Thought It Was Relevant by Anonymous Coward · · Score: 1, Informative
      The closer to the machine a language makes you work, the harder it is to keep higher level details in the back of your head.
      This may be true, but Brook's Mythical Man-Month explains the same phenomena differently, stating that all languages produce an equivalent number of bugs per 1k lines of code.

      I realize the book is ancient (1975!), but it corresponds to my experience. Perhaps extremely cryptic languages (such as APL) are an exception.

    10. Re:I Thought It Was Relevant by neurojab · · Score: 1

      No dude, you're wrong. I suppose you can believe that with sufficient abstraction, you're right, but you're not. All that formal systems theory and Turing business is great talking about abstract systems running abstract algorithms, but such discussions have zero to say about anything having to do with HUMAN error, which is what we're talking about here.

      I agree 100%. The number of bugs in a given program has everything to do with the human skill applied to the program, and human errors that occur while writing the program. The more the human is proficient in a given task, the fewer errors there will tend to be. After you have several years experience, and you start looking at code produced by junior programmers, the bugs appear to pop off the page. The fact is that when you're dealing with a high-level problem, as the vast majority of application problems are, you're going to make fewer mistakes in a higher level language, because your're utilizing code that has already been vetted under the covers. Those that are proficient at lower levels in the stack have written their code, so your code can focus on your problems. This has nothing to do with "Turing completeness" and everything to do with human programming skill and attention span.

    11. Re:I Thought It Was Relevant by Anonymous Coward · · Score: 0

      Looks like there is a missing ')' in that second paragraph. Isn't that a bug that should have been caught by your high-level language parser (proofreader) before you released your comment to the world?

    12. Re:I Thought It Was Relevant by colmore · · Score: 1

      It takes thousands of lines of assembly to do what one line of Perl will do, I promise you my Perl input validator is going to have many many fewer bugs than your C or ASM input validator.

      And Fowler's "Refactoring" has pretty well closed the case on any n lines of code being as modifiable and as bug free as any other n lines, even within the same language.

      --
      In Capitalist America, bank robs you!
  48. The real cause by diodeus · · Score: 1

    Quarterly sales figures and bonuses based on projections that must be met.

  49. Further Reading by yeah81 · · Score: 1

    If anyone is more interested in this subject, Mark Minasi wrote a good book on the subject called "The Software Conspiracy".

  50. all of the above. by frankencat · · Score: 1

    eom.

  51. Because they can by nuggz · · Score: 1

    People do stuff because they can do that stuff.
    Ideally they do it because the trade offs are acceptable.

    In software there is some that is very buggy, some that is nearly bug free. This is mostly driven by what the customer is willing to tolerate.

  52. I don't think this is what he meant but... by Java+Pimp · · Score: 1

    It is better to ship a product with a known quality level than to ship a product full of surprises.

    So, if all the known bugs were fixed, then the product would ship but be full of surprises (since we assume it has bugs we don't know about).

    But if you don't fix the known bugs... the product would ship full of bugs and surprises?

    hmmm...

    --
    Ascalante: Your bride is over 3,000 years old.
    Kull: She told me she was 19!
  53. Real Reason: Bad Design Leads To Unfixed Bugs by aldheorte · · Score: 1

    Although Mr. Sink makes good points about the need to ship products with a certain level of minor bugs and do a constant analysis of priorities to continually improve a product, which may lead some minor bugs always open, original architecture design has a big impact on the ability to fix bugs.

    For example, Mr. Sink's two bugs that he cited show two things:

    1. Improper design of the business logic to database connection by locking themselves into a closed-source, expensive, proprietary database system and using proprietary extensions offered by such.
    2. Developing and testing for only one platform.

    If originally they had designed their architecture to not rely so heavily on internal mechanisms of SQL Server and kept in mind that they might want to make a change at some point, the evaluation of whether to fix the first bug he cited would be quite different. If they had spent just a little time upfront thinking and testing cross-platform development design, the line endings bug would be a non-issue and overall code quality would probably improve.

    Therefore, his analysis of bug prioritization makes sense once you get to the shipping stage. However, it is not an excuse for shoddy design, which causes some bugs to not be fixed because of the high level of cost and risk it would now take because of that poor design. An indication of the overall quality of a codebase is how easily bugs can be fixed. Given enough time, the market (in non-monopolistic product niches) will sort out those that can fix their bugs because of good design from those who cannot.

  54. The problem's not that there's always bugs... by Svartalf · · Score: 1

    It's that so many companies ship with flaws that would be unacceptable anywhere else.

    Would you ship a doorknob for an outside door that could have the lock so easily breached that it's as simple a matter as inserting a slot screwdriver into the keyhole and turning?

    That's what gets shipped by many companies- those sorts of flaws.

    And it's the mentality of the first group (The "there's always going to be bugs" crowd he's talking about..) that causes the stuff to ship that way. Sure, there's going to always be some issues somewhere in a complex system- but the goal is to do your level best to reduce those to as close to zero issues present as you possibly can, dealing with problems in the order of their severity.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    1. Re:The problem's not that there's always bugs... by mypalmike · · Score: 1

      Would you ship a doorknob for an outside door that could have the lock so easily breached that it's as simple a matter as inserting a slot screwdriver into the keyhole and turning?

      Bad example. The house I bought last year came with high-end doorknob hardware that failed a few months after I moved in. The knob was probably a couple years old, and I had no receipt for it, but I figured I'd call the manufacturer to see if they'd replace the broken part. They said that there was a recall of that part due to a design flaw, and they shipped me the redesigned mechanism the next day at no cost.

      --
      There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
  55. How about Group 3? by dpbsmith · · Score: 3, Interesting

    Group 3 consists of people who acknowledge that fixing all bugs is impossible, and that judgement is necessary in deciding which bugs need to be fixed... but nevertheless contend that within the personal computer software culture in the United States, these judgements consistently err in the direction of shipping software with too many bugs.

    The personal computer software culture in the United States is much like that of automakers in the United States circa the sixties, who insisted that the low quality of U. S. autos was the result of the best and wisest judgement... and that public toleration of low quality, as reflected in good sales and profits, validated their judgement.

    Good sales and high profits, that is, until overseas competitors began to ship high-quality cars to the U. S.

    1. Re:How about Group 3? by Lodragandraoidh · · Score: 1
      We are just begining to see the tip of the iceberg - in the form of open source and free applications (google, firefox, openoffice, linux etc...)

      Over the next 10 years you are going to see more and more buy-in of the alternatives, so much so that it will marginalize the shrink-wrapped software industry unless they change. That change will be painful to them - and may not be possible for some, because it will mean much smaller development teams that generate less overall revenue than before. Good for quality developers, bad for borderline 'wanabe' developers.

      One passage in the article was telling:

      Example: Item 10016. Linux and MacOS users have problems over how end-of-line terminators show up. Last October, we tried to fix this and accidentally introduced a nastier bug that prevented users creating new versions of a project.


      This tells me that the application code is too closely coupled (monolithic code) - which unnecessarily increases complexity. The module that displays (presumably) a stream of characters should have nothing to do with the module that allows you to create a project (again making some presumptions about how such an interface would work - perhaps entering the name of the project, generating database entries or files etc...)

      It doesn't have to be this way.
      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    2. Re:How about Group 3? by Maltheus · · Score: 1

      The personal computer software culture in the United States is much like that of automakers in the United States circa the sixties, who insisted that the low quality of U. S. autos was the result of the best and wisest judgement... and that public toleration of low quality, as reflected in good sales and profits, validated their judgement.

      Amen brother! I never understand people who defend buggy software. My group develops software, we test it and then hand it over to the customer. We almost never have a customer report bugs that aren't the result of a misunderstanding (like not realizing what they sign off on in the service design document). The few bugs that crop up are minor and we usually catch them (and fix them) before our customers ever realized their existence. Our schedules are very tight and are marketing and sales folks are constantly promising features and timeframes behind our backs. Yet we still pull it off.

      Of course, deep down I know why this is. Programs written in C/C++ are buggy and slow to develop. Programs written in Java aren't. Now I know people hate Java here, because it's "slow." But I've also seen comments here from people who say "when's the last time you wrote 100 lines of code without a bug in it?" Um, all the time. I can write thousands of lines without a bug. I may not get to choose those times, but it's common. It's not just because I'm some uber programmer, it's because I'm writting in a language that doesn't seg fault. I'm writing in a language that tells me, to the line, where my error is, I get a human readable description and the stacktrace makes it clear how I got there. I've had to recently go back to C++ for some things and it's an utterly savage language. It has it's uses (games, device drivers, etc), but beyond those, people shouldn't be programming in it anymore. I'm not saying Java is the answer, it isn't for most non-enterprise software. But bounded languages like that are what's needed to avoid churning out crap code. Escpecially in a fast paced development environment.

    3. Re:How about Group 3? by dubl-u · · Score: 1

      The personal computer software culture in the United States is much like that of automakers in the United States circa the sixties, who insisted that the low quality of U. S. autos was the result of the best and wisest judgement... and that public toleration of low quality, as reflected in good sales and profits, validated their judgement.

      Fantastic insight.

      I recently did a 36 developer-month project with a total of two bugs in production. We used Extreme Programming, and it was the best development experience anybody, including the CEO, ever had. And Extreme Programming is based in part on the Toyota Production System and other Japanese-derived techniques.

  56. Yeah how about those examples? by Mateo_LeFou · · Score: 2, Insightful
    "Cost: Very high. Vault's backend makes extensive use of features specific to Microsoft SQL Server"

    Read: we got embraced and extended all to hell. What do to? Blame SQL! That's right, the language itself! It "isn't portable". Also blame users! "People who refuse to use SQL Server can't use Vault."

    And here's some typical MS morality for you: "I'd probably even patent this algorithm even though, in principle, I believe software patents are fundamentally evil."

    I don't expect bug-free software of any real complexity to be shipped often. But the examples are both interoperability problems, and not actual bugs. Looks like an excuse to marginalize the non-windows crowd. "...only affects users on non-Windows platforms, a rather small percentage of our user base."

    --
    My turnips listen for the soft cry of your love
    1. Re:Yeah how about those examples? by Anonymous Coward · · Score: 0

      The "SQL" language is extremely different between all of the major database vendors. This isn't C, where you can write something portable with just a little bit more work.

      But, of course, you didn't know that, and you just slashbotted some brainless drivel.

    2. Re:Yeah how about those examples? by try_anything · · Score: 1
      But the examples are both interoperability problems, and not actual bugs. Looks like an excuse to marginalize the non-windows crowd.

      They classify their interoperability problems as defects. I think it's pretty generous for a Windows shop to call a successful Windows product defective because it only works with Windows.

      Also blame users! "People who refuse to use SQL Server can't use Vault."

      That isn't blaming. It's a description of the defect. By classifying it as a defect, they acknowledge it as a Bad Thing.

      You're right about SQL, though.

  57. The numbers are too big by truthsearch · · Score: 2, Insightful

    It took a leaked Microsoft memo to find out Windows 2000 shipped with 65,000 bugs. Even the author of the memo wrote, ""How many of you would spend $500 on a piece of software with over 63,000 potential known defects?"

    The problem is with a number that large, no matter how small the proportion is to code size, the backlash would be huge. No potential customer could hear that number and then actually want to buy a copy. I believe they should disclose as much information as possible. But from their perspective no amount of marketing could make up for the negative impact of disclosure.

    1. Re:The numbers are too big by inKubus · · Score: 1

      Uh, cars are shipped with defects all the time. If you don't like it, you return the car. Sometimes, when public safety is at risk, they recall the cars (thanks Ralph Nader).

      Sometimes your burger at McDonald's doesn't have exactly what you want on it. You get a new one.

      So they ship software with defects. Windows probably has 50-100 million lines of code written by thousands of different people. There's NO WAY to test stuff. They would never release software if they waited to fix all the bugs. At least they fix them, with the updates. Granted, it has felt in the past like they took advantage of having the updates as an excuse to get to the bugs later..

      But stuff ships with defects all the time. Perfection is impossible. Often, when I release code, there is some special case that's not handled that should be but chances are it's not going to happen. Why waste time on something that's probably not ever going to happen? If it does happen, you can fix it. If it turns out to happen too often, you fix it.

      However, they are a monopoly, so they have a certain responsibility to make sure their product is good because people may not have another choice. But I think they've done a reasonable job. Windows has really improved over the years and once you learn about the registry and know all the modules and dlls and kernel stuff it's really pretty fun to work with. It's a lot like a girl you have to get to know. There's hidden secrets that aren't told, aren't known, just like a woman. Unlike linux, which is like getting to know a math book.

      The best part is that it doesn't really run very good out of the box, but if you set up a domain controller and do all the normal tweaks it really gets smooth. So people have jobs to set it up. And they don't have to be crazy to get it working reasonably well. But if you want to make it run really great, you can get crazy. It only starts to suck when you run into something it can't do yet. But there aren't that many.

      Of course, I have the linux box in the corner, running all the time. I've never had to reboot it because I don't really use it for anything (caching DNS and apache for my personal drivers web page and stuff). I think I have it just so that when the regular windows guys come into the office, I have a different looking KDE desktop and I show them how it uses text mode when you boot up. Wee, look at all the technical looking jargon! Oh, and I use it to sniff packets. I just setup the dns server to resolve the AIM servers to that box's IP and then it has a simple routing table that copies off the packets. WEEE, they get excited when they see that and say "hey, can you teach me linux", and I sit back and say, "no, you really have to learn for yourself". Recalling the WEEKS spent figuring out httpd.conf, scouring hundreds of contradictory and out of date websites. Yep, everyone has an opinion.

      With microsoft stuff, you just go to the fascist "MSDN" knowledgebase and get a nice official answer for every question ever asked. Yeah, and go ahead and mention #linux HAHAAA. Like I want to waste 3 hours kissing ass to get a simple answer.

      Of course, I went through all this like 8 years ago so now I just look at it as a sort of rite of passage to use Linux.

      Linux is to dunebuggy as Windows is to Toyota as IBM Mainframe is to 18-wheeler

      One is for the weekends, one is for the regular day to day stuff and one gets the real work done. Webserving isn't work. Amazon.com would like you to think so, but most REAL (non software) businesses have people doing work, creating data, manufacturing stuff and that all needs to be tracked. If you are making 15000 network cards an hour, you need some serious accounting.

      Think about a CASINO, 10000 machines x hundreds of 5, 10, and 25 cent transactions per hour. And if the db stops, you stop making money. Oh, and amazon runs on IBM. So does ebay.

      IBM RUNS LINUX! Pft

      --
      Cool! Amazing Toys.
    2. Re:The numbers are too big by Momoru · · Score: 1

      You should be happy about that. The memo shows they are documenting bugs and doing thorough testing. 65,000 bugs doesn't tell the whole story. BUG# 43456: "On specific machines running Pentium 166 MMX chips with Solitare running, icon may not appear as expected". Do you hold up the product for the other 99.999% of users because of that? I'm not sure i've ever ran into a bug in Windows 2000, certainly nothing that stopped me from doing my job.

    3. Re:The numbers are too big by Creepy · · Score: 1

      I expect Vista is worse... much worse, at least at this point, which is why it was delayed. Moving to new kernel code (64 bit native on 64 bit processors, new memory management, new HAL), a (badly needed) complete rewrite of DirectX from the ground up, ditching standard C libs for a more secure set of libs (notice that VC2005 lists the standard C libs as deprecated), completely reworking the GUI to be hardware accelerated, and probably dozens more I'm not even thinking of.

      Still, without knowing what the defects are or how many packages it's against, it's hard to say if the numbers are too big or not. I also would question the Linux numbers because something like KDE, postgres, etc. may have their own list of bugs and because Debian is known to be a "slow and stable" distribution that sticks to an older codebase with proven software. Also, how many people are spending time just trying to break the latest developer version of Debian? I expect few outside of the core, though there may be some in the unstable branch. Microsoft has thousands of dedicated testers.

      I actually was pretty happy with Windows 2000, to tell the truth - compare it to, say Windows ME and it's like comparing Budweiser to Red White and Blue, Blatz, or Black Label - they're all shit beer but at least you know what you're getting with a Bud and you can count on them all tasting about the same. You rarely (if ever) get a Bud that tastes like you just licked a dog's ass. For most people a Bud is good enough, others are happy with Black Label because they bought 24 cans for $6, even if 1 in 4 cans is skanked, and still others, well, we consider beer made with rice the lost deadly sin.

    4. Re:The numbers are too big by truthsearch · · Score: 1

      If you didn't run into a bug with Windows 2000 then you didn't use it intensely. That bug count was sent within a week of Windows 2000 shipping. These were the bugs left at the time it went from beta to production. And there's no way to know how many were fixed with updates.

    5. Re:The numbers are too big by Momoru · · Score: 1

      I don't doubt their were bugs, and i'm not sure what qualifies as intensely... what are some of the bugs you've ran into?

    6. Re:The numbers are too big by truthsearch · · Score: 1

      I've documented many of the bugs I've run into. They cost me (or really my employer) hundreds of hours of my work time.

  58. Foolishness by daVinci1980 · · Score: 5, Insightful

    That's foolish. There are bugs in every project of every size. Including bridges. And skyscrapers. Remember the Tacoma Narrows Bridge?

    Normally, those bugs have low Severity or Frequency (or both). Sometimes they have catastrophic severity.

    Did you know that the twin towers were built to withstand a direct impact from a 707?

    Bugs are a fact of life. They follow from the mantra 'nothing is perfect.'

    --
    I currently have no clever signature witicism to add here.
    1. Re:Foolishness by Richard+Steiner · · Score: 1

      Defects in a product are inevitable. However, KNOWN defects are a different thing altogether.

      In three different positions where I've written software for internal corporate consumption, I've never released code into production with known defects, and I don't see why the fact that a program happens to be shrinkwrapped should make any difference. Our stuff is millions of LOC also, and I'll bet our development times are shorter than most shrinkwrapped software vendors.

      A lot of it comes down to (1) experience and (2) the use of effective processes.

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
    2. Re:Foolishness by Anonymous Coward · · Score: 0
      In three different positions where I've written software for internal corporate consumption, I've never released code into production with known defects, and I don't see why the fact that a program happens to be shrinkwrapped should make any difference. Our stuff is millions of LOC also, and I'll bet our development times are shorter than most shrinkwrapped software vendors.

      Bullshit. If you're going to make something up at least make it believable. There is now way you fixed EVERY known bug in millions of lines of code unless you didn't actually test it and find the bugs.

      Assuming your "millions of LOC" is 2,000,000 that works out to 10,000 - 40,000 bugs in your product. But I suppose you're just all godlike programers who don't make any errors like the rest of humanity too right? And your product managers all agreed that EVERY bug QA found was worthy of being fixed too, unlike every other company that realizes that some bugs really don't matter and don't get fixed.

      Or did you just change the design docs to match the bugs and call them "by design"?

    3. Re:Foolishness by Vengie · · Score: 1

      The towers weren't hit by 707s. The amount of fuel they carried was substantially less, and their size substantially smaller. Not only is your analogy a straw man argument, it's a little offensive to those that died. As a life long new yorker that lost friends on 9/11, I'm rather pissed off that you're attributing their deaths to a "bug."

      Please don't compare the poor understandings of aerodynamics and resonance in the early 20th century to one of the more tragic (and deliberate) events of the 21st. No one died on Galloping Gertie. I went to a wedding on Sept 14th 2001 in Manhattan with empty chairs.

      --
      When in doubt, parenthesize. At the very least it will let some poor schmuck bounce on the % key in vi. (Larry Wall)
    4. Re:Foolishness by Anonymous Coward · · Score: 0

      The towers did withstand being hit by the planes, but the burning fuel probably wasn't considered when the towers were built. It was the burning fuel that weakened the support beams in the buildings allowing for the collapse.

    5. Re:Foolishness by Skreems · · Score: 1

      A) he said no KNOWN bugs

      B) Test-driven development is amazing

      --
      Slashdot needs a "-1, Wrong" moderation option.
      The Urban Hippie
    6. Re:Foolishness by honkycat · · Score: 2, Insightful

      It was a "bug" in the sense that the design specification was insufficient. After the bombing, it was determined that they were sufficiently engineered to withstand expected stresses. The stresses they encountered were greater and they collapsed.

      This is directly analogous to the discussion of bug severity in the article. The engineers decided that the severity / frequency of risk coupled with the cost of further upgrades did not warrant the improvements. Either they underestimated the severity/frequency and should have done further upgrades or they made the right call and we just have to live with the fact that we can't fix every "bug" in every design. If you don't like to think of it as a "bug," think of it as a shortcoming or limitation.

      I'm sorry for your loss, but there are still lessons in engineering that can come from it. It does no service to the memories of those lost to ignore those lessons. That this event was caused by people with ill intent rather than natural randomness is utterly irrelevant. The fact is that every system has limits beyond which it will fail.

    7. Re:Foolishness by Sj0 · · Score: 1

      I think most people have conveniently forgotten that the twin towers aren't just a clever rhetorical device.

      --
      It's been a long time.
    8. Re:Foolishness by timeOday · · Score: 1
      The towers weren't hit by 707s. The amount of fuel they carried was substantially less, and their size substantially smaller.
      I realize you don't like the analogy for other reasons, but execution outside the intended environment is one of the main reasons software fails.
    9. Re:Foolishness by Coryoth · · Score: 1

      Did you know that the twin towers were built to withstand a direct impact from a 707?

      And they survived impacts from larger planes, then were eventually brought down largely by the fire. But really this just highlights the difference between most engineering and software engineering, and that's assurance. The buildings were designed to be able to withstand impacts from planes, and you can bet that the engineers sat down and did all the lengthy calculations of structure and matrial tolerance to be able to confidently make that assurance.

      Yes, nothing is perfect. On the other hand, being able to confidently state under what conditions something will work is a significant advantage over the simple broad statement that nothing is perfect and it probably has bugs somewhere. I would much rather someone tell me that a skyscraper will remain standing under various conditions than be told "well there might be some bugs somewhere, so who knows... if the wind blows from the wrong direction it might fall down. We haven't really checked". It is possible to give the same sort of assurances for software by using similar engineering techniques.

      Jedidiah.

    10. Re:Foolishness by try_anything · · Score: 1
      Defects in a product are inevitable. However, KNOWN defects are a different thing altogether.

      You assume that:

      1) You can fix defects as fast as you can find them. This is just a matter of time allocation. If there are ten bugs in the system, I'd rather know about eight and fix one than know about four and fix all four. Our customers prefer it that way, too.

      2) You can fix the defects you find. If you're integrating with customer systems, you'll encounter buggy or incomplete documentation and limited access to the specialists who supplement the documentation. Sometimes guys go on vacation at inconvenient times.

      3) Every defect you find is important enough to hold up a release. This isn't true for our customers. If the bug has a simple workaround or only manifests itself as a result of user error, they may not want to wait for a fix. Sometimes they need the new features and performance enhancements so badly that they'd lynch us for delaying a week to fix such a bug.

      4) The defect isn't the result of a customer changing a requirement that was designed into the system. This is a matter of semantics; you may call them "enhancement requests," but we call them "defects" because it reminds us how the customers see the product. If a customer project is threatened because they can't use our product the way they planned, it doesn't matter to us whose fault it is. We might get blamed for it anyway.

    11. Re:Foolishness by Blakey+Rat · · Score: 1

      You're taking too much offense, and I don't even know what you're taking offense at. The point he was trying to make is that the Twin Towers *were* designed to take an impact from an airplane, and at the time it was designed, the 707 was the largest airliner in service. He's not saying it was a "bug" that the towers collapsed when struck by much larger airliners... the designers of the building couldn't have possibly have anticipated that! And additionally, they were being pro-active by designing against an airplane strike. From what I understand, most buildings don't take that into consideration at all.

      I really don't get what you're offended about.

    12. Re:Foolishness by compro01 · · Score: 1

      Did you know that the twin towers were built to withstand a direct impact from a 707?

      well, taking a detour off the topic here, they did survive the impact. they were still standing for how long after the planes hit? they only fell down when the steel beams in the structure lost strength due to the heat of the fires, something which appearently wasn't planned for, and they came down like a house of cards.

      --
      upon the advice of my lawyer, i have no sig at this time
    13. Re:Foolishness by Tango42 · · Score: 1

      The number of known bugs in a system depends on two things - how good you are at fixing bugs AND how good you are at finding them. Prehaps you've never released code with known bugs because your testing isn't as thorough as other people's.

    14. Re:Foolishness by tsm_sf · · Score: 1

      No one died on Galloping Gertie.

      Just one poor dog that somebody left in their car as they fled.

      --
      Literalism isn't a form of humor, it's you being irritating.
  59. Mod Parent as Flamebait by anomalous+cohort · · Score: 1

    As he or she is in group 2.

    I remember attending a meeting at a conference held by one of my previous companies. The head of marketing had this to say. All software has bugs. If it doesn't have bugs, then it isn't software. So true.

    1. Re:Mod Parent as Flamebait by Anonymous+Brave+Guy · · Score: 1

      Tell that bold bit to Knuth. In fact, go find a bug in TeX; is he still offering a substantial financial reward to anyone who does?

      As others have said, whether you fix a bug is a matter of return on investment, and whether you ship with bugs is a matter of acceptable risk/reward. However, claiming that software can't be made without bugs (or at least with far fewer bugs than most software today ships with, since we aren't all of the calibre of Knuth) is simply trying to defend shoddy work.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:Mod Parent as Flamebait by anomalous+cohort · · Score: 1

      I suppose that Knuth has a very "computer science" definition of what a bug is whereas the guy that I was quoting has a "marketing" definition of what a bug is. To marketing, a bug is something wrong with the application. So, a missing or mis-perceived feature could be a bug. If my previous head of marketing were ever to encounter TeX, I would guess that the first "bug" he would find is the lack of WYSIWYG.

      I, myself, have used LaTeX and have not been able to get word wrap within a tabular block to work. Whether or not there is something I am doing wrong or there is an elegant explanation as to why you should never do that is irrelevant to me. I would like that and I can't get it, so it feels like a bug.

    3. Re:Mod Parent as Flamebait by Anonymous+Brave+Guy · · Score: 1

      While your argument is entirely reasonable, I'm not sure it's really the point of this particular discussion. From the point of view of quality control and programmer error, I'd say a bug is exactly a failure of the finished program to behave as the designers' spec indicates. If the designers' spec doesn't meet the requirements, that's a problem, but it's a different kind of problem that lives further up the chain.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:Mod Parent as Flamebait by anomalous+cohort · · Score: 1

      If that is the case, then I must reverse my position. In fact, it becomes trivially easy to ship a bug free application. Simply remove or rewrite all parts of the designer's spec in such as way as to eliminate any gaps between the finished program's behavior and what is documented there for those bugs judged as too risky to remove at this time. You can move those parts of the designer's spec to a "future release" version of the designer's spec.

      While resources such as Wikipedia define the term "bug" as you do, an example of a resource that takes the bigger picture view on what a bug is is Steve McConnell's book Code Complete.

    5. Re:Mod Parent as Flamebait by Anonymous+Brave+Guy · · Score: 1

      McConnell's book is one of the classics, though I think the first edition was actually much better for its time than the second is, and I certainly don't agree with everything he writes. This, apparently, is one of those times. (I don't have a copy of Code Complete in front of me and don't remember how he defines a bug, so I'm taking it as read that your comment is reporting him accurately.)

      Bugs, in the sense I'm talking about, are one problem with software development. They're a developer-centric issue, and you need developer-centric techniques to deal with them. Of course, issues where a feature is missing or not working as customers want are also important, but those are design and customer support issues. They need entirely different types of solution, based around the designers and marketing/customer support staff.

      Muddying the waters by equating these fundamentally different concerns is unconstructive, IMHO. It's also unhelpful to say things like "No software can ever ship without bugs" in this more general context. Well, duh, as they say. Anything else would imply that it was possibly to satisfy all customers all of the time, which for most people in business simply isn't true, whether you're talking about software or any other industry. More to the point, that blanket acknowledgement removes the focus on "real bugs", and is a bit of a smoke screen for the fact that most software quality today sucks and we could do much better.

      This is why I think it's important to avoid distorting the technical term "bug" to mean more than it should. It's not that I disagree with your other concerns; on the contrary, I agree wholeheartedly that they're very important. I just think we have to look for the appropriate solution to each kind of problem, and that means first recognising that there are different kinds of problem.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    6. Re:Mod Parent as Flamebait by anomalous+cohort · · Score: 1
      most software quality today sucks and we could do much better

      Really? I use a lot of different software and I don't share your perception at all. Of course, I use a lot of open source software which could be of higher quality.

      Are there any specific titles that you are thinking of? From that list of titles, which ones have you read their design specs?

      The end user doesn't get access to the internal design specs for most software so you can't help but "muddy the waters" when it comes to making a judgment on a particular software's quality.

    7. Re:Mod Parent as Flamebait by Anonymous+Brave+Guy · · Score: 1
      I use a lot of different software and I don't share your perception at all. Of course, I use a lot of open source software which could be of higher quality.

      I'm not sure we want to go there. I have tried a fair bit of OSS as well, and I've found major bugs in plenty of big name products. Suffice it to say that I don't think this problem is particularly reserved to commercial/closed source software.

      It's true that I haven't read the design specs for any of the published products I'm talking about. However, I'm going to go out on a limb and guess that none of them lists crashing, corruption or total loss of data, or implementing standard communications protocols in an insecure way. ;-)

      As someone who works in software development, I'm aware of the risks of assuming a manual or help page is an accurate reflection of the design spec, so I'm wary of assuming much beyond the really obvious. Of course, when the manual says something sensible and the code does give a completely different result, in practice there's a pretty good chance that the design spec agreed with the manual. I can't prove this with the big name products, but it's certainly true of just about all software projects I've ever encountered as a professional programmer.

      As for product titles where I've encountered major bugs - things like loss of data, crashes, security flaws, or completely implausible output - these include:

      • every major MS Office application
      • all recent versions of Internet Explorer on Windows
      • all recent versions of Visual Studio
      • Paint Shop Pro X
      • countless games
      • every major OpenOffice application
      • Firefox
      • Thunderbird
      • Scribus
      • the GIMP
      • several LaTeX packages

      and those are just off the top of my head in a minute of thinking.

      These are big name applications, often used by millions of people worldwide, and often with large and experienced development teams. If they can't manage to write code that doesn't crash or stuff your data in some really obvious way, then I think it's fair to say that on the whole, our industry sucks when it comes to quality control.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    8. Re:Mod Parent as Flamebait by anomalous+cohort · · Score: 1

      I must have lower expectations than you or, perhaps I think more like the original developers because I use most of the applications you list but don't run into that much data loss or crashes.

      • every major MS Office application - I haven't run into data loss or crashes in years, however, I am not a heavy user. I pretty much limit myself to reading use/case docs or resumes with this stuff. MS-Project is pretty buggy these days, especially Project Server
      • all recent versions of Internet Explorer on Windows - You got me on that one. Way too insecure for casual Internet usage.
      • all recent versions of Visual Studio - Oh, yea, I forgot how bad that is. I usually use emacs and nant.
      • Paint Shop Pro X - It's been a long time since I used PSP but I don't remember any data loss or crashes.
      • countless games - I'm not a big gamer. It takes me years to get through a modern game. I'm still on Serious Sam II. No crashes to date.
      • every major OpenOffice application - This is what my whole family uses at home. No crashes or data loss.
      • Firefox - No crashes with recent versions.
      • Thunderbird - Yea, there's still room for improvement here.
      • Scribus - I don't know this one. It looks interesting. I'll have to check it out.
      • the GIMP - Recent versions have been pretty solid. Keep in mind, however, that their love is with Linux. The Windows build is most definitely the fair haired step-child.
      • several LaTeX packages - I don't know which packages you are talking about but you are most probably right about that. I hope that you are not judging LaTeX to be bad just become someone cooked up a package and distributed it on the web. A lot of that kind of stuff is itch scratching and publishing online without a lot of time spent on quality or polish.
  60. Good Testing Strategy! by eldavojohn · · Score: 1
    That's not true at all. First of all, a lot of that memory is the program itself, which isn't going to change, and some of it is probably your OS counting shared library code, which also isn't going to change.
    Are you implying that libraries are incapable of having bugs inside them? I find that particularly naïve in that a lot of the libraries I use are never introspected by myself. I assume they have the functionality of a tiny blurb written in English by the original author (who may or may not have been sane). But, perhaps you are willing to rely on other people's unit testing. If so, we continue to your next statement.
    There are a lot of memory structures that you can safely say are going to look like such-and-such, greatly reducing your estimate of the number of possible states.
    You're absolutely correct. However, this is one of the first and basic assumptions to testing. You see, you're already creating a test plan and dismissing the obvious wastes of time in testing your application. Congratulations, if you push this along further you can use unit testing to test each component of the system and be fairly certain that when they are put togethor, the system as a whole has no bugs.
    Anyway, testing software doesn't mean taking every possible state into account. That would be ridiculous.
    The point of my argument was that testing can be ridiculously complicated and to completely test something would take until the end of time.
    Good programming should compartmentalize the program so that modules affect each other with minimal interaction and thus you really only have to do exhaustive state tests on very small modules.
    We see eye to eye. I didn't feel like getting into testing--entire courses are taught on how to do adequate testing on modular code. I agree with you entirely but I think that the current levels of testing are a stab at eliminating the most obnoxious bugs. Have you ever tried testing bad code in a restrained amount of time? I have & and I can say that it is highly ... undesirable.
    --
    My work here is dung.
  61. Re: Vendor honesty by Whiney+Mac+Fanboy · · Score: 1

    Good idea! You go first.

    What do you mean? Release a list of bugs in my next post prior to posting it?

    I'm not a software vendor!

    --
    There are shills on slashdot. Apparently, I'm one of them.
  62. Gears of War by Unkynd · · Score: 2, Interesting

    Did anyone see the MTV special about the new XBox 360 game Gears of War? At the end of it, Bill Gates walks up to the Lead Developer (atleast i believe he was the lead), and basically says "So, you are gonna have this ready by August, Right?"... The developer reluctantly agrees that it will be ready by August. Bill Gates responds "Great, we are counting on you." Talk about pressure to get a product out. Can you say buggy release?

    1. Re:Gears of War by __aaclcg7560 · · Score: 1

      That's prefectly normal in the video game industry. It doesn't matter who's the boss is. Before I left Atari, I worked 28 days straight because that's what my boss expected of me. Never mind that the company had a 6-day work policy since HR was looking the other way.

  63. Not Always the fault of Marketing by Dale549 · · Score: 0

    With users, marketing, managers, and developers all being carbon based life forms (debatable regarding managers, but work with me here...) there is guaranteed to be imperfect communication between the groups. What we call "bugs" are a manifestation of being human. As as been noted, the question is not why software ships with bugs, but how to deal with the problem. I have recently come around to the conclusion that Eric Raymond's "The Cathedral and The Bazaar" is pretty accurate, and the open source model comes nearer to producing high quality code for many software projects "With enough eyeballs, all bugs are shallow." -- Linus Torvalds

  64. The truth from the enterprise by tearmeapart · · Score: 1

    As the article states, risk is a big factor, but it is not the only reason/excuse.

    More reasons/excuses:
    - No one from the company really cares about the final product.
        - Developers either want the perfect design or just want to get the job done good enough.
        - Upper management just want features to stay ahead of their competitors.
        - QA/testers can yell all they want, but they eventually give up because no one really listens to them.
        - Project managers just want their track record to stay good.
        - Call center/support people have no idea what new products are coming, and they do not want to deal with anyone else.

    So, companies just throw out whatever product they have. Therefore: assume nothing good about software/hardware packages (and that goes for medical and financial products as well!).
    - No company wants to spend money on bug fixes that get no quick return on their buck.
    - Bug fixes to the final product involve getting almost every party in the company to a particular bug fix. I have spent 1 minute writing the code to fix a bug, and about 4 months in work time (over the course of a year and a half) trying to push this fix through. The result was that some previously unknown vendor stopped the change because they thought the risk to their small one-and-only product was too great.

  65. The problem is that of perception by xenocide2 · · Score: 1

    The problem is that some people percieve that giving people buggy software is somehow unacceptable. When you look at reality, this is far from the truth. People favored Ubuntu over Debian because they felt Ubuntu was newer. People intentionally run ~86 in Gentoo because they care more about newer software than the bugs that might contain. People constantly enter public betas to try out new software. Look at the number of people running Vista on their primary desktop. I'm sure you can come up with plenty more examples. People pick features over correctness.

    The biggest trouble that arises from this market force is a lack of transparency. Ideally, the "release early, release often" approach treats the users as a large software testing team. Instead bug reports are difficult to submit, and almost always kept private; a publicly disclosed list of known but unfixed bugs provides critics and competing software ammunition. Current market approaches offer no incentive to turn a community software improvement practice into an established transparent process. Once I've purchased software from a vendor, the only obligation they have to fix bugs is related to PR and lawsuits of unmerchantability. Even software subscriptions as currently envisioned don't really address this. You pay a monthly fee for the right to USE the software at all, rather than the right to upgrades, patches and fixes. Stop paying and you can't use the software at all! Of course, this might also encourage companies to test even less than they do currently, and charge customers both time (to identify the problems) and money (via the update subscription) for the fix.

    --
    I Browse at +4 Flamebait

    Open Source Sysadmin

  66. Not all companies release software with KNOWN bugs by Richard+Steiner · · Score: 2, Informative

    When I worked at then Unisys Airline Center in the early 1990's, the defect count for the product we were working on (USAS*CGO, an air cargo airwaybill processing application) had to be down in the single digits before a new version of the product was released, and we delayed the release of USAS*CGO 11R2 for several weeks until that goal was accomplished.

    Customers were also made aware of the outstanding issues, but in our case all customers also had the source code to the application (mainframe software in the airline industry worked a little but differently) so the relationship was a little closer than the typical developer/user relationship for shrinkwrapped software.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  67. There's a logic error going on by WhiteWolf666 · · Score: 1

    I can't quite place my finger on it, but if the author is attempting to say that the major software companies that tend to release buggy, shitty software on a regular basis are being responsible corporations, he's full of it.

    Yes, products should ship with bugs. Creating a bug free product isn't worth the time/investment. If you get 95% of the way to done, and the remaining 5% is going to occupy 70% of your budget, don't bother.

    At the same time, software engineering is NOT more sophsticated than, say, aerospace, or automobile, or robotics, or any other area of modern engineering.

    I'd be MIGHTY pissed off if my car was as reliable as an MS product, or if I had to put up with the same bugs, year after year (transparent PNG, anyone?)

    Apple releases buggy software. Linux distributors release buggy software. Microsoft releases buggy software. NASA releases software with bugs (I can't say that NASA software is "buggy" with a straight face). But does that mean they are equivalent? Of course not.

    --
    WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
  68. I for one... by Anonymous Coward · · Score: 0

    Would like to thank Microsoft for setting the standard for software delivery at beta. We sure wouldn't get much shipped around here otherwise....

  69. The Real Reason! by neonprimetime · · Score: 0

    The real reason buggy software is shipped is because it isn't all written in Perl.

  70. Accountability in other Industries by Hootenanny · · Score: 1

    Some industries are held accountable for shipping "buggy" products. Here are examples of two recent "bugs" that you may have heard of:

    http://en.wikipedia.org/wiki/Vioxx

    http://en.wikipedia.org/wiki/Bextra

    If software companies could be held liable in the way pharmaceutical companies are held liable, we would *never* see shipping software with 5-digit bug lists.

  71. The ONLY reason companies ship buggy software by shoolz · · Score: 1

    The internet makes patching software a breeze.

    Do you remember back to a time when virtually NO software / games had major bugs? Yeah, that's because patching software by snail mail with floppy discs was a costly and unpractical nightmare, so you had to get it right the FIRST time.

    1. Re:The ONLY reason companies ship buggy software by SA3Steve · · Score: 1

      I don't remember this golden age of software that you describe. I remember playing games on my old TI computer and hitting totally crazy bugs. I remember NES games with some pretty bizarre bugs. I definitely remember software and games on my old 286/386 machines which were chock full of bugs.

    2. Re:The ONLY reason companies ship buggy software by Richard+Steiner · · Score: 1

      That depends on the certification processes in place for the software in question. In some industries, getting a patch certified is a 6-to-18-month process.

      --
      Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
      The Theorem Theorem: If If, Then Then.
  72. Not acceptable! by uptaphunk · · Score: 1

    If you read the article, there is a weigh-in against RISK. For all those who say NOT IN MY INDUSTRY - NOT ACCEPTABLE FOR MISSION - CRITICAL - well no shit. That falls into the RISK category. If bugs are unacceptable for the purpose of the software - ie - patient monitoring then every effort will be made to ensure it won't happen.

    --
    Geeks of the World, Unite!
  73. Vault by guinsu · · Score: 1

    You know, the article would have gone down easier if I weren't dealing with bizarre issues in Vault right now regarding items getting stuck in the queue and database corruption of files. Its at the point where I might switch to SVN, and I'm not a CVS/SVN fan at all.

    1. Re:Vault by ericsink · · Score: 1

      Are you in contact with our tech support folks? If you're having trouble with our product in any way, we definitely want to help.

      http://support.sourcegear.com/viewforum.php?f=5

      --
      Eric Sink
      Software Craftsman
  74. Mod parent UP!! by Banner · · Score: 0, Troll

    This guy gets it, and the others responding to this thread do not. There is no reason to ship with known bugs, shipping with known bugs doesn't mean you have good testing, it means you have lousy developers and poor quality.

    The fact that consumers tolerate it means you have a good business model, or a good marketing team. But your still shipping crap and your developers (and managers and quality) still suck.

    1. Re:Mod parent UP!! by Anonymous Coward · · Score: 0

      I'm pretty sure that it's you who doesn't get software. If you are determined to "not ship with known bugs" you are either A) not shipping EVER, or B) have poor QA who can't find the bugs.

      Unless you're shipping a "Hello World" program, you have bugs. Whether or not you take the time and cost to fix them to keep a schedule is your companies decision.

    2. Re:Mod parent UP!! by Banner · · Score: 0, Troll

      I've been programming since 1970, I think I understand the medium a lot better than you. You've been programming how long? 3 years? 4?

      In a properly run development environment known bugs do not make it out the door, ever. For that matter most bugs are taken care of before the code is even written. That's why you're supposed to design before you code. Coding is easy, anyone can do it. Design is the hard part.

      But way too many people skip design and go straight to code, and don't even know what a requirement is.

    3. Re:Mod parent UP!! by BenjyD · · Score: 1

      That's fine if you're in a fairly slow moving market. For most of us in shrink-wrap software, we have competitors, we need to make money and our market may only exist for a few months to a year. If we take the time and resources to ship a 'perfect' product, then a competitor will release something cheaper and faster than us that's 'good enough' and we will lose money. You can't design your way out of all bugs.

    4. Re:Mod parent UP!! by Banner · · Score: 1

      Actually, that's Bullcrap. And I'm sure this one will get modded troll as well because most of the people who read /. are really shitty coders.

      I've worked in fast turn around enviroments were we had a good quality process and turned out high quality products, it just costs more money up front than most companies are willing to spend.

      But less money then companies do spend in the long run writing bug fixes and updates. It's just they can hide those costs from the investors and shareholders.

      I've trained a bunch of kids over the years in how to do quality code. All of them now are senior coders at companies making a lot more money than I ever did at their ages and make great job references for me.

      Saying code has to have known bugs in it when you ship is just a poor excuse for doing the job right the first time.

  75. Low Bidder Takes All by tengu1sd · · Score: 1
    As long as big business (and this includes government) buys from the low bidder then we'll continue to see fast and cheap as the criteria for designing and shipping software. The CFO doesn't care that the Windows needs regular reboots (outages), ships with no backup capabilities and behaves in erratic fashion. He might be concerned about the cost of security, if it were presented properly, but only if there were cost savings available.

    In this day and age, the goal is to make a quick buck, meet your quarterly goals, collect the bonus and score another job based your great quarter. Downtime usually isn't an issue so you wind up with Microsoft spreading into desktops and datacenters. It's cheap and you can hire a reboot monkey to admin these systems. Of course we can replace the big box and the guys who've kept it running 7x24 for the last 23 years without any outages. They cost too much to keep around anyway and don't have any colors but green or amber.

    Bill Gates understood that you don't need to be better, you need to meet the minimum standard and be the low bidder. With the introduction of Windows, the minimum standard creeps lower, allowing his next product even more market share. We're beginning to see a backlash with security and reliablity becoming issues again.

    If a VAX booted in 1983 can run an application without a reboot for 17 years (Year 2000 shutdown) why doesn't can't a modern system stay up for week?

  76. Project Managers by HermMunster · · Score: 1

    Project managers under pressure from execs to push out a product. Mostly marketing execs that promised something to higher ups in order to gain favor, bonuses, and raises, and potentially promotions.

    Project managers create unrealistic timelines. This pressures programmers and testers.

    When products are tested and show problems they determine if a bug is a showstopper or not. If it is not and they can't fix it in time they ship.

    Do these people make a conscious decision to ship buggy code? You bet they do. They make them on purpose and in their favor, every time.

    Some unknown bugs get through by accident. No ones perfect.

    But, every product goes out the door with bugs that they know about and have no intention of fixing right away, if ever.

    This absolutely is an issue with the project manager making unrealistic promises to the higher ups in order to gain favor, money, and promotions. I worked for a company that produced software and we knew there were major bugs and these were shipped with the baggage that the tech support would have to deal with the issues.

    --
    You can lead a man with reason but you can't make him think.
  77. Truer words were never spoken... by Banner · · Score: 1

    Software will stop being buggy as soon as people stop putting up with it.

    So true. And your 'flamebait' is a perfect example.

  78. Dilbert-esque response: by lottameez · · Score: 1

    Indeed. You should never ship the sofware with known bugs. Just change the documentation such that "known bugs" become "features".

    --
    Yeah? Well I think you're overrated too.
  79. Well for one... by Kjella · · Score: 0, Flamebait

    ...there's a huge difference between a bug and an enhancement request. I don't care if I'm the only frigging one that's triggered that bug, I get quite pissed when your tool isn't working and the crap I get back from support doesn't contain even a workaround only "This is a confirmed/known bug, blehbelbhe" then put me on hold till 2010. That your development team isn't going to implement a feature at my whim is something quite different, not to mention doing the same "analysis" makes no sense.

    Key points for an enhancement request include such things as "Is it part of the direction where we want to take the product (strategic value)?". Sometimes there are hard calls on the path you want to take, and sometimes you want to take them even if the stepping stone doesn't justify it alone. Sometimes it's "the big picture" that needs work and it makes no sense to implement this little feature because we want to replace what it runs on top of. There are so many things like that which don't go into account when fixing bugs.

    --
    Live today, because you never know what tomorrow brings
  80. Re:What a load of crap by Richard+Steiner · · Score: 1

    It's amazing how thorough application testing can be when you've had 10 or 15 years to develop a set of automated regression scripts, when the design of the application is modular, and when the basic environment in which the application is running has been relatively static.

    All of those things are true in some mainframe environments. The Unisys 2200 EXEC, for example, is largely unchanged (from an application program's perspective) since the late 1960's. That removes a lot of variables related to the external environment that a Windows or Linux developer has to take into account, making the testing process a lot simpler.

    Combine the above with a decent QA process and competent developers, and you can greatly reduce the number of bugs present in even very large/complex products on a mainframe.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  81. This begs the larger question... by Lodragandraoidh · · Score: 1

    Instead of asking 'why don't we ship shrinkwrapped apps that are not bug free', I think we should be asking this larger question:

    Why do we ship shrinkwrapped applications at all?

    The model we are using is all wrong. Instead, we should be gearing our application lifecyle to handle iterative (recursive) development - releasing early and often via the network. Many pay-to-play games successfully use just such a model, updating content and patching bugs via uploads.

    Add to that an agile process approach coupled with a design philosophy that emphasizes simple modules (that can be tested more completely, encorporating clearly defined APIs that don't allow undefined results to occur when external modules attempt to pass bad data) and you have a winner!

    Thankfully, there are few developers who understand this concept - their continued delivery of faulty applications, that then takes more money to 'correct' (e.g. you buy the next version - which in fact has its own faults) makes me look like a CS god in comparison - and keeps me in business in areas where there is little tolerance for buggy code.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  82. Re: Vendor honesty by jthill · · Score: 1
    --
    As always, all IMO. Insert "I think" everywhere grammatically possible.
  83. as a developer, i strenuously disagree by buddyglass · · Score: 1

    Sure, no product of any reasonable complexity will ever ship without a single bug. For that matter, no sufficiently complex product will ever ship with all the known bugs fixed. In my opinion, however, developers and product managers have been come way too cavalier about shipping product that contains known serious defects. Too much emphasis is placed on features to the detriment of quality. It would please me if every major commercial product tacked on 2-4 months to the end of every release cycle and dedicated it solely to bug fixing. This would be on top of whatever other time they already devote to this task. They're going to do this work eventually anyway, when those bugs are found by customers instead of in-housr testers and developers.

  84. because there is a deadline by josepha48 · · Score: 1
    .. no serious, public companies have to meet deadlines and ship when they say they are going to ship, so either they announce delays and risk their stock taking a dive ( MS is the exception to this for some reason ) or they ship buggy software and patch later, or drop features.

    Alot of it really depends on if you really need to meet the deadlines to make money that quarter or not. MS is so big and does so much in sales that a delay does not kill them, but most other software companies are not as big and need to make money so they ship buggy software instead.

    --

    Only 'flamers' flame!
    Does slashdot hate my posts?

  85. The Acceptable Amount of Fecal Matter in food by erroneus · · Score: 1

    The FDA has an acceptable amount of fecal matter in food! This is not a lie. This is the mentality we've grown into thanks to commercial/industrial interests who don't want the cost of running a tighter ship.

    Is it possible to have bug-free software? YES IT IS! If a bug can be fixed, it can be avoided. If it hasn't been avoided, it can still be fixed before it's allowed to ship. But now, "Group 1" is adding the "acceptable amount of fecal matter" in with our software.

    If you knew for a fact that there was fecal matter in your food, in ANY amount, would you buy it? I'm thinking no. I know my answer is no. I think that every product that is released with a measured acceptable amount of fecal matter above ZERO should be required to be disclosed on the label. And the same should go for software as a consumer warning. Something in red and yellow stating "at the time of publication, this software is guaranteed to have no more than XXX known software defects." And then shoppers will be able to select products with the lowest possible number of known software defects.

    I think if software makers were required to disclose this on a label visible PRIOR TO PURCHASE, they would have sufficient incentive to keep those numbers closer to zero.

    1. Re:The Acceptable Amount of Fecal Matter in food by Doctor-Optimal · · Score: 1

      Interesting argument. Two questions:

      1. What defines a bug? Who would police this? The government? Wouldn't this just lead to another "captive agency" like the FDA or Congress (maybe)?
      2. How would this not become an advertising/marketing shitfest?

      --
      New punctuation update "~" (no quotes) at the end of a line to indicate sarcasm. ~
    2. Re:The Acceptable Amount of Fecal Matter in food by Anonymous Coward · · Score: 0

      So tell us all, what is it like to be an utter clueless idiot?

  86. a bug in the article by crossmr · · Score: 1

    Nobody on our team intentionally creates new bugs. Yet we have done accidentally. Does anyone else find it appropriate that he made this error in this pair of sentences. Had he not have added the second sentence he wouldn't have introduced the error. He should have written:
    "Yet we have done so accidentally."
    or possibly:
    "Yet we have accidentally done just that".
    I'm sure you can all come up with your ways to fix that bug.

  87. Article unconvincing and conflates seperate issues by Snowhare · · Score: 1

    Having actually RTFA, the author seems to make no distinction between feature requests and bugs. His first example of people wanting the product to run using something other than Microsoft SQL server isn't a bug: It's a feature request. His second example looked like a real bug: People using the company's product actually couldn't use it because it mis-behaved when it should not have.

    He treated them as if they were an apples to apples comparision in terms of the decision of whether or not to 'fix' when in fact he was comparing a feature request to a bug fix.

    Regardless, I found his entire argument weak. Software makers routinely ship software which, if it were a physical consumer product, would get the manufacturer their asses sued off for product defectiveness. I doubt an auto company would get very far in court by saying "the tires only fall off occasionally while driving." The stunning thing is that software companies don't get sued very often. They have done a phenomenal job of persuading the consumer that it is only to be expected that occasionally the steering wheel locks and the car drives over a cliff.

  88. Bugs?... by wookie+geek · · Score: 1

    ...and all this time I thought they were added features!!

    wg

  89. Things other than software... by Anonymous Coward · · Score: 0

    As products in general get some complicated they are prone to "bugs". My inlaws purchased a new fridge with many many functions. But it also has a bug, the light on the outside door gets brighter the brighter it is in the room. When the light is off in the room so is the light and there is no way to trigger. In software it may be ok to have bug, especially since anything big can be patch. But a buggy fridge?

  90. Re: Vendor honesty by Medievalist · · Score: 1
    What do you mean?
    Your suggestion doesn't work because it would have to be implemented simultaneously by every software maker in every nation on the globe, which is not feasible in the current economic and political environment.

    Otherwise, Joe Sixpack will always buy the product that does not tell him about the known bugs. "Gee, Mable, the Microsoft version has 1000 bugs listed, but the Happy Lucky Kitty version doesn't have any bug list at all. I guess we better buy the one with no bugs!" The first company that advertises its bugs probably goes out of business or has a stockholder revolt leading to new management.

    FOSS projects publish their known bugs in order to encourage outsiders to fix them and feed back the code. Different ecosystem.
  91. Group Three by wideBlueSkies · · Score: 1

    How silly that 2 groups thing sounds.... however in the context of the discussion, there are actually 3 groups.

    The 3rd group being the largest. It's the majority of the population that is too concerned with war, genocide, starvation, lack of water, or poverty to care, or even be aware of computers or software.

    I know that this is way off topic, but the opening line of TFA kind of rubs me the wrong way.

    BTW, buggy software is shipped because of inadequate testing or fix time. Though there are a lot of reasons for this (management/client pressure to ship, lack of budget/poor planning, poor test scripts/procedures, feature creep.......)

    wbs.

    --
    Huh?
  92. Here we go again by Anonymous Coward · · Score: 0

    Hoo boy, here we go again. In any other engineering discipline, releasing a product with so many bugs^h^h^h^hflaws would be completely unacceptable. Yes, a certain number of errors will slip through. This is inevitable, and this is where risk management comes into play. But by and large, the software industry isn't even to the point of risk management, which implies a certain amount of rationality in activities like setting deadlines, deciding on features, etc. The status quo is anything but, and this poor management is the main reason bug counts or so high. So, yes, some bugs are inevitable, but there's no good reason for high impact bugs that a large number of users will encounter to be considered an acceptable norm.

  93. "Theoretically"? by Anonymous Coward · · Score: 0

    Theoretically, there is no language that is more or less prone to bugs than any other language as understood in Turing Completeness.

    I call bullshit.

    People keep using "theoretically" in this way, and I'm not sure what they think it means.

    For example, imagine a language "Java--" that was exactly the same as Java, but didn't support Strings (if you want to process any text, you have to implement that yourself, and good luck with Unicode) or garbage collection (free everything you create, or it gets leaked).

    I think we can all agree that Java-- would be "more prone to bugs" than Java.

    So whatever "theory" you're using to make these "theoretical" claims is so weak it can't even stand up to what is perhaps the simplest argument possible. What "theory" *is* this, anyway (that any Turing-complete language makes it equally possible to write a bug?), and what good is it if it's not at all true?

    Without delving too much into this, it simply states that all languages emulate a Turing machine to some degree and therefore should be capable of everything a Turing machine is capable of (although I don't think this says anything about time/space efficiency).

    Oh, right, because if something is mathematically possible two different ways, that means they're equally likely, huh?

    Some languages are more prone to bugs. That's life. Deal with it.

  94. Re: Vendor honesty by Medievalist · · Score: 1

    No, I meant like products people actually buy, not products that have over 90% of their users downloading them for free. You've linked FOSS projects not commercial vendors.

    I think your point's still valid, though... open source projects (especially GPL projects) benefit from people knowing about bugs in their code, because that increases the likelihood that somebody will fix them and send in a patch. Closed source, on the other claw, has commercial incentive to hide bugs as much as the customers will allow.

  95. Two groups? by turtle_star · · Score: 1

    I know that the readership of slashdot are obviously more computer literate than most however, I feel that we should acknowledge that there just might be another group that would be people who don't know that software exists. In fact there is a large group (probably larger than "groups 1 & 2" combined) that have never even touched a computer. Just because we are all well aware with the problems that there are with software we can't be oblivious to these disparities just because we're fortunate enough to be able to rant about software bugs from the comfort of our own personal terminals.

  96. Group One, meet Formal Logic by Anonymous Coward · · Score: 0

    I would define the term bug as "undesired behavior" and I suggest they be thought of in this manner. I will also make the statement that no piece of software can be garunteed to be free of undesired behavior due primarily to the above analysis of them being amazingly complex machines with a large state space. To take a stab at it mathematically, this browser (Firefox) is operating with a 48,604 Kb memory footprint (I have many tabs open). That's 49770496 bytes or 398163968 bits. Each bit can be on or off meaning that for the amount of memory my browser occupies now, there are 2^398163968 different possible states for any similar sized application running. Now, to add even more complexity, that state space adjusts according to what the application requires for memory.

    Clearly 2^398163968 states are too many to be in during the current lifetime of the universe. However, you can use formal logic to prove which of those states are valid and also prove that the program can only move into valid states. Most widely used languages have (multiple) formal proof systems available. Even assembly language has a formal proof system. Look up proof carrying code and check out examples like fast network filters written in a proven subset of assembly language so they can safely run in kernel mode. Formal proof systems can even handle time complexity and require programs to terminate within a certain number of operations.

    The problem is that most programmers aren't smart enough to use the formal proof systems and generate their own proofs. Thankfully compilers are able to do most of the hard work so long as the language is type safe and a few predicates are provided by the programmer for initial and edge cases. Even pointer usage can be proved correct, often with little or no runtime overhead for pointer validation.

    So why aren't programmers flocking to these new systems? They'd have to take responsibility for the code they write, and no software company wants that. Expect Free and open source software to be the first to bring you formally correct, bug free software. Bug testing is a matter of running the proof checker on submissions and merging them if they pass. The formal specification that the program has to obey will become the only place where changes are made to the actual function of the program, and since it's a formal specification automated tools can be used to find edge cases and unexplored behavior and write new predicates to control it.

    I'm firmly in Group Two even though I am a programmer and still write buggy code. It's a solvable problem, and I'm working on understanding proof systems so that I don't have to write buggy code anymore.

  97. Re:What a load of crap by Anonymous Coward · · Score: 0

    Let us know when you've written a non-trivial application and actually shipped it.

  98. "can be divided into two groups" by SwashbucklingCowboy · · Score: 1
    The world's six billion people can be divided into two groups

    no, No, NO!

    The world' six billion people can be divided into 10 groups. Those who know binary and those that dont'!

  99. Bugs by Design by Mutatis+Mutandis · · Score: 1

    Quality arguments of this type are not confined to software alone. You will find the same reasoning in hardware engineering, and even in process engineering for manufacturing plants: There must be some balance between the benefit of solving a potential problem, and the adverse impact of changing systems in ways that often make them more complicated. So on the whole I find Sink's position reasonable enough.

    Consider this one, however:

    Vault's backend makes extensive use of features specific to Microsoft SQL Server. Contrary to popular belief, SQL isn't portable. Adapting the backend for any other database would take months, and the maintenance costs of two back ends would be quite high.

    What this probably means is that Vault is relying on features highly specific to the Microsoft SQLServer engine, and that these external dependencies are not isolated behind some interface or localized in a specific module, but scattered all over the entire software. That's not a bug; that is a major design error. It probably implies that whenever Microsoft changes SQLServer in a version that is not 100% backwards-compatible, Vault's customers will have to put up with a lengthy series of minor and major bugs until they have all been ironed out. And if this is their design pattern, that may also be true for every other external dependency that they have. (Their line ending problem suggests as much).

    As a potential customer, I would not care much about the length of the bug list, which actually says more about administrative neatness than about the stability of system. But I would be greatly worried about design errors like this, that fundamentally undermine the future of the system. If I buy it, it might turn out to be a millstone around my neck. And if a system is badly designed, it is also likely to contain more bugs and be less stable, because probably even it's programmers do not understand how it works.

    Good fundamental design is still at the heart of develivering quality software. There is no replacement for it.

    1. Re:Bugs by Design by kent.dickey · · Score: 1

      I agree with the parent article about design being very important.

      But the article irked me in a number of ways. The author strikes me as being on shaky ground defending buggy software, especially since his bug examples mostly showed weak design and seemed to confuse bugs with new feature requests.

      The best way to keep bugs out is to have pride in your work. Not an obsessive slavery to minutiae, but wanting to deliver a quality result.

      Most software is written on a rushed schedule to meet some limited goals. Quality is never a high priority, since high quality does not deliver instant monetary results. If you don't plan on a future for your software, it will not have one.

      The software industry, in my opinion, doesn't need any more excuses for bugs--we're pros at that already it seems. What we need to do is plan ahead a little more, and know that rushing out version 1.0 with bugs is going to cost us long-term. It's the rare market where a rush to market with junk makes or breaks a company. And if you're competing in a market like that, someone who's more ruthless than you will beat you up and take your lunch money anyway.

      The article's author provides another example of a common software-industry effect: If you build for one platform, with one set of tools, with a narrow market, you tend to produce a product inferior to one which is multi-platform using multiple tools. And you could get stuck with these tools, and be very hard to get away from them.

      My experience is there are lots of easy bugs and design decisions where planning on a Mac/Linux/Windows version right from the start (even if you don't really port it--just plan to and prototype it a little bit at least) produces a much higher quality product. For example, if you're only compiling your product with one compiler, then you'll become stuck to that compiler even if you don't want to be. You can do all your production builds with one compiler, but at least make sure your product passes g++ -Wall.

  100. Mod up (the post AND the sig) by Mateo_LeFou · · Score: 1
    TFA: "All the reasons are tied up in one truth: every time you fix a bug, you risk introducing another. Don't we all start out with the belief that software only gets better as we work on it?"

    Advice: Share your software's source code freely, and it will get better as you sit around poolside drinking lemonade.

    Parent: "Trying to come up with a featureset for some vague "target market" is a horrbile way to write software...Software is unique because it is both engineering and design at every phase of its creation... don't work in a closedsource / many customers environment... it's bad for the brain."

    I just made a new friend. It is an almost-perfect tradeoff: the larger your potential market, the more difficult it will be to service it profitably, because of the proliferation of situation details/uncertainty.

    On the other hand, if you develop software for its use-value to you, rather than its exchange-value, you deal with a single set of requirements. Free the code, and this use-value can only increase, anywhere from not-much to Tons, depending on how common that set of requirements is.

    --
    My turnips listen for the soft cry of your love
  101. And here's why. by cabazorro · · Score: 1

    To my left I have a gameboy advance SP with Mario Bros 3. Loaded.
    To my right I have a wintel PC runnig Windows XP.

    Both are chunks of hardware with some software loaded on it.
    Both are mine and I have years and years using them.
    One needs zero maintenance and is pretty much bug free and
    the other one needs more nursing than a premature crack baby.

    The gameboy in my own personal experience is bug-free because:
    a) it's small in size and functionality.
    b) It only tries to do one thing right (play games).

    The PC in my own personal experience is the paragon and birthplace of
    bugs because:
    a) it's too big in size and resources for the bottom-line end-funtionality.
    c) It does a million things half-ass.

    Over specialization results in a slow death.
    Over flexibility results in unpredictability and possibly, sudden death.

    The PC must go.

    --
    - these are not the droids you are looking for -
  102. All the wrong arguments by flibuste · · Score: 1

    IMHO this article is plain wrong in the way to tackle the issue.
    So, according to the FA, one would not fix all bugs because:


    • They may introduce expensive regressions: regressions are the sign of bad design and coding. Fix your development process and you'll have affordable regressions. Conduct proper testing and regressions aren't so costly
    • Vendor locking prevents from introducing changes desired by your customers (The MS-SQL and the so-called non-portable "SQL" - which in itself is wrong). This is not a bug, this is exactly what it is: vendor-locking. The company made that choice for its products, too bad it can't have as much customers as they would like. This is a "bug" in the requirement phase, not a bug of the software.

    So basically, the article misses the point and mixes bugs, feature creep and unforseen requirements. As a lead developer, I never accepted that the industry I work in can ship products that simply don't work the way they should, or have so much bugs it makes people laugh. It is also an insult to the paying customer user who knows nothing about software and can't work its way around them.


    On the other hand, computer scientists know that no program can be empty of bugs. It's been demonstrated. We should live with it and make the best of it.



  103. For OSes, bugs == security holes by Maximum+Prophet · · Score: 1

    If you have open bugs, then you have potential security problems. (At least with OS code) If the bugs are well understood, then fix them with low cost, and little risk. If the bugs are poorly understood, there may be buffer overflow issues and other security problems. (So fix those too)

    That's what makes Computer Science different from other fields, like building houses or bridges. What we understand is easy (or provably impossible). What we don't understand is difficult.

    If something is easy, I can write a script to do it for me, then I just issue one command and viola, it's done. An engineer may know everything there is to know about building bridges, but it's still a long, hard process to get one built.

    --
    All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
  104. It's called Software Engineering for a reason by gillbates · · Score: 2

    One thing which immediately struck me was that the author seems unaware of a key software engineering principle: Reducing design complexity reduces the number and severity of bugs. By now, we all know that there are tradeoffs between complexity, time, and features. However, all other things being equal, some people and organizations consistently produce better software than others. Consider, for example, Linux and Windows. The key reason Linux is more stable and more reliable than Windows is that the process which produced Linux is inherently better at catching and correcting flaws than the one used to produce Windows. Anyone who has ever had to commit a patch to the kernel team knows that design changes are thoroughly vetted before being accepted into the source tree.

    Even I have completed some rather large projects without a producing a single bug. It wasn't a matter of coding skill, but rather, that I designed the software such that:

    • It was broken into modules with clean interfaces, so that each module could be independently tested and verified.
    • It was designed such that a bug in implementation would be apparent immediately (i.e. - it would crash).
    • It was designed to accommodate the inevitable change in requirements.

    Even very complex software can be written virtually bug free if good software engineering principles are followed. Something as simple as adhering to the Unix design principles can drastically reduce the number of bugs in a shipping application.

    Generally speaking, the old adage about "failing to plan is planning to fail" holds true with software as well. The core idea behind software engineering is that quality is improved not by doing more testing, but rather by improving the process by which software is written. Consider the following two, widely used approaches to software:

    1. Define the requirements.
    2. Design the software as a large, monolithic application with numerous interdependencies and no clean interfaces.
    3. (RE)Write the software.
    4. Test for bugs.
    5. If bug found, goto step 3.
    6. Marketing promises something engineering can't deliver. Requirements change; goto step 1.
    7. Customer complains that feature X isn't implemented. Requirements change; goto step 1.
    8. Marketing adds features to product brochure. Requirements change; goto step 1.
    1. Define the requirements.
    2. Partition the requirements into easily tested modules separated by clean interfaces, anticipating the need to add future functionality at a later time.
    3. Design each module.
    4. Write the module(s).
    5. Test the module. Bug found? goto step 4.
    6. Marketing promises something engineering can't deliver. Requirements change; goto step 3.
    7. Customer complains that feature X isn't implemented. Requirements change; goto step 3.
    8. Marketing adds features to product brochure. Requirements change; goto step 3.

    With the second model, changing requirements do not require a complete rewrite or complicated analysis of the entire system. It is a flexible model. The key problems is that it is a hard sell - the design requirements phase takes more time, but it ultimately provides the flexibility that management and marketing require.

    One of these models addresses the fact that requirements frequently change; the other does not. One of these models takes into account the fact that complexity is hard for a single person to manage, and one does not. One model limits the amount of damage that a single, bad coder can inflict, and one does not.

    Yes, we may not fix every bug, but we can at least use sound design processes to minimize the impact of bugs. BTW, the fact that Source Gear can't interoperate with other databases is not merely a bug, but a design flaw. Had it been properly designed, using a

    --
    The society for a thought-free internet welcomes you.
    1. Re:It's called Software Engineering for a reason by Saturn49 · · Score: 1

      You, my friend, are obviously clearly in group 2.

      Let me poke a few big gaping holes in your argument:

      1. You cannot plan for every possible future feature.

      Let me say that another way, in case that wasn't clear.

      You cannot "anticipating the need to add future functionality at a later time" for every possible variation of future functionality. Yes, you can anticipate some, but not all.

      2. Anticipating future functionality and building in the modularity to accomidate it is called speculative generality, and can KILL your productivity. There will always be a tradeoff between speculative generality and getting software out the door. At some point you will probably have to redesign and rewrite entire groupings of modules to accomplish a feature that simply wasn't though of during the original design. It can and WILL affect more than one module. An excellent example is something that was designed to be 1:1, and later needs to be 1:n. This affects everything from the low-level backend stuff up through the GUI. You cannot always plan for this sort of thing because it may not even make sense during the initial design.

      3. You cannot test every possible scenario. This can be proven very easily.

      Your theory is nice (as is the theory of Software "Engineering") but reality always falls somewhere short of ideal.

    2. Re:It's called Software Engineering for a reason by Jayjay75 · · Score: 1

      anticipating the need to add future functionality at a later time That's not the same thing as trying to anticipate the future functionality itself. I understood him to mean that he designs his modular code such that additional modules may be added as needed without requiring a complete rewrite or a horrible kludge job. It's like how a PC motherboard comes with PCI expansion slots. The board maker doesn't have to try and imagine every different type of PCI card that will ever be invented: they just provide a standard interface and leave it up to the add-on card maker to design its interface to the same standard.

    3. Re:It's called Software Engineering for a reason by joto · · Score: 1
      Yeah, but now the customer wants to connect two mainboards over the PCI interface, and let the CPU on each mainboard address the memory and peripherals on the other (something that never was in the PCI spec). He also want all his old PCI cards to keep working, and his old operating system to keep running (without change) on each mainboard.

      If you try to build this sort of generality into your initial design, your initial design will suck! You can't "anticipate future functionality", any more than you can anticipate any kind of future. 50 years ago, everyone would expect rocket-packs to be a common household item, but few would predict SMS text messaging.

      Saturn49 is quite correct. By adding generality that isn't needed, not only will you kill your own productivity. You will kill the productivity of every maintenance programmer that works on your product later! Not only will they have to understand the bizarre logic of changing requirements through n years of development and maintenance. They will also have to understand the even more bizarre convoluted totally un-needed generality built into the initial design, but never utilized!

    4. Re:It's called Software Engineering for a reason by gillbates · · Score: 1

      Actually, I'm not in group 2 or group 1. I'm group 3 - professional engineers. I produce high quality software because I know I'm not perfect, not in spite of it. Because I recognize my own imperfections; the fact that change is inevitable; that no project can ever be completely specified; I am able to design software which minimize the negative consequences of such. I am a professional - I don't just throw up my hands and quit when difficulty arises. The fact that writing good software is difficult does not mean that it is impossible. It simply requires a willingness to learn, and a little discipline to apply what you've learned.

      I recently completed a rather large project which works flawlessly. It has been in production for quite some time now. Producing bug-free code isn't impossible; just impossible for some people.

      Of course, you are going to have to deal with deadlines, with unrealistic managers and customers who expect the world of you. But, I think the key is in correct design. If you get the design right, adding additional features or making deadlines is relatively easy. But, if your process produces buggy code, it is almost impossible to add features or make deadlines, because your process or design is flawed. It isn't so much that you need more time, but that you can't make substantial progress with the time you have.

      --
      The society for a thought-free internet welcomes you.
  105. We just don't learn by BigLinuxGuy · · Score: 1
    Realities
    • Marketing overstuffs releases at the beginning of a development phase
    • Features have to be pulled to meet a ship date
    • Features are implemented in a tightly coupled fashion
    • Unit tests are skipped as taking too long
    • The general populace has been educated to accept the behavior
    • Getting there first with the worst is not the same as getting there first with the most
    • There's never time to do it right, but there's always time to do it over (ok, clíche, but it's called a truism for a reason).

    Of course, I'm in <fnord> group 3 </fnord> (never mind the fnords, nothing to see there, just move along...)
  106. Why doesn't product liability apply to software? by lohphat · · Score: 1

    If you produce a physical product which malfunctions you are liable for damages it causes. Why is software a protected class of products from being held responsible for its non-performance?

  107. it's not that hard to figure out why by nEoN+nOoDlE · · Score: 1

    I don't work in the software industry, but I do work in the animation industry, and it's probably the same principle with software. Short production schedules, limited budget until the product needs to get out the door, incompetent people who are there due solely to the length of their resume, ineffecient scheduling of people's individual tasks, and the fact that the product you're producing could be sent out uncompleted and still sell are all reasons software has bugs in it. Making software isn't like building a bridge, which is what many people love comparing it to. If a bridge falls down, people die. If software crashes due to a bug, people learn to work around the bug.

    The fixing non-critical bugs stage in software development is the equivalent of the "finessing" stage in animation. You can finesse a project forever, fix bugs, add features, etc, but there comes a point when it just has to be put out the door.

    --
    Don't trust a bull's horn, a doberman's tooth, a runaway horse or me.
  108. Listing Known Bugs will happen only if required by Anonymous Coward · · Score: 0

    Someone above wished that vendors would at least list known bugs. The problem is competition. If you list bugs and the other guy doesn't, you are going to get creamed.

    But, look at the Drug industry. They *HAVE* to list known side effects. SO *everybody* does. Then its not a problem, because you don't have Squibb listing side effects but J&J saying "our product cures cancer, saves the whales, and protects social security!" Both of them list side effects.

    Marketting takes advantage of the consumers dream world of bug free software.

    In a way, they have to. How many average Joes would buy a new 2.0 version of software, if they realized it probably has more bugs than what they already have? You would see upgrade times in decades instead of years...

    If computer power/memory growth ever slows down, so that a PC bought today is still good to play the new games ten years from now, then its bad times for most software vendors. Nobody will upgrade. They will buy new games, sure, but not new applications or new O/S. We could see Microsoft get smaller than content companies like EA or Blizzard.

  109. Its simple by oyenstikker · · Score: 1

    A = testing and development

    A is expensive.

    Fixing bugs that customers find in software is much cheaper than A.
    Fixing bugs that customers find in physical products is much more expensive than A.

    From a customer point of view:
    Software product breaks. Software bugfix is free. Your bug goes away. Happy.
    Physical product breaks. A new physical product is the full cost of the original. Not happy. Buy from a different company.

    --
    The masses are the crack whores of religion.
    1. Re:Its simple by belg4mit · · Score: 1

      >Too many posts hit +4. Decrease the number of moderators.
      Or change the arbitrarily small +5 cap

      --
      Were that I say, pancakes?
  110. Re: Vendor honesty by Whiney+Mac+Fanboy · · Score: 1

    FOSS projects publish their known bugs in order to encourage outsiders to fix them and feed back the code. Different ecosystem.

    Good point. YARTSOS (Yet another reason to support open software)!

    --
    There are shills on slashdot. Apparently, I'm one of them.
  111. Economic perspective of bad software by jonasmit · · Score: 1

    These are ideas adopted and rewored from Ross Anderson's paper "Why Inofmation Security is Hard" (Network Externalities) First, the value of a product to a user depends on how many other users adopt it. - The more people use a typical network, the more valuable it becomes. Second, technology often has high fixed costs and low marginal costs. - The first copy of a chip or a software package may cost millions, but subsequent copies may cost very little to manufacture. Third, there are often large costs to users from switching technologies, which leads to lock-in. - Such markets may remain very profitable, even where (incompatible) competitors are very cheap to produce. All three of features leads to a "winner takes all" market structure with dominant firms. It is extremely important to get into markets quickly.

  112. It's not the bugs, it's the design flaws. by argent · · Score: 1

    It's not the bugs that bother me, it's the design flaws that get baked in stone and cause the biggest computer security disaster ever, and when the DoJ tries to get Microsoft to do something for unrelated reasons that would solve the security problem, Microsoft doesn't go "Ok, we can use this as an out, and get great PR out of it", they fight the DoJ to the brink of getting the company broken up and beyond and only get saved by a change in administration...

    That's what bothers ms.

  113. Schlok gets shipped bc Bill Gates got away with it by grikdog · · Score: 1

    IIRC, Steve Wozniak wrote the original Apple Monitor code in a now-legendary all-nighter, and anyone who took the trouble to disassemble it from that night onward saw Revelation. That night joins a short list of epiphanies that lifted the human condition forever after.

    So it's possible to write bug-free code. But! If Quality Control mattered, geniuses would be hired to test software, as well as write it. If Customer Support mattered, geniuses, not average schmucks, would answer the phones and take the flamethrowers in the face.

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  114. Bugs appear because... by JensLH · · Score: 1

    ... there are 3 kinds of software developers. Those who know how to count - and those who don't!

  115. Buggy Software and Basic Economics by ATKeiper · · Score: 1

    "[W]hy are programs so buggy? A general answer has already been given: because it is human nature to push until we get into trouble -- and then blame our tools. We load the elephant with feathers until the elephant collapses, whereupon we conclude that feathers are too heavy for elephants. No matter how amenable software is to our efforts, it can overwhelm us if we pile the code high enough -- and we often do, because it's so fatally easy. But the special reason for software's bugginess is that we almost never demand that it be bug-free (I use "demand" here in the economist's sense: not just desire, but desire backed up by ability and readiness to pay).

    "Software manufacturers are rational economic actors; if they can sell us software without going to the expense of thoroughly debugging it, they will. The copy of Microsoft Word that occasionally drives me crazy cost around $200; if Microsoft had been forced to debug it thoroughly before releasing it, its price would be closer to $2,000. Would I pay that much for a version that I could be sure would never crash at a critical moment, losing hours or days of my work? Probably not; apparently, I don't value my sanity that highly. I am neither blaming anyone nor apologizing for anything; I am simply reporting Microsoft's behavior and mine, in the belief that they are typical of just about all software developers and computer users. In a word, we have buggy software because we consumers won't pay what effectively bug-free software would cost.

    "The reasons why software is almost always buggy are not inherent in the technology and thus inevitable, but spring from human choices and practices that we can understand and could change if there were a compelling reason to do so. Those habits include piling the code on until it overwhelms us, and taking our chances with buggy software in order to get it more cheaply. Both problems could be overcome if we wanted to overcome them badly enough."

    [Mark Halpern, "Buggy Software and Missile Defense," The New Atlantis, Number 10, Fall 2005, pp. 47-57.]

  116. One Word - Internet by Mark+Gillespie · · Score: 1

    I know it's easy to blame the internet for everything these days, but bear with me. Ever wondered why older "pre-internet" software was less buggy? Ever wondered why Playstation, PS2, Gamecube games are pretty much bug free? The answer is, there is/was no easy way to deliver patches, so QA was much more important, as it would cost real $$ to fix thingd after a product ships. These days, it's "ship it, fix it in the service pack", even worse, cutting back on testing, safe in the knowledge any issues can be easilly addressed. You can bet the next generation PS3 games will be more buggy than PS2 games, as the console is gaurenteed to have a HDD, and hence games can be patchable..

  117. Re:What a load of crap by Anonymous Coward · · Score: 0

    Well, even then.

    Consider the following. A hospital has an old bug-free IT system that unfortunately does not do enough to relieve the medical staff of clerical work, causing say 10 deaths a year.

    A new system has been written that would do more, saving 5 of those 10.

    But it has bugs...

    Do you release or not?

  118. Number and SEVERITY by SloppyElvis · · Score: 1

    The number of bugs is only one side of the issue. The severity of the bugs is just as, if not more, important.

    The most serious bugs I've seen almost always relate in some way to crappy state management because some fresh-out-of-college-n00b distributes state to every "object" they've constructed in their over-engineered seven-levels-deep nightmare design.

    In a well designed system, bug severity is limited to an interruption of service, and loss or confusion of data is very rare and carefully mitigated by the design.

    If state is preserved and transacted correctly, then some hoser who codes in divide-by-zeros will find it hard to violate the data integrity. The very best systems will reset, load the last good state, and continue merrily as if nothing happened.

  119. Fundemental Differences by raftpeople · · Score: 1

    Have you ever seen a bridge where 1 broken bolt causes the thing to collapse?

    Physical processes tend to be continuous and small failures in most areas can easily be countered with general design principles.

    Software, on the other hand, is discrete with an enourmous number of paths through the system. Small failures can lead to other small failures, or to gigantic failures, there is little correlation between the size of the initial fault and the size of resulting problem.

    We know how to produce fault-less code, test all possible scenarios. But this tends to be expensive, just like testing all possible uses/states of a bridge would be expensive.

    There are things that can be done to isolate and reduce the number of possible faults, but they are not the same things that you do when building bridges.

  120. hummm by pooly7 · · Score: 1

    The key point is being in the same group than your boss...

  121. Tiny bit of troll food. by Mateo_LeFou · · Score: 1
    "Writing Portable SQL"

    Wait.... it can be done? No Way! My point holds for anyone who uses MySQL-specific, Oracle-specific, or whatever "dialect" of SQL. Don't blame SQL when someone asks you if you can port to a different dB and you can't.

    --
    My turnips listen for the soft cry of your love
  122. But would YOU ship with that knowlege? by Svartalf · · Score: 1

    You see, odds on, they _designed_ it correctly, it met with testing, etc. but when the release process came out the disc had slightly corrupted binaries from off of a flawed mastering run to CD- and no checkpointing on the install to make sure that the code was good.

    In your case, they probably didn't initially know the batch of materials they were using was defective.

    In my analogy, this is more they shipped KNOWING that the keyhole had that vulnerability, hoping nobody would spot it. I can assure you that some of the flaws out thee in Windows are of that variety. There can be no other explanation for it.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    1. Re:But would YOU ship with that knowlege? by mypalmike · · Score: 1

      With the doorknob, it wasn't a materials problem. It was the mechanical design that was flawed. The new one was significantly different in how things were leveraged and attached together.

      For another analogy, consider a car, which is more along the lines of the complexity of a piece of software. Just about every car out there has a number of TSBs (Technical Service Bulletins) and outright recalls to address widespread post-shipping problems. I'd bet that many of these problems were recognized by at least some members of the design and/or manufacturing teams before the product shipped. As with software, the problems are prioritized and known problems are part of the shipping product.

      --
      There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
  123. Good question! by Medievalist · · Score: 1
    Since when was C considered a low-level language?
    I wondered about that myself. I think it must have been about the same time people started calling VAX/VMS and UNIX machines "mainframes".

    I tend to assume the person talking is very young or extremely ignorant when I hear that kind of stuff...
    1. Re:Good question! by mibus · · Score: 1

      > Since when was C considered a low-level language?

      I wondered about that myself. I think it must have been about the same time people started calling VAX/VMS and UNIX machines "mainframes".

      I tend to assume the person talking is very young or extremely ignorant when I hear that kind of stuff...


      I'm fairly young (23), but I've got to agree. I usually consider anything that needs manual memory handling is at least moderately low-level. So few people use assembly these days, and there's not many languages that fit between asm and C... C is much closer to the metal than Java or Python (malloc? What's that? ;), which is what he was comparing it to.

      Just because you disagree doesn't make anyone ignorant - the definition's just shifting with the technology. I'm sure at some point any language where you can explicitly buffer for I/O will be considered "low-level" :)

    2. Re:Good question! by Alomex · · Score: 1

      Since like, forever. From the moment C was introduced it was described as "high level assembler" or conversely "low level algol" (and later pascal). You do remember Pascal don't you. High level languages are strongly typechecked and do not provide direct memory access (i.e. &).

  124. Re:Why doesn't product liability apply to software by BigGerman · · Score: 1
    it is not software as a class, it is the fact that in order to use it you have to agree to EULA that will let the "manufacturer" get away with anything. You do not "owe" piece of software (in most cases), you are just permitted to use it for a while in exchange for sum of money and promise not to sue the maker.

    Once more people realize that they do not have to agree and demand different, things will change. Or, appropriate state and local gvnts may want to require certain software products to be sold only if its maker assumes liability.

  125. It is found everywhere by Hoppelainen · · Score: 1

    The world's six billion people can be divided into two groups: group one, who know why every good car company ships products with known bugs; and group two, who don't. Those in group 1 tend to forget what life was like before our youthful optimism was spoiled by reality. Sometimes we encounter a person in group two, a new hire on the team or a customer, who is shocked that any car company would ship a product before every last bug is fixed. Every time GM releases a version of Cadillac, stories are written about how the open bug count is a five-digit number. People in group two find that interesting. But if you are a product developer, you need to get into group one, where I am.

    Seriously, this is true for almost any business sector with complex products.

  126. You have to put them in, to take them out later by kunakida · · Score: 1
    Programmers only perform 2 kinds of activities with respect to code.

    First enbugging (typing, coding, a.k.a. putting bugs into code), then debugging (finding them to take them out).

    Perfectly circular, like Yin and Yang.

    Since the action of coding the bugfixes falls on to the enbugging side, there is a strong possibility of achieving perpetual programming :-)

    Job security... of a sort.

  127. Re:Not all companies release software with KNOWN b by jc42 · · Score: 1

    When I worked at then Unisys Airline Center in the early 1990's, the defect count for the product we were working on had to be down in the single digits before a new version of the product was released, ...

    Those of us with a bit of experience recognize this as having one primary effect: Employees are strongly discouraged from reporting bugs.

    I've worked on any number of projects where my immediate boss would make it abundantly clear that we keep our own private lists of "issues", and only add something to the official bug list when we have implemented a fix.

    If you want to know about bugs, you'd better make damned sure that there is no punishment for reporting a bug.

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  128. No software is perfect or ever will be by Anonymous Coward · · Score: 1, Insightful

    1) All software has bugs. ALL SOFTWARE!

    If you think your software is bug free then either:

    a) You are clueless, hopelessly naive and inexperienced.

    You may not even know what a bug is. Bugs range from cosmetic bugs such as mispellings in text labels, or the wrong color for a panel, to a bug that causes data corruption or system failure - but they are all bugs - including not meeting the user's expectation of how something should work.

    Moreover, almost all software uses third party libs or application modules - ranging from the operating system (and all of its modules), to system libs to language libs, to special purpose libs (such as XML parsers, etc.) that you have little to no control over and certainly don't have the time to test or examine. You just take it on faith that these do not have bugs - but they do. If they are part of your application or you have not found and worked around these bugs, then your app has a bug - and if you think every OS and third party lib is bug free then I have to wonder what planet, nay what universe you are from.

    or

    b) You (or a designated party) have not tested your software properly.

    Most developers are clueless when it comes to testing, and even if they had a clue (like me - I am a developer, but I spent almost 8 years professionally testing mission critical apps, including medical software) the developer is not the best person to test their own software - that job is best done by a professional and experienced tester who has not written the software - preferably someone who has not tested your software before.

    2) There is no way to completely test any software application - no matter how simple - you can't even approach it, or even *begin* to approach complete testing of software. Even automation can not test every possible data input with every possible logic path. There just isn't enough time:

    Testing a very simple program which just adds two 32 bit integers can take years - assuming you covered just the possible data inputs, and assuming you limited the input to integer numbers, not to mention alpha chars and floats - do the math (at 1 billion inputs per second [an extremely optimistic assumption], it would take over 500 years to test all possible inputs of adding two 32 bit integers).

    That is just the possible integer inputs, not every possible logic path for every possible data input - and that is about as trivial a program as you could possibly make.

    Most testing concentrates around previously known conditions which caused previous bugs (to make sure they don't resurface) and around other inputs/conditions/scenarios which are most likely to find a bug. The art of Software QA/testing is not to prove that there are no bugs, but to find the bugs that we know are there in all software - with priority given to "serious" bugs (what is "serious" depends on the context).

    3) The severity or risk of any given bug is highly subjective and contextual. In some contexts a program that crashes routinely is preferable to a program that gives the wrong answer. In other contexts the reverse is true. In some programs (minesweeper?), either crashing or wrong answers doesn't mean a whole lot except that the user may go on to some other program.

    Saying that Windows has thousands of bugs doesn't mean a whole lot until you start categorizing the bugs and analyzing the risk vs. benefit of the bug vs. the OS - and that depends a lot on the intended use.

    If you don't want to use software that has bugs, better get out the pencil and paper.

    The job of developers, QA staff and project managers is to weigh all of these factors and to do the best job we can given the human resources, time and money we have. No software is ever perfect or ever will be. Deal with it.

    1. Re:No software is perfect or ever will be by fishbowl · · Score: 1

      > All software has bugs. ALL SOFTWARE!

      What about an implementation of an algorithm that has been rigorously proven
      correct?

      --
      -fb Everything not expressly forbidden is now mandatory.
    2. Re:No software is perfect or ever will be by rp · · Score: 1
      Testing a very simple program which just adds two 32 bit integers can take years


      You're hopelessly optimistic: you assume determinism. The hard bugs are the irreproducible ones, that depend on subtle timing / synchronization issues. Or on dependencies that shouln't even be possible in the first place. Two weeks ago I was examining a program that crashes consistently unless - as it turned out after an hour of debugging - enough value has been assigned to environment variables prior to invoking it. I put an end to the crashing by assigning a very long string to an environment variable with some arbitrary name. As far as I can tell, the program in question doesn't even *use* environment variables.


      If you don't want to use software that has bugs, better get out the pencil and paper.


      I don't think so. Pen and paper work isn't exactly flawless, either. The automation of computation is a major leap forward.

  129. It's all about process by drgroove · · Score: 1

    Organizations which adopt a process oriented approach to software development have a far greater chance at succeeding than those which do not.

    Enterprise frameworks such as ITIL and COBIT, coupled with software development lifecycles such as UP and Agile/XP increase efficiency, improve quality, reduce bugs, and help align deliverables with customer requests and expectations.

    Development outside of mature process frameworks is by its very nature ad-hoc; if you have excellent people who are the best in their industry, you can sometimes get away with running your development shop this way; generally, though, projects fail, code is shipped with a high number of bugs, quality is severly impacted, and your customers, clients, or business partners will be disappointed.

  130. True story about SQL Server and MS by Anonymous Coward · · Score: 0

    "What I would like to see is some vendor honesty. How about making a list of known bugs available to your customer prior to purchase?"

    This *used* to be the norm for software, but MS had a big hand in getting rid of this, and SQL Server was the worst offender. MS always viewed a bug list as their admitting a weakness.

    Let me tell you a true story.

    Back when MS put out SQL Server 6.0, it was basically a rehash of 4.2, but with a nicer GUI. It was a big step forward for usability, over the old OS/2 version. What we discovered was that there were certain things that would corrupt the data, but looking in on Compuserve (the web wasn't big yet) or on MS's BBS didn't yield any listings of problems or bugs. So we called MS, and after signing an NDA, they showed us tools that would potentially fix the corruption. However, they would not tell us why the corruption occured. They simply would remain silent. I asked them for their bug list (every software vendor that I knew of had a bug list, especially something as complex as a DBMS), and they said there was no such thing. Of course there was such a thing. Every vendor had to have one, because otherwise, they could prioritize their patches. What they meant was they wouldn't admit to a bug. How could you run a mission critical system without a bug list?

    Well, the next week, the MS Salesman showed up, I vented frustration on the issues. I said "Why don't you publish a list of known bugs so we could at least work around them".

    He replied "If there is no bug list, then there are probably no known bugs".

    I gave him an icy stare (I was doing 18 hour days to fix the problem), and I said "Mike, if you're telling me SQL Server has no bugs, you're either a liar or an idiot. Which best describes you?".

    He got pissed off and left and didn't come back for about 2 months. We never got along very well after that, and to this day, I put that down as the day I strated to become disillusioned with MS's products.

  131. The real reason bugs get shipped by RobertLTux · · Score: 1

    THE LAST BUG

    "But you're out of your mind," They said with a shrug. "The customer's happy;What's one little bug?"
    But he was determined. The others went home. He spread out the program, Deserted, alone.
    The cleaning men came, The whole room was cluttered With memory-dumps, punch cards. "I'm close," he muttered.
    The mumbling got louder, Simple deduction, "I've got it, it's right, Just change one instruction."
    It still wasn't perfect, As year followed year, And strangers would comment, "Is that guy still here?"
    He died at the console, Of hunger and thirst. Next day he was buried, Face down, nine-edge first.
    And the last bug in sight, An ant passing by, Saluted his tombstone, And whispered, "Nice try."

    --
    Any person using FTFY or editing my postings agrees to a US$50.00 charge
  132. Re:terminology/politics/money/efforts by Sj0 · · Score: 1

    Following the GNU arguement, if you're running GNU and KDE on top of open source APIs under Windows, aren't you running an open source operating system on top of a closed source kernel?

    --
    It's been a long time.
  133. You don't get what you don't pay for by Merdalors · · Score: 1
    The world of software engineering is a different place in the Aerospace industry

    Very true, and there's a good reason for that: Boeing et al. recoup every penny of their software development costs, because it's built into the selling price of the 747. There's no point in pirating 747 software, 'cause what are you going to do with the software if you don't have a 747? (Ignore the terrorist scenario).

    If there were some way of eliminating 'piracy', and guaranteeing that the developer gets every penny of every copy used, you would see quality go up. Not everybody can afford a Porsche (substitute brand of your choice), and yet Porsche continues to make & sell superior cars. That's because there will always be people who appreciate and are willing to pay for quality in a car. And you can't replicate cars for free the way you can duplicate a CD (not yet anyway).

    There will always be a market for the software equivalent of a Hyundai, and people willing to settle for lower quality. But if you could somehow protect sales, there would also be a small but lucrative market for people who require, and appreciate, quality in software. Kind of like Apple. (No, I don't use an Apple computer. Just an iPod).

    You disagree? Please tell me what OS, development platform you use, and which flawless products your company produces.

    --
    Slashdot entertains. Windows pays the mortgage.
    1. Re:You don't get what you don't pay for by joto · · Score: 1

      If you come up with a better office package than Microsoft, the way to get rich, is NOT to charge a hefty price, and hope for a few lucrative customers. They way to get rich is to charge a price comparable (or even lower) than Microsoft, and hope most users convert.

      Porsche works in the real world, because by using quality parts and expensive manufacturing, it's still possible to make a better car than Hyundai, even though your R&D costs are lower than Hyundais. In software, there are no "quality parts and expensive manufacturing" to make up for faulty R&D. The "parts" are 0's and 1's, and the "manufacturing" is to burn it to a CD. All the costs of making software are R&D. If you want to build a better word-processor, you can't simply replace the spell-checker with one built out of titanium! You actually have to engineer a better spell-checker too!

      This is why there will never be Hyundais or Porsches in the software market. Well, actually there are, but it's an artificial solution. The natural development of the mass-software market is in the direction of a monopoly, like Microsoft. Because, eventually a product that is "good enough" will turn up at the right price, and everyone buys it. Once everybody has the same product, interopability with everyone else ensures nobody switches. And by then the monopolist only has to make sure the competition never gets dangerous by buying the competitors or competing unfairly.

      Mass-market software is not a "product", it's information, and it doesn't matter at all if you sell/produce 30 or 100 000 000 copies. They still cost $1 per CD to produce/distribute, and the other costs (R&D) are mostly fixed. Apart from the monopoly, there is only room for the really expensive custom-made software, and really cheap (e.g. adware) software that is even more crappy than what the monopoly turns out (so that it's not a threat that the monopoly will have to crush).

      Or we could stop being dictated by economy. That's when we start seeing free software/open source., but that's another story!

  134. bugs, yeah, but not serious ones by ediacaran · · Score: 1

    I've worked for a few companies that have shipped software to paying customers. The secret to shipping with no serious bugs is reclassifying them as less serious before the ship date.
    Having been both a programmer and a test drone, I can't believe that anyone would think any code ships without known bugs. I guess not doing testing would be a good way to achieve that honestly.

  135. Tag this BS. by SanityInAnarchy · · Score: 1

    First of all: cat has no know bugs. grep has no known bugs. It is possible to develop software with few or no known bugs at all, it just takes longer -- and "fixing" a bug by not introducing it will not introduce more bugs.

    Second: Look at severity. IGNORE frequency. If 2% of the users of a filesystem experienced corruption (or even imagined corruption, hardware problems, etc), then the filesystem and the company gets a bad rep. Look at Reiser -- ReiserFS v3 is rock-solid now, but it still takes the blame for bugs that weren't even in the product itself.

    In other words, if your software works fine for 99% of people and causes catastrophic data loss for 1% of them, that's far, FAR worse a bug than a bug which causes slight annoyance (discoloring of a single pixel) for 100% of users.

    This guy is merely trying to justify his product being shitty and MS-centric, and in the process, he's defending MS and every other lazy dev shop out there.

    Yes, do have a list of known bugs. But don't avoid fixing them because they're minor, or because they only affect 1% of your users. And if you can avoid bugs, and if you can show that you fix bugs quickly and don't introduce too many more (statistics run on your bug-tracking system) -- I think that's a far more valuable image to project than an image of getting software out the door quickly, especially because most people don't care about development time, they care about the quality of the software that they get out of it.

    --
    Don't thank God, thank a doctor!
  136. Completely untrue. by chaboud · · Score: 1

    A small bug list can just indicate poor testing or poor reporting. While you don't want major bugs to be in the bug list in high numbers, a bug list should contain all of the minor quibbles that cropped up during extensive testing.

    A small bug list proves very little.

    We used to hold our products for two weeks at a bug count of zero. Any new bug would reset the count. Then we staffed up our QA team. This practice became impossible. Our known bug list went from zero bugs to hundreds deferred in the next version, but our quality improved.

  137. Who's in first? by fdisk3hs · · Score: 1

    "...But if you are a software developer, you need to get into group one, where I am."

    Who's in group one?

    I dunno.

    No, he's on second.

    Who?

    No.

    What are we talking about?

  138. Turing machines by DragonWriter · · Score: 2, Informative

    The theoretical limitations of Turing machines might affect the ability to detect bugs (then again, the halting problem -- one of the most common "limitations" referred to and the one brought up repeatedly in this thread -- is only intractable for a universal Turing machine; for real machines with finite memory, which, unfortunately, real comptuers tend to be, halting is decidable, so that particular limitation is no excuse for software bugs on real machines), but the practical difficulty of establishing correctness are substantial, though.

    And those practical difficulties are, as I understand things, affected significantly by language features, which is why some languages (like Oz) are designed with ease of reasoning about code as a priority.

    (And, of course, a major practical limitation of proving correctness is that proving code is correct doesn't help if the environment it runs on isn't also proven.)

    1. Re:Turing machines by KingEomer · · Score: 1

      Hrm. That's true. I always forget that we don't have infinite memory. :P Though I still think it's intractable (i.e. not in P) to actually prove this, since as far as I can tell you'd have to check every possible state as was posted way back up the thread. But that's just arguing semantics. I concede defeat. :P

  139. Re:What a load of crap by rehashed · · Score: 1

    If it is a couple of "small, esoteric display bugs" that they already know about, and they are not related to a hardware issue, then give me one good reason why they shouldn't fix them before rolling out their software?

    The reason they would roll it out is because they do not care about the quality of their product. They just want to make a quick buck.

    The size of the project itself is irrelevant - as I mentioned, it is just sloppy development techniques that result in unmanageable software.

  140. well.. by Anonymous Coward · · Score: 0

    probably not strict and technically, no you are not, but I see the point and for conversational puprposes I will agree in the general way.

        I think it's a bad idea long range and a severe waste of resources and time and effort, all to go to still keep MS on top and rolling in the dough to amazing and near obscene levels, while a lot of the open source devs say they can't make any money at it.

      It should be obvious by now doing ANYTHING to make closed source better by using open source to "enhance" it is shooting yourself slowly in the foot, over and over again and then wondering why you stay crippled up and hobbling.

    BANG why am I limping?? BANG why am I still limping?

    It's nuts.

      Open/closed are two completely different philosphies and business models and as such, if you keep trying to blend them you will keep running into weird problems and keep trying to play "catch-up" all the time while the fatcat software overlords fly around in their business jets laughing at you for doing their work for them.

        MS is play acting at being against a lot of the efforts, FF on windows was and continues to be a godsend to them, it gave them YEARS worth of breathing room so that windows users could keep using the net even half ass securely, wheras IF the only viable alternative would have been a complete switch, it just might have made a lot of them look at it closer.

      I'll repeat the challenge, I'd like any open source devs who work on windows apps like FF for windows, in the hopes that someday people will switch to all open source operating systems PROVE that this is happening beyond less than the margin of error at one percent. Let's some some verifiable prrof that this idea is working.

        I am not seeing any mass switching anyplace, just people staying stuck on MS windows, albeit some ludicrous small number now might be running a few open source desktop apps, and even there it hit a plateau at maybe 10% then leveled off.

        Not seeing any hardware vendors cooperating beyond a complete joke level, not seeing any significant stores offering a wide selection with new installs, not seeing anyone out in meat space who games switching, nada, zilch.(we will stick with US region for this right now, still the largest market in ther world)

        The adoption of open source operating systems is still at the same level it was several years ago, 1 or 2 percent tops,even though they are a LOT better and you certainly can't argue with the price, and I maintain it is *precisely* from open source devs doing their thing for the windows platform thinking their efforts will be some fantastic "switch" lead in, to "ease" the users into it. False premise, not born out in the real world, just look around. I appreciate the effort and interest, but I think it is naieve now to keep insisting it will "work" somehow, else we would be seeing the evidence of it. The only switch I have seen is a few more people (statisitaclly percentage-wise) going to OSX, and that has pulled about equally from the linux and windows camps so it's a neat-even wash there.

    It's a war,for long term hearts and minds and for the adoption of what a lot of us see as the far better way for everyone on the planet to get better code and for businesses all over to be able to use better code to make more money ion the real business of the world, which is anything BUT software. software is just used to do OTHER business, that's where the REAL long term money comes from coding and admining and such.

      And until people can see and act like it is a war, and see how to use open source to make your real work better, appeasement and collaboration are not going to work and will keep it at an "also ran" level.

    1. Re:well.. by Sj0 · · Score: 1

      Three points.

      1. Not everyone wants to make money off their Open Source project. I've contributed fairly significant amounts of code(a port to an embedded platform) to FreeBASIC, my favourite compiler, but I've done it because it's a useful tool for what I use it for, not because I want to be rewarded with riches.

      2. You can't just leave the statement "Open source OSes are a LOT better" hanging without quanitfying it somehow.

      My experience has been that some of the most critical parts of an OS are easier to work with in commercial OSes, probably because companies actually have to sell them to someone.

      Compare getting a wifi card to work in Windows and in Linux, and under one you'll find you insert the CD to install the drivers and interface then install the card, and on the other you'll have to install some wacky kernel patch, compile, then spend hours trying to figure out what files in /etc you have to edit to actually get the thing to run.

      Since uptime for a Windows XP system that hasn't been compromised (not as improbable as it sounds if you use best practices) is comparable in terms of a workstation timeframe (My PC has been on non-stop for months, for example), and a system with proper drivers tends to run faster than one using non-specific generic drivers, my experience has been that open source kernels aren't better in any significant area when compared to using a commercial infastructure to run Open Source Software.

      --
      It's been a long time.
    2. Re:well.. by Sj0 · · Score: 1

      3. There is no point 3.

      --
      It's been a long time.
    3. Re:well.. by koreaman · · Score: 0

      I don't understand why it matters if lots of people switch to Linux.

      No, this is not a flamebait or anything, but IMO Windows is the best OS for the desktop (not the best in other areas) but even if it wasn't, why does it matter?

  141. 8. Code Entropy example by HornWumpus · · Score: 1
    It's been a long time so forgive me if I've got this wrong.

    IIRC VMS reached the point where after some period IBM did an analysis and discovered they were creating 1.1 new bugs for every one they fixed. At that point they stopped fixing bugs (if they were around by then they were minor) and just started documenting the heck out of them.

    This was not a trigger for a total rewrite. It was a good thing. The system was finally stable (on that hardware). Sure it was obsolete, so what?

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  142. Buggy software gets shipped... by Shadyman · · Score: 1

    Isn't that part of Microsoft's business model?

  143. Re:What a load of crap by Mindwarp · · Score: 1

    They wouldn't fix them because the potential knock-on effects from changing the code-base at a late point in the development cycle massively outweigh any potential benefit that the business places on the fix.

    In reality list of new features combined with bug fixes is handed to the business. The business decide how much they want to pay for development and when they want their next release to be. The developer pool size is known, and therefore the man-hours available is also known. Estimates on time taken per feature/bug are supplied by development to the business, and the business then prioritises exactly what they want in the new release. The reality of the matter is that the business will ALWAYS choose the new features that are going to make or save them millions over fixing the small bugs that they understand and know how to work around.

    There's no sneakily fixing those bugs on the side either. All code changes have to be checked in against deliverable items previously agreed in the business scope. Business deliverables are the priority, and off-scope changes introduce unmanaged development risk into the project. It's just the reality of the situation.

    --
    The gift of death metal does not smile on the good looking.
  144. So twencen... by maysonl · · Score: 1

    On the web, you can ship a new build every day (if not oftener). CD's or DVD's in boxes, trucked to stores are a waste of time, energy, oil, and trees.

  145. Markets by RealGrouchy · · Score: 1

    The problem with software is with the software market. You only know whether you like it after you buy it, and if you don't like it, tough.

    I went to one store to buy a web cam, and when it didn't do what I wanted it to, I returned it and got another webcam from a different store.

    If I buy an OS (or any other software) from a store and it bugs me, then I try to return it, they would laugh at me for trying to return opened software. If I want to buy or use other software, then not only will I have wasted my time and money on the first program, but I will have to spend more time and/or money on installing and learning a new one.

    From the vendor's point of view, they've already made the money off of me, and they're not giving it back. The next version is different or "better", and after waiting 5-7 years (:P) customers will have forgotten how frustrated they got the last time. Since closed-source software companies tend to not release bug data, it's really a gamble when I purchase the software in the first place as to whether I would be satisfied.

    - RG>

    --
    Hey pal, this isn't a pleasantforest, so don't waste my time with pleasantries!
  146. I hope.. by Anonymous Coward · · Score: 0, Interesting

    I hope you are still honoring the memories of the firefighters who died after they reported over the radio hearing a series of explosions that collapsed the towers. The same with the maintenance worker pulled from the rubble who said the same thing, the people who's testimony was NOT in the kean whitewash report and the recordings of them NOT released to the public. The firefighters who croaked in WTC 7 after reporting that they had the fires blocked and were in clean up mode them BAM BAM BAM BAM.

        I hope you take it as serious as millions of other people do who can see quite clearly that this current government-some cabal of insiders in extremely highcommand levels- allowed this thing to go down for profit of various kinds. The people who were running a "drill" that day with "airplanes used as weapons" that they later claimed they had "no knowledge" of anything like that even contemplated. The same cabal that clearly had all the project bojinka information. The same cabal who issued warnings to selected politicians to not fly that day. The same cabal who ignored warning after warning from some foreign intelligence services, and who conversely don't think it is relevant that ONE of those services notified nationals who were there who failed to show for work that day and escaped the fate that others had to endure. The same cabal who refused to let david schippers of past presidential impeachment legal fame and credentials issue his warning of imminent upcoming terr attacks to them, in JULY. The same people who ordered various control tower tapes of airliner captains transmissions to be destroyed, the cassettes crumbled and placed in separate waste receptacles and ATC guys to SIT DOWN AND SHUT UP. The same cabal that ordered various of their lower level federal cops to STOP INVESTIGATING what looked like an upcoming terror attack once they saw it went upstream and started WHITE GUYS WITH BLACK SUITS AND FUNNY SUITS WITH BRAID AND RIBBONS. The same fed cops still sitting in limbo to this day and never yet with their day in court for some rather mysterious reason.

    And so on, there's a HUGE list out there of strange and oddly weird "intelligence failures", which looked at from a more realistic point of view, look suspiciously like intelligence successes, as in "mission accomplished", the grand "pearl harbor" event excuse to go apeshit in the middle east and institute domestic big brother actions to an unprecedented level not matched since the Civil War..

    I sincerely hope you are honoring your friend's memories by not swallowing the governments ludicrous fairy tail conspiracy THEORY about what really went down that day and who was responsible for it. It was the culmination of a long running slow speed coup d'etat, and it had very little to do with some ex-CIA asset wearing a bathrobe hanging around in a cave someplace.

    Yep, it was a conspiracy,and the governments public version is so full of holes moths wouldn't even look at it, not enough to chew on.

  147. Shocked I Say by __aalomb7276 · · Score: 1

    So you're saying I am paying Microsoft for a license to get the priviledge of beta-testing their software? *shock*

  148. BS by raftpeople · · Score: 1

    It is possible to give the same sort of assurances for software by using similar engineering techniques.

    Please enlighten myself and all of the math and computer science researchers that have been attemting to solve the problem of correctness. What specifically can be done to ensure correctness of algorithm, and correctness of tens/hundreds of thousands of algorithms working in conjunction. What physical engineering techniques apply?

    I don't disagree that it is a worthwhile goal to create bug-free software, and I think that with proper languages/tools/etc. progress can be made, but if you think the answer will come from the physical engineering disciplines then I don't think you have studied the problem.

    1. Re:BS by joto · · Score: 1
      What physical engineering techniques apply?

      KISS - Keep it simple, stupid!

      The reason buildings don't usually "fail", is because they're mostly just standing there, (I've yet to see a building execute SQL queries or something like that...), and if something moves it's considered a "part" of the building, and is allowed to fail (such as a door).

      Software has to be flexible. In a physical address book, there is a maximum of 20 addresses per letter, and no recycling of deleted addresses. Nobody would accept this in software. But assuming it was acceptable to limit software like that, even I could write provably correct software, and even I could prove it correct, without the use of fancy software verification tools.

      Furthermore, the real world tends to predictable. An engine is supposed to be given a somewhat predictable load. We don't expect someone to suddenly jerk an iron bar into the camshaft to stop it, and if someone did, few would be surprised that the engine would "fail", and even need repairs afterwards. Yet software is generally always expected to accept any kind of input. Remove that requirement, and I will write "provably correct" software as easy as any civil engineer proves their bridges and buildings won't fall down.

    2. Re:BS by raftpeople · · Score: 1

      Remove that requirement, and I will write "provably correct" software as easy as any civil engineer proves their bridges and buildings won't fall down.

      Even with that requirement removed, there are still such a ridiculous number of permutations of input and state for most programs that testing all is very time consuming and generally not economically feasible, and any ONE of those inputs or states could be a problem. Mechanical engineers, on the other hand do not have to test every perumtation of molecules that may be on, near or around the item being constructed. Software is discrete and state based and physical engineering is continuous and different approaches are required for the two different disciplines.

  149. Matter of perspective... by BrokenHalo · · Score: 1
    From TFS: "The world's six billion people can be divided into two groups: group one, who know why every good software company ships products with known bugs; and group two, who don't."

    Not quite. There is a third and much larger group with vastly more pressing issues to deal with, who couldn't care less.

  150. Let's see... by aCapitalist · · Score: 1

    Well, if buggy cold wasn't sold or distributed then we wouldn't have any software.

  151. It's Zeno's Rule of Project Management by bgspence · · Score: 1

    The last 10% of a project takes 90% of the time.
    The last 1% of a project takes 99% of the time.
    The last 0.1% of a project takes 99.9% of the time. ...

    So, at some point you just ship it.

  152. Re: Vendor honesty by zCyl · · Score: 1

    Otherwise, Joe Sixpack will always buy the product that does not tell him about the known bugs. "Gee, Mable, the Microsoft version has 1000 bugs listed, but the Happy Lucky Kitty version doesn't have any bug list at all. I guess we better buy the one with no bugs!" The first company that advertises its bugs probably goes out of business or has a stockholder revolt leading to new management.

    I don't know about you, but I'd be much happier with a purchased product that had a bug list, perhaps with suggested workarounds, and an estimated timetable for fixes if a fix will be forthcoming. (And if none will be forthcoming, I know to look into the workarounds.)

    I mean, people NOTICE bugs by the consequences, so it's not like you can hide them. People just don't know how to deal with the bugs they get, and sometimes aren't exactly sure what triggered them. Something as simple as the presence of a page that says "Pressing button C, B, and then A causes a crash. We're still trying to figure out why," would tell me to not press the buttons in that order until they fix it.

  153. What you Want vs Ask For; and hopes for the future by martyb · · Score: 2, Insightful

    This represents the UNCHANGING blue-print for the software. The customers would get exactly what they wanted, and you would produce a solid software product. (emphasis added)

    I share your vision of hope for the future. But I would first like to digress for a moment on your statement before fleshing out how I DO agree with you, too. (BTW it is currently 4 AM so I apologize if this rambles a bit. I've tried to go back and edit it to make it clearer, but I seem to keep making mistakes. That in itself seems apropos to this discussion. <grin>)

    In my experience, it's more like: the customers get what they asked for and then find out they did NOT get what they WANTED. The problem is that the customers do not understand software, the environment the software runs in (hardware, political, and legal), what is possible, and what has never been done before. It's more often the case that "they will know it when they see it, but they can't really tell you what THAT is, exactly, before hand." Further, because they do not know what is and is not possible, they don't understand the ramifications of their choices. Lastly, there is a HUGE difference between research and development. It's one thing to code a one-off of something you've done many times before; it's quite another to do something completely new, and get it right the first time. As more and more people become computer literate, and gain first-hand experience on using software, I am cautiously optimistic that this disconnect will diminish over time.

    Strive to UNDERSTAND your problem,
    Don't try to SOLVE it.
    A fully stated problem embodies its solution. D.T. RossSofTech;November 1978

    Helmets - As an example, I remember watching some old footage and was amazed to see that professional hockey players did not wear helmets. Now it sure likes ALL players wear them. Why? We learned the added inconveniece and expense was worth it. I've worked on development projects where there was no allowance (i.e. time and money) set aside for anything but the barest amount of testing. Now I am increasingly seeing that built into development schedules, as a matter of course. Granted, in some cases this testing would be analagous to a hockey player wearing only a LEATHER helmet (instead of today's high-impact plastic) but it shows progress and gives me hope for the future. I welcome the day when testing and quality assurance are an integral part of EVERY development effort instead of a rare luxury. The benefit is that libraries of well-documented and thoroughly-tested code will become increasingly available. AND the methodology to USE them PROPERLY, (i.e. SAFELY!)

    It's thanks to developers' incessant optimism, I believe, that we have our current problems, and also the seeds for the solution. Please, don't get me wrong on this one. IIRC, it was Tesla who said that "If I had known it was impossible, I wouldn't have done it." We create doftware to do things which have NEVER been done before, ever. Even in the face of statements like: "That'll NEVER work!". The response? "Oh yeah? Hmmmmm. Wait a minute! If I, hmmm, and then... AHA! I think that just might work!" And on nothing more than a hunch, a hope, and a blind ignorance of just how many hours of debugging it will entail, we regularly go off and do something absolutely incredible. I have gained much inspiration from a quote by Mark Twain:

    To be the FIRST - that is the idea. To do something, say something, see something, before ANYBODY else - these are the things that confer a pleasure compared with which other pleasures are tame and commonplace, other ecstasies cheap and trivial.

    In tandem with this one by Thomas A. Edison:

    Genius is one percent inspiration and ninety-nine percent perspiration.

    It's that thrill which drives so much inspiration and pers

  154. Unreasonable by Anonymous Coward · · Score: 0

    I'm in group one and I'm still shocked by just the sheer absolute volume of bugs released in some things. For example, Oblivion. They just rush things out the door too much more these days. I understand you have to get things out in time to meet deadlines, but, it's starting to become ridiculous. The scary thing is that more and more often I'm seeing bugs (particularly in games) which should have been caught in the initial-most testing stages, long before they even got to the REAL QA... For example, I mentioned Oblivion. Clearly they never bothered to even test that game on a system with a nvidia video card. Actually, my impression after further playing and visiting of their tech support forums is that they really didn't test PC much at all (it's an XBox360 game that we're just lucky enough that, oh yay, they decided to port to PC while they were at it just to be nice.) The fact is, with a lot of newer stuff I've had a growing suspicion that the teams are getting lazier and lazier with each new release.

    Ironically, MS may actually have gone down rather than up. Seems like Windows XP crashed a lot less than, for example, Windows 2000 (which didn't get along with a lot of hardware so crashed a LOT.) I wish they'd get their bug control to catch up already though. They MIGHT be getting better, but, they have a long way to go to catch up to, for example, several of the major linux distros.

  155. Grammar Nazi Sig attack by hicksw · · Score: 1

    In your sig you said: "There is nothing inherently safe about liberty. That's why so many people died protecting it."

    Tense fault. It should read "That's why so many people DIE protecting it."

    The process is ongoing. Live for it. Die for it.

    A pessimist/historian might opt for the perfective form: "have died", implying that such death has gone out of fashion.

  156. Bridges don't collapse! by woolio · · Score: 1

    y your reasoning, it is inevitable that bridges have design defects in them, and that at some point (in their usable specified lifetime), will collapse.

    well, I am not a Civil Engineer. But I would venture to say that it is the job of a Marketing Engineer (I use the term Engineer loosely) to specify the lifetime of the aformentioned bridge to be limited to a timeframe that elapses before the bridge would collapse.

    Thus, no bridge collapses during its specified lifetime.

  157. Never release the product? by Sagrilarus · · Score: 1

    Has anyone mentioned that if you try to burn out every bug the product will never be released, let alone not released on schedule? The article seems to have completely ignored this point, which makes me think it went through a heavy round of review by his corporate management. Timeline is the primary driver on every final bug list I have ever worked on. Sag.