Slashdot Mirror


Taking On Software Liability - Again

An anonymous reader writes "You may remember an article in which a BBC correspondent wrote an article criticising current software licenses. In answer to the huge discussion that this brought about, he has written another article defending his views. From the article: 'It is possible to make error-free code, or at least to get a lot closer to it than we do at the moment, but it takes time and effort. Doing it will probably mean that commercially-available code is more expensive and cause major problems for free and open source software developers. But I still believe that the current situation is unsustainable, and that we should be working harder to improve the quality of the code out there.'"

382 comments

  1. yeah by jomynow · · Score: 2, Informative

    not gonna happen its like asymtotical or something. you keep spending money developing and finding buys and keey going yet getting less returns out of it.

    --
    http://omgwtfmedia.blogspot.com/
    1. Re:yeah by daveed · · Score: 1
    2. Re:yeah by Red+Alastor · · Score: 1

      Not gonna happen because we would have a hard time pointing out who is responsible. Is your software that caused the problem or is it Bonzi Buddy that caused a problem in your software ? How do you know ? How does the court decide ? There is two benefits I can see from having "perfect code". It saves money and it saves data. The current system have workarounds to minimize those losses. If law manage responsibilities, it's a lot of money going down the drain, more than the workarounds cost us. And beside, software that would be written because of the delays it would bring means you won't get the money it could help you earn or the data it would makes you able to create. And in the end, nations adopting those things would just end up a technological dark age compared to the rest of the world that would continue to go forward. Plain studid.

      --
      Slashdot anagrams to "Sad Sloth"
    3. Re:yeah by Directrix1 · · Score: 1

      Yeah, also doesn't it seem like something so unsustainable sure has sustained, with much success, for quite a while now. This guy must be my old discrete math teacher.

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  2. Then let him do it. by BoomerSooner · · Score: 3, Insightful

    I've got an idea. For non-software developers with great ideas. You program some piece of software for 5 years and then warranty against any bugs or failures. Oh btw, it must be priced competitively with current offerings. This guy can go wank himself in a corner somewhere. Perfect software doesn't exist. If you want something done right, your best bet is to do it internally to your company instead of outsourcing. Walmart is a perfect example. Do it right with people that feel they have ownership in the software they are creating and you'll get a better product. Plus, Arkansas (and my state too) are like Bangladesh anyway in the wages paid to software developers.

    1. Re:Then let him do it. by MaskedSlacker · · Score: 1, Interesting

      Perfect software is possible, with due diligence. I submit TeX into evidence.

    2. Re:Then let him do it. by Urza9814 · · Score: 0

      Perfect software is possible! I've done it! Sure, that was one person in about a week...but still! :-P

    3. Re:Then let him do it. by ucblockhead · · Score: 1

      While you are correct, that perfect does not exist, it is also true that the way most software is developed, with arbitrary deadlines, poor testing and deathmarch coding, is responsible for much of the bugginess of modern software.

      If software companies spent the time and money quality takes, then they would produce software that is less buggy. Not bug-free, but much less buggy.

      --
      The cake is a pie
    4. Re:Then let him do it. by Anonymous Coward · · Score: 0

      Yes, but TeX is a 25-year old (or more) piece of software that does not evolve any more.

    5. Re:Then let him do it. by swillden · · Score: 1

      Perfect software is possible, with due diligence. I submit TeX into evidence.

      Good point. All we need to get perfect code is programmers of Don Knuth's caliber.

      Surely there are plenty of them around. Right?

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    6. Re:Then let him do it. by Free_Meson · · Score: 1

      Perfect software doesn't exist.

      Avoiding liability isn't about producing a perfect product. There are no perfect products. A company can avoid liability (in cases where liability laws haven't been modified by law to create strict liability schemes) when that company shows that they took efficient measures at preventing harm arising from the use of their product. If $1 of effort prevents $5 of damage and you fail to make your product safer, you will be held liable for damages suffered by your users. If $5 of effort prevents $1 of damage, you won't be held liable.

      If you think subjecting software producers to the same standards as car manufacturers is a bad idea then you don't understand the relevant standards. More to the point, though, if you think software receives a special exemption from products liability then show me an example of this special treatment. I suspect that, due to the nature of software, every for-profit company takes reasonable measures to improve the safety of their product. It's been a while since I did anything with software, but in my experience QA and debugging consumed more resources than writing the original code. Many bugs are far from obvious even with thousands of hours of testing.

      Products liability occurs only when a manufacturer of a good fails to take due care in making it safe for sale to the public. Only an obvious error or an inadequate (by industry standard) QA/debug process would trigger liability.

    7. Re:Then let him do it. by Goonie · · Score: 1

      And let them work on exactly what they want, and let them release software when they feel like it instead of when the customer demands it.

      --

      Any sufficiently advanced technology is indistinguishable from a rigged demo
      --Andy Finkel (J. Klass?)
    8. Re:Then let him do it. by MaskedSlacker · · Score: 1

      Didn't say it was easy or trivial (its not). But it is humanly possible. As long as we expect crap from these companies and their programmers that is what they will deliver.

    9. Re:Then let him do it. by swillden · · Score: 4, Insightful

      Didn't say it was easy or trivial (its not). But it is humanly possible.

      And it's humanly possible to run a marathon in less than 2.5 hours, but if you have to move a large number of people 20+ miles on foot, you'd better expect it's going to take a little longer than that.

      "Humanly possible" in no way implies "doable on a large scale", and that's what we need. A *lot* of software must be written, so you have to expect that most of it will be written by average programmers. Implying that they ought to be able to because Don Knuth can do it makes no sense (and as Goonie pointed out, Knuth had some other advantages, like no marketing dept pushing to get the release out before the next trade show).

      I'll agree that software could be better than it is, but TeX is not a useful data point.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    10. Re:Then let him do it. by Anonymous+Brave+Guy · · Score: 4, Insightful
      All we need to get perfect code is programmers of Don Knuth's caliber.

      Perhaps. Then again, perhaps not. We all know that informed, skilled geeks are usually the last people who are turned to when it comes to software project management, which is notorious for prioritising deadlines ahead of working code, cutting corners on quality controls and testing, not adhering to recognised (by conscientious geeks) best practices, etc. Usually, the reason cited for this is cost: "But we can't be competitive if we do it properly and others don't!" Well, that's kinda the point of TFA: if everyone has to do it properly, that no longer matters.

      Yes, I imagine that really will dramatically reduce the rate at which software is produced, at least at first. However, is that any great loss? Look at the financial damage that a single security flaw in a widely used piece of software can cause. Look at the cost in human life of a serious software bug in fields like medicine, transportation or energy services.

      It's clear that left to the short-sighted bean-counters, fatal (literally) bugs are shipped in the name of profits. It's also clear that we can do much better: most software development places I've seen don't even have basic code reviews in place, yet research shows that simply getting a second pair of eyes on every single line of code you submit can remove around 5/6 of bugs before they're even checked into the source control system. Look at the amount of poorly-designed spaghetti code that gets written. This sort of bug-ridden mess happens on even pretty good projects today, and it's entirely unnecessary.

      Don Knuth is not the only good programmer in the world. Perhaps if software vendors (not those who give it away - you get what you pay for) were legally responsible for their work, the rest of the good developers who are capable of running their projects to much higher standards would be valued as much as they should be, and the profits-over-safety culture that currently dominates software management could be wiped out in the interests of everyone. I doubt that would produce much perfect software, but it would certainly be a lot better than it is today, which is in the interests of everyone (except cheaposoft developers, but including developers who produce products of quality).

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    11. Re:Then let him do it. by melikamp · · Score: 4, Insightful

      You are missing the point, though not as badly as the grandparent.

      It takes a genius to write an amazing program like TeX or Emacs, but no genius is required to write a program that is free of bugs.

      To compare with something I understand, it takes a person like Gauss to prove the law of quadratic reciprocity, but even a very average graduate student can understand it and to check that the proof is correct.

      As a working mathematician with some background in computer science, I am willing to attest that writing low-level software is wrought with many perils which mathematicians never encounter. Closed source, incompatible devices, hardware failures -- factors like these make programming a device driver very different from proving a theorem. But, in my humble opinion, there is absolutely no excuse for writing a buggy word processor over a well-documented API. In a high-level environment like this a program can and should be designed in a way that allows provability of correctness. Throw in practices like peer review and modular design and you will have college kids writing bug-free software in no time.

    12. Re:Then let him do it. by amelith · · Score: 4, Insightful

      You seem to be assuming that bug == logical error when it's often the case that a bug is either something that wasn't even considered in the original requirements / design or the result of a set of circumstances that weren't properly tested for "because it can't happen".

      There is also performance to consider. Your bunch of college kids may write code that's mathematically correct but when assembled processes 1 transaction a second. This sort of thing occurs with frameworks like J2EE. It's easier to write modular pieces and assemble them it hands you a large performance penalty.

      I'm afraid I don't really share your faith in proofs of correctness for large systems. Apart from the problems scaling up these approaches they assume that you can easily mathematically describe how the thing is supposed to behave.

      With a word processor this might be something like i18n issues. We might specify, design, build and test the thing without considering the user might not have a us-ascii character set and then it breaks in China. Do we go back to square one and revisit and extend the mathematical model? Then spend x years rippling changes from the theoretical model into the code?

      I can't recall seeing anyone use proofs of correctness for something like your word processor example. Can you give me a reference to the literature please as I'm interested to know whether this was successful?

      There are arguments for more formal approaches to building software but throughout their working life people are told to 'deliver it quickly and we'll fix it later'. It's a fact of life that people in the 'formal everything' camp need to accept. Programmers don't set out on a project determined to write bugs. Many of them are a result of the poor processes and unrealistic expectations that are endemic in the industry.

      BTW I'll take lectures from journalists like the BBC blowhard when he can mathematically prove that his writing contains no errors.

      Ame

    13. Re:Then let him do it. by Shano · · Score: 1

      Proving programs correct is possible in theory (not counting the Halting Problem for now), but the tools aren't really there yet. Unit testing helps, but can only work to test small parts of the program. It can't detect errors in the way units are fitted together.

      One of the advantages of formal semantics is that it gives a system that's more suited to proving properties about programs. Again, though, the tools simply don't exist to do this with large programs (just about everyone who's taken a semantics course has done it with factorials).

      It might be possible to do the bulk of the program design and construction in a series of custom-written languages, each with an appropriate semantics, and only rewrite as a "real" language at the lowest level, once everything has been proved correct, and unit test that. On the other hand, I have no idea whether it would work in practice, and it's so different to current methods that I doubt anyone outside of language research would want to try it.

    14. Re:Then let him do it. by shutdown+-p+now · · Score: 2, Insightful
      A *lot* of software must be written
      That is an open question. Just how many code out there is reinventing the wheel? I suspect most of it is, and closed-source model being mainstream certainly doesn't help things (not that OSS is not free from useless code duplication either). How much of the software which is being written, then, had to be written?
    15. Re:Then let him do it. by maxwell+demon · · Score: 1
      It takes a genius to write an amazing program like TeX or Emacs, but no genius is required to write a program that is free of bugs.

      Indeed, I've even written software which was absolutely bug-free on the first compile, and it didn't even take me much time.
      Now, in order you want to know what marvellous piece of software that was: It was a ground-breaking software to write the words "Hello world!" to standard output.
      Unfortunately after I had written it, I had to find out that there's just no market for that type of program. Even the GNU version of it apparently only survived because they included a mail reader (thus making it bloatware). Well, it seems that the market doesn't value perfect software, after all ...

      SCNR
      --
      The Tao of math: The numbers you can count are not the real numbers.
    16. Re:Then let him do it. by Anonymous Coward · · Score: 0

      Of course its doable on a large scale.

      I agree with the article's author, it is the attitude of most of the slashdot crowd that is wrong, software is not inevitably buggy. It is bad engineering that results in buggy software. If companies had legal liability for their software then they would introduce good engineering practices to counter, it is not always the coders fault that the bugs exist - they are often working in an impossible position.

      Ive worked as a developer for the govt, that is actually employed by the govt not for some consultancy hired by the govt. Guess what, for years we produced pretty much bug free software - and not for minor applications either but for national benefit accounting and payment tracking systems, I myself only wrote 1 bug that I'm aware of and that was due to faulty information provided to me, however the testing department picked up the bug within the first couple of days after handover even though the bug would not actually have had any impact in a live environment. The reason we did so well, The department applied a strict set of software engineering prinicples, we would spend months designing the software - first the experts on the functionality would write extremely detailed functional specs, then we would produce extemely detailed technical specs based on them, only after all that was done would we sit down and write the code. We would then spend a huge amount of time doing unit and link testing (all fully documented) before handing over to a testing department. Result - high quality software, why - because the govt did not want this sort of software going wrong. Of course then we got the free market freaks saying it would be much better cheaper and more efficient if private enterprise did it, so out went the govt programmers (who were paid a fraction of the market rate by the way) and in came the expensive IT scandals.

      Bug free software is emminently possible, It is only the attitude of to many developers ("software is inherently buggy") and corps ("cut costs") that prevent it. The corps would change their attitude pretty fast if they could be sued into oblivion when their crap software caused billions of dollars of damage, and the developers who wanted a job would have to follow suit, and heh it might do a lot of good for those who followed the professional root - a move to a proper acredited engineering standard that required some effort to get could pay divedends in terms of employability and salary negotiations.

      You dont accept that aircraft just fall of the sky
      You dont accept that cars just careen out of of control by themselves
      You dont accept that skyscrapers will be structurally unsound
      You dont accept that bridges will collapse under people

      These are because we expect the ENGINEERS responsible to build them correctly, and if they dont someone gets taken to the cleaners. If you want to be a Software ENGINEER then start acting and thinking like one.

    17. Re:Then let him do it. by Peter+La+Casse · · Score: 1
      I'm afraid I don't really share your faith in proofs of correctness for large systems. Apart from the problems scaling up these approaches they assume that you can easily mathematically describe how the thing is supposed to behave.

      I shared your skepticism, but apparently nobody informed the formal methods community that their goals are impossible, and they've come up with a number of different approaches for proving the "correctness" (really, the logical consistency) of a program's design. This is a huge step forward from current industry practice.

      It's true that mathematical depictions of a program's design and behavior don't eliminate bugs. But they can potentially eliminate certain kinds of bugs that can be difficult or time-consuming to fix after the fact, and if coupled with code generation tools, the overhead of formally describing a program's structure can be somewhat mitigated.

      That being said, I would be interested in seeing studies that back up some of these claims with actual numbers.

      I like your i18n example. Being able to react well to that kind of change is a good thing for a design methodology to be able to do.

    18. Re:Then let him do it. by Hognoxious · · Score: 1
      "Humanly possible" in no way implies "doable on a large scale"
      Or "economically worthwhile". But to work that out for software, you need to know what kind of software as that defines the consequences of a bug. There's a continuum from games through banking systems, with things like aircraft or nuclear power plant control systems up (hopefully) very near the top.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    19. Re:Then let him do it. by Anonymous Coward · · Score: 0

      Software QA has been exported to India, Russia, China, anyplace but the USA, for most of these major developers. You pay for what you get...crap SQA. I've been in SQA for over 15 years, until they moved my job to India. Now, I can't even find a job in the field, unless it is a contract job. This is why you may gripe about quality and actually be RIGHT! Of course they won't admit it. They tell us they do testing, but, believe me without dedicated, on-site, involved with the ENTIRE process of development - you won't get quality. Sorry, but, I have been trying :( They just don't want to hire professional software engineers in quality.

  3. Firefox : free but as buggy as IE by Anonymous Coward · · Score: 0

    It is quite obvious that the quality of open source code is not great - but since it was done 'free' those developers can walk free. But if I pay a developer to write some code, and his incompetence introduces bugs... I want to sue his ass off!

    1. Re:Firefox : free but as buggy as IE by Afecks · · Score: 0, Offtopic

      Liar.. http://app.mcdonalds.com/bagamcmeal?process=item&i temID=6

      Fast Food Motto: Free cheese and onions for all!

    2. Re:Firefox : free but as buggy as IE by Anonymous Coward · · Score: 0

      Yes, it's still available as a special order. Now go into a McDonald's and look at the menu board. You'll see that it's not on the standard menu.

    3. Re:Firefox : free but as buggy as IE by Anonymous Coward · · Score: 0

      Not all McDonald's are the same. Most are a franchise owned by local or regional operator. For all you know his McDonald's is completey different. So please stop acting like you are the overlord of the McDonald's menu, you might work there but you don't run it. Also a fun little fact is that McDonald's didn't invent the Big Mac, one of their franchises did.

    4. Re:Firefox : free but as buggy as IE by Anonymous Coward · · Score: 0

      I haven't seen a Quarter Pounder w/o cheese on the menu board of any McDonald's in the past decade. Have you?

  4. There's more to it than just the code by Namronorman · · Score: 5, Insightful

    This guy sounds like he's just full of hot air because of a bad Norton AV installation. If one program causes something "devastating" to happen, who is to decide that it's not the user's fault, the compiler's fault, the programmer's fault, the OS creator's fault (and if it's OSS, who's package etc?), or the hardware's fault?

    The computer world if full of many variables and I don't see this happening anytime soon, though with recent laws you never know.

    --
    $fortune
    Tomorrow has been canceled due to lack of interest.
    1. Re:There's more to it than just the code by DAldredge · · Score: 2, Informative

      Lawyers and Judges would decide.

    2. Re:There's more to it than just the code by Anonymous Coward · · Score: 2, Interesting

      but that is not the issue. He is pointing out that companies EULA's exclude liability even if the fault is their own. You also seem to be getting hung up on who's to blame instead of who is liable.

      As most commercial software is shipped precompiled it isn't an issue for the end user is the compiler buggered it up or not. Standard contract law means you sue the company you brought the product off that is faulty and they then sue the people who created the fault and exposed them to the liability. This is as legally by selling something you are saying that what you are selling will do what it says.

      If there is a clear flaw in a product that you buy and it causes you harm you can sue the retailer. If it's software they will claim that EULA terms exempt them from liability.

    3. Re:There's more to it than just the code by Anonymous Coward · · Score: 0

      Now that is just fucked up!

    4. Re:There's more to it than just the code by kannibal_klown · · Score: 4, Interesting
      If one program causes something "devastating" to happen, who is to decide that it's not the user's fault, the compiler's fault, the programmer's fault, the OS creator's fault (and if it's OSS, who's package etc?), or the hardware's fault?

      Let's not forget "another piece of software's fault." Installing Software package B might overwrite a registry setting or DLL needed by software package A. On top of that, software package B might leave something running in the memory as a service that conflicts with something software package A does.

      You are correct, there are WAY too many variables when dealing with software failures. And if this guy were actually a software developer he'd know that it's pretty much impossible to make something completely bug free. The most you can hope for is something that rarely has a bug or recovers if it encounters ones without losing its place/data.

    5. Re:There's more to it than just the code by mdwh2 · · Score: 1

      If there is a clear flaw in a product that you buy and it causes you harm you can sue the retailer.

      But only if you're using the product in the manner it was designed for.

      If I buy a car and drive it into the sea, I most certainly cannot sue them for any harm which comes to me. If someone built a car but clearly labelled that it was not fit to be driven (eg, it was intended as a model), then again I do not see how I could sue them if I chose to drive it nonetheless.

      I'll be the first person to agree that EULAs are not enforceable contracts, however, it is perfectly valid to describe for what purpose a product is fit for, and to exempt themselves from liability. The main problem I would say is commercial software where the EULA isn't visible until after you've brought it - I would agree that EULAs should be presented before a sale (or at the least, a full refund given if the person doesn't like the EULA).

      The problem is that consumers are happy to accept buggy software with limits on liability. If they were willing to pay enough money, there'd surely be a software company willing to provide what they want.

  5. Error-free software... by hummassa · · Score: 2, Insightful

    is stale software. Bit rot guarantees that all users will migrate from error-free, real stable software, to new-full-of-bells-and-whistles but error-ridden software in 0 time.

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    1. Re:Error-free software... by Concerned+Onlooker · · Score: 4, Interesting
      A couple of quarters ago I was taking a software engineering course. Our instructor told the story of a debugging competition which used a mature piece of software that was known to be error-free for the test case. A fixed amount of bugs were then introduced into the code and the teams all had a crack at it. At least one of the teams found bugs in the code that were not the ones intentionally introduced. I'm paraphrasing here, but in other words they took a piece of software that they knew to be bug free due to its having been intensely examined by many programmers, yet another bug or two was found.

      Truly error free is not a likely state for software.

      --
      http://www.rootstrikers.org/
    2. Re:Error-free software... by fbjon · · Score: 3, Interesting
      There was an analogy with a bridge earlier. Bridges are designed with redundant security, you can (usually) put a lot more weight on them than what they are rated for.

      In the same vein, instead of trying to make every part of the code perfect, how about designing some redundancy into the code?

      I leave it as an exercise for the reader to figure out what the hell that means.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    3. Re:Error-free software... by nmb3000 · · Score: 1

      I leave it as an exercise for the reader to figure out what the hell that means.

      Have you been reading my Calculus textbook? If I had a nickel for every time I saw that...

      --
      "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
      /)
    4. Re:Error-free software... by Zurk · · Score: 1

      unfortunately the problem with that is software following turing machine philosophy in that a single line of execution exists with NO failsafes. the only way to avoid this is to have multiple turing code paths and even then you may not be able to recover if a unit fails which cannot be interrupted. see the halting problem as an example. in other words -- its doable, but bloody hard with no guarantee of success and a single line of failure will happen at some time when all your code paths converge to a single point of failure.

    5. Re:Error-free software... by Anonymous Coward · · Score: 0

      > I leave it as an exercise for the reader to figure out what the hell that means.

      That you work for Microsoft, and you have extra to do things:

      * The legacy way that is terribly broken, but for which people have constructed "magical" constructs that shouldn't work at all but which work on all current platforms due to unrelated bugs. Or at least, that's what MSDN claims. God help you if they ever patch those things for security reasons or whatever.

      * The newest way. It doesn't work on anything but the newest version, and if you want your code to be compatible in the future, you'll have to use it. Unless they change their mind and invent a new way.

      * The 3rd party way. It's kinda like the legacy way, but you have someone else to blame when it breaks due to future changes and to get pathches from. Assuming they stay in business...

      Of course, you can build all three possibilities into your code. And then have it break 3x instead of once when the problem turns out to be that the user tried to do something mind bogglingly idiotic...

  6. The Market Decides by the+eric+conspiracy · · Score: 4, Insightful

    The fact is that the market has already decided the answer to this. People buy the least expensive software they can get away with. If the application is unreliable enough to regularly lose data it gets flushed out of the market. If it works well enough and is for the desktop it becomes popular. If it is used in critical applications where data loss is not tolerated they you have stuff like Oracle which people pay $50,000 per CPU for.

    1. Re:The Market Decides by Husgaard · · Score: 3, Insightful
      The fact is that the market has already decided the answer to this.
      And the problem with this guy is that he doesn't like what the free market has decided.

      He wants laws to be passed that would make some (or all?) kinds of disclaimers on warranty and fitness for a particular purpose illegal for software.

      He wants it in the name of "consumer protection", but he does not realize that the consumers are not interested in paying the higher price tags this would put on software.

      The only ones whom this would really protect would be corporations big enough to buy costly insurance against claim. They would be protected against competition from Open Source software and smaller companies that would drop out of the software market because of the risk of liability.

    2. Re:The Market Decides by idlake · · Score: 1

      The fact is that the market has already decided the answer to this. People buy the least expensive software they can get away with.

      That's because quality and security are properties of software that are difficult to evaluate for most buyers; people end up with worse software than they actually need. This is a standard example where markets fail to reach the overall optimal outcome.

    3. Re:The Market Decides by Lucractius · · Score: 2, Insightful

      This is exactly right.

      If you look beyond the x86 desktop market, theres a LOT of software thats close to bug free. and the companies that Pay for things like high performance Oracle soloutions, massively parralel Solaris on Sparc systems, "continuous computing" (ULTRA high availability with high levels of disaster tollerance) OpenVMS on Alpha or Iatanium...

      Companies that will pay more than $ 250 000 USD on a single sytem demand the highest quality of code, and these companies DO deliver it.

      OpenVMS is renouned for it, the OpenSolaris code shows how hard sun have worked to keep all bugs out, in the 3 months since they open sourced it, i think the tally of bugs found stands at 7. for how many thousands of lines of code... just 7 bugs.

      Its when programers are pushed into these "Rapid Development" tools and enviroments that these standards can never be realisticaly achived. Which is unfortunate... But not everyone wants to pay thousands, or wait years bettween aditional features.

      --
      XML - A clever joke would be here if /. didn't mangle tag brackets.
    4. Re:The Market Decides by falconwolf · · Score: 1

      People buy the least expensive software they can get away with.

      No, people don't buy the least expensive software otherwise more people would be using FOSS not proprietary software. The'd also keep using the same software instead of upgrading both the software and the new hardware the software requires.

      If the application is unreliable enough to regularly lose data it gets flushed out of the market.

      I disagree here too, I don't know how many tymes people loss data because Windows crashs, yet it's the most widely used desktop OS.

      Oracle which people pay $50,000 per CPU for.

      Which points out that people don't buy the cheapest software, there are other DBMSs out there that are cheaper.

      Now I realize you may be thinking of TCO, Total Cost of Ownership, but if so I'd ask how much the new version of Office will save the buyer over the cost of a new computer and the new version of Office? Though not all the tyme, I'd bet many tymes the old software is adequate for the job, unless of course it's bug ridden, but if so then it shouldn't of been put on sale.

      Falcon
    5. Re:The Market Decides by shutdown+-p+now · · Score: 1
      And the problem with this guy is that he doesn't like what the free market has decided.
      Wouldn't you say it is a perfectly valid position, though? "Decision" of the free market is essentially the decision of the majority, but there's always an (unhappy) minority too.

      For the record, I do believe that he is right, to an extent. Software should be less buggy and there are ways to improve the situation. And yes, I am a programmer.

    6. Re:The Market Decides by Anonymous Coward · · Score: 0

      Oracle aint that good, btw

    7. Re:The Market Decides by rtb61 · · Score: 1
      The decision of the majority will also affect the laws to be implmented. Every industry once it hase matured always ends up being forced to adhere to a set of legal standards. Thanks to an extreme amount of lobbying by a greedy few in the software industry they have managed to hold off the inevitable legislation (I mean get real, billions and billions of dollars in profit because they won't spend it making sure the code is a fault free as possible, together with warranties that in any other industry would land you in the slammer).

      Closed source proprietary code will end up being subject to a real level of legal perusal and with a minimum of full disclosure on the front of the packaging any exclusions to the warranty that would be in the public interest i.e. on the front of the box of every windows os "This program may contain viruses" or "Software may be unfit unfit for any purpose" or "This software incorporates negligent work" or "This software might provide unreliable, unavailable, inaccurate or incomplete Results" all in bold (I am not making this stuff up and for any body who can sell anything based upon those conditions GFY).

      --
      Chaos - everything, everywhere, everywhen
    8. Re:The Market Decides by llefler · · Score: 1

      OpenVMS isn't perfect, it has bugs too. And it has buggy application software as well. I have seen OpenVMS on VAX and Alpha equipment reboot for no apparent reason. I have seen reboots scheduled because a process wouldn't release a particular device. And I have seen system services fail under a load.

      I don't think comparing OpenVMS to any recent version of Windows is fair though. The feature requirements and complexity of modern operating systems is huge compared to OpenVMS.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    9. Re:The Market Decides by ZenShadow · · Score: 1

      errrr....

      OpenVMS is likely a vastly more complicated operating system than Microsoft Windows ever will be.

      It includes, among other things: support for privilege-based security as well as more traditional methods, support for indexed databases as a standard feature of the filesystem, full fault-tolerant clustering, and probably a zillion things I can't think off offhand. And oh yeah, it even has X11, aka DecWindows (though we called it DeathWindows, 'cause it was so damn slow on that old crappy hardware).

      VMS is not the same as WindowsNT, but it is almost certainly more complex.

      Ironically, lots of the NT architects were old VMS guys, too, from what I've heard. Since they've built a highly reliable system once (despite its problems, it's still far more reliable and secure than Windows, and always has been), I have to question whether the problems in Windows NT are the result of corporate culture rather than programmer ability.

      --S

      --
      -- sigs cause cancer.
    10. Re:The Market Decides by Anonymous Coward · · Score: 0

      SURGEON GENERAL'S WARNING: Quiting Smoking Now Greatly Reduces Serious Risks to Your Health.

      If all products of a certain type are required to have the disclaimers then it really won't be that much of a deterant to customers.

      Cigarette and Software may seem apples to oranges. But I would argue that cigarettes are easier to quit using than computers. Even if you switch from Windows to Linux to OS X and back again, many people genuinly need something even if it isn't 100% perfect.

    11. Re:The Market Decides by Lucractius · · Score: 1

      indeed it definaltly is vastly more complex, for a start its disaster tolerance and clustering capability make most products out at the moment STILL look like thinly smeared bird poo.

      as for the NT connection... well... David Cutler, a seinor VMS kernel architect with a talent for programing damn well. was grabed by MS after DEC canned the PRISM project he was heading and he quit, he also draged a fair few engineers with him to MS, and they built the first NT kernels... but his influence was gone as soon as NT 4 came out... with NT4 they totaly assaulted his Kernel and added crap for the GUI and made it into the beginning of the Abominable codebase it represents today.

      --
      XML - A clever joke would be here if /. didn't mangle tag brackets.
    12. Re:The Market Decides by Anonymous Coward · · Score: 0

      " He wants it in the name of "consumer protection", but he does not realize that the consumers are not interested in paying the higher price tags this would put on software. "

      Don't make me cry. Do you really think consumers like to spend their days mopping up after software crashes ?

      That's one reason FOSS is an hard sell BTW. With closed software people feel there is someone accountable so it can not be so bad.

      So people are choosing "safe" software except software companies are deliberately misleading them. I don't see what would be so wrong into forcing them to deliver what people actually think they are bying.

      Maybe the price would soar, and a lot of shoddy businesses would disappear (competitors are as bad as us, why fix bugs?) but would that be such a bad thing ?

      One of the premises of free market ideology is people know what they are bying, which is clearly not the case in the software market.

    13. Re:The Market Decides by llefler · · Score: 1

      If DECWindows is part of the OS, then X11 is part of Linux. MS chose to make their GUI part of their core OS. OpenVMS doesn't include a TCP/IP stack, it's a 3rd party add-on. For instance, Multinet.

      VMS has hardware and software clustering, Windows and Linux have software clustering. I would be willing to bet that HPFS and NTFS are as complex as the VMS file system. And any of the journalling file systems are more complex. The fact that other file systems don't support versioning isn't because they can't, it's because it wasn't considered important enough to include. VMS has shadow disks, Windows and Linux have software RAID.

      I don't have anything against OpenVMS, I've worked in VMS shops most of my career. I'd love to see a MS server handle 500 users logged in like our tiny alpha box. But MS has been busily adding 'features' to windows for the last 10 years. Not that all those features have been good. OpenVMS, OTOH, has pretty much been in maintenance mode since Compaq bought DEC. VAX is dead, Alpha is dead, Itanium, does anyone really want one of those? And once everyone starts replacing their Alpha, OpenVMS will have no purpose. Which means HP has had no incentive to develop any new features.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    14. Re:The Market Decides by Lucractius · · Score: 1

      your comment about the number of users is very true. the Deathrow OpenVMS cluster was slashdotted some time ago... But unlike regular machines... the pair, one old alpha and one vax both remaind online, visible, working as usual, AND were taking on new curious logged in users at a tremendous rate. All without batting an eye.

      My hope is that as Iatanium dies the sheer momentum behind openvms can carry it forward onto a truly open platform. Companies with decades of absolute reliability on openVMS systems are paying large wads of money to HP for them, and hp will not turn a blind eye to it.

      --
      XML - A clever joke would be here if /. didn't mangle tag brackets.
    15. Re:The Market Decides by llefler · · Score: 1

      Companies with decades of absolute reliability on openVMS systems are paying large wads of money to HP for them, and hp will not turn a blind eye to it.

      HP has already missed the boat. If your Alpha is critical to your business, you started looking for alternatives when the Alpha chip was end of lifed. Moving to Itanium, or any Intel architecture, required rebuilding and relicensing all of your software. Then, once your pocketbook was considerably lighter, you have to regression test your entire business to make sure everything still works like it's supposed to. You don't want to get into an audit 6 months down the road and find some little oddity in the Intel port was throwing your numbers off. Or that your forecasting is broken and you are over/under stocked. And if you're going to do that, you might as well investigate new opportunities, which is probably going to mean looking at vendors with larger install bases and some type of future.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  7. he is full of shit by Lehk228 · · Score: 4, Funny

    There is also a big difference between consumer software like word processors and web browsers, and the massive information systems used internally in large companies.

    The companies writing the large systems usually have contracts which mean they are liable for damages, and this increases both the cost and the reliability of the resulting programs.



    I must assume he doesn't work with internal apps much.

    --
    Snowden and Manning are heroes.
    1. Re:he is full of shit by Anonymous Coward · · Score: 0

      Software companies disclaim consequential damages - it is an economic necessity. I sell my code for $1,000 but the big business could suffer a billion dollars consequential damages if it fails. I can't cover your billion buck loss.

      If I spend an extra 3 years trying to ensure nothing could go wrong:

      (1) my software would cost much, much more, and the business customers would be disinclined to purchase it;
      (2) my software would be three years back in technology;
      (3) there could still be a bug, you can't create perfection in a complex system;
      (4) even if nothing in my code is buggy, a particular use of the code could result in damages, even very large damages.

      So, it really makes NO sense for software companies to take on this sort of liability, and they do not.

      On the other hand, we should all be for better processes for developing systems (code), and higher quality.

      Unit testing? Agile development?

      Or how about using Python instead of C/C++/C#/Java ? ;-)

      EP

  8. author is obviously unfamiliar with free software by twitter · · Score: 4, Insightful
    it will probably mean that commercially-available code is more expensive and cause major problems for free and open source software developers.

    Everyone knows that most free software, by virtue of peer review, has fewer bugs and errors than commercial code does. If what he means is that you have to be licensed, bonded and "protected" by a corporate staff of 800 pound gorillas to write code, then free software will have problems. Such a missallocation of resources still won't buy him better code.

    This whole issue is a troll the non free software companies come up with every few years. It's a mistake for them, however, and will blow up in their faces. Free software will overcome such nonsense the same way Good Samaritans do. Worse, what kind of society would outlaw exchanging of advice on how to do something? That's what sharing source code it. Why not outlaw engineering texts instead?

    --

    Friends don't help friends install M$ junk.

  9. liability iff no source by Anonymous Coward · · Score: 5, Interesting

    I've said this years ago: software liability should apply on programs you pay for but for which you don't get the source. If money you pay goes to make something you don't have source level control over then that implies the vendor thinks its of sufficient quality that you, the end user, should not have to fix it. If you get the source then there is no guarantee and the distributor should have no liability. This doesn't mean you have to have the right to re-distribute the source -- but you have to have the right to re-build it using commonly available tools so liability can't be limited to one "magic" libarary.

    1. Re: liability iff no source by Jinjuku · · Score: 0
      I don't have a problem giving out the source with NDA. It's just that I find most people have a problem paying what I am going to ask for the brains behind 8 years of effort.

      I love people who critique whole industries that they have no real working knowledge of

      I pretty much think that most of us try to produce clean code, fix stuff when it breaks and learn from the experience

      Remember, you avoid mistakes through experience, you gain experience by making mistakes, it's life people get used to it.

    2. Re: liability iff no source by Pofy · · Score: 1

      And the next time you buy a car, they simply give you the blue prints for it, and suddenly when it breaks down they can just say, tough luck, fix it yourself. Right.

    3. Re: liability iff no source by Tim+C · · Score: 1

      I've said this years ago: software liability should apply on programs you pay for but for which you don't get the source.

      The vast majority of end users wouldn't know what to do with the source if you gave it to them. What you're suggesting amounts to giving security only to developers, and even then only to those with sufficient skill in the relevant area (i.e. combination of programming language and software type). Everyone else is in exactly the same situation they're in now.

      I also fail to see why making the software free (as in beer) should absolve the vendor of all responsibility. Either it's intended to be used, or it isn't, cost shouldn't be a factor. Besides which, that leaves a huge get out clause for the very companies you're seeking to hit with this - they'll just shift the cost to something else (e.g. mandatory support contracts) and call the software free.

    4. Re: liability iff no source by BoomerSooner · · Score: 1

      Uh, yea. That's exactly what happens. It may be 36,000 miles or somewhere farther along but eventually that is exactly what you get. I have 3 cars that have over 130,000 miles on them. I fix them occasionally and don't hold Ford accountable since things wear down. Now my Explorer is a different matter altogether. Got free tires out of the deal. Just had to explain to my wife if you get a blow out don't hit the brakes at all coast to the shoulder as quickly as is safely possible. I spend about $1000~1500 a year maintaining my cars (I drive a lot for work) and see no need to get any new ones.

    5. Re: liability iff no source by Vitus+Wagner · · Score: 1

      See it other way around - I give you the source. You've modified it and introduced some bugs. Why should I be liable for damage caused by these bugs?

      Really, if you want to have stable software, you have to pay for it. There are two widely used forms of payment - 1. Just pay to commercial software vendor. 2. Invest time into learning programming and auditing and fixing source code (or hire knowledgable person to do it).

      Current market situation is such that first method just doesn't work. You pay and you get software of same or worse quality as free software around there. But there is no way for you to improve stability by additional investment.

      With free software cost of achieving desired level of stability is high, but managable. With commer cial software you have to buy out entire vendor firm and finance it long enough for developers to make version which meets any reasonable quality standard without any additional sales.

    6. Re: liability iff no source by Anonymous Coward · · Score: 0

      So what you're saying is you found a recipe for a bomb on a magazine page in a library, followed the instructions, built a bomb and blew up your whole sofa? Even though the author specifically wrote 'Don-t try this at home?' Try suing the author and see what you get. Man, source code is just that - a set of instructions. If you are dumb enough to make your computer run them and get into a mess, then duh!

      If you do not like that analogy, here is another one: you walk on the street, seeng a kid kicking a stale, old muffin. You pick it up and eat it, to get into the hospital with food poisoning. Then you go blaming the kid. Or whomever, but not yourself.

      Whatever. Until I made a contract with you, there is no obligation from my part and neither from yours. And making something free under certain conditions does not qualify as a contract with the rest of the world, IMO.

    7. Re: liability iff no source by jtev · · Score: 1

      You either fix it yourself or you pay someone who does not work for the company to fix it. Of course I've never owned a car with a warranty, that's one of the disadvantages of being a poor asshole. I've been doing a lot more "fixing myself" than I'd realy like to have done. Hell, they don't even provide you with the schematics, you have to buy a book to tell you what goes where and how to pull off and put on parts.

      --
      That which is done from love exists beyond good and evil
    8. Re: liability iff no source by Pofy · · Score: 1

      >I fix them occasionally and don't hold Ford accountable since things wear down.

      Huh? Who is talking about things "wearing down"? We are talking errors and bugs existing in the software from the start, Similary, if the car has errors in it when I buy it, Ford (or their resellers) have to fix it. Why on earth are you starting to talk about errors form "wearing down"?

    9. Re: liability iff no source by neuroxmurf · · Score: 1

      I haven't come up with a perfect solution, but I had an idea: cap liability at, say, ten billion times the cost of the software.

  10. Bullshit by EmbeddedJanitor · · Score: 3, Insightful
    You have this attitude because you're a programmer. If civil engineers said "so what, bridges fall down" everyone would be up in arms.

    Bug free software is possible, so long as it is done right and people are prepared to pay for it. Right now, software is mainly "good enough" and "cheap enough". What is "good enough" and what is "cheap enough" will depend on what is being done.

    --
    Engineering is the art of compromise.
    1. Re:Bullshit by Anonymous Coward · · Score: 2, Insightful

      You have this attitude because you're a programmer. If civil engineers said "so what, bridges fall down" everyone would be up in arms.

      If a bridge falls, people die.

      If an order entry system fails, it gets rebooted/patched/datafixed and it's back within minutes/hours, good as new. Some time is lost, but no lives.

      For software that's life-critical, the quality bar is set much, much higher.

      Having non-programmers tell programmers that they expect all software to be as reliable as a bridge is ridiculous, particularly since they don't appreciate the cost of what they're asking for. Those programmers silly enough to try and meet those requirements will quickly find themselves out of business when they first ask for $300 million dollars to develop an order entry system.

    2. Re:Bullshit by timmarhy · · Score: 1
      no, the problem is opening the flood gates of ligitation. software firms mostly don't have enough money to defend against this kind of shit.

      and also, for the most part bugs AREN'T costly. 99% of software no one dies if it crashes. and software that IS that critical does get that kind of treatment and never does fail. so your analogy with the bridge is the only bullshit here mate.

      this guys problem, is he expects complex software to never crash. he also has no idea about just how much that extra testing he is reffering to will cost. it would make a version of windows be priced right out of anyone's budget. and it's just not possible ot make 100% bug free software anyway. he needs to just eat his fucking humble pie, admit he knows NOTHING about what he is prattling on about and STFU.

      --
      If you mod me down, I will become more powerful than you can imagine....
    3. Re:Bullshit by interiot · · Score: 4, Insightful
      Bug free software is possible, so long as it is done right and people are prepared to pay for it.

      BINGO. Why not let the market decide?

      If it's like earthquake-prone apartment buildings in Tokyo, then it's reasonable to step in and mandate that everyone, no matter how poor, should pay for software designed to a government-mandated quality standard. Until then, why not let buyers and sellers decide on their own?

    4. Re:Bullshit by servognome · · Score: 2, Insightful

      and also, for the most part bugs AREN'T costly. 99% of software no one dies if it crashes. and software that IS that critical does get that kind of treatment and never does fail.

      Exactly, it's the customer's responsibility to demand a certain level of quality they feel comfortable with and pay accordingly. Just as you don't use the same cheap metal for a skyscraper that you do for a back yard fence. There are markets for high quality programs as well as low quality programs, it's up to the customer to find their comfort level.

      --
      D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
    5. Re:Bullshit by Anonymous Coward · · Score: 3, Insightful

      Civil engineers don't warranty their bridges against hostile attacks (DDOS, worms, trojans), for multiple planets and gravities/atmospheres (Win XP, 2K, ME, 98, GNU/Linux, FreeBSD, OS X, i386, x86-64, PPC, Abit, ASUS, generic) or make it do anything but sit there, not having to interact in any way but to hold things up. What's the software equivalent of a bridge? cp? Let me know when civil engineers make anything as complex as Firefox. The only engineering equivalent of modern software is the Space program, and that stuff does fail. Rockets carrying satellites explode on the launchpad. Shuttles break apart. Dress rehearsals turn deadly with too much oxygen sparking fires. Liquid fuel tanks explode. Insulation melts. O-rings don't expand fast enough due to cold. The list goes on.

      Outright crashes of software will disappear with better methodologies (including things like interpreted languages, or C# or Java). However there are a million other complex ways that software can still do something other than what you WANT.

    6. Re:Bullshit by Anonymous Coward · · Score: 4, Insightful

      If a bridge falls, people die.

      If an order entry system fails, it gets rebooted/patched/datafixed and it's back within minutes/hours, good as new. Some time is lost, but no lives.


      Okay, forget bridges. Think appliances.
      I heard about a case against Hamilton-Beach because a nut was falling off on their blenders. To paraphrase you, "spin the nut back on, it's back within seconds/minutes". People don't take that kind of crap from things they understand, why should they take it from software simply because they don't understand it?

      For software that's life-critical, the quality bar is set much, much higher.

      One would hope so, but where are the programmers and managers going to learn how to work that way when the other 99% of software is made shit-poorly? I heard about a $20,000 accounting package that was done in VB. I have nothing in particular against VB, but it's not an appropriate tool to do a large, serious mission-critical system like that. Yet they get away with it because nobody holds them accountable.

      Having non-programmers tell programmers that they expect all software to be as reliable as a bridge is ridiculous, particularly since they don't appreciate the cost of what they're asking for. Those programmers silly enough to try and meet those requirements will quickly find themselves out of business when they first ask for $300 million dollars to develop an order entry system.

      How about programmers doing it?
      All software does not need to be as reliable as a bridge. Mission-critical or life-safety software does. Software sold in high volume should be reliable, because the cost can be amortized, and small defects that only cost a minute or two are multiplied by millions of users to become big problems. That's what class action is all about. Simple stuff like an order entry system should be done simply, and therefore not have problems.

      If I buy a product that doesn't work, or that has obvious defects, I have a right as a consumer to compensation from the company that sold a shoddy product. That's part of how we keep companies from knowingly selling crap and pretending it's good. Now, the libertarian view is that if a company is selling crap then the consumers will stop buying from it, but when the whole industry is selling crap and the average consumer doesn't understand the situation well enough to recognize that, what is a consumer to do?

      Analogy: picture the auto industry in the 70s. American cars weren't terrible, but the quality control was bad enough that the cars were totally inconsistent. The big three would tell you that making defect-free cars would raise the prices to the point that nobody could afford a car. People accepted this, because they didn't know better. Then the Japanese showed up. They delievered cars that, while not perfect, blew away the big three in terms of quality, and at very reasonable prices. It can be done.

      will quickly find themselves out of business when they first ask for $300 million dollars to develop an order entry system.

      Now, at the risk of being a Slashbot(tm), I can think of a major software company which has historically been known for low quality, high volume consumer software. I seem to recall that they have something like $40bn in cash on hand. Seems to me that they could afford an extra $300m on each and every product they have ever put out without jeopardizing their company financials. As an industry leader, perhaps that would force other companies put out better software.

      Then again, it's always nice to have the easy excuse when my software crashes.
      "It's a Windows bug, what do you want me to do about it?"

    7. Re:Bullshit by narrowhouse · · Score: 5, Insightful

      Large software companies are now getting to a point where they would LOVE this. Current software companies has had 35+ years to build market share with EULAs that say that their products are not guaranteed usable for any particular purpose. The opportunity to change the rules now gives a huge advantage to current market leaders by creating an enormous, artificial, barrier to entry into the market. This would be the best way to kill the growth and competition in the software market. Look at all the other businesses that are encumbered with huge legal liability requirements and you will find business sectors that contain huge, multinational, 50-100 year old companies.

      If a company wants to shop around and find a guarantee, fine. Requiring legal liabilty of all software vendors will just create another mess of goverment regulatory groups, certification boards and happy insurance salesmen.

      --


      Insert pithy comment here.
    8. Re:Bullshit by Anonymous Coward · · Score: 0

      There is still a big step between 'Never Crash' 'Perfect' '100% bug free' and the current licenses that basically give you no guarantee at all, not even that the product in the box do anything. Another example, if you buy a mushrooms at the superstore, they do not garantee you that they are good, that you will like them, or that they will be fine in your special mushroom soup. However they do guarantee you that the mushroom are comestible ! Sure if it was legal, store would sell much cheaper mushroom and that would be no problem for mushroom geeks that now how to secure their body.

    9. Re:Bullshit by timmarhy · · Score: 1, Insightful

      you poeple JUST ARENT GETTING THE FUCKING PICTURE! software is not like bridges, mushrooms or any other shit analoges you can cook up. software can break for many reasons, not just due to bugs, it's not possible to make any promises that it will do otherwise. the only way is in very strict expensive environments.

      --
      If you mod me down, I will become more powerful than you can imagine....
    10. Re:Bullshit by Anonymous Coward · · Score: 3, Insightful

      Let me know when civil engineers make anything as complex as Firefox.

      Okay, take your bridge. A few thousand rivits. A few thousand cables. A few hundred major steel members. Lots of concrete. These things come from different quarries and foundries where they are heavily processed to make them pretty close to what they are supposed to be. A couple dozen different welding machines run by a couple dozen different welders. Thousands of welding rods, each with a slighly different chemistry.

      The bridge sits on a piece of rock (if you're lucky), and you can more or less know what the rock is like and how it's going to behave. The bridge is going to get bigger and smaller as the temperature changes, so you figure out how much and account for that. You design to a specified load, in terms of traffic, wind, and weather, but you use large safety factors so that the bridge doesn't fall down because somebody underestimated a little. Also leave room for shipping traffic underneath. Make sure you allow for things like bombs or airliners hitting the bridge, or a 10,000 ton ship accidently ramming your supports, just in case.

      Almost every number is analog. (Try writing a program without being able to use INT types.) Every part is going to be almost, but not quite, what it is supposed to be. There will be dozens of decision-makers. Hundreds of local, county, state, and national codes to follow. Environmental impact issues. Worker safety during contruction.

      I've never heard of a software system that even approaches the complexity of a significant bridge. Never.

      The engineers have the advantage in working in a much more mature industry, and one that actually cares about quality. The whole production chain pays attention to what it is doing, from pulling the materials out of the ground to putting the final coat of paint on it. (Yet still I can't get parts that actually meet their specs, so that tells you something.) They have practice at it, so while every project is new and different, they have learned from the past and avoid making the same mistakes again.

      Outright crashes of software will disappear with better methodologies (including things like interpreted languages, or C# or Java). However there are a million other complex ways that software can still do something other than what you WANT.

      I don't know that crashes will ever disappear. The point is that software can be made better, and it should be. The computing industry will never become a mature industry that people can count on as long as people like you excuse yourselves by saying, "We can't make good software, it's too hard." or as long as managers force the team to ship an untested product because they know they can just ship a patch later. Software needs to be held to a higher standard, that's all. Not a pinnacle of perfection, but better than it is. Any professional should strive to do their job better, not make excuses for doing it poorly.

    11. Re:Bullshit by Anonymous+Brave+Guy · · Score: 1
      BINGO. Why not let the market decide?

      Because the market is ill-informed. Otherwise viruses capable of causing hundreds of millions of dollars of damage that spread through security flaws in software used by millions of businesses and home users who support a billion dollar market wouldn't exist. Your earthquake-prone apartment building analogy isn't far off, when it comes to key software like operating systems and networking/communications tools.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    12. Re:Bullshit by Maxo-Texas · · Score: 4, Interesting

      You are a civil engineer.

      I want you to build a bridge.

      I won't say where- or what the end conditions are on each end- because this bridge needs to work in about 2 million different places.

      Now- as to what will cross the bridge. I won't tell you that either. It might be a car- it might be a convoy of tanks.

      Now... as to the basic laws of the universe (the operating system). I can't tell you much about them either. For example, gravity may change at any time to be higher or lower. The tensile strength of various materials may change unpredicatably with various patches to reality.

      Your work force will be available to work 2 to 16 hour days and may or may not comprehend instructions written in english.

      The bridge needs to be built from scratch from materials using new refining methods so you cannot use any reference materials to analyze how strong it has been historically.

      Finally, this bridge must be made of at least 9 million different pieces (opcodes). The subunits will be assembled by a robot of some kind (Compiler) so you will not know the details of how the units work- only how they are supposed to work as units.

      ---

      I'm sorry but you really do not understand what you are talking about.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    13. Re:Bullshit by ZenShadow · · Score: 2, Insightful

      Every time this discussion comes up, all I hear is "think of the poor programmers!". If you want to cry like a baby every time someone suggests that you can do better or that you should be held accountable for your work, then IMNSHO you don't belong in this business.

      The fact is, this industry is built on the ability to ship crap-quality software specifically because they can get away with it. Reliable, high-quality software and hardware (from operating systems to major enterprise-class databases to whatever else you want to think about) has existed for a LONG time. Just ask IBM. It's only expensive because so few companies care enough to produce quality software outside the embedded arena.

      As for the space program, that's apples and oranges. Participation in the space program is an Elite Activity, which means that there are very few who actually do it. There are a whole lot more minds working on software on a daily basis. The fact is, software companies are just too flipping lazy and/or cheap to fix the problems.

      Personally, I think that software houses should be liable in the case of gross negligence. If they cost someone a few million dollars because their software crashes, then they should go to court. If they're found to not have appropriate quality control at the time the software was written, they damn well *should* be liable for producing a flawed product.

      The only thing I see that will keep this from ever happening is that not enough non-geek people know anything about software engineering. That will make it damned hard for the judicial system to determine what "appropriate quality control" is, exactly.

      Besides, why should I be forced to suffer through non-quality software (and make no mistake, we *are* forced to as low-end consumers, simply by lack of available choice. It's sad when free operating systems work more reliably than commercial ones)? If Kenmore was putting out refridgerators that randomly quit every few days or under the wrong phase of the moon, I doubt they'd sell many refridgerators.

      Too bad that the software industry managed to convince consumers that it's somehow immune from common-sense quality standards.

      --S

      --
      -- sigs cause cancer.
    14. Re:Bullshit by shmlco · · Score: 2, Insightful
      BS. The world is full of complex interacting systems. A 777 is a maze of complex interconnecting systems built by hundreds, if not thousands, of vendors. Everything from airframes to engines to controls to avionics. Yet everything manages to work together, and we don't see 777's dropping from the skies daily.

      What we need are fewer prima-donna developers loaded with excuses as to why it can't be done, or why they can't take the time to write unit tests, or whatever, and bring in some competent people with the idea that it CAN be done.

      --
      Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    15. Re:Bullshit by innocent_white_lamb · · Score: 1

      we don't see 777's dropping from the skies daily.
       
      And how many of those 777's are there compared to the number of computers in the world? How many of them are being operated by untrained "don't-wanna-know" pilots? How many of them are being fueled by Billy Bob's Discount Aviation Fuel and Liquid Fertilizer, who wasn't even in the fuel business until 2 hours before he got the call to report to the airport?

      --
      If you're a zombie and you know it, bite your friend!
    16. Re:Bullshit by bnenning · · Score: 2, Insightful

      Because the market is ill-informed.

      I can believe that in many cases, but I have difficulty with the theory that government is better informed.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    17. Re:Bullshit by kanweg · · Score: 1

      So, where can I buy my copy of M$ Office without the bugs that cost me time and my clients money? But with an alledged 90% profit margin on Office, how much more money does MS need before they are going to fix these bugs? Before they make the program more Mac-like so I can be more productive?

      BTW, the English guy draws the wrong conclusion on open software. Why I as an employer keep eying open source software is simple: I can have the bugs fixed (and have features I need added to it). Sure, it costs money, but (and only now we come to the "let the market decide" - part), whether that is going to be done is in MY hands, without me being at the mercy of a molog that doesn't listen.

      Bert

    18. Re:Bullshit by deaddrunk · · Score: 1

      I'm confused by this whole argument. Developers defending the poor practices of IT management. When you have unrealistic deadlines, poorly thought out and constantly changing requirements and programmers working 60+ hours a week, you will get shit code. The problem with IT is at the top. The head of accounts in corporation is an accountant, the head of the legal department is a lawyer, but the head of IT could be just about anyone.

      --
      Does a Christian soccer team even need a goalkeeper?
    19. Re:Bullshit by jtev · · Score: 2, Interesting

      I might not be able to design a bridge that works in these conditions, but Buckminster Fuller designed an arena that could be build under these conditions. He used color coded steel beams, shiped as a kit. A handfull of engineers and an indigenous workforce could build a large dome in aproximatly 3 days, even if they didn't speak a single word of a common language. The engineers would be amazingly like the compiler that condenses your code into actual machine code. Also it is quite posible to write in those opcodes, and can be rather enjoyable. Please stop talking out of your ass.

      --
      That which is done from love exists beyond good and evil
    20. Re:Bullshit by shutdown+-p+now · · Score: 1

      Because a free market does not always come up with a best solution, merely a working one. Though I guess it depends on what you define 'best' (many people fall to the logical fallacy of defining best as 'market winner', and then happily proclaiming that free market always give the 'best' solution to any problem). Personally, looking at the seemingly endless stream of crappy shareware, I shudder at the thought that it is indeed the best approach...

    21. Re:Bullshit by Anonymous Coward · · Score: 0

      Personally, I think that software houses should be liable in the case of gross negligence. If they cost someone a few million dollars because their software crashes, then they should go to court.

      If you want to be able to sue them for a few million dollars, you better be PAYING them a few million dollars to begin with. Why is any small company going to sell you a word processor for $49.95 if a bug means you can sue them for more than they ever made from it? (And why don't you have any backups?)

      Reliable, high-quality software and hardware (from operating systems to major enterprise-class databases to whatever else you want to think about) has existed for a LONG time. Just ask IBM.

      You know how much that costs? If the only computers that could be sold had to be rated to zero failure, you couldn't afford the latest-and-greatest 8086 at $4 million dollars, or the accompanying office suite at $10 million.

      Computers are cheap because they aren't perfect. Cheap capacitors that usually don't fry your motherboard are an example of why PCs are $99 at Wal-Mart.

      Every time this discussion comes up, all I hear is "think of the poor programmers!". If you want to cry like a baby every time someone suggests that you can do better or that you should be held accountable for your work, then IMNSHO you don't belong in this business.

      Listen to you whine. The only reason we can read what you write is because of those poor crybaby programmers who wrote the buggy operating system you use to connect over the buggy Internet (wow, sometimes routes go down!) to write stuff with your buggy web browser.

      Besides, why should I be forced to suffer through non-quality software

      Since this doesn't fit your fantasy world of perfect machines, I suggest you log off and boycott technology until it reaches a Utopian state matching your expectations. You know what else isn't perfect? Life. You aren't perfectly safe when you cross the street, or drive in a car, or even when you walk down stairs. Fuckin' A, better just kill yourself until they make sure humans are immortal and accidents don't happen.

      Since programmers are all fucktards who are in the wrong business, I suggest you get into it and fix it. Hurry up, I'm waiting to sue you if you aren't perfect, and are merely... human.

    22. Re:Bullshit by MikeFM · · Score: 1

      The only problem with that is if companies are allowed to hold monopolies or near monopolies on the market where competition is kept out by controlling file specs, software patents, etc. If no better competition is given a chance to take life then there are no other options for consumers.

      If you try software and find it buggy or insecure you should be able to return it within a reasonable period (30 days?). One reason I stopped using commercial software was because I got tired of paying for something only to find it unusable and impossible to return. The law should uphold the consumers right to get the product that was promised on the packaging.

      I'd say that the market should decide most of these issues but that there should be some liability for commercial software vendors (of either open or closed source software) as to security issues (security patches should be free, quick, and easy to use and software should be sold with recent software patches included) and life critical systems (if you sell software for heart monitors then it shouldn't crash).

      I've seen to many users open a new system, plug it into the network, and find it infected before the new patches can download. IMO that is just a horrible design and distribution flaw. Such systems effect all of us online and companies should be responsible for distributing this crap. Release dates should be clearly printed on the box and the software should have all the security patches up through that date included. Customers and dealers should be able to request a free update disc for no more than cost.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    23. Re:Bullshit by shutdown+-p+now · · Score: 1
      Now... as to the basic laws of the universe (the operating system). I can't tell you much about them either. For example, gravity may change at any time to be higher or lower.
      Those aren't 'basic laws', not even close. For basic laws, you have to read Knuth et al - and those are the same on any OS and platform.

      Of course, the software is only as stable as an OS it's run, true. But most of software out there crashes not because the OS is faulty, but because of the bugs in the software itself - and there's no excuse for that.

    24. Re:Bullshit by thsths · · Score: 1

      > But with an alledged 90% profit margin on Office, how much more money does MS need before they are going to fix these bugs?

      It is not a question of enough money, but of sufficient return. They know that they can make lots of money with bad software quality. Would they make much more money with good software quality? I guess not. Big OEMs don't care if Office crashes in some bizarre scenario. Most end users don't, either.

      And, just to be fair, Word Perfect 6 crashed all the time, Openoffice has its problems, and even TeX and LyX are full of bugs. But TeX can deal much better with it, because its modular system manages the complexity of document creation much better.

      And, as a side note: writing software that never crashes is nearly trivial, you only have to use a language with defined behavior (unlike C or C++ :-)). Making a program always work correctly is by all practical standards impossible.

    25. Re:Bullshit by shmlco · · Score: 1
      There's a top, middle AND bottom to the issue. It's most definitely not just "management".

      Just as one example: how many developers do you know who have a one-size-fits-all mentality? How many seem to be wedded to a single technique, language, tool, system, or OS? How many refuse to learn anything else, or will acknowledge that another solution other than their own might be superior?

      --
      Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    26. Re:Bullshit by Anonymous Coward · · Score: 0
      If civil engineers said "so what, bridges fall down" everyone would be up in arms.

      Routers don't really fall down unless you bought Cisco ;-) Should we stop people building 4ft bridges over their gardens water feature because they may fall down?


      Aside from the time he lambasted linux users over their initial reaction to the fiaSCO, this guy is usually right on the money. This time however, as with his early assesment of the SCO lawsuits, he simply doesn't get it;

      the fact that it [F/OSS] is given away does not, of itself, provide legal immunity

      No it doesn't, but users make a choice to install it or not. Imagine what happens when a bug in the original tree is unconvered because a (re)distributor applies a third-party patch, who's liable for damages?
      Cars are a good example here. Motor vehicles have to be safe, and there are rules and regulations governing their development and production which, by and large, keep the roads safe from exploding cars.

      Bullshit is a good example here. Software is not a car, unless this guy thinks that all forms of literary work should have to pass an MOT (UK cert of road worthiness) he is talking pure nonsense. Hey Bill, care to point me towards a Free and open source Range Rover?
      I still believe that the current situation is unsustainable, and that we should be working harder to improve the quality of the code out there.
      I agree but not because of the supporting arguments which confuse cause and effect, most malware is because of user error. Since Bill used a car analogy consider this brief analysis of the logical argument Thompson makes:
      A good 50% of drivers on the UK roads are not capable of passing a driving test and should not be driving because they make the roads more dangerous and increase insurance premiums for everyone. There are also problems with congestion and pollution. The solution therefore is to build safer cars.


    27. Re:Bullshit by maxwell+demon · · Score: 1

      But then, one would have to define the term "bug" much more strictly.

      To make an example: The WTC was designed to survive an airplane crash. Now, 9/11 showed that it didn't survive that airplane crash. Was that a bug in the building? Well, no, it wasnt. The design was explicitly to survive a crash with the largest airplane which existed at the time it was built.

      The corresponding for OS virus resistance would be: "The OS is immune to all viruses known today." Now, if tomorrow a new virus appears and manages to infect your OS, would you then consider it a bug in the OS? I bet so.

      Similar things are also true for other aspects. For example, for every bridge, you have a specification of the maximum weight of vehicles on it. If you build a pedestrian's bridge, and then when someone drives over it with a tank, you'll not be responsible. The bridge was not designed for that. Just as for every bridge there's a weight which will break it, for every word processor there's a document size on which it will fail one way or another. Now, where's your specification on how long your texts may be? Or taken from a different angle, if after a Word crash, MS simply said "well, Word wasn't designed for texts which are that large", wouldn't you consider it just a lame excuse?

      If there is to be liability on bugs, there must be first and foremost a precise definition of what is a bug, and what simply is a case the software was not designed for.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    28. Re:Bullshit by ajs318 · · Score: 1
      Buckminster Fuller designed an arena that could be build under these conditions. He used color coded steel beams, shiped as a kit.
      The fact that it was furnished in kit form might just have had something to do with it.
      --
      Je fume. Tu fumes. Nous fûmes!
    29. Re:Bullshit by leuk_he · · Score: 1

      For software that's life-critical, the quality bar is set much, much higher.

      Unless it is an Airbus A380

    30. Re:Bullshit by BoomerSooner · · Score: 1

      Lol, for 238 million dollars per plane I bet you'd get some pretty good software. Mind you that cost is spread across several hundred being built, not just one. So one doesn't actually cost 238 million. If they only built one it would be closer to 1 billion dollars.

      So when you have a team of software developers being paid 80k/year and you compare that to a plane that is roughly 2975 times more expensive, your point is what?

      The higher the expectation of perfection from a product correlates to the price of construction. I bet if I were to get 238 million dollars per copy of Windows XP I could be certain it would be bug free (or very close).

      I'd be interested in seeing the likelihood that someone would choose today's Windows XP for around $200 or a bug free version for $2,000. My guess is most people would live with the bugs (or pirate the bug free version).

    31. Re:Bullshit by Tim+Browse · · Score: 1
      To make an example: The WTC was designed to survive an airplane crash. Now, 9/11 showed that it didn't survive that airplane crash. Was that a bug in the building? Well, no, it wasnt. The design was explicitly to survive a crash with the largest airplane which existed at the time it was built.

      The WTC was finished in 1973. The first prototype of the 747 flew in 1969, and Boeing had made its plans for the 747 public in 1966. The 747 was and still is the largest airliner in the world. The WTC was hit by two 767 aircraft. The 767 aircraft are considerably smaller than a 747.

      IIRC, one of the reasons for the catastrophic failure of the WTC is that the planes were outgoing flights, and hence full of aviation fuel, which leaked out of the planes and into the steel structure, burning and melting the steel, thus weakening the towers to the point of collapse.

      In any case, the size of the planes probably had little to do with the results - I saw a documentary once about skyscraper construction, and they asked the architects/engineers involved about the "What if an airliner crashes into it?" scenario. They explained the large forces the buildings have to survive from just the wind pressure on the building, and compared this to the force of a plane crashing into the building. The wind was by far the greater of the two forces. It was the large quantity of burning aviation fuel that caused the problems.

      But I am, of course, not an engineer.

      And if we're talking largest airplane, then the Lockheed C-5 Galaxy troop carrier is both larger and heavier than a 747 :-) (Others, such as the Antonov An-225 are larger still, but weren't around until the 1980s).

      See, I knew those childhood years I spent playing Top Trumps would come in handy one day :-)

    32. Re:Bullshit by Anonymous Coward · · Score: 0

      Take a guess at how much is has cost and how long it took to develop and test the 777. Hell, just try giving a figure for the control software.

    33. Re:Bullshit by shutdown+-p+now · · Score: 1
      The corresponding for OS virus resistance would be: "The OS is immune to all viruses known today." Now, if tomorrow a new virus appears and manages to infect your OS, would you then consider it a bug in the OS? I bet so.
      You should think not in terms of viruses here, but in terms of infection vectors. If the virus uses the same method to exploit the system as those which came before it (e.g. stack corruption by means of buffer overflow), then yes, it is a bug.
      Or taken from a different angle, if after a Word crash, MS simply said "well, Word wasn't designed for texts which are that large", wouldn't you consider it just a lame excuse?
      It would be a bug too, of course. You seen, in programming we have that thing called "graceful termination" - when you don't crash under any condition, but do your best to complete the work in the safest manner possible and inform the user of what's going on (and why is it going on). Furthermore, a correctly written word processor, assuming it does indeed have any other limit on the size of the document apart from free RAM (though there is no reason it should - you can make a perfectly valid and safe design without this artificial limitation) would simply not let you create or open such a document.

      You seem to go way too far with this whole bridge analogy, to be honest. As someone else pointed out in this discussion, software is not like bridges or other similar engineered things. Any analogies here are flawed, in full or in part. It does not mean TFA doesn't have a point, though.

    34. Re:Bullshit by moro_666 · · Score: 1

      Hmm ...

      Cars brake down quite often ... i dont see anyone telling the car factorys to build cars that wont break. They can always say that hey, that part isnt produced by us, it's not our fault, things break sometimes (same with software, 3rd part libraries can be broken, the api-s change and get deprecated etc.)

      Washing machines brake a lot when you have bad quality water, nobody complains, they buy some anticalc stuff to fix it (compare this to patching).

      The light bulb goes out quite often "out of the blue", no triggers anywhere ... Everybody knows that we could make bulbs that dont go out, or at least dont go out that easilly, but since they cost a hell lot more, nobody produces nor buys them (bulbs without the hot metal wire, sry my english doesnt quite cover that part of vocabulary).

      If people would treat all their stuff as bad as they treat their computers, they'd found out that many things would be broken before they realize it. (Imagine someone restarting the engine while it's still running or dragging a house with a motorcycle, thats pretty much what you do with a computer).

      And if people would choose their usual stuff like they choose computer hardware and software (gimme lots of megahertzes, some pirate version of windows and get it CHEAP!) , then we'd all fly around with Toyoda rockets that our powered by our own gases (no i didnt mispell toyota, this is just a cheap sound-a-like copy of the original firm).

      When your electronic alarm clock fails once, you say "hey, it happends", but when your computer with millions of transistors (which is about ... millions time more than your watch) shifts one byte the wrong way you go nuts ... come on people.

      Ah why bother, the H5N1 will wipe out the most of us anyway (the gov. just forgot to tell you that they have no idea at all if the vaccine they produce will even work at all, great eh ?)

      --

      I'd tell you the chances of this story being a dupe, but you wouldn't like it.
    35. Re:Bullshit by Anonymous Coward · · Score: 0

      I totally agree. I run a small company in England, and the amount of regulation and pointless paperwork required to be allowed to even talk to our customers is quite frankly ridiculous. This is a trend that has spread from Europe to the elite of the British political and legal systems. It has bred a generation of parasitic legislators and regulators who contribute nothing of value to society. The BBC is IMHO the mouthpiece of that movement.

      From TFA...

      And if a group of people build their own cars then they have to follow those same rules in order to be allowed to use public roads, even if they gave their cars away.


      Analogies can be twisted any way you like. If I build a car our of a washing machine and old bicycle parts and give it to you for free with no guarantees, then it is up to you to make sure it is road worthy. If you want to drive it on the road, then do so at your own risk.

    36. Re:Bullshit by sverdlichenko · · Score: 1

      You can buy it from me. In just a few years and few hundreed thousand dollars you will get a bug-free copy of MS Office. Oh, btw, it will run only in fixed software and hardware environment: I can't risk fresh new buggy video driver crashing your system and me blamed for it.

    37. Re:Bullshit by QuestorTapes · · Score: 1

      > I heard about a $20,000 accounting package that was done in VB.
      > I have nothing in particular against VB,

      Actually, there are at least a dozen large-scale accounting packages that are either solely VB or have large amounts of VB in them.

      > but it's not an appropriate tool to do a large, serious mission-
      > critical system like that.

      Why? Not to defend VB, but while VB has limitations, I can't see that VB's limitations are a real problem in an accounting package. It handles data-entry forms just fine, interfaces well with a number of databases, handles business math well, and generates appropriately fast and small code in the hands of a competent programmer.

      The deficiencies don't seem to have a significant impact on large-scale accounting systems. There is the possibility of an unrecoverable application error, but frankly C and C++ are even more prone to those in the hands of equally skilled programmers in the middle-range of skill level.

      > [the] auto industry in the 70s. American cars weren't terrible,
      > but the quality [was] inconsistent. The big three would tell
      > you that making defect-free cars would raise the prices...
      > Then the Japanese...delivered cars that...blew away the big
      > three in terms of quality, and at very reasonable prices.

      Excellent example. A product doesn't have to be criminally defective to be unacceptably poor, and a product doesn't have to be perfect to be miles better than the normal state of affairs.

    38. Re:Bullshit by Surt · · Score: 1

      And yet when engineers design a car in which the passengers don't survive a crash, no one is up in arms.

      The reason is that people aren't comfortable with mass death incidences. Spread the harm over sufficient time or space and you're ok.

      The question is: how many mass death incidences are computer software responsible for, and is it enough to warrant legislation.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    39. Re:Bullshit by Peter+La+Casse · · Score: 1
      I've never heard of a software system that even approaches the complexity of a significant bridge. Never.

      Forgive me if I find your post unconvincing, but your description of a bridge just doesn't sound that complicated to me. Do you know of any objective way to measure the complexity of problems in different domains, by which they could be compared? Comparing the complexity of a bridge (or house, or skyscraper, or airplane, or whatever) to the complexity of any given computer program does sound like an interesting pursuit. Maybe decision points, or variables... I don't know if there's an equivalent to a logical branch in bridge design, but surely there are equivalents to things like coupling and cohesion. Like, how many other widgits does this widgit touch? Through how many layers will a failure in this widgit cascade?

      My intuition tells me that the complexity per developer of a piece of software is much higher than the complexity per... engineer? of a bridge. Computers make it very easy to program past your level of competence. But, I'd welcome a way to objectively verify my intuition.

    40. Re:Bullshit by Delphiki · · Score: 1

      So software developers shouldn't be liable for problems caused by failure of their software, because they're just giving it to people, they aren't telling people that they can actually use it? Damn, your analogy was terrible.

      --

      Feel free to mod me "-1 - Angry Jerk".

    41. Re:Bullshit by mdwh2 · · Score: 1

      Analogy: picture the auto industry in the 70s. American cars weren't terrible, but the quality control was bad enough that the cars were totally inconsistent. The big three would tell you that making defect-free cars would raise the prices to the point that nobody could afford a car. People accepted this, because they didn't know better. Then the Japanese showed up. They delievered cars that, while not perfect, blew away the big three in terms of quality, and at very reasonable prices. It can be done.

      The most important point here is that it was not done by the Japanese moaning at the Americans, it was done by the Japanese doing it themselves.

      Sure, perhaps it can be done. If you think it can, then please go ahead and do so. If you're right, then there's great profits and market share awaiting the person who does this.

      This was the point of the post earlier up in the thread - if you think it can be done, stop moaning and go ahead and do it.

    42. Re:Bullshit by Anonymous Coward · · Score: 0

      There are certain points in Your post that are worth analysing and considering finding analogies in software engineering:

      The one that is most intriguing is interfacing/handling innacuraces in parts specifications. What should program do if a component it references doesn't work as specified? Perhaps it should make extensive sanity checks on input, perform multiple calls with approximate values of parameters distributed over epsilon proximity, or check multiple result from same operation with same input parameters, similar to measurements procedures .

      The second one is "safety factors". What are safety factors in software engineering? Allocating bigger buffers then needed? Using much longer integer types then needed? Allocating "guardband" dummy variables around ones actually used, just in case careless type cast occurs somewhere in code?

      The third notable point - disaster resillience, could be along the line of active defense to deliberate attack. i.e. program should always check if it was put under the unusualy high workload, should never trust the calls or returns that point to unexpected memory areas... should have a dose of healthy paranoia built in it!

    43. Re:Bullshit by Brad+Mace · · Score: 1
      You have this attitude because you're a programmer.
      You may as well have said "you have that attitude because you understand the complexities involved."
      If civil engineers said "so what, bridges fall down" everyone would be up in arms.
      Software errors are very rarely fatal. This argument would only apply to a very small portion of software such as hospital equipment and flight control software.
      Bug free software is possible
      A bold claim for any non-trivial programs
      so long as it is done right and people are prepared to pay for it.
      If people are choosing free software, it would seem they're not prepared to pay for it. With small companies in particular, a low entry price will be more important that having someone to sue. Now lets look at your faulty analogy. A bridge doesn't have to work in Seattle, Norway, and Egypt all at the same time. Furthermore, a driver in Beijing can't crash into and damage a bridge in New York. They don't excavate the ground beneath a bridge's foundations and replace it with different material every 6-12 months. Bridges have extremely simple use cases: you go across them, or you go under them. No engineer will ever be looking over their newly completed footbridge and see it destroyed by some jackass trying to land a 747 on it sideways. Zero 'bridge-smarts' are required to use one. They're so fundamentally simple that you can't help but do what the designers expected. Even squirels understand them.
    44. Re:Bullshit by jtev · · Score: 1

      And software isn't effectivly shipped as a kit? Wow, that's a new one to me. He still had to design the kit, and it had to work genericaly under a wide variety of situations. I don't see how this invalidates my argument at all. Considering the complexity of a bridge it's a far more apt relation to software than the bridge thing.

      --
      That which is done from love exists beyond good and evil
    45. Re:Bullshit by lpenz · · Score: 1

      The thing with software is that it is usually asked to change "in flight". No one asks to have bridges changed after the building phase starts. That's not true with software. And things do get messy. That's the same reason why you can't use classical engineering methodologies with software.

    46. Re:Bullshit by akadruid · · Score: 1

      The major problem is the purchasers, not the designers. google is run by people who know what they want, pay for it, and get it. $300 dells in people's living rooms are bought by muppets who know nothing but price, and get nothing but price. (arguably, they good a pretty good deal on the hardware, but get stung by the software). Unfortuately, the software buying world consists of millions of muppets with dells, and a few people who know what they are doing.

      Hence the popularity of bad software.

      There is the argument that most of the best software is available for a few clicks, but that software has the hidden cost of knowledge, and is 'hidden' by lack of publicity/advertising to the mass audience.

      --
      "Those who cast the votes decide nothing; those who count the votes decide everything." (attrib. Joseph Stalin)
    47. Re:Bullshit by Anonymous Coward · · Score: 0

      Software is frankly far more complicated than any bridge.

      And when the software can kill people if it goes wrong more time and effort is put into making sure it does not go wrong.

    48. Re:Bullshit by deaddrunk · · Score: 1

      More than there should be but not as many as you imply. On the other hand I have worked with some true genuises who can take whatever language and platform and make beautiful music. However I have only twice in 15 years in the industry worked for a manager with a clue, the rest being buzzword-spouting rubber stamps and/or bullies.

      --
      Does a Christian soccer team even need a goalkeeper?
  11. least content ... EVER! by jonastullus · · Score: 1

    that must be the article with the least content in my entire slashdot "career".

    no thesis, no argument, no concrete examples of HOW to make software better or HOW to implement such liability.

    i do understand this is a follow-up, but why exactly should ANYONE care about this mindless piece of crackpot-tery?

  12. Shouldn't this be handled by supply and demand? by Captain+Perspicuous · · Score: 5, Interesting

    [ ] vendor guarantees that software works as advertised
    could be another checkbox that all software companies are trying to reach.

    "What? You don't guarantee works-as-advertised? Well, then I'm looking for a different product."

    If computing magazines would update their testing methods and added this one checkbox, Microsoft just might say "oh, hey, we haven't covered that checkbox yet. We need to have every checkbox. Let's quickly drop by the legal department get this in order..."

    1. Re:Shouldn't this be handled by supply and demand? by man_of_mr_e · · Score: 1

      That would work, except that no "other product" would claim it either. So what happens when you search the market and find 20 programs that claim to do what you want, but none of them will guarantee their work?

      You have our current market.

    2. Re:Shouldn't this be handled by supply and demand? by CrayzyJ · · Score: 1

      You don't watch a much tv do you? All this CRAP on tv is "guaranteed or your money back". All these infomercials peddle worthless junk that is guarenteed. I do not see how a guarantee on SW is any different.

      --
      Holy s-, it's Jesus!
    3. Re:Shouldn't this be handled by supply and demand? by Castar · · Score: 1

      This would work really well... ...At changing their advertising to use weasel wording to get around the issue. The software would stay the same.

      --
      I yearn for you tragically. A. T. Tappman, Chaplain, U.S. Army.
  13. Re:LINUX USERS. by hvatum · · Score: 1

    That's been shown to be impossible! Otherwise I would do it 24x7.

    --
    Netbooks, they come with Linux or a $3 copy of Windows. Either way, Microsoft loses.
  14. Great by LWATCDR · · Score: 4, Insightful

    The Lawyers will love it. They will launch massive class action law suites and will make millions. If you are part of that class action you will get one dollar.
    The software vendors will not fix bugs because to fix them they have to admit they have them and will get the daylights sued out of them.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Great by BeerMilkshake · · Score: 1

      Awesome - some of us could go into 'Software Law' - a new discipline and second career! Gotta be better than coding...

    2. Re:Great by deanj · · Score: 1

      I think you're spot on.

      This is a laywer's wet dream. They've sued the living daylights out of car companies, tobacco, and drug companies... now they're after new blood. If robots ever get really popular, they'll be suing them next.

      Now, don't get me wrong. There are plenty of good reasons to hold car companies, tobacco companies and drug companies accountable for things they've done. It's the lawsuits that happen when those companies did NOTHING wrong.... that ticks me off. (Well what a sec.... I find it a little hard to believe that tobacco companies never did anything wrong...but I digress....then again, this is Slashdot, digression isn't that uncommon).

      Lawyers. The only good one is yours. The rest stink.

    3. Re:Great by (H)elix1 · · Score: 1

      This is a laywer's wet dream. They've sued the living daylights out of car companies, tobacco, and drug companies... now they're after new blood. If robots ever get really popular, they'll be suing them next.

      If they go after the robots, they had better hope the bug is not in the 'first law' drivers.

    4. Re:Great by Jesus_666 · · Score: 1

      1.) Modify laws of robotics to add "EXCEPT FOR LAWYERS" everywhere humans are involved.
      2.) ?????
      3.) Hilarity ensues.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  15. The keys to stable software... by borgheron · · Score: 1, Insightful

    The keys are:

    * Tell users to stop asking for tons of new features in unrealistic timeframes.
    * Tell software managers to actually give individual developers time to develop software the write way instead of insisting that they slam code out.
    * Get compentent testers who can help catch any aggregious problems before it goes to market.
    * Stop hiring assholes who just have certificates and get some degee holding professionals who actually know what the f*ck they are doing.
    * Stop outsourcing to india where most programmers are taught to slam out code no matter how messy it is. (I know this because I've worked with a few people who've come from that environment to the US)

    All of the above costs money. If you're willing to spend the $$$$ that all of the above will cost you, you're software quality will improve.

    Until then STFU.

    Later, GJC

    --
    Gregory Casamento
    ## Chief Maintainer for GNUstep
    1. Re:The keys to stable software... by Anonymous Coward · · Score: 0

      and how exactly am i supposed to do this as a consumer? The article was talking about giving the same level of consumer protection that exists (at least in the UK) on physical products to software products.

      A rant about the development side of software has no impact on how an average consumer is involved in the process. Now that computers and software are moving towards being consumer goods I would not be surprised that either new legislation is drafted to give these kinds of "fitness for purpose" requirements on them or existing legislation is interpreted to require them. It was only a few years ago that adverts for computers had to include VAT as they were considered consumer products.

      And you don't think the quality of software would improve if companies became liable for these issues and therefore the programmers themselves?

    2. Re:The keys to stable software... by borgheron · · Score: 1

      You are not supposed to do anything as a consumer. I'm talking about software companies. :)

      All of what I just listed is necessary for companies to make better software for consumers. Bitching about it as a consumer and expecting that it wont cause a price increase because of the increased testing and engineering that goes along with it is unrealistic.

      Also, *requiring* this causes an issue in the Free Software/Open Source realm as most programmers who do this do so on a volunteer basis and don't have the money to defend themselves if they should get sued by someone frivolously.

      And there's also the issue that this opens the door for frivolous lawsuites, which in turn would cause software producing companies to take out "insurance" which would, in turn, be foisted onto the consumer.

      So have a good life in your "improved" software world. No open source, no free software, but lots and lots of proprietary and expensive software.

      Later, GJC

      --
      Gregory Casamento
      ## Chief Maintainer for GNUstep
  16. Legislation by beaver1024 · · Score: 1

    Software products, the Internet and concepts of open source and free software are so new that our eminent law makers are having severe difficulties trying to comprehend the implications of their use on society. The concepts of negligence, mechantable quality and misleading and deceptive conduct that prevades traditional product liability cases are difficult to apply in cases of software faults, especially when it is free software. Modern complex systems are usually confined to specialised units such that faults can usually be traced to a responsible entity relatively easily (e.g. nuclear power plant). However very complex software products often interact with each other in the mass consumer market sometimes producing unpredictable results which may or may not be intended. Added to this is the question of even who is responsible in a free software environment where the contributors number in the thousands. Traditional legislative framework that govern normal product liability need to be overhauled in this new complex software environment. However given that our eminent law makers will, for the forseeable future, remain wilfully ignorant of the pace of technology change I doubt things will change.

  17. free software by Anonymous Coward · · Score: 1, Interesting

    Pundits seem to frequently make two assumptions/assertions
    1) Free software is less tested than commercial software
    2) Free software programmers are programming for free. (The article
    claims this without the slighest proof)
    But I know from personal experience neither of these is universally true,
    and I don't believe either to be particularly true. I wish there was
    a great deal real data on these topics, but there does not seem to be.

    1) I know proprietary products sold to customers by a commercial
    enterprise that were written
    by one person and not code-reviewed or even read by anyone else ever. (Ok, not a big seller, but who is to know the statistics of review
    in proprietary software? Proprietary software is well hidden...)

    2) I know one open source product on which all the key contributors are paid to do
    the work because it benefits the companies they work for.
    Just not paid by the FSF that owns the product.

    My comments don't prove anythin, they just advise caution about pundits
    who seem to make questionable assumptions.g

  18. not possible by Anonymous Coward · · Score: 0

    The possibility of errors rise with the size of the project, number of people involved and competence of the programmer. If precompiled libraries are used those are also a source for errors.

    Error free code is another funny concept like police protecting you (they exist to enforce law, not protect you).

  19. He's got a valid point by MerlynDavis · · Score: 5, Insightful

    The author has a point here. We accept a lot more ... "bugginess" in software than we do in any other product (Cars, Banks, Tools, etc.) And it's pretty much become the norm that if there are problems, folks just shrug, claim it's just software and move on. But if the folks building bank vaults left as many holes in their products as software, people would be screaming bloody murder. I've done software development as a hobby myself, and don't release my code to the public, because I know it's not even up to my own standards of stability, reliability, security. Programmers/developers need to take more time with their products, and think security & reliability from the start of a project, not as an afterthought. With as many products requiring patches within the first couple weeks of release, consumers do need to start getting angry about this stuff. Or, at the very least, start challenging software companies when the products they do release require more MB in patches than the software was originally....

    --
    -merlyn
    1. Re:He's got a valid point by Cave_Monster · · Score: 1
      I think it depends on the type of software as to what reaction would be exhibited by someone towards a bug surfacing. If you were running xmms for instance and it crashed while playing your favourite tune, sure it would be frustrating but hey, life goes on and you start it again. If on the other hand the software running on the computers at your local bank seemed to always lose $5 from your account every month, I'm pretty damned sure people wouldn't be shrugging this off. They would be jumping up and down. Same goes for the software running your traffic lights, what if, at an intersection, occassionally you had all lights green? Or maybe the navigation software on the plane you were traveling on fails every now and then? Everything needs to be put into perspective, the price, the use and the time needed to achieve the desired goals.

      With respect to OSS, in reality there is no real deadline. Anyone can contribute and there is ongoing development. In industry, companies have deadlines. They need to make money and when the customer says 'I want that software delivered by COB tomorrow', you comply and deliver it whether it's been fully tested and been shown to be bullet-proof or not.

    2. Re:He's got a valid point by Anonymous Coward · · Score: 0

      I think the big difference is what you lose when a product fails. When software fails it is usually a bit of a headache. When a car fails, we are talking fatalities. Even when bank vaults "fail," you are looking at lost physical value. This is all tied up with the value of digital, easily reproducable "things" vs real physical, non-reproducable things.

      I would love to see better software being written, so I tend to work on software when I have the time and inclination. I don't really want to have to pay for someone else to take the time though, and I don't think many others do either or we'd see better software being sold at the consumer level now.

    3. Re:He's got a valid point by Anonymous Coward · · Score: 0

      You just don't know how bad bank vaults and cars really are. Banks get robbed quite often (and most of them don't even have their vault broken into), and cars have recall notices all the time. Cars are also one of the most highly depreciating items one can purchase. What else loses half its value within the first few months or years of ownership? It's so bad that quite a lot of people never even buy new cars, it's not worth it. How does that compare to people not wanting to upgrade their old Windows 98 computers to XP or Longhorn? It's the same situation, there's no real benefit for shiny new things, because they're rarely that much better than what's currently available.

      Tools? It's pretty easy to warrantee that a chunk of metal will not fracture under undue stress, it's just a simple metalurgy and engineering problem, but tools still break all the time because there's no way for normal people to determine whether their use falls within the engineering specification, and even then there are just some low quality tools. It's still cheaper to just replace broken tools than risk class action law suits from angry tool purchasers.

      Software is the only realm where it's even theoretically possible to create perfect products, because the entire theory is based on mathematics. You can formally prove software is correct with respect to a formal specification and things like type and memory safety, but very few people do that because it's hard. I think they should.

    4. Re:He's got a valid point by Anonymous Coward · · Score: 0

      I don't know, if there are problems with air traffic control software, life support machines, or ATM machines people would be pretty upset. On the "real stuff" side of things, if you buy cheap (but poor quality) clothes, tools, etc. then you aren't too surprised when it breaks.

    5. Re:He's got a valid point by Anonymous Coward · · Score: 0

      A bank vault has to protect my money. A car has to protect my life. And yet somtimes even cars are recalled if a fault is found. Cars are not perfect but the engineers behind their development have worked very hard to remove all known defects.
      By the same token there are many small factories in china (yeah I'm generalising but I have had some experience here...) pumping out sub-par trinkets that are fragile, or even down right dangerous, that some traders will sell to children.
      There is a market for sub standard software, people will still buy / use it not having any other choice or information available.
      Software can also be used in areas where money or lives could be put at risk. And you can be assured that the people involved in it's creation will go the extra mile to try and remove all known defects.
      At the moment however, the average desktop OS (eg windows) is not considered a high enough risk. And Jo Average consumer is not aware of just how much damage can be caused by the software they run.

    6. Re:He's got a valid point by bnenning · · Score: 2, Insightful

      We accept a lot more ... "bugginess" in software than we do in any other product (Cars, Banks, Tools, etc.)

      In exchage for much more rapid development than other products. Cars today aren't hugely different than they were 20 years ago, when we were using DOS.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    7. Re:He's got a valid point by maxwell+demon · · Score: 1
      Even if you formally prove that your software is correct, it may still be erroneous, for several reasons:
      • Your proof may be erroneous (of course, you can add another step and prove that your proof is correct, but while that again raises the probability of your code being correct, it's still not 100%)
      • What you proved may not be sufficient (e.g. you may prove that your TCP/IP stack will always work correctly, but in practice it may be completely useless because it's just so damned slow)
      • The axioms your proof is based on (which includes the specification of your program, as well as assumtions for the system it runs on) may be wrong (as a simple example, if you have the assumption that all input you receive from the net conforms to a certain protocol you'll never catch bugs which only occur with incorrect input, and your proof doesn't help you because this assumption is buried in that proof as well as in your code)

      --
      The Tao of math: The numbers you can count are not the real numbers.
  20. We'll take the "Google News" way out... by bbk · · Score: 4, Insightful

    Ah, so he wants people who right software to guarentee their work?

    Things will then just never make it out of beta, for fear of the law. If the software breaks "Tough luck, it's still in beta, what were you doing using it for mission critical work anyway?"

    This "eternal beta" is also used to avoid other sorts of legal wrangling . The most obvious example is Google News - it's "beta" still because google is worried about capitalizing on other people's news content. While unrelated to software quality, because it's an "unfinished beta", it doesn't get sued out of existance.

    So, welcome to using software versons 0.9.9 forever... I can't wait.

    1. Re:We'll take the "Google News" way out... by Anonymous Coward · · Score: 0

      The readers want people who type to "guarentee" to use spell checkers and know the difference between the homophones "right", "write", and "rite." Please use the Preview button before you submit your next post. How did parent get modded up with such glaring errors in the first sentence?

    2. Re:We'll take the "Google News" way out... by falconwolf · · Score: 1

      This "eternal beta" is also used to avoid other sorts of legal wrangling . The most obvious example is Google News - it's "beta" still because google is worried about capitalizing on other people's news content. While unrelated to software quality, because it's an "unfinished beta", it doesn't get sued out of existance.

      Ah but some French news sites were suing Google.

      Faclon
    3. Re:We'll take the "Google News" way out... by Anonymous+Brave+Guy · · Score: 2, Informative

      You know that just because someone sticks the word "beta" next to a product, that doesn't actually remove any of the ethical or legal consequences for producing that product, right?

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:We'll take the "Google News" way out... by shutdown+-p+now · · Score: 1

      If they just marked everything they claim to be a release these days a "beta", it would still be fairer to the consumer (who would at least know what he really gets).

    5. Re:We'll take the "Google News" way out... by torokun · · Score: 1


      Um, that wouldn't work for any other products, so why do you think it would work for software? You can't give hospitals a 'beta' heart monitor and just say "try it out, but don't expect it to always work right"...

      You would get tagged with a product liability suit. In most cases, you can't sell something to the public, whatever you say about it, if it's liable to explode or kill someone.

      The law will catch up with software, just as it did with railroads in the 19th century. For a long time, courts were loathe to impose tort liability on railroads, at leat partly because the industry was still developing. Eventually, they could not deny the hazards, and started holding the railroads liable...

  21. Nobody wants "perfect software" (yet) by G4from128k · · Score: 2, Insightful
    What people want is:
    1. The latest whiz bang feature to impress their friends
    2. The latest feature copied from a competitor's software
    3. The latest feature to be compatible with everyone else
    4. The most feature checkmarks for the PHB to authorize the purchase or selection of a software application

    None of these demands fosters reliability. It fosters a frantic race to add features and ship stuff ASAP. Everyone seems caught in a massive vicious cycle of upgrades so that nothing ever stabilizes or matures.

    Perhaps if/when people stop finding new uses, new formats, new file types, and new applications, then the industry will mature and people will turn their attention to stability and reliability.

    --
    Two wrongs don't make a right, but three lefts do.
  22. Our Data:an appeal - a "Plimsoll line" for apps by NZheretic · · Score: 4, Insightful
    By myself from June 14 2002

    However relatively bad the security of Microsoft's products are in comparison to what the free licensed and open source communities ( as well as practically every other vendor on the planet ) provide, Microsoft is not alone in the presence of vulnerabilities, this is a major issue for Linux/BSD and Unix as well as ever other OS and vendor.

    From the Plimsoll Club history

    Samuel Plimsoll brought about one of the greatest shipping revolutions ever known by shocking the British nation into making reforms which have saved the lives of countless seamen. By the mid-1800's, the overloading of English ships had become a national problem. Plimsoll took up as a crusade the plan of James Hall to require that vessels bear a load line marking indicating when they were overloaded, hence ensuring the safety of crew and cargo. His violent speeches aroused the House of Commons; his book, Our Seamen, shocked the people at large into clamorous indignation. His book also earned him the hatred of many ship owners who set in train a series of legal battles against Plimsoll. Through this adversity and personal loss, Plimsoll clung doggedly to his facts. He fought to the point of utter exhaustion until finally, in 1876, Parliament was forced to pass the Unseaworthy Ships Bill into law, requiring that vessels bear the load line freeboard marking. It was soon known as the "Plimsoll Mark" and was eventually adopted by all maritime nations of the world.

    The risks,issues and solutions for providing a more secure operating and application enviroment have been known for decades.

    Those who do not already comprehend the issues and are willing to learn, should take some time out to listen to some of the speeches at Dr. Dobbs Journal's Technetcast security archives, starting with Meeting Future Security Challenges by Dr. Blaine Burnham, Director, Georgia Tech Information Security Center (GTISC) and previously with the National Security Agency (NSA)

    The design and implementation of some applications and servers are just too unsafe to use in the "open ocean" of the internet.

    Numerous security experts have railed against Microsoft's lack of security, best summed up by Bruce Schneier Founder and CTO Counterpane Internet Security, Inc who rightly said:

    Honestly, security experts don't pick on Microsoft because we have some fundamental dislike for the company. Indeed, Microsoft's poor products are one of the reasons we're in business. We pick on them because they've done more to harm Internet security than anyone else, because they repeatedly lie to the public about their products' security, and because they do everything they can to convince people that the problems lie anywhere but inside Microsoft. Microsoft treats security vulnerabilities as public relations problems. Until that changes, expect more of this kind of nonsense from Microsoft and its products. (Note to Gartner: The vulnerabilities will come, a couple of them a week, for years and years...until people stop looking for them. Waiting six months isn't going to make this OS safer.)

    However Microsoft's products are not alone in the presence of vulnerabilities, this is a major issue for Linux/BSD and Unix as well as any other OS and vendor.

    In a recent speech "Fixing Network Security by Hacking the Business Climate", also now on Technetcast, Bruce Schneier claimed that for change to occur the software industry must become libel for damages from "unsecure" software

    1. Re:Our Data:an appeal - a "Plimsoll line" for apps by swillden · · Score: 2, Insightful

      The abstract notion of a "Plimsoll line" for apps is very appealing, but the problem is that we really don't even know what the analogous standard would look like, much less where it should be drawn and how it should be enforced. Software isn't like boats or cars or bridges -- many small variations on a well-defined solution. There are commonalities between pieces of software, but the differences are huge. A payroll system is so different from an embedded RTOS as to make any kind of consistent standards nearly impossible to describe.

      There are lots of people in the world who are much smarter than I am; maybe one of them can see a way to apply this analogy. To me, though, it just looks like wishful thinking.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    2. Re:Our Data:an appeal - a "Plimsoll line" for apps by Anonymous Coward · · Score: 0
      "However, should the Unix, open source and free licensed communities and vendors be taking a more active approach, including lobbying government, to 1) set up a minimum set of expectations, in the design and implementation of internet "accessing" software ; and 2) ensure that all deployments are more securely implemented ; and/or 3) remove inherently unsecure products from the marketplace,"

      Point three would have to be introduced with a Windows Legacy Exception Clause, otherwise ActiveX, and all the other .NET stupidity would have to go! You are advocating life without Microsoft here...what are you a commie stooge. Now that Gates has some control over the US Supreme Court you better watch your step. Gates reads /. you know. Try posting as an AC instead.

  23. Bugs in software are a given by hattig · · Score: 1

    For now, given the languages software is commonly written in these days.

    What the liability should be is for Time To Fix.

    A software developer shouldn't be liable for a bug, but they should be liable for unreasonable time to fixes for the bugs. How long is unreasonable? That depends on the severity of the bug as it relates to security and advertised functionality. I'd say that a week was long enough to post a fix in most cases for a replicable bugm certainly no more than a fortnight.

    This type of liability might be a problem for spaghetti-code houses that knock out crap without a care. I don't mind if these places get a kick up the backside.

    The issue is rushed software development, utilising software programmers rather than software engineers. Liability rules would mean a move towards proper software engineering - the implementation might still be by mere programmers of course. It'll probably take twenty years or so to get to this state I suppose.

    1. Re:Bugs in software are a given by hattig · · Score: 1

      Another point - you know how much you paid the last time you called the plumber, electrician, gasman out to fix something? It was quite high wasn't it, made you think of quitting software engineering and going into plumbing because you worked it out that they must be on £50k ($100k) a year.

      20% of that is probably spent up front on personal liability insurance. And that is for a task that can be done correctly 100% of the time if you know what you are doing.

      Given software's poor record so far, we'd be looking at personal liability insurance for contractors, or entire companies, being a much larger amount of the cost.

      When software engineering contractors start having to ask for wages starting at £200k ($400k) a year, where half of that amount is simply to cover liability insurance, we will end up getting software at 1/10th of the rate that we do now, and only 1/100th of it overall.

      Insurance companies will start hiring code auditors, to audit your company's code to assess risk. Unlikely that any company would want to hire someone with under 10 years experience in that case, in case of a poor audit. Any enforced regulation would kill the industry.

      So if we ever have to pay £2000 for a web browser, this idiot Bill Thompson will have been the originating cause.

  24. numb nuts by chewy_fruit_loop · · Score: 1

    bill thingi that wrote the article likes to jump on the latest band wagon the bbc send him.
    from his previous articles, he has scant grasp of the realties of the tech world. he gives his 2 pence worth to the bbc so they can publish another "the sky is falling" piece.

    yes perfect software is possible, but you can't possibly afford it

    civil engineers do not build perfect bridges, they build them within tolerances. plus you don't normally build a bridge with a box of millions of different bits. you get your lot of girders and cable etc. which are all relatively speaking the same.

    1. Re:numb nuts by Cave_Monster · · Score: 1
      bill thingi that wrote the article likes to jump on the latest band wagon the bbc send him. from his previous articles, he has scant grasp of the realties of the tech world. he gives his 2 pence worth to the bbc so they can publish another "the sky is falling" piece.

      It's obviously working for them. How many people have now clicked on the link to read his dribble?

      More people reading the article = more advertisers feeding money into the BBC = BBC are very happy.

    2. Re:numb nuts by Crunchie+Frog · · Score: 1

      More people reading the article = more advertisers feeding money into the BBC = BBC are very happy. You do realise the BBC doesn't carry advertising, right ?

      --
      --- Never attribute to malice that which can be adequately explained by stupidity
    3. Re:numb nuts by chewy_fruit_loop · · Score: 1

      the bbc is funned by a licence fee paid by every tv owner in the uk......
      so effectively i've chipped in for his drivel to be pumped out

  25. Open Source could do it by QuantumG · · Score: 1

    The reason you can't use critical systems development techniques to develop applications software is because the cost/benefit analysis is still unbalanced heavily on the side of cost. If you're a company that does critical systems development you have a greater chance of success if you find a client that requires critical systems as the benefit (often, "people don't die") far outweighs the costs. But Open Source turns cost/benefit analysis on its head. When developers volunteer their time the costs can't help but remain low. When the benefits are spread around to everyone, instead of just a select few, large costs can be justified. Sure, we'll need an order of magnitude more developers, and they'll have to learn new techniques, like formal specification and software verfication, but we're geeks, we like to learn new things and we like to have real projects to practice our craft on. How many of us are going to get the chance to develop using critical systems techniques? It'd be fun, and imagine the bragging rights: Four years and counting and not a single bug found. Unprecidented.

    --
    How we know is more important than what we know.
  26. Re:author is obviously unfamiliar with free softwa by Anonymous Coward · · Score: 1, Informative

    Everyone knows that most free software, by virtue of peer review, has fewer bugs and errors than commercial code does.

    No, I don't know that.

    Would you mind telling me it's basis?

    OSS software typically has fewer bugs because most OSS projects are so small in scope that it's possible to kill most bugs within the useful lifetime of the software.

    The large OS software (Mozilla, Linux, OOo) that exists typically has as many bugs (or more, in the case of Firefox -- note all the exploits being released for it, now that it has market share) as it's commercial counterparts.

    Where did I get that idea?

    I pulled it out of my ass, just like you pulled that crap out of yours.

  27. I have been wrong before but... by Afecks · · Score: 2, Insightful

    I do not think we should automatically exclude free/open source software from our analysis simply because it is produced by teams of programmers working for nothing, and the fact that it is given away does not, of itself, provide legal immunity.

    I do, at least to the full extent of the law.

    Expecting anything from someone who gave you free/free software isn't reasonable. The fact is, the licenses are there not only to save the developers necks but also to serve as a warning. When something says "AS IS" that means exactly what it says. You take it as it is, faults and all. There is no trickery involved. Nobody tried to sell you a lemon.

    Writing error-free code IS impossible because there is no possible way to enumerate all the potential hazards that face the software. In a bubble, on a clean install, software can behave "perfect". Once you let it out into the real world where people have literally an endless number of different conditions on their computers, it's simply not realistic. If the operating system has a single flaw, then the software is inherently flawed as well. We all know about Windows' track record of buginess and of course all OS suffer from bugs. That doesn't mean the developer or corporation is trying to get by with it (well maybe some). It just means that "to err is human".

    The way I see it, free software (as in freedom) is a community effort. If it doesn't work, it is just as much as your responsibility to fix it, by contributing either time or money. If you won't help fix it then you are as much to blame as anybody. I guess that sounds harsh but I'm really tired of seeing everyone passing the buck to someone else, especially to the people that are trying to help society by providing possibly useful or entertaining software. These developers are doing us a favor. They don't have to write software for us and we don't have to use it. Expecting anything more than that is absurd.

    1. Re:I have been wrong before but... by Anonymous Coward · · Score: 0

      >Expecting anything from someone who gave you free/free software isn't reasonable.

      Tell that to the Indians who got free blankets contaminated with smallpox. Tell that to the people who got niftly little free tools infested with spyware. Tell that to the people who got candy laced with various sharp objects.

      If there's going to be liability for software defects caused by willful negligence, no lawmaker in his/her right mind is going to buy the notion that free software is exempt. You put it out there, you're responsible for it not harming anyone whether you get paid or not.

    2. Re:I have been wrong before but... by Anonymous Coward · · Score: 0

      Maybe the Indians should have looked at the tag on the blanket closer. It clearly says...

      "because the blanket is licensed free of charge, there is no warranty for the blanket, to the extent permitted by applicable law. except when otherwise stated in writing the settlers and/or other parties provide the blanket "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. the entire risk as to the quality and performance of the blanket is with you. should the blanket prove defective, you assume the cost of all necessary servicing, repair or correction.

      in no event unless required by applicable law or agreed to in writing will any settler, or any other party who may modify and/or redistribute the blanket as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the blanket (including but not limited to loss of life or being infected with smallpox or losses sustained by you or third parties or a failure of the blanket to operate with any other bedding material), even if such holder or other party has been advised of the possibility of such damages."

  28. amazing ignorance by youngjohn14 · · Score: 2, Informative

    "The companies writing the large systems usually have contracts which mean they are liable for damages, and this increases both the cost and the reliability of the resulting programs." As an IP attorney working in the industry for the last 14 years, this statement is just so....amazingly....stupid I would have thought the editors of the BBC would have caught it. It is wrong on so many levels. No non-on-the-ropes software developer will bet the company on error-free code. At the most, a developer will agree to correct errors. And MAYBE some limited liability for intentional errors.

  29. shifting the goalposts by sdedeo · · Score: 1

    I haven't taken the time to read the prior article carefully, but whatever the point he was originally trying to make has been completely lost in his attempt to shift the goalposts of the argument. (As far as I can tell, his original article said we should be allow to sue programmers for bugs.)

    This second article says "people should write better code". Well, um, I disagree! Wait, no. Of course not. Yes, the quality of code should improve, and should always be improving.

    The analogy to automobiles seems quite ridiculous. While there are some rare and unusual automobile failures, the basic system you have to check to make sure a car is "fatal accident free" is both completely transparent (mechanical connections that you can fully simulate if need be) and has been unchanged for years. Furthermore, it is possible to "overdesign" -- you know what the failure is going to look like (car hits object stops suddenly) and you can plan against it.

    Software is something completely different. Each piece of software does something new (or, at least, it should.) The connection between different components is not transparent and while there are overall structural similarities, and long tested protocols, those protocols are nowhere near as "clean" as a car's drivetrain. Not to mention the fact that truly new software has to invent protocols along with the code.

    I would imagine if car manufacturers changed basic facts about the drivetrain or the steering mechanism or the car structure each time they built a new car, they'd have a bug rate close to the average piece of software. And, of course, car bugs are not new -- there are the famous ones, like the Pinto (and less famous ones, like the "suicide doors.") To put things in perspective, when the Pinto was built, cars had been around for decades on decades. Are there any remaining fatal bugs in a classic C compiler?

    --
    Protect your liberties. Donate to the ACLU
    1. Re:shifting the goalposts by Maxo-Texas · · Score: 1

      Cars would be a particularly bad example since people -commonly- avoid buying the first model year to give the manufacturers time to "work the bugs out."

      When the Durango was built based on the Dakota, one of the selling points was that it was 95% based on a 10 year old design so most of the bugs were worked out.

      Result?
      1) Electric windows burned out fast on the passenger side.
      2) At least one recall because of something that could result in a wheel falling off.
      3) In my case at least, A/C failure after only 4 years.

      There are many other examples (The AMC Pacer comes to mind).

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  30. wrong, wrong, wrong by idlake · · Score: 2, Insightful

    It doesn't make economic sense to create some kind of liability for the authors of software; there is no single level of quality that everybody needs.

    The best thing we can do to increase software quality is to hold the people responsible who can actually do something about it: the people who buy software.

    If your Windows PC crashes and you lose data, that's your responsibility; you could have gotten something different.

    If the bank's Microsoft-based database server has a serious security hole and someone breaks in and defrauds customers, then the bank should be held fully responsible for that; they shouldn't be able to shift responsibility to either Microsoft or the person who broke in. That will force institutions like banks to negotiate contracts with software vendors that ensure an appropriately high level of correctness. And there is no need to burden our courts with "hackers"--you won't be able to find and lock them all up, so locking up some of them is not a rational strategy for making computers secure.

    In any case, if one wanted to, one could easily make legal distinctions betwen FOSS and Microsoft/Apple when it comes to liability. First, expert users generally have to accept a higher level of responsibility than non-experts. Arguably, FOSS users are, by definition, expert users. Also, for-pay software involves an actual sale, which can easily and sensibly be regulated differently from non-sale distribution when it comes to liability.

    1. Re:wrong, wrong, wrong by Fastolfe · · Score: 3, Interesting

      I agree, to an extent. It makes no economic sense to shoot for as perfect-as-possible for all software. The reason we have minimum standards for other industries, such as as automobiles, is because a defect in an automobile can kill people.

      But what we have today is practically anarchy. There's no way of telling if a product will work properly, or will work at all, and software vendors are allowed to get away with that.

      A middle ground here might be forced labeling. Require software vendors to place a label that, in a standard fashion, describes how safe the software is, whether it is guaranteed to work as labeled and advertised, and maybe something about the known defects it has, or estimated failure rate. Don't let the vendor hide this in the fine print. And then hold them to it with legal measures.

      That way, if a piece of software is targeted for home use, the labeling should make it clear that it's going to have significant defects, and will fail at a high rate. You might have a more expensive variant for office use, with fewer defects. And then you might have a stripped down, very expensive version intended for critical applications, in hospitals or infrastructure. The end user can then choose which one they want to buy, and instead of feeding a market where the customer buys the cheapest product because they think all products are buggy, they can buy the product that meets their needs, with the assurance that they will have legal recourse if the product fails to meet the expectations indicated by labeling.

    2. Re:wrong, wrong, wrong by CupBeEmpty · · Score: 1
      or the person who broke in.

      Now see I really think that the person defrauding customers might share just a little bit of the blame. I mean they are the criminal right?

    3. Re:wrong, wrong, wrong by MP3Chuck · · Score: 1

      "If your Windows PC crashes and you lose data, that's your responsibility; you could have gotten something different."

      I see what you're getting at, but at the same time I can't agree with it.

      If I buy/install Windows it should be with the (certainly not unreasonable) expectation that it's not going to erase my harddrive under any circumstances unless I explicity tell it to. Because frankly how is Joe Sixpack supposed to know whether Windows can/will erase all his data or not? Why should Joe even suspect that something like that could even happen? Joe isn't a computer guru, he just wants to IM his girlfriend and sync his iPod.

      However, I agree with your bank situation. The difference is, though, that the bank has an inherent responsibility to assess its system security/stability, and shouldn't be using anything it can't pretty much 100% guarantee is secure. Whereas Joe up there needs something he can expect to work without having to analyze it on some sort of system level. The responsibility for these things fall in very different places.

      Furthermore, it seems to me that exempting FOSS from liability would do it more harm than good. If a bank can choose between (for the sake of example) IIS (where MS is liable) or Apache (where the bank is liable) for its servers, which do you think it's going to choose?

    4. Re:wrong, wrong, wrong by idlake · · Score: 1

      Now see I really think that the person defrauding customers might share just a little bit of the blame. I mean they are the criminal right?

      You can blame them if you like, but it isn't rational to spend our tax dollars on tracking them down and convicting them.

      Also, where do you draw the line? If typing "http://somebank.com/index.html" crashes their server and their "official" home page is "http://somebank.com/index.htm", am I guilty of computer hacking and tampering? Companies are starting to argue that. We should put a stop to that--it's unnecessary. Companies have the resources and skills to protect themselves against security problems.

  31. bad analogies for software engineering by PMoonlite · · Score: 1

    Once someone starts making analogies between building software and building bridges or cars or houses, you can pretty much ignore what they have to say. Engineering software is unlike any other form of engineering in almost every way. All of your cost is in the design and test cycle. Prototypes are available to test for free as development occurs. Building and distributing the finished product is incredibly cheap. Replacing faulty software is typically inexpensive for both parties.

    The economies of the situation provide completely different motivations from the realities of engineering a physical product, so there's just not much point in the analogy.

    --
    -- Moderation in all things, exceptions to all rules --
  32. Near perfect software is possible by JoeGTN1 · · Score: 1

    Near perfect software is possible:
    They Write the Right Stuff (I got it from here: Space Shuttle Software: Not For Hacks)

    Yes, it takes time and money but it isn't unthinkable to change how software is written. Fully understand your customer, and justification for EVERY code change. Code reviews aren't important, they're everything. When the way we think about writing code changes and the procedures become commonplace it won't cost so much to do it this way.

    1. Re:Near perfect software is possible by Cave_Monster · · Score: 1

      Not all companies hire the 'best' people. Whether it's because they can't afford them, can't recognise them or just need more people otherwise they can't finish the current project. Regardless of the processes employed at a particular company in developing software, if you only have bunnies, you will always get inferior products.

    2. Re:Near perfect software is possible by JoeGTN1 · · Score: 1

      I think that might be the point, these people may not be the 'best' people; they aren't the people being recruited by Google and Microsoft. These are 'white collar folk', who aren't genius programmers. Less innovative maybe, but the innovative people can make innovative software and other companies can make their own solutions once the ideas have matured.

  33. Not entirely new... by cperciva · · Score: 4, Interesting

    Dan Bernstein has offered a guarantee for many years that djbdns and qmail are secure. Now, this is a rather vague guarantee, since the task of deciding if a reported problem is a security flaw lies with Dan Bernstein himself; but it's a start.

    I'm currently writing some cryptographic code, and I intend to go considerably further: I intend to offer a guarantee not only that my code operates as specified, but also that it is not vulnerable to any side channel attacks within certain classes.

    As the time-to-exploit of security flaws continually decreases, I see only one solution: Writing code which is correct in the first place. If you can do that, you can offer a guarantee. And hopefully once security becomes as larger issue to consumers, people will start looking for guarantees.

    1. Re:Not entirely new... by slashflood · · Score: 1

      What do you mean by saying "I offer a guarantee that my code operates as specified"? What, if it's not operating as specified? Can I give it back to you? I'm serious, what does it mean?

    2. Re:Not entirely new... by Alwin+Henseler · · Score: 1
      As the time-to-exploit of security flaws continually decreases, I see only one solution: Writing code which is correct in the first place.

      I totally agree, and hope that Slashdot readers grasp the importance of above statement. BTW: it applies to reliable software in general, not just security-related.

      In every software-security flamewar, you'll see some statement like "product X is better because bugs are fixed in no-time, the exploit is discussed now but see: a patch was out yesterday!". Now back to the real world: patch must be applied to source code. Source code must be compiled. Compiled code must be distributed (for Gentoo users: order reversed, but compiling+distribution both still needs to be done). Code on disk (or in memory) needs to be replaced with patched version. Every step introduces a delay, or may not be performed at all. Not every patch is a correct fix for a problem. Not everyone patches their system. Fully up-to-date does not equal bug-free. The latest version does not equal 'all issues fixed'. And software patched does not equal 'no problem', since problem may already have occured (eg. your system already compromised, sensitive data leaked, $$ damage done).

      Basically: put out flawed code, and users will suffer. Possibly many users, possibly much suffering. No matter how streamlined the software-upgrading process is. The only way to avoid it, is to get it right the very first time (as parent stated).

      Ofcourse as long as most important software is coded in unsafe languages like C, and testing means "see if it runs and looks okay", this is just shouting in the desert.
    3. Re:Not entirely new... by deblau · · Score: 1
      For those readers out there who haven't done this in class: proving correctness is hard. Insanely hard. For a start, see Hoare logic. Take any algorithm over five lines and run through a Hoare proof to see what I mean. Here's a fun one we did in CS, the Euclidean Algorithm: starting with numbers A and B, design and prove correct a program to find G such that G=gcd(A,B). You can use the following predicates: gcd(A,A)=A, gcd(A,B)=gcd(B,A), and gcd(A,B)=gcd(A-B,B) if A > B. If you're familiar with Hoare logic, the design and proof takes under an hour. (You also have to prove that your program terminates.) On the other hand, if you're familiar with the Euclidean Algorithm and any programming language under the sun, writing the code takes under a minute. Difference in coding time: roughly 1.5 orders of magnitude. Your next task: prove Windows correct (or Linux, or any single file in the Linux source for that matter).

      No one writes correct code, EVER, because to guarantee it by design takes orders of magnitude too much work. Take device drivers. Finding loop invariants for driver timing delays would be hellish enough, not to mention the fact that hardware never performs entirely to spec anyway. To prove your driver did exactly what it was supposed to do, you'd have to put provably correct timing bounds on all of your externally called functions. Taking into account interrupts being masked or not. By someone else's code. Not to even get into all the bazillion different exception conditions. Just thinking about how to start laying out a correctness proof gives me a headache.

      --
      This post expresses my opinion, not that of my employer. And yes, IAAL.
    4. Re:Not entirely new... by Anonymous Coward · · Score: 0

      Pardon my ignorance in the field of correctness proofs, but surely a computer generated proof could be generated faster that working out the proof by hand? Of course, I suspect any such algorithm would be NP, and it couldn't be completely general because it would require solving the halting problem, but that doesn't prevent a partial solution.

    5. Re:Not entirely new... by Anonymous Coward · · Score: 0

      My first thought reading your comment was "Is this guy stupid? Knowing the euclidian algorithm and Hoare logic it is a 5 minute task to proof it's correct." Then I realized I made simular mistake as you: I already know the proof just as you know the algorithm (which is, why it takes you 1 minute to write it down). But finding a correct algorithm and proofing, that it is correct, is just the same thing. If you don't know about correctnes you didn't find a correct algorithm.

      Doing a formal proof is cumbersome but proportional in time to finding a correct algorithm.

    6. Re:Not entirely new... by maxwell+demon · · Score: 2, Informative

      Of course, you'll then have to prove that the program generated proof is correct (because the proof generating program could be buggy as well). And if you do that with a proof checking program as well, you must prove that the proof checking program is correct. Not only at the source code level, but the actual running code on the actual machine (because it could be translated by a buggy compiler, or be running on a buggy processor).

      --
      The Tao of math: The numbers you can count are not the real numbers.
    7. Re:Not entirely new... by cperciva · · Score: 1

      What do you mean by saying "I offer a guarantee that my code operates as specified"?

      I'm not doing this yet, but what it will mean is "report a bug, earn some money". And also "report a security-related bug, earn a lot more money".

    8. Re:Not entirely new... by Just+Some+Guy · · Score: 1
      Now, this is a rather vague guarantee, since the task of deciding if a reported problem is a security flaw lies with Dan Bernstein himself; but it's a start.

      DJB is an asshat. From his guarantee page:

      In May 2005, Georgi Guninski claimed that some potential 64-bit portability problems allowed a ``remote exploit in qmail-smtpd.'' This claim is denied. Nobody gives gigabytes of memory to each qmail-smtpd process, so there is no problem with qmail's assumption that allocated array lengths fit comfortably into 32 bits.

      In other words, "as long as you don't use this software in ways I didn't envision, it is secure." Well, no kidding! By that standard, Windows is mostly secure too, because nobody would ever try to run a .exe file from Outlook Express - that would be silly!

      DJB's guarantee is worth the paper it's printed on (note: applies only to electronic formats; real paper may have value) since he will never, ever admit that a bug actually exists. It's much more fun to posture and claim that your competitors old releases were buggy than to fix your own problems.

      --
      Dewey, what part of this looks like authorities should be involved?
    9. Re:Not entirely new... by cperciva · · Score: 1

      DJB is an asshat... "as long as you don't use this software in ways I didn't envision, it is secure."

      As I said, his guarantee is rather vague. A guarantee of this sort should explicitly state under which conditions the guarantee applies.

    10. Re:Not entirely new... by cperciva · · Score: 1

      For those readers out there who haven't done this in class: proving correctness is hard. Insanely hard.

      That depends upon how you define "prove". Do you need to prove that your proof-verification code is correct? Do you need to prove that your compiler works? Do you need to prove that the CPU doesn't have any bugs?

      If you make useful assumptions, proofs of correctness aren't too hard. In the numerical code I write, I routinely prove algorithmic correctness and floating-point rounding error bounds; it would be entirely impractical to prove such things using Hoare logic, but it is also entirely unnecessary.

    11. Re:Not entirely new... by Fruit · · Score: 1

      I'm guessing that simply writing out those assumptions is going to do wonders for the security of your program. Incorrect assumptions are the bane of software correctness, as djb found out :)

    12. Re:Not entirely new... by deblau · · Score: 1
      First, I wasn't suggesting proof-verification code, I was suggesting proof that any mathematician or computer scientist could verify manually. There are tools that automate such checks, and if you assume that they have been proved to work correctly (bootstrapping anyone?), then you're fine. Second, I don't need to prove anything about compilers, since that's an implementation detail, and doesn't go to the correctness of the algorithm. If you want to be concrete and use C as your implementation language, that's fine, but you don't have to prove that C is correct. Third, the CPU is again an implementation detail. You only have to prove that your code would run correctly on an "ideal computer". The problem of proving algorithm correctness is different from proving that an algorithm will run correctly on any given hardware. A careful reading of my prior post will show that I only addressed the former problem. The latter is, IMHO, a problem for hardware engineers, and outside my area of expertise.

      Assumptions have no place in program correctness proofs, save those given by the spec. They're useful as hell in implementation, but that doesn't affect whether the code correctly follows the spec. If the spec is wrong, then that's a GIGO problem, not a correctness problem. The parent post demanded correctness, and that what I was talking about.

      --
      This post expresses my opinion, not that of my employer. And yes, IAAL.
    13. Re:Not entirely new... by cperciva · · Score: 1

      Assumptions have no place in program correctness proofs, save those given by the spec.

      True, in a sense, but also backwards. The specification should document all the assumptions made.

      The parent post demanded correctness, and that what I was talking about.

      My post demanded that code operated as specified, not that the specification was written first. In some cases that is necessary, but in most cases it is enough if the limitations of the code are documented, so that users will know how they should or should not use it.

  34. Remeber IEFBR14 by sk999 · · Score: 5, Informative

    Making bug-free software is much harder than anyone can imagine.

    Let us not forget the very modest program IEFBR14 - arguably the shortest
    program ever written for use in a production environment. It ran on IBM's
    System/360. (I rans it many times myself.) Its sole function was to
    exit - nothing else. It was a whopping one machine instruction long - 2
    bytes. It was even Open Source (BR14 is the assembly language version of
    the instruction, which is the standard way programs exited). It was the
    simplest possible program that one could write. If ever there was a
    program that was going to be bug-free this was it!

    It had a bug.

    When a program exits on OS/360, it is expected to have set some bits to
    indicate any errors. When a program is called, those bits are in an
    unpredictable state. IEFBR14 had to be modified (doubling its length) to
    clear the bits first.

    Sigh...

    1. Re:Remeber IEFBR14 by Yojimbo-San · · Score: 3, Informative

      Remember IEFBR14 ... which didn't have the bug described in any released version of MVS or OS.

      It's a lovely story of course :-) but not true.

      I just updated wikipedia with the counterclaim ...

      http://www.miketaylor.org.uk/tech/oreilly/more-ief br14.html

      --
      Quick wafting zephyrs vex bold Jim
  35. It's not worth the price by autopr0n · · Score: 3, Interesting

    When I ran Autopr0n, hooo... that code was awful. But there really was never any kind of economic incentive to fix it, I could just keep restarting my JVM (the thing was coded in java).

    Or, look at metafilter.com. That site goes down like a $2 hooker, yet it's so successful that the maintainer was able to quit his day job and support himself based on the site. People don't care.

    Even when you get to a desktop OS back in the '90s, quality just wasn't that important. Would you rather pay $10,000 for an OS, or $90 and loose work once in a while.

    If the cost of the lost work due to software errors is less then the cost of writing the code so that it works perfectly, then it's not worth doing. Sure, for some programmers there's not a tradeoff, but those programmers probably cost a lot more to pay then 90% of the coders out there (who are idiots, IMO, just look at the existence and popularity of Visual Basic).

    When the cost of the error increases, you'll find much more stable software (like on medical equipment, airplanes, and so on).

    The secretaries spreadsheet just ain't mission critical.

    Of course, now that all computers are connected together, they need to be at least secure and not targets for worms and trogens, etc. I predict that we move towards web services, the software quality will get worse and worse, but people will just pay a sysadmin to sit there and reboot the machine whenever it goes down, so people won't notice everything...

    --
    autopr0n is like, down and stuff.
    1. Re:It's not worth the price by grcumb · · Score: 1

      "Even when you get to a desktop OS back in the '90s, quality just wasn't that important. Would you rather pay $10,000 for an OS, or $90 and loose work once in a while."

      I'm surprised that this contention doesn't get challenged more. The implication in that statement seems to be that truly robust software would be prohibitively expensive. But consider the income of the top-selling OS maker in the world today. What cost per unit would be reasonable for it to incur in order to write good software?

      I'm really not a mathematician, but I am quite certain that there is enough money in the market to justify the creation of a truly decent QA process. Let's take software-related profits of somewhere near a billion dollars a month, subtract the proportion that is eaten by the production and distribution of physical media, take away the dollars that go to other business units, and see what we have left. I won't speculate on the dollar amount, but I will suggest that it's big - in excess of, say, 1 billion per annum.

      Economists and business analysts would no doubt observe that there are a great many hidden costs - management and administrative overhead, pension plans, etc. Others will remind us that there exists a duty to generate profit for the shareholders. The list goes on, and the number gets whittled down to, say a mere... what? Let's assume that only 25% of revenues are even theoretically usable for software development. That would make the imaginary number somewhere in the ballpark of 250 million dollars per year.

      Yet the suggestion is that a budget on this scale is not enough to pay for a warrantable, largely bug-free OS.

      I find this line of reason highly suspect, personally.

      There are any number of things that agitate against warrantable software, but I have the feeling that cost is not nearly the factor that some present it to be.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    2. Re:It's not worth the price by Anonymous Coward · · Score: 0

      "The secretaries spreadsheet just ain't mission critical."

      They are in lots of places where inhouse excel/VBA apps are used to manipulate processes where each errors costs X00000$ cash.

      Most current managers/buyers are clueless enough to buy such systems. I'm sorry but unregulated free market is just a terrible thing when buyers have no clue about what they are buying.

      The "free market" is not a magic pill. I'm sure like everyone else you've been asked one day to buy a present in a category you had absolutely no clue about. It was hell wasn't it ? Just imagine how much worse it would have been if all the sellers of this kind of present had agreed between themselves to lie through their teeths to customers because there were no regulations/liability levels.

  36. Good License for Liability? by xfmr_expert · · Score: 1

    This is an issue that I have tried to find a decent answer to. I have some engineering software that I wrote (or will write) and want to release as open source. There's no real money in it, and if I had to support paying customers, fagghetaboutit. I've been around it long enough to know that a) you can't reasonably develop bug free software of anything more than moderate complexity and b) there's still the chance that someone does something stupid (garbage in, garbage out). With current product liability laws, I would be on the hook if something went wrong. Now, I'm not talking about software where a bug causes someone to lose an hours work, but software where a bug could possibly result in the loss of multi-million dollar equipment. Even though I'm giving it away, I could be sued into oblivion if some schmuck uses it and screws up. My big question is this: Is there an open-source license that effectively limits product liability? They all more or less have clauses, but I'm not all that sure they hold water. Anyone know anything about this?

    1. Re:Good License for Liability? by Lehk228 · · Score: 1

      software product liability doesn't exist currently, don't worry about it unless the law changes (which would be huge news on slashdot)

      --
      Snowden and Manning are heroes.
  37. The guy is smoking crack by Anonymous Coward · · Score: 0

    "The companies writing the large systems usually have contracts which mean they are liable for damages, and this increases both the cost and the reliability of the resulting programs."

    Usually??? Liable for damages? I've done a lot of consulting working on contracts and it's a standard procedure to disclaim or SEVERELY limit all liabilities. Otherwise, you'll be out of business pretty soon: e.g. deliver $1M of software and have a couple of trades go wrong with damages of $50M due to some rarely used and poorly tested branch of the algorithm.

    Seriously, can someone point to even one example where a software development company (with exception, perhaps, of medical/life support and nuclear industries) would accept liability for damages?

  38. yeah-Computer Snafus by Anonymous Coward · · Score: 0

    Well here's a question, Mr Informative. Have we reached the "point of diminishing returns"? Why bring up a point, that we haven't even gotten close to yet? In fact, after reading this. I'd say that we have a long way to go.

    1. Re:yeah-Computer Snafus by jomynow · · Score: 1

      r u selln that boOK? cause im waiting for the softcore.

      --
      http://omgwtfmedia.blogspot.com/
  39. Zero defect is attainable... by rayh911 · · Score: 1
    It has been 5 years since my last venture into commercial software. Over the course of 3 years we sold our software internationally and recorded 3 bugs that actually made it into public code. Yes, it took a great deal of effort, and yes, it required even more discipline.

    Our marketer continually pressed to release feature code before it was completely tested. Our QA enforced zero defect and full regression testing on all releases. Where it paid off was in user support, we charged a resonable maintenance fee for suppport that we never had to provide because the software was fully documented and tested. Our support staff was a guy with a pager, who answered calls 24/7 for software that was sold on 5 continents around the world.

    Our software was squashed by our marketer in the end because we would not relinquish control of our source code. So our marketer killed our software business. The problem with software is marketing and the lack of commitment to quality.

    Because of the nature of our software, we had 5 major releases including Beta over the 3 years, not to mention interim feature updates. Again, only 3 public user impacting bugs. Our focus on quality minimized our need for support.

    As I said to begin, zero defect quality software is attainable, but it requires discipline and the strength of will to resist the marketer. I hope that I will again get the opportunity to prove it.

    1. Re:Zero defect is attainable... by Anonymous Coward · · Score: 0

      It wasn't attainable for you. You just stated it had 3 bugs in it...

    2. Re:Zero defect is attainable... by Detritus · · Score: 1

      Why did the marketer demand the source code?

      --
      Mea navis aericumbens anguillis abundat
    3. Re:Zero defect is attainable... by rayh911 · · Score: 1

      You miss the point. 3 bugs in an industry where the same software would have succeeded with thousands. Statistical zero defects. In addition, all 3 were fix in less than a week.

    4. Re:Zero defect is attainable... by rayh911 · · Score: 1

      The marketer also sold their own product that lacked the features that our software delivered. They wanted to buy our source for the price of one license, so they could integrate it into their product. In addition, they wanted control over the source, so that they could decide when the a release was done, as opposed to us telling them when they could promise the next release.

  40. Word Watch: "Unsustainable" by The+Famous+Brett+Wat · · Score: 2, Insightful

    unsustainable - (adj.) 1. Following a pattern which can not continue indefinitely due to the inherent limitations of the system. "Present growth is unsustainable in the long term." 2. A term expressing distaste, annoyance, and a personal desire to change things. "The current situation is unsustainable."

    --
    proof, n. A demonstration that a conclusion is implied by certain premises and axioms.
  41. Some potential bugs I found. by Anonymous Coward · · Score: 2, Funny

    There has been a lot of discussion about my call for software liability in a column entitled Whose fault is it anyway?, and it shows that this is an issue which needs some serious attention.

    "it" is an unclear variable reference. Does the pronoun "it" refer to the call for software liabilty or the column itself? Also, the title of the column should be italicized, underlined, or capitalized for clarity. Finally, the phrase "a lot" is depreciated.

    There is also a big difference between consumer software like word processors and web browsers, and the massive information systems used internally in large companies.

    Syntax error. No comma is needed after "browsers".

    The companies writing the large systems usually have contracts which mean they are liable for damages, and this increases both the cost and the reliability of the resulting programs.

    Syntax error: a comma should proceed a "which" as discussed in rule 11.

    Many readers commented on the difference between free/open source software and commercial software when it comes to guarantees, and criticised my use of the licence for the Firefox browser as an example.

    Syntax error: no comma is needed after guarantees.

    something that is paid for

    Better: "something for which one pays"

    But liability for consequential damage is different from guarantees of proper working.

    Awk. Please unobfuscate this sentence.

    Cars are a good example here. Motor vehicles have to be safe, and there are rules and regulations governing their development and production which, by and large, keep the roads safe from exploding cars. It does not stop accidents caused by driver error or poor maintenance, but it does make us safer.

    Again, confusing pronoun reference. The "it" in the second sentence seems to refer to "rules and regulations". If this was the intent, please correct to "they" as this could cause unexpected results.

    And if a group of people build their own cars then they have to follow those same rules in order to be allowed to use public roads, even if they gave their cars away.

    The second variable "they" above refers to "group" not "people", which is singular. This sentence could be further optimized. Suggestion: "If a group built their own cars, it would still have to follow those same rules to use public roads, even if it gave the cars away."

    It should be the same for software

    Uninitialized variable. What is "it"? Please specify.

    It is possible to make error-free code, or at least to get a lot closer to it than we do at the moment, but it takes time and effort. Doing it...

    Overuse of "it". Please be more explicit in your casting.

    Bill, please check your fixes as soon as possible before someone gets the idea to sue. Thanks. /sarcasm

  42. Re:author is obviously unfamiliar with free softwa by Xugumad · · Score: 4, Insightful

    And you get modded down. Genius.

    Seriously here people, most free software is complete tripe. The popular projects you hear about, Linux, Firefox, etc. are just a small fraction of what's out there. Peer review only works if people are interested in your project.

    Open source tends to be written by/for people who care more about stability than features, and that's a major help, but it is not miraculously better. How many people here have actually sat down, and looked over the source of an open source project to check for bugs/exploits?

  43. Insects in software are a given by Anonymous Coward · · Score: 0

    "For now, given the languages software is commonly written in these days."

    And what language would you recommend?

    1. Re:Insects in software are a given by hattig · · Score: 1

      None of them (to my knowledge)! I'm just saying that languages these days are, to varying extents, not stopping the creation of bugs up front. Specification, Verification and Exhaustive Implementation Testing aren't integral. Some have optional features that aid certain aspects (e.g., JUnit with Java) and a decent software house will have their own systems as well, but AFAIK there is no language that integrates all aspects of software engineering into its create-build-test-deploy process.

      Are they required for your average desktop application? Certainly Not. _Requiring_ that all software have this (by way of legislating overbearing liability regulations) would increase costs by what? 10x? 100x? How many software programmers are good enough to formally specify and verify all aspects of a design and implementation? The job market will be good for those of us with the skill and ability ...

      What we have now is reasonable. If you need near-bug-free software than you can opt to pay 100x more for it, and then get a contact with liability assigned to the creators - and probably then to merely get same-hour attention applied to flaws, rather than for costs. Maybe if some software is totally flawed the law should get it completely removed and refunded as a dud. Totally flawed is not 'I couldn't get it to work', it is 'Thousands of users reported data loss'.

  44. Who is this stupid f***er? by wcrowe · · Score: 0, Troll

    Has he even ever written a program in his life? Idiot.

    --
    Proverbs 21:19
    1. Re:Who is this stupid f***er? by Anonymous Coward · · Score: 0

      He worked at a software engineer for years and has a Masters Degree in CS

    2. Re:Who is this stupid f***er? by wcrowe · · Score: 1

      I see. So he's just an ass, who has deluded himself into thinking that all his programs are perfect.

      --
      Proverbs 21:19
  45. What he fails to see by CaroKann · · Score: 1
    I think he fails to see that, for most companies, new software products are viewed more like a new flavor of toothpaste than a new bridge. The competition is too fierce, the schedules too tight, to allow for the due diligence needed to properly develop stable software.

    Of course, I am being a little facetious, but the pressure to reach the market is simply too great to allow for stable software development.

    1. Re:What he fails to see by Lehk228 · · Score: 1

      for some reason many companies also seem to be regularly buying dogshit flavored toothpaste

      --
      Snowden and Manning are heroes.
  46. Auditing and openness by cicho · · Score: 2, Insightful

    Okay, so we've had the predictable reponses about how building software is different from building bridges, and then others point to the respective difference in cost. All true. But if bridges and buildings are so much more reliable than software, it's not only because they cost more. It's also because when they are designed and built, all procedures must conform to known standards (and not a few regulations). The specs are open and auditable, and architects actually have their work inspected all the way.

    Should every word processor be built in this way, with open specifications, norms and audits? I don't know. Now how about vote-tallying software?

    --
    "Only the small secrets need to be protected. The big ones are kept secret by public incredulity." - Marshall McLuhan
  47. Good software costs by Angst+Badger · · Score: 5, Interesting

    First off, I should issue a disclaimer that I'm an oldbie. I started programming in assembly language on punch cards, but no, this isn't going to be a rant about youngsters and their newfangled languages. (At least it better not be; my current job has me living, breathing, and eating PHP.)

    The problem with bad software today -- just like it was thirty years ago -- is bad engineering. It's not because of the methodology du jour (or its absence), licensing, choice of language, or toolsets. You can write brilliant, bug-free, efficient software in COBOL using the basic procedural structured programming paradigm. You can write awful, buggy, resource-hungry software in object-oriented Java using XP. None of that shit matters.

    Good engineering requires, among other things, a detailed understanding of the problem, thorough planning, the sheer experience required to distinguish between the clever and overcomplicated on one hand, and the lucid and elegant on the other, excellent communication between developers, foresight (also borne of experience), and rigorous debugging. All of these things, including the many other prerequisites not mentioned, require lots of time and effort. Too much time and effort, in fact, for most commercial software outfits to invest and still turn a profit.

    That's the rub, really. All the methodology and language fads aside, the basic principles of good software engineering were worked out decades ago, and sometimes further -- good generic engineering practices in the abstract were worked out long before we harnessed electricity. It all comes down to this: the more time, effort, and care you put into a product, all other things being equal, the better the product will be. It's easy (and well-deserved) to mock Microsoft for the shoddiness of their major products, but that very shoddiness is why you can buy MS Word for less than ten grand. If MS built word processors the way engineers built the Golden Gate Bridge, the prices would be comparable.

    The market does not reward that kind of quality. In the first place, no one is willing to pay thousands of dollars for a supremely excellent product when one that is good enough can be had for a couple hundred. Most folks couldn't afford that kind of software engineering even if they wanted it. In the second place, once you have the perfect all-in-one software package, why would you ever buy another one? Microsoft is in this position already with its good-enough products. No one needs an upgrade, so remaining profitable requires MS to churn out new versions of its increasingly resource-intensive operating system so that you at least have to buy new copies as you replace your older machines.

    FOSS is at least theoretically invulnerable to these pressures. In theory, there will eventually be all-singing all-dancing FOSS packages covering all of the major software categories, and the age of commercial mass-market software will be at an end. I've been waiting for this day to come since well before the first release of Linux. I'm surprised that it hasn't come yet. I'm surprised that the majority of FOSS software is still as buggy, poorly designed, and -- almost without exception -- undocumented as its commercial equivalents.

    I suppose I shouldn't be surprised. Excellence in software engineering is like excellence in any other field: it's really fucking hard. It's even harder when you have a day job; time constraints aside, after 8-12 hours coding at work, the last thing many developers want to look at when they get home is compiler output. Many of the remainder are either amateurs or students -- not to diss either category, but often the necessary experience is lacking, and the lone hacker often lacks the knowledge or the inclination to produce code that's easy for other developers to work with. I remain confident that we'll get there, though. (I am less confident that I will still care by then, but it will still be a boon to those who live to see that day.) I am equally certain, for the reasons

    --
    Proud member of the Weirdo-American community.
    1. Re:Good software costs by convolvatron · · Score: 1

      this is not true. its not really fucking hard. you just have
      to have sufficient time and not be so lazy. it
      make take 4 times what you normally think, and be boring as
      all hell, but its totally possible.

      let this be a lesson to all of you free marketeers..you know,
      the invisible hand. here is a whole population of lazy whiny
      bastards who provide almost no intrinsic value to anyone and
      get paid more than most.

    2. Re:Good software costs by Totally_Lost · · Score: 2, Interesting

      There is something of a chicken and egg problem here. Good software can be produced in volume, but good software can not compete after cheap trash software consumes all the dollars (or available labor) in the market by first to ship. Both in commercial and open source markets.

    3. Re:Good software costs by Tjp($)pjT · · Score: 2, Insightful

      People won't pay to develop good code. Period. There is no demand for perfection. I was part of a three man team that wrote a prototype media viewer for early release movie content. We provided the backend encrypter application and ancillary libraries under license. Our "proof of concept" was finished in 8 weeks and was so successful that we had our code in live in air airline flight tests with real customers. Awesome work. Very stable. The encrypter application we wrote had a few issues with some non-standard compliant streams from a common encoder suite, which we didn't write. We charged T&M to fly an engineer to the content providers location (they don't like to ship unencrypted media for obvious reasons, and we wanted to do side by side compares for the streams to debug the problem). They already signed off on the PROTOTYPE delivery. They balked at us billing for the post delivery work and turned us down for the follow up contract. The fee schedule for post delivery work was a part of the original contracts. Needless to say they aren't in that business anymore and sold the division in question.

      So far our original code for the prototype remains with no bugs outstanding. They just can't encrypt all the possible movie bitstreams they'd like. The same team put an applications development framework together in 3 months of very long days with very few bugs against it. A lot of those are documentation related. The relevant company no longer is selling anything but intellectual property now, but the last code shipped was very solid. about 70,000 lines of code and about 15 total real bugs.

      My point is that no matter how good the engineers, there is a cost in time for projects you are passionate about, and a cost in real dollars for real engineers with appropriate architecture and development skills. Most companies don't want ot spend the money. If customers would pay more money for products then companies would pay more to develop them. Customers drive the price structure, and that drives the expenses a company will invest to develop the product. Add to that that a "bandage" patch is cheaper in current dollars that a major rewrite and you end up with large commercial products that are bandages on bandages on bandages. Refactor the code and it will almost always improve if the requirements and specifications changed since inception. Few companies will start a side development group to redesign and rewrite an existing product.

      The articles author can just start a grass roots movement to drive the marketplace to only purchase warranteed bug free software. I don't predict success.

      --
      - Tjp

      I am in wallow with my inner money grubbing capitalistic pig. ... Oink!

    4. Re:Good software costs by Maxo-Texas · · Score: 1

      Four times???

      Once the project gets sufficiently large and complex, it takes more time than one person has in their entire life. And it still won't be perfect.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    5. Re:Good software costs by stretch0611 · · Score: 3, Interesting

      Excellent, I agree with you. I also consider myself an oldbie. (20 years of programming, 12 years being paid for it) Fortunately in the early years I had a teacher that actually emphasize design and comments.

      Unfortunately the environment in the business world today prevents truly bug-free programming. A lot needs to change:

      1 - Fire all the programmers and developers that can't program. We all know which ones in the group fit into this category. Unfortunately our bosses don't know. They're the ones that cause the majority of the bugs. They came into the industry just for money (pre-2000 bust) and they have no real feel for programming yet they know how to email the boss. Keep the ones that are naturals. The real code warriors. The good ones know when to code new source, when to copy old source, and how to clean up old source when they copy it into their new modules.

      2 - Get rid of the bosses that don't know tech people. (i.e. the ones that don't know the difference from #1 above) The boss doesn't need to know tech (it does help) but they do need to know their people. They also need to know how to keep office politics and beauracracy away from their people.

      3 - Get rid of separate New Development and Maintenance groups. People will code better when they know they will have to fix their own code when it goes into production. They will care more about stability instead of features. Also, a programmer learns the difference between good and bad coding techniques when they are forced to maintain both.

      4 - After the requirements are requested and the specs/design is created don't let users change them. I can't change everything just because a user changes their mind. If I have to change, the release date is pushed back as if I just started the design today. I can't complete a program until you are done knowing what you want it to do.

      5 - Procedural vs. Object Orientated programming. The huge developement debate. I admit I am biased toward Procedural programming. However, you should use whatever works better for your project. A GUI works better when you design using OOP, but when you need to crunch numbers on 10 million records procedural will work a lot better. I know a lot has been said about the poor code quality of OOP in particular, but if you get rid of the idiots in #1, the logic should be easy to follow.

      6 - KISS - Keep It Simple Stupid - I used to work with someone very intelligent, but his code was terrible. He would program elaborate functions just to add two numbers together. My honest belief is that he tried to impress us with his "coding ability." If someone needs a simple program give them a simple program, don't redesign the wheel.

      7 - Shoot and KILL everyone that sponsors or participates in a unreadable source code competition. (sorry personal peeve) We need to promote legible code with indenting and good, clear, and relevant variable naming.

      8 - Quality. CMM, ISO, TQI. These are nothing more than BULLSH!T. While there some occasional insights coming from these "Quality" initiatives I disagree with most of the methods. Commenting and documenting your code is a good thing. Unfortunately, most of this initiatives are nothing more than feelgood bs for clueless management.

      9 - Admins and Tech Writers. Hire all the good ones back. The improve our ability to code by letting us use admins to do the less technical aspects of our jobs. Their hourly cost is less than ours and by offloading some of our work to them we have more time to develop the system that managent wants done yesterday. This creates more cost effective development even though it raises headcount.

      10 - Pay. Simple answer. You get what you pay for. If you offer good pay for good programmers you will get good code in return provided your managers need know their programmers (see #2 above)

      11 - Overtime. Don't do it. An overworked, stressed developer is a poor quality developer. A little OT before a release isn't terrible, but 50+ hour weeks for months on end will cause poor code. Also, if a little OT before a release happens, compensate the developer with pay or comp time to make them happy.

      12 - TEST TEST TEST TEST TEST TEST. Then test some more. Make sure your users test also. This is the most important step.

      --
      Looking for a job?
      Want your resume written professionally?
      DON'T USE TUNAREZ!!!
    6. Re:Good software costs by zrq · · Score: 1

      It is also not that hard to write short paragraph that conforms to the rules of English grammar.

      This is not true. It is not really fucking hard. You just have to have sufficient time and not be so lazy. It may take 4 times what you normally think, and be boring as all hell, but its totally possible.

      Note - I'm not complaining about the grammar, or lack of, in your post. I am just pointing out that you seem to have considered what you had 'good enough' to get the point across.

      I agree with you, it is possible to check all of the details are correct, it just takes time and attention to detail.

    7. Re:Good software costs by maxwell+demon · · Score: 1
      4 - After the requirements are requested and the specs/design is created don't let users change them. I can't change everything just because a user changes their mind. If I have to change, the release date is pushed back as if I just started the design today. I can't complete a program until you are done knowing what you want it to do.

      I'd say as an absolute, this is a sure way to get out of business.
      Imagine, you're an architect, and after the house is half-built, the customer asks for a change. Now, how would you react? Surely not with "sorry, the design has been fixed, I won't change it now!" Instead you probably would first check if it changes anything which exists yet (for example, if you are currently building the basement, and the customer asks for a small change of some window at the second floor, it would be plain silly to reject the change just for princpiple, or demand more time for that change; OTOH if the building is almost finished, and the customer tells you he would like to increase the ground area a bit, you'd of course tell him that it's not doable with reasonable effort). And then, you'd check how much it will change it (if he asks e.g. just for a second power outlet besides an existing one, there's no reason not to do it, but if he asks for a complete redesign of the ground plan, you'll of course reject it or basically demand a restart and covering of all the additional costs).
      --
      The Tao of math: The numbers you can count are not the real numbers.
    8. Re:Good software costs by stretch0611 · · Score: 1

      4 - After the requirements are requested and the specs/design is created don't let users change them.

      I'd say as an absolute, this is a sure way to get out of business.

      I admit that his can be a little extreme; but if we are looking to keep bugs out of code it can be a necessity.

      In your example, you talk about building a house. While adding an outlet is generally a simple thing and it may be easy to modify the floorplan for this; The builders will still need to make sure that the electrical system they planned for the house can handle the extra output (possibly having to replace it if not), they will need to check that the new plans are still up to code for the local housing regulations, and they will still need to run new wire to the outlet. Running the new wire is A LOT EASIER if the interior wall are not already in place, and if the house is half built, some walls may alreay be in place. This is need for adding a few simple outlets; think of how this is multiplied

      --
      Looking for a job?
      Want your resume written professionally?
      DON'T USE TUNAREZ!!!
  48. So you assume everyone can write code? by xswl0931 · · Score: 3, Insightful

    You mistakenly assume that just because someone is given the source code, they are capable of understanding it and making fixes. If your refrigerator manufacturer gives you the blue prints to the frig, does that mean they aren't liable if something goes wrong? Software shouldn't be treated any different than any other product. If there is a safety issue, then the manufacturer should be required to provide a fix. Source code or not shouldn't have any effect.

    1. Re:So you assume everyone can write code? by compm375 · · Score: 1

      If someone gave me a refrigerator for free I wouldn't care that much if it stopped working in a month. Sure I could pay for a refrigerator and get a warranty, but in the same way I could buy a support license.

    2. Re:So you assume everyone can write code? by xswl0931 · · Score: 4, Funny

      If someone gave you a free frig and it ends up burning your house down, I guess you would still find that acceptable.

    3. Re:So you assume everyone can write code? by tedmg09130913 · · Score: 1

      What do you mean by required to provide a fix? Most open source authors are working on their programs in their spare time. typically when they don't have to work their regular job or when they don't have some thing else to do. They often don't make a lot of money from their open source hobby programs; so why should they be required to work harder on their programs to make them secure? Your stupid statement about being required to provide a fix might mean the end for a lot of open source authors.

    4. Re:So you assume everyone can write code? by ozmanjusri · · Score: 1

      You mistakenly assume that just because someone is given the source code, they are capable of understanding it and making fixes.

      And you mistakenly assume that when someone is given the source code, they are incapable of hirng someone to understand it and make fixes.

      Oddly enough your example reminds me of a site I returned to last year. In 1987, one of the first commercial programs I ever wrote was a controller for refrigerators in a meat packing factory. It was relatively simple, based on increasing cooling depending on the operator entering how much meat was added or removed from each of the refrigerators. At the time, I'd written the program, tested and revised it over the course of several months. The client paid by the hour and called whenever the program didn't do what they wanted it to. Eventally, the calls stopped and I forgot about that job.

      I went back there last year for a completely unrelated purpose and had a look at the old controller. Wedged behind it was the original 5 1/4" floppy I'd been delivering the revisions (and the source code) of the software.

      --
      "I've got more toys than Teruhisa Kitahara."
    5. Re:So you assume everyone can write code? by Peter+La+Casse · · Score: 1
      That's why you have off-site backups of your belongings and family.

      And insurance. "Honey, this ginormous HDTV monitor will never replace you in my heart. But it's gonna try."

  49. why not get third party insurance? by belmolis · · Score: 1

    I don't think that we can simply say that the market has decided against software vendors accepting liability. Part of the problem is that so much software comes from Microsoft, which has refused to assume liability for its software. A company that tried to distinguish itself by selling a product that competed with Microsoft at a higher price in return for better quality assurance and a real warranty would probably not survive, not because people didn't like less buggy software with a warranty bug because of Microsoft's near monopology power.

    It seems to me that a better approach would be for insurance companies to sell third-party insurance. They could test the software themselves, to whatever degree of rigor they considered appropriate, for whatever kinds of bugs they and their customers considered important.

    This would have several advantages. First, it would not favor rich software vendors over poor ones, commercial products over free software. The insurers would evaluate the software and would set their premiums in accordance with their evaluation. The fact that the producer lacked the ability to stand behind a warranty would be irrelvant. If the software was of high quality, the insurance company would decide that it was not taking on a large risk by insuring it.

    Another advantage is that software users could negotiate appropriate amounts of insurance at appropriate rates with the insurance company. One problem with asking the software producer to stand behind it is that users may have a vast range of uses and bugs may have vastly different consequences for different users. If a program crashing just means you have to go to Kinkos to make a poster or a greeting card, the damage is minor. If a security flaw reveals your company's strategy to a competitor it may cost you millions of dollars. Customizing the warranty that the producer gives to the customer is impossible outside of very specialized niches, but this is the sort of thing that insurance companies do all the time.

  50. Re:author is obviously unfamiliar with free softwa by Anonymous Coward · · Score: 0

    ANY software is better off if more people have access to the source, and have an interest in the use or improvement of the software. Just source access is needed for this. Look at JIRA by atlassian for example, or one of the thousands of other commercial software that allow source access (java for example).

    99.9% of open source software is buggy rubbish. Just look at the sourceforge graveyard. The best projects have lots of users with a vested interest in the projects success (see linux, gnu, mysql, perl etc). This allows many people to inspect and improve.

    Open source per se has nothing to do with it - nor does commercial software. Its the people who have access to the source, whether it be companies or the public that determine the quality, not the license which its distributed with.

  51. Software sucks because... by Jaime2 · · Score: 4, Insightful

    people demand that it sucks.

    Seriously. For nearly every case, if there are two available pieces of software (OSS or not), most people will choose the one that is more feature rich. Sure, those in a mission critical situation or the poor people that get to install and support the software long-term will demand quality and maintainability. But, those people are far outnumbered by the masses that use software casually.

    So, given a limited set of resources, quality will always be just barely up to what people will tolerate. Yes, even in open source software. Example: Mozilla Thunderbird -- They have a feature schedule out right now. About half of the planned features are in the current build. Do you think they'll wait until the code is 99.99999% error free in all situations before comitting time to add features? They have no deadlines, no financial burdens, no one telling them to ship the software. Yet, they will ship it. If they don't, their user base will entirely desert them and switch to a horrible, buggy, alternative (probably Outlook Express). This is simply because people demand cool crap. That's why they buy half the crap they buy, that's why the US has a $250 billion trade deficit with China. We collectively love crap.

  52. There's more to it than just the chaos. by Anonymous Coward · · Score: 0

    "The computer world if full of many variables and I don't see this happening anytime soon, though with recent laws you never know."

    Translation: This computer stuff is too complex. Why didn't I become a dentist instead?*

    *Free hint: The whole process of software development is about the managing of complexity to tame it and create something useful from chaos. And quite frankly we haven't really tried to do so, and in fact work against any efforts to do so in the name of preserving the illusion of programmer power and control.

  53. Anyone can do it... by shmlco · · Score: 1
    Yeah, you can point the finger at management issues, but I say competency is another. Letting anyone and his cousin's brother develop software is another major cog in the wheel.

    Unlike almost every other branch of engineering, software has no accreditation standands or process. Totally unlike, say, those civil engineers who built and designed the bridges we're using as a comparison. You'll notice that the vast majority of those don't fall down after a day's use.

    --
    Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    1. Re:Anyone can do it... by gnasher719 · · Score: 1

      >> Yeah, you can point the finger at management issues, but I say competency is another. Letting anyone and his cousin's brother develop software is another major cog in the wheel.

      Sure, you have to weed out incompetent idiots. But above a certain level, developing bugfree software is just a matter of time and money. I can write bug free code, no problem, at an amazingly slow rate. You want a bug free word processor? No problem. You have two choices: A. Invest thousands and thousands of man years. B. Invest hundreds of man years, getting a word processor with much much less functionality than your most basic word processor has today.

  54. Make liability limit = price of software by quentin_quayle · · Score: 3, Interesting

    Sure, let's have liability. The software must perform substantially as advertised - counting all advertisements, press releases, interviews given by publisher's officers, etc.. But make the amount of damages simply equal the price paid.

    This would keep free-as-in-beer software in the clear. It would also have the side benefit of forcing Microsoft to reveal its OEM prices. :D

    I like the source code as condition of immunity suggestion above too, but it would be futile without a licence like those the FSF approves, which would actually allow you to fix problems without violating copyrights and patents.

  55. Analogy by Bogtha · · Score: 1

    Bugs and security holes can be as simple as a typo - e.g. if (uid = 0) { instead of if (uid == 0) {.

    Now imagine that the BBC could get sued for every typo that made its way into their news articles. Sounds unappealing? That's essentially the standard this clown is holding software developers to.

    --
    Bogtha Bogtha Bogtha
  56. Re:author is obviously unfamiliar with free softwa by Detritus · · Score: 1

    Everyone knew that the Earth was the center of the universe.

    --
    Mea navis aericumbens anguillis abundat
  57. Re:author is obviously unfamiliar with free softwa by twitter · · Score: 4, Insightful
    Seriously here people, most free software is complete tripe. The popular projects you hear about, Linux, Firefox, etc. are just a small fraction of what's out there. Peer review only works if people are interested in your project.

    You realize what you said is true, circular and bad news for commercial software, don't you?

    What you call "tripe" is what the author wanted to get done and what no commercial software vendor would provide. Score one for free software - meeting user needs.

    The "popular" projects do indeed rock and will be better than anything commercial because no firm can match the development effort. Look at the gnu debugger. The last time I checked it had more than 87 authors. Show me a commercial debugger that gets that much attention. That's just one of the thousands of gnu projects that make free software actually work. Score two for free software - in the end, what needs to get done gets done better.

    Finally, you are half right about peer review only working on projects that other people care about. If you can't find a single other person in the world interested in your project you have a rare project indeed and won't find any help. Most people are not so original and will usually find dozens of projects that do something very close to what they want to do. So far, so good, where did you go wrong? When you turned a blind eye to the most popular non free software getting no such help at all. For all your customers can tell it was written by a lone monkey paid in bananas who was forbidden contact with the rest of the world. Final score - free software 3, commercial software zero.

    This message composed and transmitted on a system run with complete tripe that just happens to have more features and run much better than any commercial software available.

    --

    Friends don't help friends install M$ junk.

  58. Yuck! by sk999 · · Score: 0

    Happened to me once as well (regular burgers, but what's the difference). Gaaahh! I smell a class-action suit - sign me up!

  59. Re:author is obviously unfamiliar with free softwa by Derek+Pomery · · Score: 1

    Um. I do. frequently.
    And while yes, the majority of users aren't going to do that, the fact that it is open source enormously simplifies life for those of us who can.
    Under windows I'd just restart it. Maybe reboot.
    Under linux I fire up gdb, try to get a stack trace, poke through the code a bit and e-mail the authour a patch.

    Just because some people don't doesn't mean open source doesn't get a huge win from those who do.
    And I've talked many a user through recompiling in debug mode and providing a stack trace at least.

    --
    -- perl -e'print pack"H*","6e656d6f406d38792e6f7267"' /. ate my old sig. Bastards.
  60. Differences between Physical Items and Software by Tenzen01 · · Score: 1
    I whole-heartedly agree with the article. I am personally very tired of paying for software and getting crap (I don't mind as much when I get it for free, but still).

    It it is interesting all the comparisons being made to physical deivces, such as Cars and iPods. But there are two major differences I see with this:
    1. Not every problem in a physical device warrants a replacement. Sure if it does not power on or bursts into flames (see Xbox power supply) they will take it back and give you a new one.
    2. If the physical product is shoddy or the customer is disatisfied with the quality there are often times options open to fix this. Being that the store takes it back (returns) or you have consumer laws to force the retailer to take it back (e.g. Lemon Law)

    Most often companies provide software upgrades that may fix the problems the consumer is having (analogous to the real-world physical replacement of a product). So in some regards I think software companies are already doing this.
    The problem I see comes in with the lack of accountability in regards to taking returns or providing refunds to those truly disatisfied that don't want a replacement.
  61. Impossible to manage the complexity today by Totally_Lost · · Score: 1

    As an oldie that started programming on tab equipment, IBM 1401's, 360's, Bendix G15's, Nova's, and a number of other long obsolete architectures, the problem is the unconstrained growth of nearly every application. Not just by the size of the application, but the minimum environment to just run "Hello World" in a GUI window.

    Even if a software developer can get an application thru a GOOD Alpha and Beta test, the OS platform will change under it before or just after it goes to market. 30 years ago, when you targeted a vendors OS platform, the critical design concern was forward compatability and portability HAD to be perserved. Today the interactions are so complex, that isn't even an achievable design goal, even though some people try.

    An interesting quote from the 1970's was a well known authors pride in the most difficult problem in managing the feature set of his compiler, was keeping all the good, but unnecessary cruft out. Today, software seldom has controlled complexity management, but rather not only is the kitchen sink tossed in to expand the side by side feature comparison set, but every kitchen sink on the planet. With this kind of pathing and feature competition, complexity spirals out of control, and the ability to regression test effectively is eliminated by the N to the Nth interaction matrix between features.

    Add to that, the problem of library complexity, where everything is a .dll or .so, and you have the perfect example of being able to ship tested code, that since it is NOT statically linked, is very likely not to match field systems after the first "critical" OS update chasing bugs, security flaws, and creaping featurism. You can code around bugs, and sometimes accept them with statically linked code ... that becomes impossible with a dynamic library environment.

    Many difficult to debug code paths are the side effects of resource allocation issues/failures, which do not even show up until the system environment grows on certain platforms to trigger those issues, even though the applicaiton may have been stable on the platform for 5 years.

    RedHat is trying to manage the problem, by forking Linux into a stable release path that doesn't have then entire OS and tool chain changing radically every 3-6 months. And avoid forcing applications developers from rolling new releases every 3-6 months as well. Many custom appliations, and the cost to maintain inhouse software, is driven by this instability of release migration. Even if you manage to stay on a particular MSWin or Linux release for several years to manage this cost, it comes back to bite you in that the migration inbetween gets so large that new off the self software will not support the 2 year old platform, and the coding changes to bring custom software forward and excessive.

    There is a cost, a huge cost in rapid evolution ... and that is unmanagable complexity and the resulting quality issues.

  62. Software IS different by Midnight+Thunder · · Score: 4, Interesting

    I thought about this the other day, asking myself why we can't have the same approach in software development as bridge building, or other engineering disciplines. The difference seems to be that of prototypes. When you build a bridge you create a prototype, test it as much as possible, tweak it where necessary and let the cycle continue until there is a working solution. Once that is done you are ready to build the bridge, based on specifications that in a certain sense are easier to follow than what software does.

    Look at software and ask yourself where that prototype is, that can tweaked reworked until all obvious and so obvious issues have been tested for? You will end up noticing that the prototype and the final product is the same thing. While a bridge can be tested based on a number of complex mathematical formula, I am not so sure that software can be tested in the same way. Software is designed and developed based on a number of philosophies and sometimes these even have to interface with other programs based on other philosophies. Over time the complexity grows to a point where testing it 100% is like trying to predict what the stock market is going to do next week. I would like to give a figure to what we are able to predict, but that I will leave that for someone else, since I am not sure I am qualified to do so.

    At the same time I will say that there are a good number of things for which you can create unit tests for and these help avoid the most obvious issues. The non-obvious issues, based on difficult to reproduce scenarios, variable dependencies are a little trickier.

    Things are also improving thanks to libraries that implement much in the way of reusable code, but here too there is an issue. Imagine that you designed your program to be dependent on libraries x, y and z, and then the user adds libraries that effect the libraries you depend on, how can you predict what is going to happen?

    You will notice that most mission critical systems are designed to have only the most essential features (as compared to desktop software) and are often coded with very precise memory management and sometimes even avoid the pointer type and instead using only primitives. Trying to develop most applications this way would be long and laborious and your users would be complaining that his complex office software doesn't do what (s)he wants (remember they can't agree on what they want), even if it is 99.999% stable.

    I am not saying it is impossible, its just that I have yet to see an approach that is 100% effective and for 100% of cases. Yes I am a software developer, so I do have a certain bias.

    --
    Jumpstart the tartan drive.
    1. Re:Software IS different by Anonymous Coward · · Score: 0

      You will end up noticing that the prototype and the final product is the same thing.

      Sorry, you just destroyed your argument. What you're saying is that you can only do you testing on the actual, final product, which is exactly what you would like to do your testing on. Whenever possible, engineers making physical products will make a first-article prototype exactly like the product they want to deliver, so that they can find the problems. The examples you give, though, all involve a lot of guesswork. Scale models are hard to do when some thing scale linearly and some exponentially (with different exponents). Theory is nice, but the difference between theory and reality is much greater in reality than in theory. Many problems come up between the final design and the end of construction, or after the end of construction, and they are very hard to fix. Programmers can replace the bottom floors of the building after building the floors above them. They can try out the actual program and still go back an change anything or everything.

      I think you've basically got the right attitude, though. There are ways to improve, and we should be taking advantage of them. Perfection is unachieveable, but we should strive for it. Take some responsibility. (I think I may get kicked out of the country for uttering those words these days.)

    2. Re:Software IS different by Anonymous+Brave+Guy · · Score: 2, Interesting

      What you say may be true, but I don't think it's the use of prototypes and up-front planning that separate true engineering fields from software "engineering". Those are merely the processes that have been found to work effectively in other disciplines, and we know many processes that work and many that don't for software development, too.

      I think what really separates engineering from most of today's software development is that in real engineering, you have an engineer. This is a highly trained, experienced, skilled and independently assessed professional, whose sign-off is required before a project can continue regardless of what the bean-counters say, and whose personal reputation is on the line if they sign something off inappropriately. In other words, it gives a veto to the guy who actually knows whether something's going to be crap or not, and that guy has a very strong motivation to use the veto when it's appropriate.

      Now, suppose I were a software engineer in the real engineering sense. Let's say my signature was required before shipping a release from the software project I was supervising, to confirm that reasonable care had been taken to keep the bugs as few and as minor as possible. In all the professional projects I've ever worked on, I can't think of more than a couple I would have approved. How about you?

      The bottom line is that in today's software development world, the business guys can come in and trump the development guys, and frequently do. That's cutting corners in the interests of making more money, pure and simple. It may be the way to run a more successful business in a competitive marketplace, but it's nothing to do with real engineering.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:Software IS different by man_of_mr_e · · Score: 2, Interesting

      You raise an interesting point, however, let's look at how a bridge is built versus how software is built.

      When you build a bridget, an architect designs every detail of that bridge. An engineer ensures that the bridge is structurally sound, and develops the methods used to build it.

      The people that actually BUILD the bridge, are, for all intents and purposes, monkeys. Skilled monkeys, to be sure, but monkey's no less. They do what they're told, and have no "creative input" into the building of the bridge.

      In software, typically everyone working on it has creative input of some kind or another. There are no standardized ways to do the jobs they're told to do, and they often have to engineer their own solutions, and depending on their experience and skill can choose some pretty poor ways to do it.

      Software engineers ARE engineers in every sense of the word, because they're DOING engineering tasks. That doesn't mean their qualified to BE an engineer, they just are by default.

      Until such time as the software can be 100% specified by a qualified engineer, and no creative input is required by the workers, you won't get a well engineered product. In fact, if that were possible, you wouldn't even NEED programmers. The software could be specified, and then other software could build it based on the specifications.

      So, until programmers are no longer needed, you're not going to have well engineered software.

    4. Re:Software IS different by shutdown+-p+now · · Score: 1
      While a bridge can be tested based on a number of complex mathematical formula, I am not so sure that software can be tested in the same way.
      It can, though some programming techniques result in programs that are much harder to be mathematically proven to be working correctly. However, using the appropriate methodology (this includes, among other things, functional programming), you can very well apply mathematical knowledge to prove (not test, but prove!) that your software will indeed work correctly. And furthermore, this process can in many cases be automated.
    5. Re:Software IS different by LordLucless · · Score: 1

      One problem is that engineers building bridges have a much better idea of the parameters they're working in. Commodity software has no such luxury. People's machines vary. There's no way you can test how your product interacts with any combination of the millions of other programs out there. Or how it works with it's target operating system, with every combination of the hundred or so patches and service kits that may or may not be installed on the user's system.Not to mention every combination of hardware devices. Also, despite traditional engineering's complexity, many of its artifacts have very simple functions to fulfill. A bridge, however comples, basically needs to be able to bear the load across it. To test it, you can pile on more and more load and see how well it holds up. The writer for a particular piece of software has no idea how the end user is going to end up using it. Modern software (and things like electronic systems) are much more interactive than other engineered products. Even very complex systems like cars generally have less interactivity than your average computer program. The user inputs into the system are very few - steering, braking, accelerating, gear shifting, filling up the tank. If you were to go to an engineer and ask him to build a bridge but couldn't tell him how long it should be, nor how much traffic it would take, nor the average weight of the traffic, nor the environmental conditions it would be in, nor it's height above the surrounding terrain - that would be a situation more closely paralleled to modern software development.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    6. Re:Software IS different by Anonymous Coward · · Score: 0

      When you're building a bridge, you have a known set of conditions - width, traffic weight, etc, a certain amount of trust in the quality of the components, and the components and tools have been around for a long time and all been tested thoroughly. Occasionally bridge builders run into unforseen problems, such as harmonics from marching soldiers or wind blowing down a canyon, and there is a catastrophic "system failure." So, an axiom: Unforseen conditions _will_ ruin your day. Likewise when that beam you thought was solid turns out to be rusted/rotted in the middle and the family sedan ends up in the drink.

      Now, with software, there is the deadline issue - a pointy-haired boss can see that the bridge isn't finished, and so can all its customers. The PHB can miss or willfully ignore bugs in software, or reasonably hope that the customers will miss them until it's too late.

      Tool & materials - Software development tools (heck, software development MODELS) keep changing, and rapidly. When a student takes a degree in mechanical engineering, almost all of that is still valid information 10 years down the road. Not so with software. There are notable exceptions like the venerable COBOL and FORTRAN, of course, but even they change... And if the tools don't change, the guy in charge can't have that shiny feature he wants. The guys making the tools and materials are struggling with the same problems, so that "beam" holding up your software might indeed be "rusted." (So, for the author of TFA, we could by now be using a rock-solid implementaion of Windows 3.1.x, with no crashes, or we could move on.) For that matter, with software, the very "ground" (CPU, perpherals, other hardware) keeps changing too. Ever see bridge supports just sitting on sand, or are they generally driven down into rock of some sort?

      Changing specs - How often do you hear about a bridge engineer having to double the width of his bridge two weeks before the project deadline? How about someone trying to run a freight train across a bridge designed for pedestrian traffic? I won't go on further, but you get the point. You KNOW this happens with software.

      Ugh, I'm out, for now.

    7. Re:Software IS different by Anonymous+Brave+Guy · · Score: 2, Interesting

      I agree with much of what you say as things stand today, but I think you're making an unstated assumption that this is the only way things can work.

      A lot of programming is donkey work, and requires little more than joining the relevant library code together in the appropriate pattern. IME, the key to getting this right is that you usually need:

      • a small number of very good people at the top of this process, co-ordinating the design;
      • a small number of very good people at the bottom of this process, writing the tools and library code everyone else will use;
      • a large number of code monkeys in between, joining the libraries according to the design.

      It is possible to get much better (faster, safer, whatever) results out of code monkeys by using monkey-friendly tools: look at the success of Java, which is less powerful than many other languages, but provides an effective tool for many average programmers to produce decent quality work, while helping to avoid making average programmer mistakes. However, such a tool is almost certainly the wrong choice for the specialist guys at either end of the plan, who will feel the lack of power and would be less likely to make those classes of programmer error.

      I think the next wave of robust software development will come from realising that these three levels require very different skills and skill levels; very different tools with different balances of power, flexibility, safety, etc.; and in particular, very different proportions of the work force. Not all programmers are equal, and not all developers fall onto a simple scale from "crapware newbie" to "L337 hax0r".

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    8. Re:Software IS different by man_of_mr_e · · Score: 2, Interesting

      While I agree with you that things will not always be this way (I did lay out the criteria I believe will solve the problem), I don't agree that it's possible today.

      When you build a bridge, you need a human to make decisions about various things, but those decisions are based on how to build the bridge, not how the bridge will operate once built. Programmers make decisions every day that effect how the software runs even after it is built.

      A bridge builder might have to decide whether to use a shovel or a backhoe to do something, but once the thing is done, it's the engineers choices that depend on how well the bridge works, not the bridge builders.

      As an example, as a programmer, I have to make decisions about how to build the product to meet the specifications. This would be equivelent to the bridge builder having to decide how to make the steel, or the the composition of the concrete. SOMEONE has to make those decisions, but not the grunt in the trenches. Programmers make those kinds of decisions every day, such as choosing an algorithm that may have O(1) performance, or O(N) performance, or even worse. Maybe they don't even understand O notation and what it signifies.

      Until the basic "pieces" of software are standardized, an engineer cannot fully control how the finished product will function. And once those peieces are standardized, there is no need for a programmer anymore since the computer can just join those pieces based on specifications.

    9. Re:Software IS different by Hognoxious · · Score: 1
      you can very well apply mathematical knowledge to prove (not test, but prove!) that your software will indeed work correctly
      No you can't. You might at a pinch be able to prove that it does what the spec said, though.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    10. Re:Software IS different by ultranova · · Score: 1

      Until such time as the software can be 100% specified by a qualified engineer, and no creative input is required by the workers, you won't get a well engineered product. In fact, if that were possible, you wouldn't even NEED programmers. The software could be specified, and then other software could build it based on the specifications.

      Such specifications are used in software development all the time. They are called "source code".

      If you have the engineer specify every algorithm used, to the point where absolutely no creative input is needed by workers, you have no need for workers. Simply let a compiler take it from there. Of course, software being as complex as it is, that qualified engineer that made the specification has propably made some mistakes, or not tought of every possible situation, so the computer will still encounter situations where the instructions it was given produces wrong (from the perspective of the user using it, but completely faithfull to the specification and therefore right from the computers point of view) results.

      To make a computer program that will never, under any circumstances, give wrong results, all you have to do is include every possible set of circumstances in your specification, and define how the program should behave under any and all of them. Have fun specifying the first billion such set, after that the rest should be a snap :).

      Oh, and of course you will have to convince everyone that whatever behavior you've decided to specify as correct is indeed the right thing to do. That might not be so easy :(.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    11. Re:Software IS different by shutdown+-p+now · · Score: 1
      You might at a pinch be able to prove that it does what the spec said, though.
      Hm, and you have some other definition of 'working correctly' than that?
    12. Re:Software IS different by Anonymous+Brave+Guy · · Score: 1

      I guess my point is that I don't think the code monkeys should be making the key algorithmic decisions. That role falls to the "low-level expert" category in my scheme; the tool-builders should provide suitable tools, in consultation with the high-level experts co-ordinating the design. It is up to them to determine the appropriate key algorithms to use, and to build the dev team's tools and libraries around them. In this way, while you don't quite have standardised key pieces because some or all can be bespoke, what you do have is all the foundations written by the really smart guys. Then the average developers can all benefit from the really smart guys' expertise.

      For example, suppose you've got a database application. You get the best database guy you've got to design the schema, and work out how to provide efficient answers to common queries, which the high-level design guys can help to identify. He wraps it all up in a safe, efficient API, and then the rest of the dev team can build the main application code around it, safe in the knowledge that the API is secure and fast. Scale to fit depending on the size of your application and the number of guys of each type you've got on your team.

      Same goes for mathematical and scientific code: get a few guys who really know their stuff to write your fast, accurate computation algorithms, and then just make sure the main dev team aren't reinventing the wheel in a slower, slightly squarer form.

      Same again for instrument control stuff: the control protocols get written by the best guys in the house, including all the safety checks, error recovery, etc. Then the mainstream guys get to drive the instrument, but only through the interface that won't let you crash the robot arm into the million dollar measurement device, and which is always immediately available to respond to an emergency stop no matter what else is happening.

      IME, this approach could usefully and profitably be applied to just about any software development there is. I'm sure I can't be the first person to think of this, nor will I be the last, but what baffles me is why no-one seems to do it. Given that guys smart enough to fill the two key roles tend to be pretty expensive, and hiring teams full of code monkeys tends to be pretty expensive when the code doesn't work properly, I would have thought even penny-pinching PHBs would have caught on by now, but apparently not...

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    13. Re:Software IS different by Hognoxious · · Score: 1
      Hm, and you have some other definition of 'working correctly' than that?
      The users here sure do! http://www.phoebemoon.com/nite.htm

      Let me put it another way, most of the bugs seem to be in the mind.read() method and the crystalBall module.

      As Brooks said, half the work is debugging the spec. That implies the spec is (at least to start with) wrong, so how meeting a wrong spec can be correct is a bit of a mystery to me, but then maybe you're one of the users here, who knows...

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re:Software IS different by shutdown+-p+now · · Score: 1

      When end users are the ones writing the specs, you can be quite sure the end result won't up to anything. Noone says programmers are the only ones who have some obligations here.

  63. Huh? by Bewbewbew · · Score: 1

    An article in which a BBC correspondent wrote an article? What was that article about, someone else writing another article?

  64. featuritis and make-it-pretty increase costs by davidwr · · Score: 1

    If you want "durable" software, look no further than

    1) mil-spec or life-depends-on-it software like medical devices, nuclear power plants, or aircraft or automobile control systems

    2) embedded systems where throwing in a million features and tying it nicely in a bow is NOT what the customer wants.

    Note that most of #1 are also #2.

    AFAIK the embedded computer in my VCR has never crashed, never needed an upgrade, and never caught a virus. Until a few years ago when they stopped becoming single-function systems, neither did the computers embedded in cell phones. Of course, not being able to run user-installed programs helps :).

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:featuritis and make-it-pretty increase costs by gnasher719 · · Score: 1

      "AFAIK the embedded computer in my VCR has never crashed, never needed an upgrade, and never caught a virus. "

      My first VCR (bought either late '80s or early '90s) has most definitely crashed. I couldn't get it working again until I found the reset button, which was very well hidden and couldn't be pressed without the help of a pen.

  65. BBC Ratings Ploy? by Anonymous Coward · · Score: 0

    I believe we should be doing more to prevent ignorant twits from misguiding people's perceptions about software development. If the BBC has any editorial judgement at all, they should stop giving ignoramuses a podium. Unless they are intentionally trying to start a flamewar, which would, perhaps, drive up ratings. They can count this occasional reader out for a while, though.

  66. Has anyone here heard of D)-178B Level A? by xquark · · Score: 1

    I guess not, this is slashdot, what a stupid question.... :)

    Arash

    --
    Arash Partow's Philosophy: Be a person who knows what they don't know, and not a person who doesn't know.
    1. Re:Has anyone here heard of D)-178B Level A? by Ada_Rules · · Score: 1

      Why no. I am not aware of anything called D)-178B Level A. Tell me, is it some FAA certified approach to software development that prevents typos in subject lines :)

      --
      --- Liberty in our Lifetime
    2. Re:Has anyone here heard of D)-178B Level A? by xquark · · Score: 1

      sure is! :)

      I meant to say DO-178B Level A

      Arash

      --
      Arash Partow's Philosophy: Be a person who knows what they don't know, and not a person who doesn't know.
  67. Resistance to deliberate attack is not "quality" by Anonymous Coward · · Score: 0

    The BBC correspondent writes as though software quality and proper construction were at issue. The problem is not however such, but is that deliberate attacks are being made, and where defenses against such attacks are inadequate, the attacks succeed. The odds of a buffer overflow causing trouble when random inputs are present are astronomical against anything but crashes arising, for example. Therefore software can be, and generally is, designed so that such crashes produce harmless results. A deliberate attack however produces results that statistically "cannot happen". If we were building bridges or office buildings the situation would be like designing so that max observable floods, winds, earthquakes, do no harm, but having the structure fail because someone fires artillery shells at its supporting members. Nobody blames civil engineers when this happens; they blame whoever fired the shells. The best that can be done is akin to designing fortresses. This is an art, changing with time, and offers few to no guarantees; nor has it ever been able to, because the events which must be defended against cannot be statistically predicted (and mostly cannot be otherwise predicted). Yes, designers can design good fortresses which resist most attacks of a given era, and we can build software which resists most attacks. A few OSs out there have earned reputations for doing so (Multics, VMS, MVS, OS/400...) and all but the first still run on current iron. Programs generally, though, are still very hard to design to be proof against attacks, and few places can sustain a culture of paranoia needed to secure the OSs. I too have written and given away scores of programs, and write them to be used with proper care, and generally do not claim they function in hostile environments. The law should recognize that when attacks are done deliberately, the attacker is responsible, and the software author is not unless he has done an attack. At most software authors (esp. corporate) should avoid charges of fraud by making it clear what they can protect against, so that those who want to use houses of straw can ensure they put them up in areas where no big bad wolves live. Buyers however should refuse to buy such software unless they know they can use it safely, and machine vendors who sell pre-installed "straw house" software and anyone who makes it difficult to get machines without it installed, should be liable for whatever damages occur due to their making it less likely that buyers will exercise proper caution.

  68. Narrowminded non-programmers by TheSkepticalOptimist · · Score: 1

    As a programmer, my task is to create a software product, idealy without bugs.

    I can easily create simple, small, concise and streamlined software quickly without any bugs. The problem is, except for skilled computer users, the average person would not like the software I write.

    So, I have to dumb down the software and make it idiot proof. I have to start second guesing the needs of the end user (because no two people expect the software to do the same things), start ensuring they don't enter data out of range (i.e. second guess the data they enter), and all the time guide them down a path that won't let them shoot themselves in the foot because they started using the software without reading the manual or even the readme file.

    Making software idiot proof increases its complexity 100-fold, even more. Take this example:

    Goal: To write a simple program that ask the user to enter a value from 0 to 100.

    Error proof version: dialog with edit box and a text box "Enter a value from 0 to 100".

    First user complaint, they can enter a value of "abc" instead of a numeric value from 0 to 100 like they were asked. Add logic to accept only numeric values.

    Second complaint, user can enter 101 or -45 or 2.34. Add logic to ensure values are between 0 to 100 like they were asked and change text to imply integer values.

    Third complaint, user finds typing the numbers in the edit box too complicated or repetitive, add UI and logic to support an up/down button or even add buttons with numbers on them.

    Fourth complaint, user wants to quickly enter values previously entered, so add a history drop down button that stores previous entered values and the supporting logic to store, retrieve and select those values.

    Fifth complaint, add a help button to explain that values can include the values 0 and 100 and any integer value between and a link to a website for support groups to let users complaing and b*tch about what they like and don't like about this dialog.

    Now, make this dialog work in ALL languages in ALL versions of operating systems. Make the control accessible for the visually and hearing impaired (add voice control and audio feedback and make a high contrast large font version). Make sure some hacker can't corrput the program by entereing invalid data potentially causing a buffer overrun and thus create a security hole.

    Finally beta test the software for a year and scratch your head over all the situations you couldn't predict in a million years over how users find ways to turn this simple task into the most complicated routine.

    Yeah, software developers can make software error free, but then, BBC journalists would have to go back to using quills and ink because they wouldn't understand how to use feature rich, powerful, easy to use and robust software filled with redundant logic so that the end users CAN simpy use the software, even if it crashes or does something unexpected once in a while.

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
    1. Re:Narrowminded non-programmers by gnasher719 · · Score: 1

      "So, I have to dumb down the software and make it idiot proof."

      I always think lots of problems with software are just caused by bad attitude. Anyone who sees their customers as idiots should look for another job.

      If you think of your customers as idiots, you shouldn't even get a job at McDonald's.

    2. Re:Narrowminded non-programmers by Mutatis+Mutandis · · Score: 1

      Let me put it this way -- I have seen software in which relying on the default value supplied by the programmer for an input, was absolutely guarantueed to cause physical damage worth thousands of US$.

      Called me narrow-minded, call me a part-time programmer, but I'm not joking.

  69. Software insurance by click2005 · · Score: 2, Interesting

    It makes me wonder why no insurance companies offer insurance against loss via bad software. House insurance is dependant on suitable locks and security. Software insurance could be made available on the condition that suitable AV/Spyware/Firewall software was installed and patched.

    --
    I am a free slashdotter. I will not be modded, blogged, DRM'd, patented, podcasted or RFID'd. My life is my own.
  70. Soon software will be like cars... by RexRhino · · Score: 1

    There was a time when cars could be designed by 1 person, or a handful on engineers. Nowadays there are a handfull of companies in the world who can afford the billions of dollars it takes to bring a car to market. Although with computers, simulators, robotic controlled milling machines, and off-the-shelf parts, it should be easier than ever to design and build cars, the laws and liability are so strict and the cost of cars are so high that anything less than GM, Toyota, Ford, BMW, can afford to make cars (and actually, looking at the bottom line of a lot of auto companies, even GM and some other companies can't make a profit designing cars).

    So all you people who enjoy working on free software, or have dreams of starting your own software company, give it up! The big corporations on the right love government regulation and liability because it squashes little companies, and the socialists on the left love government regulation and liability because it squashes all capitalists but the biggest corporations. When you got these two working together for the same goals, there is no way that things will ever stay as free as they are now.

    One day we will all talk about the "good ol' days" when a person was allowed to write a program without a licence, and when there was more than 3 companies that wrote software... And our kids will learn in their schools the horror stories about the days before software was regulated by the government, and hate anyone who would want to bring back that "nightmare".

  71. To many variables in the computer tool... by 3seas · · Score: 1

    I can agree that software should be less buggy, however there are many factors influencing bugginess, from hardware issues to motivation to generate repeat sales (upgrades).

    There is a way to fix this industry wide problem howver the solution direction is not compatable with the current methodology of repeat sales and support for a dollar price.

    I recall some research that dealt with why the Mac wasn't a bigger success and the reason is that its simpler to use than the typicaly windows PC. As such it requires less service and support and this equates to causing less money to flow in the service and support industry.

    Bugginess in software follows the logic of why not to fix it...

    Licensings is another issue all together.... there is no fair way that many licenses read.... you give us your first born and we are not responsible for any bugs that kill the rest of your family....

    If a software producer is not going to take responsibility for their product then as far as I'm concerned they have no rights to impose upon me any restrictions that prevent me from fixing their product so I can use it without damage... and that includes getting the help of others outside of them to fix it.

    It is this that contributes to my support of free open source software.

    I understand he difficulty of making sure your software works in the endless hardware and software configurations, Likewise software producers must understand our RIGHTS as Consumers to be allowed to fix it, outside of them.

    Proprietary software without responsibility is intentionally a double standard and the courts really should recognize this.

    But considering the US courts don't understand the unpatentable nature fo software and never ever consulted the public on the..... there is certainly breading grounds for dishonesty and double standards.

    Boston tea party.... for software ...... What will it be called should the public ever take a stand for their fair rights?

  72. Badly argued, badly thought out article by timbo234 · · Score: 1

    He keeps insisting that software can be made to be almost perfect, yet backs his arguments up with absolutely nothing. Where's the proof? examples? What about realistic estimates of how much this will cost compared to present software development?

    This whole 'guaranteed software' thing seems like a troll to restrict or get rid of open source software. Its a bit like software patents in that its pushed by big software companies because they know that it will mean that nobody can develop software without a multi-million dollar law-suit fund to back them up. There's no doubt many lawyers salivate at the idea of being able to successfuly sue someone for the simple act of producing a piece of software.

    Also the car analogy is a fallacy. Cars sold to consumers are heavily regulated because if something goes wrong it will likely kill or seriously injure someone. If something goes wrong with consumer computer equipment its simply a matter of inconvenience - 'oh shit I lost my essay, I'll have to write it again' and often the consumer contributed to the problem by not using the computer properly, eg. 'maybe I should have saved my essay sometime in the last 4 hours'. At no time is life, limb or property in danger from a crashing PC.

    Computers used in important tasks (eg. hospitals, nuclear plants etc.) are a different matter and are treated differently. They can pay the big bucks required for an integrated, well tested, reliable system

    --
    Pre-canned Evolution Links for all those Slashdot holy wars.
  73. Econ 101 by LordKazan · · Score: 1

    Yes bugless software is possible. It requires more testing, which requires more money. It's a simple economic decision:

    Is the additional cost of reliability less than or equal to the decrease in the mean rate of failure multiplied by the average cost of failure

    --
    If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
    1. Re:Econ 101 by Chris+Snook · · Score: 1

      Testing will never give you bug-free software. Ever.

      Only formal verification of the source code and the entire toolchain will do that.

      You're right about the economic cost-benefit analysis. Most people would rather have MS word as it is than a formally-verified pico for the same price. For many purposes, I would too.

      --
      There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
    2. Re:Econ 101 by russotto · · Score: 1

      Formal verification of the source code and tool chain won't do it either. There might be errors in the verification.... which is guaranteed to be at least as complex as the program being verified.

  74. We are trying to improve it.... by askegg · · Score: 1
    But I still believe that the current situation is unsustainable, and that we should be working harder to improve the quality of the code out there.'"


    Things are getting better, we are just happen to be using the software as it is being perfected, rather than wait for "everything to be perfect" before going to market (an impossible situation).
    --
    I don't make predictions, and I never will.
  75. well, ya..... by zogger · · Score: 1

    In every other business "experience", part of that "learning process" is covering your product with a minimal warranty, not a "nothing is my fault, take it or leave it, suckah" scene EULA like you get with software. This is the only industry that pushes a product that gets this totally free skate on quality. In essence you are saying that you can't offer even the bare minimum warranty a blender manufacturer offers, yet it's "professional".

    People "in the industry" really can't see what joe consumers (dude in the article in this case, but call it joe consumers) are saying? Or People "in the industry" don't want to see that?

    Give it away for free, share the source, swell, call it perpetual beta ware, slap that "it ain't my problem, it's YOURS" EULA on it. But sell it, err excuse me "license it to use", and you should have a minimal warranty of some kind, by law if not by volunteering one because you stand behind your product with more than soothing words and a shrug.

    We got rid of "caveat emptor" in the pharmecutical industry when 99% of the medicines on the market were snakeoil, and they survived just *fine*, so maybe it's time to do the same with software products, products that the multi hundred billion a year industry receives *patents* on. Patents! Software is a mature industry now, it doesn't need the hand holding and training wheels like it needed when it first started out half a century ago.

    Less releases of better quality? HELL YA! Sign me up! Cost more? Probably! Who cares? Would the end user be forced into buying the same thing over and over and over and over and over and over again if what they bought in the first place worked much better? Most likely! So in that case it would long run be cheaper. Less headaches for the end users, the customers? More than likely, things go smooth when stuff "just works". Better for society, economically and socially? Judgement call, but seems like it's worked for about every other industry, so...

    1. Re:well, ya..... by The+Cisco+Kid · · Score: 1

      This guy nails it on the head. People giving software away for *free* should not be required to provide any warranties. People who choose to use free (as well as Free) software dont want the authors of it bound to requirements that would end up making the software no longer available.

      But if you *charge* for software (or more often, just a restricted right to *use* it ) then yes, there should be mandatory minimum liability for faults.

  76. Error less code by LibertarianWackJob · · Score: 1

    No problem! Anyone can write errorless code if only they are careful.

    #include <stdlib.h>
    int main() {
    printf ("Hello world\n")
    }

    No problem! Anyone can do it!

    --
    What? ®
  77. Eliminating necessity by supabeast! · · Score: 1

    "Doing it will probably mean that commercially-available code is more expensive and cause major problems for free and open source software developers."

    If commercial software was well-coded, a lot of open-source software would never have been developed.

  78. I read the article twice. by stuttering+stan · · Score: 0
    What Bill Thompson believes:
    • in favor of liability for software, but not litigation
    • Consumer rights are violated by the EULAs
    • life destroying information is at risk due to faulty software
    • advocates bullet-proof software

    The article didn't really offer any plausible solutions, or for that matter, didn't really articulate the problem very well either. The author's writing style is a little whiny.
  79. Complex Algorithmic Code Is Unreliable by MOBE2001 · · Score: 2, Interesting

    Bug free software is possible, so long as it is done right and people are prepared to pay for it.

    It is impossible to guarantee the reliability of complex algorithmic software. This is something that Frederick P. Brooks has shown in his famous "No Silver Bullet" paper. However, Brooks' arguments fall apart in one important area. Although Brooks' conclusion is correct as far as the unreliability of complex algorithmic software is concerned, it is correct for the wrong reason. Software programs are unreliable not because they are complex (Brooks' conclusion), but because they are algorithmic in nature.

    Last week, an article in the Wall Street Journal's OnLine Edition gave a vivid description of the costly software reliability problems that Microsoft has had to endure in its effort to develop the next version of its Windows operating system. It drove home a point that I have repeatedly made in the past. The biggest problem with software is communication. I am not talking about the lack of communication between programmers (nothing can really be done about that since programmers come and go) but about communication between various parts of the software. Microsoft is suffering from a classic case of the "right hand not knowing what the left hand is doing" syndrome.

    The problem has to do with what I call blind code and it is not just Microsoft's problem. It is an old problem that has plagued the entire software development industry from the beginning. It is proportional to complexity but it does not have to be. In fact, it can be completely eliminated. The solution requires a rethinking of software construction, not only at the single program level but also at the operating system level. It calls for the reinvention of computing at the fundamental level. We must abandon the algorithmic model of software construction and embrace a signal-based, synchronous model. Eventually, even basic microprocessor architecture will have to be overhauled. For more on this important subject, see the link below.

    1. Re:Complex Algorithmic Code Is Unreliable by julesh · · Score: 1

      I think you're right.

      Sequential logic is hard to understand, and as project complexity gets higher it becomes exponentially more difficult to comprehend the possible interactions and determine what will happen in any particular circumstance.

      The potential for research in modular non-sequential programming systems is great: a reliable, easy-to-use toolkit along these lines would become very popular very quickly, as it would make programming a lot easier than it is right now.

      I suspect it is a long way in the future, though.

  80. Software Brownshirts by Arandir · · Score: 2, Insightful

    But I still believe that the current situation is unsustainable, and that we should be working harder to improve the quality of the code out there.

    This is a very different thing that legislating mandatory guarantees on software. Yes, we SHOULD be working harder to improve the quality of our code. But not at the price of authoritarian government.

    There are few things in life that are truly a free market, but software comes close. It's no surprise then that spoilsports want to come in and regulate it. That happens wherever freedom begins to bloom. Let me clue you in: the marketplace has decided on a low (as in almost non-existant) demand for guarantees and warranties on consumer software. It's not developers doing this, it's the users.

    --
    A Government Is a Body of People, Usually Notably Ungoverned
    1. Re:Software Brownshirts by joelsanda · · Score: 2, Insightful

      Let me clue you in: the marketplace has decided on a low (as in almost non-existant) demand for guarantees and warranties on consumer software. It's not developers doing this, it's the users.

      Which is precisely where regulatory practices are born. I can understand the general point you are making, however the statement "But not at the price of authoritarian government" is a little over the top. Name one regulartory control that seeks to govern quality rates that has not come about as a result of consumer injury; either fiscal or physical. Once those costs get high enough to garner enough attention legislative controls that set minimum standards are put into place.

      --
      The Luddites were ahead of their time.
    2. Re:Software Brownshirts by Arandir · · Score: 1

      Name one regulartory control that seeks to govern quality rates that has not come about as a result of consumer injury; either fiscal or physical.

      When you manage to get this intrusion enacted, then the subsequent increase in prices, lack of Open Source Software, and other market reactions, will be the real fiscal damage to consumers.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    3. Re:Software Brownshirts by joelsanda · · Score: 1

      Yeah, which is why no one can afford cars and homes and electrical devices or airline tickets or food or beverages - all of which are regulated heavily by nearly all governments in their jurisdiction.

      OSS isn't going to go anywhere as a result of quality issues - it could go away if unscrupulous politicians (sorry for the redundancy) use regulation as a means for boosting one company and killing its competition.

      --
      The Luddites were ahead of their time.
    4. Re:Software Brownshirts by Arandir · · Score: 1

      OSS isn't going to go anywhere as a result of quality issues

      No, it will go away because its developers will be unwilling to put themselves financially at risk by distributing it.

      I'm not speaking out my ass here, as I *AM* a F/OSS developer. There's no way in hell I'll let the public access my creation if I think I'll get sued over it. I could of course sell my software at a price to cover my insurance costs, but in order to make sure everyone who gets my software also pays for it, I would have to cease making it Open Source.

      So expect Open Source to go away, and expect your small commercial offerings to significantly increase in price. I you think Microsoft is a monopoly know, wait until all the small software companies have been run off the market. All because you think consumers are too stupid to make the "right" decisions.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
  81. Error-free software is possible by MOBE2001 · · Score: 1

    The problem is as old as Lady Ada Lovelace who wrote the first algorithmic code more than 150 years ago. We've been writing algorithmic programs ever since and the ensuing unreliability problem has turned to a major crisis. The problem is not software. The problem is algorithmic software. Switch to a non-algorithmic, signal-based, synchronous model and the problem will disappear.

    1. Re:Error-free software is possible by ultranova · · Score: 1

      The problem is as old as Lady Ada Lovelace who wrote the first algorithmic code more than 150 years ago. We've been writing algorithmic programs ever since and the ensuing unreliability problem has turned to a major crisis. The problem is not software. The problem is algorithmic software. Switch to a non-algorithmic, signal-based, synchronous model and the problem will disappear.

      So, if this non-algorithmic, signal-based, synchronous piece of software will encounter a situation that I, the programmer, didn't think about, and therefore couldn't give instructions to the computer about, it will automagically know what I would have wanted it to do in that particular situation ? That is an impressive model indeed - in fact, I think I'll start using it immediately, write a "Hello World" program and market it as an operating system, since the model will obviously guess that that's I really meant to do ;).

      Just as soon as I can figure out what that model would actually be...

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  82. Ok, fine... by clambake · · Score: 1

    Sure, my software comes with a 100% lifetime warrantee. Note: Installing any software BUT mine, or using anything but a stripped-down bare-bones OS voids the warrantee.

  83. More reasons by alan_dershowitz · · Score: 3, Informative

    The hugeass elephant in the room here is that for centuries builders have been relying on reusable components and clear standards, while massive numbers of programmers shun these despite their availability, and constantly reinvent the wheel. I'm looking directly at every dink on Slashdot that bitches XML is too complicated and trashes (ha!) on automatic garbage collection. (if someone has some obscure exception, keep it to yourself. The exception isn't the rule.)

    Another difference is, typically if an engineer says something is unsafe, people actually fucking listen to her.

    Oh yeah, and you can't hide how a bridge works. Proprietary code encourages cut corners.

    I believe that good software is attainable. But that won't necessarily come from legislation, it'll come from the industry growing up.

    1. Re:More reasons by Reziac · · Score: 1

      The first time this topic went around /. (a couple years back) I had thoughts to this effect:

      Let the software publishers (including private individuals) rate their own software for reliability, say on a scale of 0 to 5.

      Ratings of 1 through 5 represent a sliding scale of reliability: if a publisher claims a reliability of "5", they had bloody well be able to back that up -- and will be able to price their software accordingly. But if their software fails, their liability will be 100%.

      At the other end of the scale, if a publisher claims a reliability of "1", you know that they don't warrant it to be much more than "it compiled and the first screen came up", and their liability for failures is concomitantly minimal.

      So -- if you're a software publisher, you can claim any rating you want, so long as you're ready to back that up with real financial liability, perhaps via insurance that is designed for exactly this purpose. And what you can charge for your software will depend on its rating.

      Print the rating right on the box and in all advertising, and pretty soon the public would get the concept. Then market forces would decide to what degree we prefer "cheap" or "reliable", and for which sorts of apps.

      The odd number out: giving your software a rating of "0" means "absolutely no warranty" but says nothing about your belief in its reliability. Software rated "0" may be crap or it may be great, but in any case the author is entirely free from liability, because the user knows right up front that there are NO claims about its functionality. This is specifically to protect authors of freeware and opensource programs, but could also be used by shareware (or even commercialware with little faith in itself :)

      In other industries, if you brag about what your product can do, you have to back it up, within a reasonable person's expectations, or you can be found liable for the deficit. And that's all my scheme proposes to do -- get software publishers to live up to the claims they make for their products.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    2. Re:More reasons by spongman · · Score: 2, Insightful

      wouldn't work. nobody in their right mind would chose anything but a "0". i'd buy a copy of the first non-"0" package, find a bug and sue.

    3. Re:More reasons by Jussi+K.+Kojootti · · Score: 2, Insightful
      On the other hand, getting from the first log-over-the-river kind of bridge to the bridge building standards you speak of took thousands of years. Digital data formats / algorithms / standards are a few decades old at most.

    4. Re:More reasons by symbolic · · Score: 1

      People always used bridges as a comparison- I don't think that's fair. Bridges have one very clear, very defined, unwavering purpose: to span a distance between two points. Once the bridge is built, it's done. There is no "Bridge v2.0", and the only real thing that can change within its environment can only happen as a result of a major event, such as an earthquake, a flood, or destruction via explosives. Software, on the other hand, is quite dynamic. After the initial development process (which is quite malleable in and of itself), users expect subsequent improvement. In the mean time, the original software may have been re-installed on a different machine, with different drivers, and god knows what else. You've got all these dynamics coming into play that can change the original environment quite dramatically.

      I'm not advocating that software testing should be any less important, and perhaps perhaps there should be more empahsis on testing. But in the end, all a test tells you is that given a defined set of conditions as input, the result either does or does not fall within the scope of acceptable output. Considering the dynamic nature of software, I'd think that it's quite easy for that "defined set of conditions" to inadvertently exclude unforseen circumstances.

    5. Re:More reasons by Reziac · · Score: 1

      But you couldn't sue just for finding a bug. My rating system as proposed is designed to say "We claim our software is this-much reliable." It ISN'T designed to say "our software is bug-free". If points of unreliability are documented right up front, you'd have no claim, because the whole idea here is to make sure the purchaser can make an INFORMED choice with respect to which problems they're willing (or unwilling) to put up with.

      Also, under my system, you could only claim liability against the vendor in proportion to their reliability claim -- so if it were rated "1", you could only claim 20% liability against them. This might be reasonably limited to the purchase price of the software -- so if you bought a $100 package rated "2", and it failed in ways that the vendor hadn't documented, you could claim up to $40 against them. If you bought a $250,000 package rated "5", and it failed in undocumented ways, the vendor would be liable up to $250,000.

      Likely there should be some additional percentage added as a penalty, but only applicable if you can demonstrate actual financial loss. Just being annoyed with the software would not count toward any additional penalty (that being far too exploitable by legal sharks). Nor should it cover "all your losses", because the buyer has to be smart enough to stop using bad software too, they can't just keep on using it and still bitch about/make claims about the losses it's causing them. (Precisely to prevent "asshole lawsuits" such as the scenario you proposed.)

      IOW, it would enforce "you get what you pay for", which as some folks here have pointed out, can be a huge problem even with enterprise-level packages that fail to do what they claim, or don't work unless you buy a shitload of add-ons, or whatever. If you didn't get what you paid for -- well, you'd get your money back. But you couldn't take the vendor to the cleaners.

      Note also that my system doesn't require anyone to change anything EXCEPT the current industry habit of making unsubstantiated claims about how wonderful their products are. If you want to make shitty software, go right ahead, and rate it "0" to avoid liability -- but you won't be able to *sell* it to an informed public, because there will always be vendors who have at least a little more faith in their product.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
  84. Cars are a bad analogy by K.B.Zod · · Score: 1
    Cars are a good example here. Motor vehicles have to be safe, and there are rules and regulations governing their development and production which, by and large, keep the roads safe from exploding cars.

    That's right, the regulations and such are important for cars because otherwise, the cars will end up killing lots and lots of people.

    Most software isn't like that. If a web browser crashes every five minutes, I'm still breathing. Even if some crappy software causes all my credit card information to be spread all over the Internet, I'm still breathing.

    Of course, there are some critical types of software, running power plants and rockets and such, for which failure means human death. And hey, those have super-robust development processes and regulations and guarantees.

  85. Unbelievable by Anonymous Coward · · Score: 0

    A newswriter tells software should be more reliable, and so many posts here jump on him with defensive rants.

  86. Re:author is obviously unfamiliar with free softwa by llefler · · Score: 1

    It's not a commercial vs open source thing. Most software is crap. But crappy commercial software generally doesn't stay around very long. Open Source software, OTOH, gets uploaded to Sourceforge and never goes away. (actually, SF seems to be a graveyard for quite a few failed commercial projects too)

    I personally have one bit of software that I'm getting ready to retire, after 7 years of working just good enough. It's stability problems were all the fault of Windows' spooler.exe, really....

    --
    It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
  87. Word defendants by foo23 · · Score: 1
    I can't believe that there are so many defendants of the bugs of MS Word out here ... why should a bug free word processor be as expensive as the Golden Gate Bridge? A free, to my knowledge relatively bug free wp does already exist: LaTeX. (And please don't tell me that LaTeX is a simple program ...)

    On the other side, just by picking another example than Word, I must agree with you: The market wants cheap, buggy software with the last pretty zooooming feature more than all the rest. See the popularity of LaTeX.

  88. Re:author is obviously unfamiliar with free softwa by syousef · · Score: 1

    The last time I checked it had more than 87 authors. Show me a commercial debugger that gets that much attention

    Oh no! The broth is about to spoil! Quick add more cooks!!!

    --
    These posts express my own personal views, not those of my employer
  89. Good luck getting software by tsotha · · Score: 1
    If I were Microsoft, and I became liable for the security of customer data in Great Britain, I simply wouldn't release software there. There's no way you can release bug-free software for the price people are willing to pay.

    We know how to write bug-free software. It's a very rigid process that sacrifices time, money, and functionality for dependability. Well, raise your hand if you want to pay $20,000 for a stripped version of MS Office.

    Note also this raises the barrier for entry in a business with high barriers already. Who's gonna invest in a software company that could get sued out of business in a couple of weeks? Only a company with deep pockets and a take-no-prisoners legal team could possibly cope in that environment.

    I suspect if they actually went through with that the government would end up releasing software so people could do their jobs. Not because the quality was higher, but simply because the government would exempt itself from lawsuits.

  90. Gamble or hedge: the buyer knows best by Julian+Morrison · · Score: 4, Insightful

    Computer software has been mostly unregulated. This has allowed us to watch the "invisible hand" of the market in its purest form. Commodity programs have disclaimers, buy bespoke and you get guarantees, pay yet more and you get formally certified code. The cost of risk and the cost of the program are in effect two seperate purchases - product and insurance.

    If you force programmers to carry the risk cost, you don't magically get bugfree code. You just delete the no-guarantees market. In effect you're forcing programmers to bundle insurance with every installation. "Free" disappears. "Libre" might survive in an attenuated form - edit "open source" and you become the liability carrier. You might do it in house, but few could afford to publish.

    The guy points out that other industry sectors have this sort of law. Yup, they do, and I contend we're all worse off as a result. Amateurs are frozen out, because they can't afford to jump insurance hoops. Innovations are stifled. Saleable skills are wasted. Personal self-expression is denied. Even though all parties are willing, the law stands in between saying "no". This is nothing to emulate!

    Nanny liberals would contend they are protecting buyers from risk. As an adult you have to accept that the universe has dangers. You can't wish it safe, and the utopia of your childhood was an illusion. Who then is best placed to decide when you should gamble and when hedge? Philosophically, no action can be said to be "better" or "worse" without a reference to a person whose goals it serves or thwarts. No person can know another's mind. Therefore, you alone are properly placed to weigh the options and decide on your own behalf. At best a law commands you to take your best choice. At worst, bans it. Neutral or harmful, and (given diversity) certain to be harmful to some. This is why regulation is never better than a free market, even in risk.

  91. Re:author is obviously unfamiliar with free softwa by Vicissidude · · Score: 1

    Look at the gnu debugger. The last time I checked it had more than 87 authors. Show me a commercial debugger that gets that much attention.

    Let's see, the only commercial debugger worth talking about is Visual Studio. Microsoft definitely has more than 87 people working on it. Oh, and those are full-timers whose only responsibility is Visual Studio.

    Score two for free software - in the end, what needs to get done gets done better.

    Considering the market share of Visual Studio, I think you picked a bad example to score points on.

  92. Oh, be real . . . by werdna · · Score: 1

    First, of all, there is, so far as I can tell, there exist no non-tivial programs that are free from error. Indeed, there are no non-trivial programs sufficiently well-specified so that one can objectively discern whether there in fact exists an error. Even if I am wrong on these points, the outlier examples are so far, narrow and expensive as to be pointless -- nobdoy wants to pay what it costs to specify, design and impelment demonstrably correct code.

    Given that code is buggy, all the law and market should do is efficiently and effectively allocate the risk and costs of error. The commercial law is, quite frankly, pretty good at this sort of thing.

    Let the market decide how tolerant it will be about receiving buggy software. Let each business decide for itself how carefully it should produce code, so long as they are not fraudulent or misleading in selling their programs.

    Let the market decide how much risk it is willing to accept for the consequences of the unavoidable reality of computer program error. If substantial conformity with documentation is enough -- almost certainly true for most consumer applications -- then let the market decide it doesn't want to pay for more.

    Let the market decide how much of that risk it is willing to deal with -- what remedy do they want? Repair or replacement? Or money back? or more? If a party is willing to accept reaosnable efforts to repair followed by refund, a vendor is going to provide software for cheaper than if it were liable for consequential remedies.

    Yes, we could pass laws to interfere with market forces. But would that be better or worse than the status quo?

    1. Re:Oh, be real . . . by sugarmotor · · Score: 1

      I don't like this talk about markets as if there was an entity to talk about. (Let the market this, and that, and so on)

      Stephan

      --
      http://stephan.sugarmotor.org
    2. Re:Oh, be real . . . by uohcicds · · Score: 1

      Well, TeX is one example of "good" code. It may not be entirely error free, but for such a heavly used item, the number of real bugs found is very small. Just how many cheques has Don Knuth had to write recently?

      To be honest, I don't think Bill T is saying anything remotely controversial. All you have to do is look at the ridiculous nature of some of the EULAs provided by the large software companies to see that.

      One of the problems is actually a more theoretical one. Yes, there are systems that can be formally specified but in the main, conusmer systems work in hugely non-deterministic enivironments and the overhead of specifiying all of these externalities would mean that nothing would ever get written. Add to that the push by marketers to hit deadlines and the business implications of slipping and you have a recipe for, if not disaster, then certainly disquiet. Just leaving it entriely to the market is a risky business: there will always be some for whom cost is the primary driver and without wishing to broaden the base of this too widely, we all know that in wider society, the market has no sense of collective or moral repsonsibility, it just works the way it does; I make no critical judgement about that, that's the way markets work.

      Free/Open Source software is not immune from these pressures but generally does not suffer, becasue deadlines are not shaped by external agaencies; code is ready when it's ready. And in that sense OpenOffice and Firefox are not bad examples of this mentality.

      As software and IT professionals, we have to realise that these issues exist and, at least in some part take some repsonsibility and stopthe tail from wagging the dog

      --
      It's not you: I'm just this horrifically socially awkward with everybody.
    3. Re:Oh, be real . . . by werdna · · Score: 1

      if the eula is ridiculous, don't buy the code. buy someone else's or write your own.

      I haven't seen too many over the top Eulas recently as to this issue, other than, you know, GPL and BPL, which assume no responsibility whatsoever, and strictly limit liability and warranty.

      In contrast, of course, we have most commercial EULA's, which at least warrant substantial conformity to documentation, with a commitment to repair or replace or, at least, return your payments. For the most part, this is what the market really needs. They don't expect the vendor to be liable for loss of data that could be backed up, or the loss of business as a result of the failure of the software.

      And if you are right that the market prefers that, then you can of course compete with a better warranty -- in which case you will have a competitive advantage. If you are mistaken, you will lose your shirt. That is the way it works.

    4. Re:Oh, be real . . . by uohcicds · · Score: 1

      Just a couple of points:

      if the eula is ridiculous, don't buy the code. buy someone else's or write your own. I haven't seen too many over the top Eulas recently as to this issue, other than, you know, GPL and BPL, which assume no responsibility whatsoever, and strictly limit liability and warranty.

      Yes, but as you yourself imply, if you don't like it, don't use the code. I'm not actually an OSS zealot and would (and do) happily use commerical software in the right circumstances, but at least the GPL is transparent about its position in the first couple of sentences of the licence (Note to US: before anyone complains about the spelling, I'm English; it's correct here). That's more than can be said for many (not all, I hasten to add) commercial EULAs

      In contrast, of course, we have most commercial EULA's, which at least warrant substantial conformity to documentation, with a commitment to repair or replace or, at least, return your payments. For the most part, this is what the market really needs. They don't expect the vendor to be liable for loss of data that could be backed up, or the loss of business as a result of the failure of the software.

      Well, yes. In theory. But as the original article said, this is fine for larger systems (and even then dubious if you consider the provision of software systems and their fitness for purpose in many failed public sector projects), but in the consumer market? Trying to actually enforce the terms of an EULA would be fun. Look at the hoops people who wanted refunds on unwanted copies of Windows bundled with machines had to jump through.

      What people have a resonable right to expect is that the software will work as promised, and does not screw them over, even when they have taken reasonable steps to protect themselves. This last part is more rare in the consumer sector of course, but not unheard of.

      And if you are right that the market prefers that, then you can of course compete with a better warranty -- in which case you will have a competitive advantage. If you are mistaken, you will lose your shirt. That is the way it works.

      Unless of course there are significant barriers to entry. And in various parts of the larger computing market, there are. At that point, you have to wonder how large a competitive advantage you would need to justify entry at all.

      --
      It's not you: I'm just this horrifically socially awkward with everybody.
  93. There's Only One Liability by zod2008 · · Score: 1

    Giving all your possessions, money, and yourselves to me: http://zod2008.com/

  94. Re:author is obviously unfamiliar with free softwa by Anonymous Coward · · Score: 0

    Took a break from trolling to jack that karma up?

  95. "Cheap, on time, bug-free, works. Pick two." by Reziac · · Score: 1

    That's exactly what I'm talking about in my post up above, where I suggest a self-rating system of this nature:

    Software publishers could claim a reliability rating of 1 through 5, and price their product accordingly -- but the higher the rating claimed, the greater their liability if it doesn't live up to their claims for it (from minimal for "1", up to total for "5").

    Under my proposed system, a rating of "0" is reserved for "no liability". Anyone could use this, but it is specifically to protect FOSS from all liability, without making any statement about its actual quality (that's where peer review would be important).

    Most consumer software would self-rate at 1 or 2, be priced accordingly, and life would go on much as it does today, but consumers would be informed right up front that the product they're buying is known to have issues. "Better" consumer software might rate 3. Enterprise and mission-critical apps would rate 4 or 5.

    --
    ~REZ~ #43301. Who'd fake being me anyway?
  96. Re:author is obviously unfamiliar with free softwa by Anonymous Coward · · Score: 0
    Everyone knows that most free software, by virtue of peer review, has fewer bugs and errors than commercial code does.

    Wrong. If this were true, no one would be finding bugs and vulnerabilities in Firefox (for example) without even having to look at the code. OS/390 (for example) would be the most broken-into operating system in the world. This is a convenient legend, but it's ultimately false because it generalizes way too much. Stop repeating it.

    Free software is in many ways better than commercial, but it's not a blanket applies-in-all-cases mantra. Arguing otherwise is the mark of the true ideologue that can't see past his cherished but flawed beliefs.

  97. What do you mean? by Sycraft-fu · · Score: 3, Insightful

    My car is way buggier than my software. My car is horrible at dealing with unexpected siutations and abuse. If someone attacks it, say by breaking a window, the window is broken and I have to pay to have it fixed. With software, I get mad and demand that they should fix the bug so the attack CAN'T break it. Likewise the car is not forgiging to unexpected operation. If I floor the gas in neutral, the engine will seize up. However I expect that software can deal with unexpected input and not have any ill effects. Also my car costs money for matenance. I have to regularly pay for things like oil to keep it working, however software I expect updates at no charge.

    So all in all it seems I expect MORE out of my software than my car.

    They are different things, you really can't compare them.

    1. Re:What do you mean? by sparkz · · Score: 1
      If I floor the gas in neutral, the engine will seize up

      Hope it's under warranty. It should just rev - after all, it's in neutral.

      If I start the engine, put it in 5th, and can't get moving, then that's a "didn't work" situation, but then, what kind of idiot would expect it to (given that, AFAIK, every nation requires drivers to pass a test before being allowed to drive a car on a public road)?

      Maybe some level of IT Competence should be passed (and enforced) before allowing people to access the internet?

      --
      Author, Shell Scripting : Expert Re
    2. Re:What do you mean? by Sycraft-fu · · Score: 1

      My car is rather old, if you floor it in neutral it'll redline. The heat will cause the engine to seize up. There's no protection built in.

      My point is that people DO treat computer like this. They bash on software in inappropriate ways and then get mad when it breaks. They open it to the world and people try all manner of attacks on it, and they get pissed if one succedes. It is an impossible standard to apply to physical goods. There is NO such thing as perfect physical security, yet we seem to assume perfect virtual security should not only be attainable, but easy!

      I contend that we pay a lot more for our physical goods, and put up with a lot more problems for it.

  98. Perfect software is possible. by chris_sawtell · · Score: 1
    Perfect software doesn't exist.

    Pure Poppycock!

    In that case I'm sure NASA would be very interested in being told where the bugs in the Shuttle's control software is situated.

    http://www.fastcompany.com/online/06/writestuff.ht ml

    It's all down to economics and greed. With $50,000,000,000.00 in the bank Microsoft have the money to do the job properly, but without legislation they are not going to spend any of it to perfect their product.

    1. Re:Perfect software is possible. by bnenning · · Score: 1

      It's all down to economics and greed.

      In other words, customers prefer cheap to bug-free, and evil software companies aren't interested in selling software for less than it costs to produce. I'm just not feeling the moral outrage here.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  99. A Notion... by SeaFox · · Score: 1

    Doing it will probably mean that commercially-available code is more expensive and cause major problems for free and open source software developers.

    This statement brought about an interesting thought when I read it:

    What if that was the stipulation of the license for commercial software?

    Only someone giving their software away for free or developing it under an Open Source licence can be non-liable for their software. After all, if you're going to charge for your software, the buyer should have some assurances it wont cause a catastrophic disaster on their system. But if it's free, you're just doing this (particular piece of software) as a hobby obviously, so your software shouldn't be held to such high standards. If your software is open source, an individual is free to go through the code and make sure there aren't any bugs before they use it, so it's their fault if you didn't verify it beforehand.

    Note: I realize some may find that last statement a little harsh, and I don't agree with it personally, but it seems to fit in nicely with the OSS responsability mantra that if a bug is there and you want it fixed bad, or there's a feature you want and you're complaining, you should just code it yourself or shut up.

    What would happen to the software landscape with a system like this? Would the price of software skyrocket? Would we see the bar for what kinds of software are actually sold rather than given away be raised? I think it would result in a lot for software being done under OSS, and more companies using support services for their software as a business model, rather than the software sales themselves.

  100. Software ISN'T different. by jd · · Score: 1
    You use a specification language to produce your prototype - Z, VDM, or whatever. You then prove that specification as much as you like. Because it is independent of the final implementation - or, indeed, any implementation at all, it is genuinely distinct from your final product.


    There is the matter of efficiently taking a specification and implementing it. Very few people are actually any good at this, often because it isn't taught. You're taught either how to write code effectively, OR how to write it well, almost never how to write effective code well. This isn't because of the methodology - Z isn't dependent on how you write something, or what you write it in - it is because nobody really believes in the value of being able to be both effective and correct.


    How would you turn Z into something compact and fast? Very easily - by not starting with the Z. You use the Z to build test cases, then implement code totally independently of the Z that complies with those test cases. Writing code directly from a specification is sloppy and does lead to very poor-quality code, but writing indirectly will produce very high-quality code that is provably correct.


    Ok, so how many people know Z? Very very few - again, because nobody thinks it worth the effort of teaching or learning. And those who do know it, know it very badly as a rule.


    Re-engineering of software is the only place software could be considered different from other forms of engineering. It is hard to re-engineer a bridge or a tower block, but it is actually quite easy to reverse-engineer what the specifications SHOULD have been and, from those, deduce what the test cases SHOULD be, and from those, deduce where the deviations from what was intended have occurred.


    Could you do this with Linux? Oh, certainly, although that is now so large and complex, it would take a substantial team a long time to work through. But it is possible. You'd specify what the components were intended to do, then use either User-Mode Linux or the various conformance testing packages that exist to verify that the kernel did indeed do what was expected.


    (The conformance testers will tell you if the I/O matches what is expected, by the specification. UML gives you the chance to do module testing and to develop test harnesses to verify the correctness of internal operations. All very feasible, just not something that is being done.)


    "But Linus said..." Yeah, what Linus said about specifications involved implementing directly from them. And I've already said that's a bad idea. I have seen nothing to suggest he'd be averse to people using specifications to trap errors and eliminate bugs, which is where they SHOULD be used.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Software ISN'T different. by joss · · Score: 1

      A specification language is not as distinct from a bridge as a cad model of a bridge is from the bridge itself. I learnt Z but have largely forgotten it now - it is irrelevent for 99% of real world software problems anyway. Any specification language sufficiently detailed to describe the solution in such a way that one could prove the solution was bug free would be machine translateable into actual code, ie would become the programming language.

      --
      http://rareformnewmedia.com/
  101. Re:author is obviously unfamiliar with free softwa by man_of_mr_e · · Score: 1

    "most" free software is complete and utter crap. "most" free software never gets past version .00000001. "most" free software doesn't get reviewed by very many eyes at all.

    some free software projects are certainly of much better quality and get massive peer review, but that number is pretty small compared to the vast sea of crap free software out there that doesn't.

    Freshmeat lists nearly 70,000 projects. You can't possibly believe that "most" of those are of even moderate quality, or that "most" of them get any real peer review.

    Even if we accepted your inaccurate tautology, it wouldn't change the fact that having "fewer" bugs wouldn't make you any less liable. All it takes is one to put you in financial ruin if such liability were required. Simply put, no open source developer could afford to write code, much like no unlicensed and uninsured doctor can afford to practice medicine.

  102. Virtually error proof code does exist by Anonymous Coward · · Score: 0

    Look, while I recognize that it would be nice to put a boot up most vendors' behinds to write less buggy code, imposing product liability -- with its standard of perfection -- would simply bankrupt all private software companies. If you haven't read this article about the best software currently written, you should.

    http://www.fastcompany.com/online/06/writestuff.ht ml

    It's written about a small company that writes the software to run the space shuttle. They do it amazingly well -- their 420 KLOC program has had only one error each for the last three versions. However, this is the work of TWO HUNDRED AND SIXTY people. It takes that many people and they still have bugs! Not many, but some. This quantity of effort simply doesn't scale to current requirements for commercial code -- we ask programs to do so many things that they simply can't possibly be done with such a small program. Hell, I'd bet winamp is bigger than that, and all it does is play music files. If we impose this sort of requirements on software, we'll be jumping back to the 80s.

    earl

  103. Software = Bugs is a self-fulfilling prophecy by Anonymous Coward · · Score: 0

    Hi -

    I was saying this 20 years ago - if an orgainization claims something like "Software will always have bugs" then it ends up becoming a self-fulfilling prophecy. There is little motive to eliminate defects.

    Have people already forgotten the book "Quality Is Free" that suggests doing something correctly the first time is actually cheaper in the long run?

    The American quarterly earnings obession forces mass market software to be released as early as possible, with a focus on a total number of features.

    TWR

  104. Re:author is obviously unfamiliar with free softwa by deaddrunk · · Score: 1

    So why not get liability insurance? This article is not an attack on FOSS anyway it's an attack on the incompetent commercial sector who have zero excuse for the poor quality of their code.

    --
    Does a Christian soccer team even need a goalkeeper?
  105. Stop spoon feeding the morons by ACORN_USER · · Score: 1
    My thoughts exactly. Software is hardly comparable with bridges or cars. There is no guarantee on the run-time or build-environments being identical between any two pieces of software. There is, of course, the option seen in commercial software, which is where they indemnify themselves against a particular platform build. This kind of stands to reason, since most software, free and otherwise, will at lease let it be known that it has been tested against certain builds. If you bloat beyond that build, well you're on your own. That said, if I share a piece of software, it's on the users shoulder to make the call on whether he or she wishes to use it. If I provide my sources then it is on his / her shoulder. If he chooses to work with my alpha, it's on his shoulders.

    It's kind of like the BBC story, of the guy who got arrested for using an open wireless connection. There was no mention of the moron who left his wireless connection open - probably without a clue as to what he was doing. If you have a gas cooker and blow your house up - it's your own fault. If you're going to use technology, you should know how to use it and what you're doing. If I provide a disclaimer, you should be doubly sure that you really want to install my software. If not, go out and buy an off the shelf product from a software house which accepts liability for any cock-ups.

    The journalist had worked in software for seven years. Perhaps the reason he quit development is because he couldn't bare the reality of the fact that complex software implies bugs. You're not going to get around them by clicking your heals together and taking the twister to court. It's a consequence of humans writing complex software which has to run in dynamic and differing environments.

  106. Consumers want more-than-advertised by kbielefe · · Score: 1
    I think you'd have a hard time finding software that doesn't work as advertised. In fact, there are truth in advertising laws on the books that have no reason they shouldn't apply to software. Working as advertised is not the issue.

    The issue is that consumers want features that are not advertised: up front reliability and security. And most people don't understand software development enough to know why those are features that cost extra. It is the up front part that is difficult. Software companies as a rule are good about releasing patches where reliability and security are concerned, but only after the fact. Keeping current requires a higher level of vigilance than most consumers desire. However, most people also don't want to pay extra for something they perceive they are getting for free if they just keep up to date with the patches.

    Highly reliable and secure software does exist; it is just out of the price range of the average consumer. Consider basic instant messaging software. Now consider the same basic requirements, but used to communicate orders to a military aircraft. What would you do differently in the software engineering and development process? How much more do you think it would cost to develop? How many people using AIM would be willing to pay what the military pays?

    --
    This space intentionally left blank.
  107. Typewriters. Not bridges. by cskrat · · Score: 1

    Lets back up a couple years. Would productivity be lost if a typewriter jammed, eating the page it was working on? Is the typewriter manufacturer liable for lost man hours and that sheet of paper? Would the typewriter manufacturer be responsible if their machine was too heavy for a glass desk and caused an injury when it broke through? What would be the effects of misplacing a physical file folder in the legal department? Is the manufacturer of the file cabinets in that department liable for any damages encurred by losing an important notarized document? If there are file cabinets from different manufacturers in the same room, which one carries the liability, the one where the file was supposed to be or the one that the file ended up going to? How about if the reciever switch in your telephone fails? Is the company that manufactured that liable for business lost due to predicted earnings based on calls that might have been recieved on that phone? Software liability doesn't make sense. Machines fail, they get placed in situations that the designers wouldn't normally think of, they are faced with sometimes truely absurd user errors, and they are sometimes run by themselves in situations where redundancy would be appropriate. Why should we hold consumer software to a higher standard than any other piece of typical office equipment? A desktop application is not a bridge or a skyscraper, it's a tool. And as a tool it need only be safe enough to prevent reasonable paths of personal injury to its users. Lost time/money is not a personal injury. We expect a typewriter to jam periodically because it has a hundred moving parts working along interfering paths. How many different discrete functions are in the source code for MS Office? How many of them are expected to work on the open document without interfering with all the other functions working on the same open document? MS Office is considerably more complex than a consumer grade typewriter. My old typewriter would jam on a whim, my student edition of office, aside from ticking me off with autoformating, has yet to eat any of the reports I've written. And I still keep those backed up (HD + thumbdrive) just in case anyway. And in some situations there is a liability issue with software. If the control software on an elevator allowed the carriage to move while the door was open, that would be a liability issue that the manufacturer/software developer would have to answer to.

    --
    My God! It's full of eval()'s.
  108. rating system makes sense by idlake · · Score: 1

    Sure, a labeling system for liability makes sense in principle. Note that RedHat could sell RHL with a higher rating if they wanted; the point is: it's the ultimate vendor, not the creator, of the software that's responsible for any guarantees.

    I question, though, whether it's practical. Many software problems are actually not bugs, they are user error. While user error are also often due to bad UI or documentation, the responsibility is shared between the vendor and the user. And many other software problems involve interactions between multiple components; when Adobe Photoshop kills your image while you are working in a plug-in, how do we determine who is responsible?

    1. Re:rating system makes sense by Reziac · · Score: 1

      I agree there would be problems with interactive bugs -- but if you want to claim a "5" rating, you'd better be bloody sure of how your software behaves *in the presence of anyone else's bugs, even unknown bugs.*.

      And that is indeed one of the big issues that software vendors can currently duck: "it's someone else's bug, not our problem". Sure, that's often the case. But you can make sure that other programs can't take yours down, by protecting its memory space or whatever else you have to do. (IANAP.)

      Your example with Adobe is a good one: why should an ill-behaved plugin take down all of Photoshop and lose your work entirely? Why not have Photoshop kill the mannerless plugin without eating your file?

      Sometimes a fix for bad behaviour is fairly simple: frex, contrast Word and WPDOS. Word works on the original file, leaving it open on disk the whole time. If you have a crash, the open file gets corrupted. Conversely WPDOS works on a copy of the file (leaving the original closed on disk), and when you save, doesn't kill the original until the new version is safely written to disk; hence hosed data is extremely rare, even in the presence of someone else's bugs (eg. a system crash).

      --
      ~REZ~ #43301. Who'd fake being me anyway?
  109. As if users have no responsibility at all? by erik_norgaard · · Score: 1

    Bill seem to miss one important problem: When writing general purpose software the developer, software company or distributer has no realistic chance of evaluating the risks involved in the vast number of posible uses.

    Nor have they any realistic chance of evaluating how the software will work when other software is installed on the same system. There are simply too many combinations.

    Clearly, the second problem can be mitigated by developing applications such that each can run in a separate sandbox, but this is not very efficient.

    It is perfectly ok for free software to disclaim any liability - if you don't want to take upon you the responsibility and cost of malfunction, don't use the software.

    Commercial products could take some responsibility, but this increases costs. Are customers at all willing to pay that extra cost? I think not, look at the amount of pirate software - people do not consider software of any value at all. It is likely that if vendors take upon them more responsibility for their products costs will go up, sales go down, more pirated and less secure software will appear and we're all worse off.

    Just how many do you know who have a fully legal computer with no pirated software at all? (assuming they run windows).

    Fact is that the less you are willing to pay the more responsibility you must take yourself. Just like an ordinary ensurance: If you don't have it and accident happens, there's only yourself to blame.

    Ofcourse, the developer should not take the lack of legal responsibility as a pillow but always do his best, as should anyone else in whatever they do.

    But also, the user must take the required time to learn how to use the product correctly and safely. For driving, people are required to take a drivers licence, learn the rules of the road, take courses to stay in control on slipery roads etc.

    There is no such requirement for the use of computers, even when these are connected to the internet. People just connect to the internet and ofcourse they crash! And they are not held liable when they unknowingly host a zombie or distribute a virus becuase of malconfiguration.

    Take this story on securityfocus:
    http://www.securityfocus.com/infocus/1848 on reducing browser privileges.

    As it shows, much problems can be avoided if people use their browser with reduced privileges. Ofcourse, they shouldn't be running as administrator in the first place, but most do
    of convenience and ignorance.

    And what do people do when their computer starts to cause troubles? call a certisfied profesional? or call their neighbours 16 year old for help in exchange for a coke and a pizza? The last! Unlike cars, where people perfectly understand that the car must be repaired by profesionals and sent to a bianual check.

    It's the consumers that define the market, and if consumers are not willing to pay for extra security, they won't get it, and they have to take the costs of any losses due to software malfunction.

  110. Simple approach by cowbutt · · Score: 1
    If the software comes with source code, the user can assess the risk of using it (or hire someone to do so on their behalf) and make an informed choice as to whether it's worth using or not (possibly after reinforcing some of the weakest parts of the code).

    If the software doesn't come without source, the user has to take its reliability on trust, and the vendor should be prepared to indemnify the user if and when it fails.

    Whether or not the software is sold or given away is irrelevant.

  111. Re:Perfect software is possible. (Define perfect) by BoomerSooner · · Score: 1

    Lol, poppycock. 99% of software companies aren't microsoft. For example, my software company builds a product and we have several known bugs that are in queue to be fixed at this very moment (part of the reason I'm up at 4am). The major limitation in my company is not having a dedicated QA role. We are working toward that now. Being a small business and having to go to market with software that is constantly in flux (user requests & regulation changes) is not possible without significant financial reserves. We chose to go the route that would allow us to enter the market the quickest with the least amount of risk to us and our customers. Our software is important but not critical. There are however errors that can be life threatening, those areas (medication related) are tested to a much higher degree than reports that have no real bearing on a persons life.

    There are trade offs in every business. I build homes as well, you'd be surprised at the number of changes are made during construction due to unforseen problems. However, compared to software development they are very few indeed.

    BTW Perfect to whom? One person's perfect software is another's POS.

  112. Re:author is obviously unfamiliar with free softwa by man_of_mr_e · · Score: 1

    No, it's not an attack on FOSS, but it would have the side effect of wiping out FOSS because nobody would be able to afford to give away code they're liable for.

  113. You can guarantee software when the price is high. by Anonymous Coward · · Score: 0

    There are people doing "zero-bug" stuff, it's just less obvious to see them.

    For instance, you have the guys at Airbus and Boeing, and the guys doing nuclear control, a.s.o.
    And they use software development suites developped, for instance, by EsterelTechnologies (www.esterel-technologies.com) based on research from these guys (www-verimag.imag.fr).
    And these are just the one doing the hardest stuff.
    Then, you have the guys that are programming silicon, like in Intel, TI, etc.
    One bug in your chip, and you're screwed for hundreds of millions of dollars.
    Then, you have all the guys doing embedded control for devices that are hard to certify, such as medical appliances.
    And so on.

    If there's enough money, then the software (or what you make of it) can be guaranteed.
    However, I wouldn't expect MS Office or the Linux kernel to be guaranteed any time soon. :)

  114. more safety-critical = less attractive by Anonymous Coward · · Score: 0

    I agree with the parent post.
    During my PhD I worked on languages and case studies for safety-critical embedded systems.
    And I can tell you that programming really critical stuff is done with very dull languages that make it difficult to add any new feature (and, as a side-effect, to add bugs). Just to make sure I got my message right: forget C++,Java,Caml, pointers, classes, exceptions (well, almost), and so on... Also, nifty algorithms are prohibited, and your nice obfuscated C code will be flushed out quite fast. :)
    The code is reviewed all the time, and the final cost per line of working code is huge.

  115. Re:author is obviously unfamiliar with free softwa by ajs318 · · Score: 1

    But they wouldn't be liable, though! If it was Open Source, they would be giving away the source code. Then it's up to the recipient to make an informed decision {possibly engaging the services of an independent third party} as to whether or not the goods are fit for purpose. Without the source code, they would not be able to make a fully informed decision, and so have to take it on faith that the vendor is being truthful. That's the crucial difference. The source code is a guarantee in its own right.

    --
    Je fume. Tu fumes. Nous fûmes!
  116. To Err is human ... but can we speedup bugfixes ? by chocotof · · Score: 1

    I do not believe that we can make better code ... I think this is a human thing and not a technical problem

    IT has be trying for almost 60 years now and it does not get any better. In fact it gets worse.

    But what would it be worth if we had a way to more easily change applications so that fixes can be rolled out more rapidly, say before any calamity occurs ? What if we could install those fixes without the user having to reboot or even to stop the application containing the errors ? What if we can change those errors without breaking any 'version' relationship between other depending parts of the system ? Could this method perhaps do away with scheduled 'releases' and make software evolve more organically ?

  117. Re:author is obviously unfamiliar with free softwa by man_of_mr_e · · Score: 1

    Just because you give something away doesn't remove your liability.

    If I give away candy with poison in it, I'm liable. If I give away copyrighted materials, I'm liable. If I give away cigarettes to minors, i'm liable. If I give away anything that causes damage to someone else, I can be held liable.

    The whole point of the guys article is that *ALL* software should be legally required to be guaranteed to work correctly, whether it's given away or not. If you give away the source, and the recipient or "independant third party" deems it's not fit for purpose, then you're liable to them. What that liability is would depend on the law of course.

    I'm not saying I agree with it, but you're arguing about something that would be counter to what the article is suggesting.

  118. The Wobbly Bridge by LQ · · Score: 1

    Anyone remember London's "Wobbly Bridge"? A bridge with a bug which cost a shed load to fix. Then, of course, there was the infamous SHM bug on Tacoma Narrows ...

  119. Re:author is obviously unfamiliar with free softwa by ajs318 · · Score: 1
    No, you misunderstand. It's not the fact that it was given away that changes anything: it's the fact that the source code was included that changes everything. If you give away -- or even sell -- sweets which contain poison and the wrappers clearly say that they contain poison, you are not liable. The person who failed to read the wrapper is at fault. They had access to enough information, they were in a position to make an informed choice, so we have to assume that the choice they made {however detrimental an effect it may have had} was an informed one.

    The source code is a guarantee of functionality: it is an irrefutable statement of exactly what the program will and will not do if it is compiled and run on a properly-working computer. Of course it is written in a language that not everybody understands; but, to be blunt about it, that's their problem. For instance, if I write
    #!/usr/bin/perl
    print "Hello World!\n" unless (localtime)[6]==6;
    exit 0;
    then any sufficiently-competent Perl programmer should know that this program will not print "Hello World!" on a Saturday; and anybody else who is unsure but wants to find out anyway should engage the services of a sufficiently-competent programmer. {They might well be charged money for this service; but just because we are giving our give our source code away certainly does not mean that we shouldn't be allowed to charge money for explaining what other people's source code does to people who don't understand it.}
    --
    Je fume. Tu fumes. Nous fûmes!
  120. Perfection is atteinable -- abeit difficult by dzfoo · · Score: 1

    I believe it was Frederick P. Brooks in his Mythical Man Month essay that says something about computer code being one of the very few human creations that, being governed by mathematics and other universal truths, can achieve perfection. However, he points out that humans themselves are not accustomed to perfection, since so few other activities require it. And so he compares the programmer to a poet, more than an artisan, whom creates real physical things (words or code on a medium) out of pure thought, and can be disciplined to attain this perfection by talent, skills, training, and experience.

    Now, I grant that all this is a bit too idealistic for any commercial endeavor, but so did Brooks. He later points out in his essay that although this perfection is atteinable, it might not be practical or cost-effective, from a commercial standpoint, and so the commercial programmer must compromise between time-to-market pressures and error-free code by making sure the design itself is bullet-proof first, and utilizing his tools and skills, as well as those of his entire team, effectively.

    I tend to agree with Mr. Brooks, and this is why I agree with the author of the BBC article. Perfect computer code is possible, perhaps not commercially practical, but certainly there is a much, much higher and closer standard that can be achieved than what we have right now, when every would-be computer scientist in college is brain-washed with mantras such as "bug-free code is _IMPOSSIBLE_", "there will _ALWAYS_ be bugs, so why bother", "just code it, we'll deal with defects after release". Many problems of current software are due not only to incompentence on the part of the programmers, but by lethargy or ineptitude on the part of the architects. But mostly by the drive to keep production costs low and profits high, in a disproportionate way.

    I suppose this is human nature: the commoditization of art and technology. This is the same reason why we have wonderous works of engineering, that stand tall thousands of years after being built, along side with ready-made houses that crumble after a decade or two. Humans want cheap goods, and they are getting what they asked for. But nobody claims that a building or bridge that can survive at least a few centuries is "impossible" -- expensive, unsavory to stockholders, and challenging, perhaps; but very much possible. And this is the spirit of the article: that software is buggy because publishers are _cheap_; that we should endeavor to make software _better_, even if this means cost will be a bit higher; that we should stop spreading the myth that software, by its nature, is imperfect.

            -dZ.

    --
    Carol vs. Ghost
    ...Can you save Christmas?
  121. A secure computer is a myth! by oztiks · · Score: 1

    I think it was Alan Cox who said that the only safe computer is one that you've unplugged from the wall, went out in the bush and dug a hole and then placed the computer in the hole burried it and then not tell anyone where it is. (maybe wrong about alan cox saying this but it sounds like something he'd say :)

    Heck, new intrusion methods are being developed every single day, secure code yes, non executable stack and heap, but what about secure user? what about putting every known secuirty precaution in mind to make the flexability of your pc considerablly limited to stop the user from achiving efficent results with their computing.

    Theres always a way, artificial, human or otherwise. Secure coding practices _should_ already be inplace but the reailies are programmers are paid by the hour and deadlines are needed to be met, furthermore to know every single process of making your code 100% secure would require significant upskilling for allot of programmers, pretty much taking them to school again and saying strncpy() NOT strcpy() so on and so fourth...

  122. Please clarify... by It+doesn't+come+easy · · Score: 1

    We seem to want cheap consumer software, just as we want cheap food, and the result is that we get security holes and bugs.

    When he said bugs, did he mean in the software or in the food?

    --
    The NSA: The only part of the US government that actually listens.
    1. Re:Please clarify... by chawly · · Score: 1

      Bugs in the food is what he was complaining about. Easy to see that you have never eaten in a BBC canteen.

      --
      How many beans make five, anyhow ? ... Charles Walmsley
  123. Re:author is obviously unfamiliar with free softwa by Anonymous Coward · · Score: 0

    "Score one for free software - meeting user needs."

    Commercial software meets user needs as well. That's why people pay for it. Windows isn't a very good example, but there's lots of excellent commercial software that does exactly what people want it to do, e.g. Mathematica, Unreal Tournament. +1 for commercial.

    As pointed out above, +1 for Visual Studio.

    "When you turned a blind eye to the most popular non free software getting no such help at all."

    Actually, that's not entirely true - the best commercial software makers will accept bug reports and fix them, will make modifications and extensions to their programs easy, and will generally not treat their customers like idiots. I'm not talking about Microsoft or Electronic Arts here. +0.25

    It's a lot closer than you make out. Coexistence with commercial software is the way to go.

  124. Benefits of Liability by ChaoticCoyote · · Score: 1
    I commented on this before, so I won't repeat myself here: Idealism and Reality.

    Additional thoughts: Some form of software liability may finally put the nail in the coffin of Creeping Featuritis, the disease that leads programs to contain an enormous number of fringe features. Perhaps time spent adding dubious features would be reallocated to assuring quality?

    Liability might also encourage code resuse, given that developers would be loathe to replace a known "safe" wheel with one of their own creation (and uncertain quality.) Certified components might become a booming business.

    Of course, there are a lot of "weasel words" in the thoughts above: "might" and "may" and "perhaps". I don't expect software to attain perfection; "perfect" is beyond human ability, and we need to accept that everything entails risk. But the current situation is awful, and developers should do much more to ensure the reliability and applicability of their works.

  125. What everyone is failing to realize is... by sweetnjguy29 · · Score: 1

    ...that the author is alluding to "products liability" for software. This is lawyer talk for a concept called "strict liability". Strict liability makes you responsible for damages when your products are faulty or defective, regardless of any fault or negligence on your part. Anyone "in the stream of commence" from the manufacturer to the wholesaler to the retailer can be held liable if the product was defective and caused damages. Disclamers are usually held to be ineffective as a matter of public policy. That being said, strict liability is usually reserved for very hazardous activities such as blasting, keeping wild animals, and other ultra-hazardous activity.

    So, the real question becomes, when software is used in a situation where there are extreme hazards, should EULAs be ignored and strict liabilty be found? A la using firefox at a nuclear facility which causes a meltdown?

  126. Sorry , Emacs is not amazing by Viol8 · · Score: 1

    Emacs is one of the worst examples of code bloat I've ever
    seen. Who the hell decided that having an LISP interpreter
    inside of a text editor was a good idea? (And you ivory
    tower academic types just can put a sock on it , its NOT a
    good idea. If you want LISP use a proper interpreter). If
    I had asked someone to write a piece of code to carry out
    a specific action and he added a load of unnecessary functionality and other rubbish into it simply for the
    intellectual satisfaction and kudos then he wouldn't be
    in my team for very long.

    1. Re:Sorry , Emacs is not amazing by melikamp · · Score: 1

      Emacs is one of the worst examples of code bloat I've ever seen.

      That is precisely my point. No one in his right mind thinks that Emacs is bug-free. But even if you are taking a side in the editor war, you know (you don't have to admit it), you know deep inside of you that Emacs is an amazing piece of software, the kind that takes a very special person to write.

  127. So Why is Car Insurance Expensive? by Anonymous Coward · · Score: 0

    If cars are safe, as this journalist claims, (Cars are a good example here. Motor vehicles have to be safe), then why is car insurance expensive? (The average cost for auto insurance nationwide for 2005 is estimated at $870). What a moroon!

    But he illustrates one point by accident. There's compulsory training to get a car license - perhaps there would be fewer computer crashes if IT training was compulsory too.

  128. popular free software is safer by Cyn · · Score: 1

    Proportionally - based off of popularity. Any software that begins getting popular *does* get the attention you speak of, and many (hopefully most) onerous bugs quickly begin to be smashed in it. Not all, no - but the biggest and worst.

    Yes, most open source software out there was cooked up by one person, ten people have downloaded it and tried it. None of them looked at the code... and no one was harmed by this fact.

    Have I looked at Linux kernel code? Yes. Firefox? Yes. Have I sifted through it all looking for bugs? Of course, I have 25 hours a day to do so, who doesn't?

    Honestly though, there are people who have time and knowledge to look for bugs, and if you subscribed to any of the security mailing list you'd see them. The people who find symlink attacks, priviledge escalation, input sanitizing bugs - they didn't just happen to stumble over it because they clicked the 'save' button twice - they were looking over the code.

    --
    cyn, free software and *nix operating systems enthusiast.
  129. Not until by g0bshiTe · · Score: 1

    Not until the quality of a software product out weighs the need to meet a deadline to produce it will we see this change in the industry.

    I'm fairly certain there are a number of coders out there producing substandard (by their own standards) code, that they would much rather take more time to work a better solution or optimization. Constrained by a deadline though, unless you are a code god this is not humanly possible.

    --
    I am Bennett Haselton! I am Bennett Haselton!
  130. Re:author is obviously unfamiliar with free softwa by everphilski · · Score: 1

    This message composed and transmitted on a system run with complete tripe that just happens to have more features and run much better than any commercial software available.
    Low blow, -3. I'd counterargue but the posters before me have made some pretty good arguments. And while I have used both linux dev environments and visual studio (C++ development) ... visual studio all the way.

    -everphilski-

  131. People tend to get what they pay for.... by lucason · · Score: 1

    The problem is they have no point of reference when it comes to software.

    If you buy a secondhand car for 50$ you're probably not going to complain to the previous owner if it break down after say 20000 miles. Hell, 20000 miles for 50$ is great value for money.

    But if your brand new Benz, $70000 automobile, breaks down after 20000 miles, you better believe there is going to be hell to pay.

    People understand value and price when it comes to cars. They don't when it comes to software. When I was in college a friend asked me if I could write a customized accounting and invoicing system for his company. When I told him "sure that will be $20000" he laughed his ass off. In the end he settled for a buggy script that added up totals from his invoices which were stored in XL files and a mail-merge type office application to generate the headers for quotes and invoices. He payed me $300 and complained about it too.

  132. How will the market know? by Lifewish · · Score: 1

    Firstly, with software patents and the DMCA and all that crap, it's possible for a company to restrict the ability of its competition to function fully (play MP3, read MSOffice formats etc). No-one is going to buy nonfunctional software so no proper competition exists.

    Secondly, most people don't have the knowhow to, say, realise that whilst variants of Linux may be less user-friendly than variants of Windows, the former tends to be more stable. They just use whatever comes with the PC. Even the major executives will tend to just go with whatever the rest of the market is using. Again, no proper competition.

    I think the answer is probably not legislation - that'll just inevitably shut out small developers. Rather, if I were government (perish the thought) I'd set up a certification scheme to measure the extent to which companies are willing to stand behind their products. The Debian Foundation, Ubuntu and other groups just using the GPL would get a Bronze - they don't stand behind their products, although those repackaging said products might. Microsoft would also get a bronze with their current EULA (great reading if you're ever bored). Red Hat or SuSE might approach the celebrated Gold standard - I don't know what terms they sell their services under.

    Any obvious holes with this? I'm open to having the shit ripped out of it if anyone feels like it.

    --
    For the love of God, please learn to spell "ridiculous"!!!
  133. A poor columnist by adrianbaugh · · Score: 1

    Having read this man's column off and on for years (why, I ask myself...) I can safely say that he is a chimp and 95% of his opinion can be discounted (the 5% is solely attributable to the random-monkey-with-typewriter effect).

    --
    "'I pass the test,' she said. 'I will diminish, and go into the West, and remain Galadriel.'"
    - JRR Tolkien.
  134. Bill Thompson claims to have programming exp. by C0deM0nkey · · Score: 1
    Having non-programmers tell programmers that they expect all software to be as reliable as a bridge is ridiculous...

    Bill Thompson, the author of the original article, "worked as a commercial programmer for several years, and [has] seen how hard it is to write bullet-proof code." Now, 'several years' could be anywhere from three to five or more...but his opinion should not be dismissed as coming from a technology pundit with no real technology experience.

    Other than that, I basically agree with you.

  135. Re:author is obviously unfamiliar with free softwa by colinrichardday · · Score: 1

    If you give away a recipe for poison, what is your liability? Would it not be the same as giving away source code?

  136. The root cause of unreliability by jmorris42 · · Score: 1

    > With a word processor this might be something like i18n issues. We might specify, design, build and test
    > the thing without considering the user might not have a us-ascii character set and then it breaks in China.

    When you first specified the program, i18n should have been decided. If full Unicode was a requirement then yes you had damned well better have tested it in something other than en-US, otherwise Chinese is outside the scope and if it fails it isn't a problem. And if the problem is in an input method or font renderer it also falls outside your scope.

    The problem is with OO, it turns programs into nightmares of invisible interdependencies. Simple procedural code is easy to understand at the unit level and safely abstract away into libraries that export well defined interfaces. But no large project is developed this way anymore, all we get are C++ and Java horrors that never quite work and never will. They can bang away on Mozilla/Firefox for another decade and it will never get any better than IE in the bug dept because both have the same basic design defect, C++. Java & C# are only marginally better; while neither suffer from buffer overruns and pointer arithmetic they still suffer from the problem that in any non-trivial system it is beyond human understanding exactly what is happening within the running program.

    A procedure can be proven, all the inputs and outputs validated and it need never be looked at again. All of the procedures that make up a complex library can be tested individually and then as larger units until an entire librart can be verified as correct and put in the deep freeze. Although admittedly many popular libraries were not totally validated, see recent security bugs in image processing libraries..... but in theory libjpeg's behaviour COULD be mathematically proven for all possible input/output streams at which point there would be no need to ever touch the code again. Classes are often prone to new bugs appearing when they are used (subclassed/inherited) in new and unexpected ways. This ability to inherit in ways the original programmer never anticipated are the selling features of OO design, but we all know it doesn't work that way in real woprld projects.

    --
    Democrat delenda est
  137. Re:author is obviously unfamiliar with free softwa by PurpleXanathar · · Score: 1

    Ok so every EULA will contain "this software may not even do what's meant for and may contain bugs" (which is essentially what they already say).

    Now that the candy has the poison warning on it, is anything changed ?

    If sources are enough to save OSS from liability, EULAs are even better.

  138. Re:author is obviously unfamiliar with free softwa by man_of_mr_e · · Score: 1

    That depends. You're giving away a recipe for poison. It's functioning as expected, and thus is fit for purpose. It does what it's supposed to, and thus you cannot be liable for poor workmanship.

    You could still be liable in other ways. For instance, if you gave a kid a recipe for poison even after he told you he was planning to commit suicide with it.

    This really isn't the issue here though. The issue is of liability if the product doesn't do what is expected of it, and what is the recourse for people who acquire the software and have it fail on them.

    There is an interesting idea here though. An exemption clause for software that includes source would make it CHEAPER for corporations to supply source for their code than not. Unless you have massive amounts of money (ie, IBM, Microsoft, Oracle, etc..) and can afford monster liability insurance, it would simply be most cost effective to make your code open source.

    Of course that would give the big corporations an advantage, but it would make the majority of software available to inspection.

  139. Re:author is obviously unfamiliar with free softwa by man_of_mr_e · · Score: 1

    Actually, yes. If you give away candy (Sweets.. as you call it) with poison in it, you're liable even if you mark them as such. The product is intended for consumption, and using the product as intended will cause harm.

    Why do you think the Cigarette companies lost BILLIONS of dollars in lawsuits, despite clearly marking their product that it will kill you and everyone around you?

    Further, the source code is no guarantee either, since it's very easy for problems to hide in plain sight, even after extensive analysis. By shifting the onus of responsibility on to the (most likely) unskilled end user, it's just a cop out, and any judge would see that.

  140. Re:author is obviously unfamiliar with free softwa by Overly+Critical+Guy · · Score: 1

    Is this the kind of fanatical "free software" trolling that gets upmodded these days? For those who are unaware, Twitter is a well-known anti-"M$" troll.

    Everyone knows that most free software, by virtue of peer review, has fewer bugs and errors than commercial code does.

    No, "everyone" does not know this, and the Mozilla codebase proves you wrong. It has had more exploits lately than your arch-nemesis Internet Explorer. In your eyes, everybody is a programmer spending hours poring over line after line of source code, which never happens.

    This whole issue is a troll the non free software companies come up with every few years. It's a mistake for them, however, and will blow up in their faces. Free software will overcome such nonsense the same way Good Samaritans do.

    And you moderators seriously fell for this?

    Yeah, the mistake will blow up in their faces, just like you've been saying for years, Twitter. Meanwhile, where is free software on the desktop again? Oh, right, non-existent.

    Next.

    --
    "Sufferin' succotash."
  141. a bridge is an apt metaphor by willCode4Beer.com · · Score: 1

    Let me support your argument.

    I know many people will say that comparing bridges and software doesn't make sense. But, let me offer this. If people want the same reliability from software they get from a bridge, then maybe they should be prepared for the same expense.

    The average bridge runs many millions (if not billions) of dollars and can take 10 years or more (inception to completion) to build. Also, people will die in the construction process. And, you'll still get no guarantee of success (Tacoma Narrows anyone?). Then, bridges are usually payed for with tax money, and almost always run over time and financial budgets. (The Tacoma Narrows was conceived in 1928, construction wasn't completed until 1940, it fell down shortly after.)

    I don't know about anyone else but, to me, this seems like a big price to pay to surf the web for pron without getting a virus or a browser crash.

    --
    ----- If communism is a system where the government owns business, what do you call a system where business owns govern
  142. Late but here goes (value of software not written) by Maxo-Texas · · Score: 1

    Well this discussion is mostly dead but here goes.

    What is the value of software that you do not write because you are putting so much effort into writing bug free software.

    This is not an abstract question. At one company where I worked, the effort to get zero defects to production lowered our defect rate from 6 errors per release to .5 errors per release. And our release schedule went from one release per month to one release per 8 to 12 months. They were still paying us the same salary. The same amount of code was in each release.

    But a lot less defects and a lot more "control" since they knew exactly when the next release would be. But we were producing 1/8th to 1/12th the amount of code. Was it worth it? I don't know.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  143. Re:The Market Decides (Cars) by Maxo-Texas · · Score: 1

    We are paying several thousand dollars more per vehicle for these kinds of laws- each added on the premise that it only "costs a few dollars extra per car".

    In return we save a few hundred lives a year. Who knows if other folks die because they are driving an old broken down car, or they don't have a car during an emergency so that we can save those few hundred lives.

    A few hundred sounds like a lot- but we are talking about a hundred million people- in those numbers drinking water resuls in a few deaths a year.

    The cost of our safety structures are making us very uncompetitive with societies who do not care if a few hundred die if it means all the rest can be more competitive. A few thousand students die (suicide) each year but you do not see them making the tests less competitive yet.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  144. Re:author is obviously unfamiliar with free softwa by ajs318 · · Score: 1
    Actually, yes. If you give away candy (Sweets.. as you call it) with poison in it, you're liable even if you mark them as such. The product is intended for consumption, and using the product as intended will cause harm.
    But exactly this does happen in real life. You often get chocolate bars labelled with vague warnings like "On rare occasions this product may contain traces of peanuts or other nuts". If you have a serious allergy problem then it might just as well say "On rare occasions this product may contain lethal doses of cyanide or other poisons". They get away with it because it's only a tiny minority of people who are going to be affected. We'll probably have portable matter analysers soon enough, that will be able to tell you instantly at a glance whether or not a particular item actually does contain anything you are allergic to.

    I think this -- randomly-present allergens rather than deliberately-placed poisons -- is really more like the software situation. If we're being kind to the closed-source developers, the bugs are there by accident, not design. But even so, the closed source vendors are still effectively saying "This chocolate bar categorically does not contain any kind of nuts whatsoever and you'd better believe us, we will punish you if you try to check with a matter analyser".
    Why do you think the Cigarette companies lost BILLIONS of dollars in lawsuits, despite clearly marking their product that it will kill you and everyone around you?
    Because someone managed to persuade a judge that two wrongs make a right. Still, it opened up the way for the families of all those people who had been killed by gu ..... Oh, it didn't. Never mind.
    Further, the source code is no guarantee either, since it's very easy for problems to hide in plain sight, even after extensive analysis.
    It is a guarantee. If the source code says "subtract a penny from every transaction involving a person with an 'e' somewhere after an 'a' in their name every odd Tuesday as long as the printer is not switched on" and the software does just that, it's doing what the source code says it's supposed to do. That may not be what you wanted it to do, but it's there in black and white for someone to find. If that sort of logic trap could go unnoticed, then the program must be quite sloppily written. Whoever was carrying out the source audit should have said that there could be nasties lurking in there.
    By shifting the onus of responsibility on to the (most likely) unskilled end user, it's just a cop out, and any judge would see that.
    I don't buy that argument one bit. As the sole controller of your destiny, you are ultimately responsible for everything that ever happens to you. If you are unskilled in a particular field, then you have two options; either take the time to become skilled in that field yourself, or take the money to pay a skilled person to do it for you. It may not be your fault that you aren't a sufficiently competent programmer, but it sure as hell isn't anybody else's fault either.

    Any idiot can go to B&Q and buy some copper pipe, fittings, solder, flux and a blowtorch. If their self-installed pipes leak, or they manage to set their bathroom on fire, or they drip hot solder on themself ..... tough titty! Some things are just inherently so complex, that they are not easy to use straight away and you can make nasty mistakes. And programming is much harder than soldering pipes .....

    Open Source software is not necessarily free as in gratis, because you may well have to pay to get the code checked over. But that's still not a service you are ever likely to get at any price from the vendors of closed-source software; they have their own reasons for keeping their secrets which exclude all possibility of independent audit.
    --
    Je fume. Tu fumes. Nous fûmes!
  145. Re:author is obviously unfamiliar with free softwa by ajs318 · · Score: 1
    Then the Market will decide. Is it better to
    1. pay a software vendor for a worthless piece of paper {"This may or may not do what you wanted, and we couldn't give a flying toss one way or the other; but if you try to poke about inside it to find out, we will rip you limb from limb and feed you to the hounds"}; or
    2. pay a competent programmer, independent of the original authors and having nothing to lose whatever they say, to determine the suitability of a product for a particular application by inspecting the source code?
    In effect, the above is already what most EULAs say anyway. It's just a matter of time before someone gets burned by closed software, tries to sue a major software vendor and calls the whole setup into question. I'm surprised it has not already happened, but maybe it has and they have been hushed up {bought off and given a stern warning not to talk about it ever again ..... or just killed}.

    My guess is that source code would stand up much better as a defence in court than an EULA, because source code does not actively seek to diminish your statutory rights. And if a bug is obvious to anyone in the courtroom from looking at the source, then it should have been obvious to the plaintiff or their agent in the first place.
    --
    Je fume. Tu fumes. Nous fûmes!
  146. BSD by Anonymous Coward · · Score: 0

    Geeks would call the solution "BSD"

    I'm a linux user dough