Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Holding Developers Liable For Bugs

Posted by CmdrTaco on Wed Oct 12, 2005 09:14 AM
from the you-gotta-be-kidding-me dept.
sebFlyte writes "According to a ZDNet report, Howard Schmidt, ex-White House cybersecurity advisor, thinks that developers should be held personally liable for security flaws in code they write. He doesn't seem to think that writing poor code is entirely the fault of coders though: he blames the education system. He was speaking in his capacity as CEO of a security consulting firm at Secure London 2005."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by Agelmar (205181) * on Wednesday October 12 2005, @09:15AM (#13772940)
    I will admit that I have seen a lot of bad programmers and bad code over the past few years, but let's step back and think about this. Programming jobs are rapidly being sent overseas to India and China. This is not going to create much of an incentive to keep such jobs in the States, nor does it create much of an incentive for people to go into the field. Holding companies accountable, as suggested in the article, might be a slightly better solution, but again it's somewhat complicated when you start trying to hold an overseas company accountable. (It's more doable than holding an overseas individual accountable, but still not a simple task).

    As for the article's last point about CMM environments: It's not at all an indication that software has been developed by quality developers, all it means is that the code was developed using a reasonable development framework. CMM level 3 means that you document your processes, and typically have peer review. Bad peers means peer review is worthless - it does not guarantee good programs. CMM Level 4 involves"quantitative quality goals" by which productivity, quality and performance are to be measured. This is a bit better, but again it's a matter of where the bar is set. CMM Level 5 is about continual improvement, and is extremely strict. I think that CMM Level 5 is the only environment where one can actually be assured of reasonable quality code. I've seen way too much bad code come out of CMM-3 and -4 environments to give them much credit. If you've got great people, then a CMM-3 environment typically produces great results. For -3 and -4, what you put in is what you get out - not guaranteed greatness.
    • by Anonymous Coward on Wednesday October 12 2005, @09:20AM (#13772990)
      CMM level 5 is no guarantee of quality! I worked in India and interviewed many a developer from CMM level 5 companies who were utterly useless. And this idiot who wants to make developers responsible for poor code - does he also advocate Ford or GM workers should be liable for cars that are easily broken into?
        • by AstroDrabb (534369) on Wednesday October 12 2005, @11:11AM (#13774058)
          I agree 100%. I think all companies should be liable for their products. However, I do not think it should be at the individual employee level. After all, the point of a fictitious entity know as a "corporation" is to remove personal liability. If one employee causes a bad product, well fire that employee. However, in the end it should be the "company" that is liable.

          If Ford has a car with faulty steering that locks and causes me to be in a very bad accident, should Ford be liable? IMO, yes. Should the engineers be personally liable? IMO, no. It is up to Ford and their management to hire competent employees and competent management to make sure those employees put out a safe product.

          Imagine what would happen if people were allowed to sue an individual employee because of a faulty product. The cost of labor for _any_ technical job would go through the roof because those, engineers, developers, machinists, etc would all need to buy personal liability insurance, just like doctors have to. One of the reasons doctors _have_ to charge so much here in the USA is because of insurance costs to protect them against sue-happy lawyers and people. Top surgeons can easily pay $100,000+ a year just for insurance!

          • by sterno (16320) on Wednesday October 12 2005, @01:14PM (#13775128) Homepage
            I agree 100%. I think all companies should be liable for their products. However, I do not think it should be at the individual employee level.

            Here's an interesting question. A piece of software that is written to work with Windows has a security flaw in it. The security flaw creates an exploitable condition in Windows such that you can gain total control over the system. Who's fault is it?

            Obviously there was a security flaw in the software that you were using, but then it wouldn't be that critical if Windows handled it's security better. So isn't Windows partially to blame. And what if you set it up in an insecure manner? Isn't that your fault? Or is the developer's fault for not making it more idiot proof.

            Now taking that down to the code inside of a program is just ridiculous. If you've got a team of 10 people (which is small in the grand scheme), each one of them could, individuall write totally secure code. However, come integration time, it turns out that they are opening up holes in eachother's code. So then who's fault is it? What about QA? Shouldn't they have some liability too?

            Finally there's the PHB factor. You could have a group of the best, most security knowledgeable programmers in the world, and they could still screw up due to lack of time and resources. What if the boss tells them to do something that makes the system innately insecure? Who's fault is it then, his for telling them to do it or theirs for not pushing back on the requirement. Not to mention what happens after people have work a few months of 60 hour work weeks trying to get a project done.

            In the end, liability is just a dumb concept in computers. In the end this is one of those places where the invisible hand of the market place is the best correction. Companies that write buggy software routinely will be smacked by the marketplace, by and large. The only exception to that rule is companies like Microsoft who have an effective monopoly. But then that's why we have anti-trust law isn't it?
        • by HTH NE1 (675604) on Wednesday October 12 2005, @11:32AM (#13774283)
          In the Code of Hammurabi, 18th Century B.C.:

          If a contractor builds a house for a man and does not build it strong enough, and the house which he builds collapses and causes the death of the house owner, than the contractor shall be put to death.

          If it causes the death of the son of the owner, then the son of the contractor shall be put to death.

          This is of particular interest to me as I contribute code to software used to design steel buildings. I would not want to see this code reapplied today to dwellings or programming.
    • CMMI (Score:5, Insightful)

      by pdmoderator (63509) on Wednesday October 12 2005, @09:21AM (#13773004)
      CMMI doesn't guarantee good practice any more than membership in the Better Business Bureau guarantees good business. But I'd rather work in a shop that has CMMI in place than one that doesn't. It's insurance against the sort of death marches that create slapdash practice, shoddy product, and security holes in the first place.
      • Re:CMMI (Score:5, Insightful)

        by ShieldW0lf (601553) on Wednesday October 12 2005, @09:34AM (#13773172) Journal
        CMMI doesn't guarantee good practice any more than membership in the Better Business Bureau guarantees good business. But I'd rather work in a shop that has CMMI in place than one that doesn't. It's insurance against the sort of death marches that create slapdash practice, shoddy product, and security holes in the first place.

        That's where this sort of thing leads: insurance.

        If something like this were to happen, there would be an immediate chilling effect on software development, followed by liability insurance policies similar to what doctors have. Software developers would start having this insurance, and then when the end users start making claims, the mighty insurance companies will simultaneously raise their rates and use their financial and political powers to buy laws that cap their liability.

        Developers pay money, insurance companies get money, end users get screwed, politicians and executives get rich. This is called "building economic value".
        • Re:CMMI (Score:5, Interesting)

          by sedyn (880034) on Wednesday October 12 2005, @10:17AM (#13773607)
          The only way that programmers should be personally resposible for their actions is if they can be directly given the rewards. I don't know how this system would work. All I know is that when you currently sign a EULA it is not with a programmer, it is with a company.

          If we are not directly given rewards, then I'm going to study for an MBA after my CS degree to limit my personal responsibility (paradoxically increasing overall responsibility), and most likely make more money anyway. People (shareholders) in corporations get to legally hide behind "the corporate entity" to shield them from personal finanical litigation, their employees should have the same benefit.

          But I think your doctor example is correct, and would describe much more than you pointed out (for example, we would be forced to become as through as possible, like doctors, which would force us to ensure that employers permit it, which may cause unions or something similar, and I doubt business people want unions, especially in IT. I know there are arguments against that, but think, if fewer people enter the field and those that do are more responsible, then the result is higher paid, and more powerful people that need control of their work)
                • Re:CMMI (Score:5, Insightful)

                  by Danse (1026) on Wednesday October 12 2005, @10:13AM (#13773569)

                  Yes, but if the hypothetical law was written that the coder was responsable, as recomended by the ex-cybersecurity czar, it wouldn't matter how many levels of incorporation you hid behind.

                  Well, it would probably eliminate at least 90% of the software being written, since there aren't many coders who would want to be held personally responsible for flaws in the code, especially since it's usually a complex team process where they don't always have the final say in the outcome. So I guess that would reduce the overall number of bugs, right? :) Seriously though, I think this guy is barking up the wrong tree. You can put methods in place to improve software quality, but I don't believe it's possible to produce perfectly secure software, of anything more than very basic complexity, in a timely manner and for a price that people are willing to pay. Feel free to prove me wrong, but I haven't seen it done yet.

                • Re:CMMI (Score:5, Insightful)

                  by Impy the Impiuos Imp (442658) on Wednesday October 12 2005, @10:19AM (#13773630) Journal
                  Can we make the politicians responsible for the consequences of their actions?
          • Re:CMMI (Score:5, Interesting)

            by Directrix1 (157787) on Wednesday October 12 2005, @10:23AM (#13773665)
            Isn't it weird how several people, in almost unison, just suddenly decided: "Hey software developers need to be held liable for bugs in their code." It makes you wonder about their backgrounds [computerworld.com] (read second paragraph). I'm sure this has nothing to do with open source software developers being financially incapable of being held liable for flaws in software they donated. On the other side, I do agree that closed source (AND ONLY CLOSED SOURCE) software makers should definetely be held liable, as there is no other means of recourse in the event of software failure. Whereas, open source license or not, spells out exactly what it will do, line-for-line, and you can either take it or leave it.
          • Re:CMMI (Score:5, Insightful)

            by Valdrax (32670) on Wednesday October 12 2005, @10:30AM (#13773699)
            Ok, developers pay money, insurance companies get money. So, how does this screw end users? Software developers would be forced to write more secure codes to avoid crippling insurance rates. How do politicians and executives get rich, any more than they do already?

            Three words: Medical malpractice insurance. Take any side of this issue you want. In the end, patients get screwed somehow. You want this for software?
          • by ShieldW0lf (601553) on Wednesday October 12 2005, @10:48AM (#13773859) Journal
            The best medical care system in the world comes from keeping the insurance companies out of it. Instead of paying a team of 12 to determine if you should be healed, then paying a doctor to heal you, we just get the doctor to heal you and call it a day. It's much more efficient, and enriches everyone except insurance salesmen.

            Insurance was created as a concept to deal with the fact that in a purely capitalist society there is no sense of community or common good and no one will help you when you need it most. Does anyone actually consider it to be an efficient and effective means of addressing this need?
    • by Velox_SwiftFox (57902) on Wednesday October 12 2005, @09:31AM (#13773105)
      You're leaving out the lower levels. I take it CMM-1 is the level where if the software suddenly causes monkeys to fly out of the butt of the user, that it is perfectly within the specification?
    • Processes can aid in ensuring consistency, but they aren't strictly necessary.

      I worked as a development/support programmer in a fairly critical application area for a major airline for over ten years, and we had a small tight team of a dozen fairly experienced developers and only a few formal processes in place. The software that was written and loaded in production was generally of very high quality, mainly due to a good culture of informal peer review, testing (involving users and programmers alike), heavy use of a test system to let changes simmer a bit before release, etc., but there really wasn't a formal "metholodogy" in place, just common sense practices that everyone there had agreed to follow.

      For larger groups or in development environmments where software is released in bursts (e.g., a new version is released to external customers every few months) it might make more sense to put more formal processes in place, but when working on a living system that has to change from time to time in a few days (or even hours) I'd rather put my faith in a couple of experienced programmers who know the system and the expectations of the end users.
  • Hey, God (Score:5, Funny)

    by Anonymous Coward on Wednesday October 12 2005, @09:16AM (#13772942)
    About this little thing called "the mosquito" which we received as part of Earth v1.0....
  • by muellerr1 (868578) on Wednesday October 12 2005, @09:16AM (#13772953) Homepage
    Whatever happened to holding the people who exploit vulnerabilities responsible?
    • by pturpin (801430) on Wednesday October 12 2005, @09:20AM (#13772988)
      Nah, that requires too much effort. It is much easier to find someone whos name is tied to the code.
    • by ScentCone (795499) on Wednesday October 12 2005, @09:33AM (#13773137)
      Whatever happened to holding the people who exploit vulnerabilities responsible?

      That's crazy talk! What are you thinking, man? Next you'll suggest that when I walk down the street with my entire head completely exposed and vulnerable, that somehow the mugger than hits me over the head with a baseball bat may somehow be responsible for the outcome! See how crazy you are?

      Or, when I lock my door and leave my house for the day, and a guy comes along with a sledgehammer and just breaks in anyway - I suppose you think that the person with the sledgehammer is somehow responsible for that? Totally twisted, man.
  • by metternich (888601) on Wednesday October 12 2005, @09:17AM (#13772958)
    You need proper code reviews, etc. if you want to find security flaws. The company writting the code should be responsible for organizing such things.
    • by Proaxiom (544639) on Wednesday October 12 2005, @09:41AM (#13773242)
      The company writting the code should be responsible for organizing such things.

      You got it right. Producing good code is a complicated process, not something one person can do. You need controls. You need reviews. You need methodical testing.

      Why blame the developer who wrote the buggy code, and not the tester who missed the bug? What about the designer who produces a complicated bug-prone design?

      Good software is a collaborative effort. You need a lot of people who know what they're doing working within a good process. Singling one person out in the system is misguided.

      • by willCode4Beer.com (783783) on Wednesday October 12 2005, @10:44AM (#13773827) Homepage Journal
        Lets not forget that nobody has really figured how to manage software development while the demands of software keep going up.

        Microsoft (in days of old) was criticized for raiding the top developers from other companies and universities. So with the top developers in the world we got Windows, Office and IE. (I don't think there is a need to say what people think of the quality here.) Google, now is the one raiding the top coders yet, they are still producing some buggy code.

        If the best in the business can't produce secure bug-free software, how is anybody else? Granted, we should all strive to make the most secure and bug-free code possible. But, I really don't think it will be a common practice until the management of the process is figured out.
        We've seen waterfall fail, over and over and over and over ....
        RUP, while an improvement, still falls short.
        Agile (XP, etc...) tries to address some realities of development but, it still doesn't really manage it.

        Still, we do see some really good software pop onto the scene every once and a while. Even this is a symptom. The same groups who produce these gems often fail to repeat the process on other projects.
  • Sheesh! (Score:5, Insightful)

    by MeBadMagic (619592) <mtpenguin@gmaiCOFFEEl.com minus caffeine> on Wednesday October 12 2005, @09:18AM (#13772967)
    Remind me not to work for this guy.....

    Why not make CEO's personally liable for not putting the code through proper QC channels and selling it over-promised.

    Made to sell, not to use? Who's fault is that?

    B-)
    • Re:Sheesh! (Score:5, Interesting)

      by bill_mcgonigle (4333) * on Wednesday October 12 2005, @09:36AM (#13773189) Homepage Journal
      I don't know - this could be good for good developers.

      We'd carry "malpractice insurance" the same as a doctor or an engineer who builds a bridge.

      But we'd also develop some backbone. We'd mandate full use-cases, real automated testing, input validation, edge cases - and it would ship when it was ready. Any CEO ramrodding out shoddy software would be in the same position as a CEO at a pharmaceutical company doing the same, subject to having the whistle blown on them.

      Overall, it would serve to elevate the position of software developers to a more professional status, and the salaries would go along with it. There would also probably be stratifications along the lines of architect/engineer/draftsman that we see where this has been done already.

      More significantly it would put up substantial barriers to outsourcing.

      But don't expect Corporate America to allow this to happen without considerable campaign contributions against it. The last thing [name your big abuser of programmers] wants is 'professional' developers (or American developers for a subset of those companies).
      • Re:Sheesh! (Score:5, Insightful)

        by arkanes (521690) <arkanesNO@SPAMgmail.com> on Wednesday October 12 2005, @10:12AM (#13773554) Homepage
        Unfortunately, it'd also completely destroy the very strong non-professional softare development community. Not just OSS either, but shareware, hobbyists, even personal development. The tools required to do software development, like a compiler, would be enormously more expensive. So the question is whether the cover of professionalism is worth the impact of essentially destroying the amateur community, and whether the economic gain of (maybe) better software is worth the massively increased price of software development, the essential extinction of low-price shareware, and the loss of the freedoms that OSS provides, notably the push to open standards that OSS drives. We would eventually have a "big 3" (or maybe 5 or 6) of software development, just as we do with automobile manufacturers, to the detriment of the consumer.
      • money (Score:5, Insightful)

        by willCode4Beer.com (783783) on Wednesday October 12 2005, @11:00AM (#13773970) Homepage Journal
        And who is going to pay for this?

        We create a "secure" web browser but, its gonna cost $10K per copy. This will cover the cost of developemnet, security auditing, extra QA, and the dev cycles that go along with it. Since, the OS can't be trusted to run the browser, it will only work on a dedicated browsing computer with no operating system. Since other peoples code poses a risk, it will not run javascript, java, flash, or any kind of plugin.
        Who would buy this?

        If developers are carrying malpractice insurance, then the insurance companies are going to have a lot to say about how development is done, and *if* it should be done. Your boss hands you a project specification, you send a copy to your insurance co. You then tell your boss that you can't work on his project because you won't be covered.

        Developers are going to have to charge a lot more for their services. Both for the personal risk involved and to cover the cost of insurance.

        Programs can be made "more" secure and have "fewer" bugs but, its going to take more time. Time=money. Look how eveybody is whining that Microsoft is taking too long for the next version of windows. Maybe if they want it to be *secure and bug free* they'll tell MS not to rush; to take a few extra years to be sure about the product; and they'll pay more for it.
  • by HeaththeGreat (708430) <hborders@mail.win.org> on Wednesday October 12 2005, @09:18AM (#13772969)
    That proposal sounds fine, but then we should hold government leaders personally responsible for wrongdoings of government.

    I'd love to see the some jail time or a fine for Mike Brown after Katrina, or how about some jail time for Bush after the false pretences of Iraq?
    • by Skye16 (685048) on Wednesday October 12 2005, @09:30AM (#13773102)
      While the parent references Bush, this works both ways. Actually, it works all ways. Delay? To the pit with him. Clinton? An oubliette. (Not for the adultery - I don't think that's illegal in DC - but for the lying under oath ("I did not have sex with that woman" (okay, maybe there's room for debate, as he only got a blowjob, but if a court does find him guilty, THEN to the oubliette)). I'm sure there are some Independents out there guilty of some things. Democrats too.

      Personally, I think if you're in government, and you break the law, you should get double to triple the punishment you normally would. Why? Because you're held to a higher fucking standard, that's why. Don't like it? Don't run for office.

      Not that any of this was really on topic...
  • Not coders fault (Score:5, Insightful)

    by Quasar1999 (520073) on Wednesday October 12 2005, @09:19AM (#13772979) Journal
    It's usually poor management that forces the product to be out the door 6 months before it's ready. Either keep your job and release a buggy product or stick to your guns and get fired. I think it should be the company, not the individual developer held accountable. How the company handles things internally is up to them.
    • Why stop there (Score:5, Interesting)

      by hey! (33014) on Wednesday October 12 2005, @10:35AM (#13773749) Homepage Journal
      You're right, but you don't go far enough.

      The fact is that the supply of competent people in the world is vanishingly small, whether they be programmers, managers, or people whose job it is to procure things. I'm not talking paper qualifications, I'm talking about functional competence: the ability to handle a complex and uncertain situation, and make the right decisions. It's generally found among people like farmers and blacksmiths who know their business because it is part of body of knowledge that has been handed down from time immemorial. Marketers, managers, software engineers and other people engaged in modern professions -- well lets say good ones are rare indeed.

      Furthermore true integrity, the type that makes you do the right thing when it's easy to pretend things are better than they are and leave some other poor bastard holding that bag -- that's even rarer.

      Software, like most other modern products that are intangible or have a significant intangible value components, is a product of the Shambling Juggernaut of Incomptenence and Denial. The SJID, it must be admitted, works far better than it has any business to. People caught up in it interact like atoms of gas, the composite average of which produces a tolerably reliable mediocrity. Occasionally it will miraculously spit out something wonderful, and not unusually it will produce something horrible, but the machine roles on. And what keeps it running is Denial. Incompetence is the common denominator to be sure, but denial is the fuel that drives the machine and the glue that binds it together. Success has a thousand fathers but failure is an orphan. Those who have reason to be glad of this find their most natural home in the SJID.

      Unfortunately for you, dear Slashdot reader, there may be no place for you here, because unlike the marketers, management consultants, CEO, board, procrement agent, and virtually every other party in the software development arena, you left a paper trail of every mistake you made, no matter how small or how minimally contributory to the overall failrue it may be. Blame is supposed to ooze throughout the system so that pain and damage is not felt in any one place, but instead diffuses into a general atomosphere of dissatisfaction and helplessness. But you, dear reader, carry the antibody of Accountability, which can reliably attach to Blame in concentrations as low as 1 PPM.

      And now, they've noticed. Beware.
  • Right. (Score:5, Insightful)

    by Bozdune (68800) on Wednesday October 12 2005, @09:19AM (#13772980)
    Sure, let's sue the pants off anyone who does anything wrong. Let's make it impossible for anyone to create anything new or different. Cradle-to-grave protection, ensured by armies of well-intentioned and socially-responsible attorneys -- that's the sure way to economic success!

  • nonsense (Score:5, Insightful)

    by moz25 (262020) on Wednesday October 12 2005, @09:21AM (#13772997) Homepage
    While I agree that accountability is a good thing, liability without major restrictions seems like a dangerous thing. I am a software developer myself and I give my clients the guarantee that all bugs they discover within 6 months will be removed free of charge. Since I have no knowledge of how much losses they will claim as a result from even trivial bugs (yes, some clients are greedy), accepting liability is not something I'm going to do.
  • by killproc (518431) on Wednesday October 12 2005, @09:22AM (#13773007)

    I am currently the Development Lead / System Architect at my company. In my experience, the majority of "issues" and or "bugs" that I have seen crop up have been directly tied to poor requirements gathering by our "Business Analysts".

    Often, it turns into a real pissing contest between the two groups. Usually, after testing reveals that the grand vision of the BA is a crock we will usually revert back to the original recommendation of the development group.

    Yeah, let's blame the developers for the problems. That's the ticket.
  • by JemalCole (222845) on Wednesday October 12 2005, @09:23AM (#13773019) Homepage

    He doesn't seem to think that writing poor code is entirely the fault of coders though: he blames the education system.

    You know, I don't think it's entirely his fault that he's an idiot: I blame the education system.

  • by coyote-san (38515) on Wednesday October 12 2005, @09:24AM (#13773039)
    While individuals can make stupid mistakes, the real problem is in the system and managers are ultimately responsible.

    As a simple example, take a web application. The web people believe (reasonably or not) that the form fields will be cleaned up by the backend people. How do they know what's dangerous anyway? The backend people believe (reasonably or not) that the data will be cleaned up by the web people. How do they know the various encoding schemes used, etc.

    Then some **** adds a cross-scripting exploit and compromises sensitive information.

    Who's responsible, the developers or the managers? Even if the developers are paranoid, what about the errors introduced as everyone tries to handle conditions outside of their sphere of knowledge? What about the new security flaws introduced by that?
  • by 91degrees (207121) on Wednesday October 12 2005, @09:25AM (#13773051) Journal
    Hold the vendors responsible. They are responsible for 100% of all problems that are not the fault of the customer.

    The vendor then holds the devloper responsible. They are responsible for 100% of all vendor bugs that are not the responsibility of the vendor.

    The developer then holds the programmer responsible. He or she is responsible for 100% of all developer bugs that are not the responsibility of the developer.

    It's the way it works everywhere else. If you have a faulty product, you take it back to the shop. They then take it back to the manufacturer and if it's a fault caused by a specific individual, they either sack him or train him properly. The purchaser would generally not sue the guy on the production line or the designer, even if it was their fault.

    There are good reasons for doing things this way. It preents people from passing the buck. It means each entity along the line is wholly responsible for ensuring quality.
  • Liable for what? (Score:4, Insightful)

    by mccalli (323026) on Wednesday October 12 2005, @09:26AM (#13773057) Homepage
    For bugs in the code you write? For bugs in the compiler which compiled it? For bugs in the operating system which ran the code? For bugs in the design of processor which executed it? For impurities in the particular processor the code was run with which caused it to malfunction at a certain clock speed?

    Nonsense.

    Cheers,
    Ian

  • He can't afford it (Score:5, Insightful)

    by samjam (256347) on Wednesday October 12 2005, @09:26AM (#13773059) Homepage Journal
    Few people on this planet can afford software developed to such a standard.

    There will always be a market for "cheaper" software that is not guaranteed to such a level, and with support contacts instead, where developers will try a moderate ammount to fix problems as they arise.

    From another perspective, the market is demanding of cheap software - not good software, which is why there is so much of it.

    Sam

  • Full of "Schmidt" (Score:5, Insightful)

    by guitaristx (791223) on Wednesday October 12 2005, @09:33AM (#13773147) Journal
    This is absolute bunk! Most often, programmers would have a 5-10% stake in responsibility when compared with the mountainous bureaucracy above them. Consider how often a non-technical exec overseeing a software development project will agree to a contract that is nigh impossible to complete on-time. The customer holding that contract begins squeezing testicles, placing pressure (by extension, through the bureaucracy) on the entire development process. The exec says, "You mean there isn't a programmer writing or debugging code this very instant!? What a crime! You're not doing your jobs properly!" The truth of the matter is that ~30% of the project timeline should be research and design. Without a good design, and resources on-hand, bugs creep in. It is impossible to test quality into software, it must be designed in.

    Programmers don't draft contracts, they don't set deadlines, they don't make budget decisions, and certainly aren't responsible for failing to keep bugs out of a system that was (due to poor decision making in the aforementioned areas) designed to have bugs.
  • Profession (Score:5, Insightful)

    by archeopterix (594938) * on Wednesday October 12 2005, @09:43AM (#13773261) Journal
    Merely holding developers accountable won't do anything without big, big changes in the software industry. Look at people who are personally accountable for their fuckups - medicine doctors. There are several distinct things about them:

    1. You cannot become a doctor without long theoretical and practical training, intermixed with hard exams. All this is heavily regulated. To become a coder, you just have to pass a job interview. Software engineering certifications are optional and generally regarded worthless.

    2. Doctors are insured against malpractice. The costs are high, and generally passed on to patients.

    3. Doctors can choose not to operate (administer drugs, etc.), if the action constitutes malpractice. In software industry it's "use this braindead tool, or get fired".

    4. Malpractice. Ok, today's revolutionary therapy, maybe tomorrow's malpractice (or vice versa), and experts might disagree about some practices, but there is some sort of general agreement on what constitutes malpractice. I'm not sure whether IT is mature enough to speak of "malpractice" here.

    To sum it up: yeah, you can make developers liable for their mistakes, but the consequences would be huge. The costs of IT would skyrocket. Are you ready to pay for that?

  • by jellomizer (103300) * on Wednesday October 12 2005, @09:48AM (#13773318)
    1. We can pass the blame to any bugs in libraries or other peoples code that we use to them or if there is a bug in the operating system, because we followed the specs of the 3rd party tool but the 3rd party tool is not working up to specs.

    2. We get paid for the full development cycle, and no pressure to get it done on time, or even close.

    3. If the Specs for the application never changes from the writen specs of the application before it is written.

    4. We are not responcible for any flaws that happen in old versions when there is a newer version out there.

    5. The Latest version of the Application is younger then 3 months.

    6. The application went threw full debugging and testing for 2 years with at least 10 people per line of code.

    7. The application doesn't try to keep compatibility with an older system.

    8. Is used on hardware the specs were approved in and were created before the release of the application.

    9. And if the developer wants to support it.

    When developing a Car or builing a house, there is a lot more prework that goes in they know what they want and how it works before they build it. Programming right now is not setup like that because it is to expensive for a single application or a custom application. Plus it will make more people decide not to be a programmer if they are responcible for every code they ever wrote.
    • by Sycraft-fu (314770) on Wednesday October 12 2005, @12:01PM (#13774559)
      My car is buggy, very buggy by software standards. Here's a list of just a few of it's bugs:

      1) It is not resiliant to attacks. If someone wants to break in and steal it, it's very easy to do. Trivially easy to someone with training. The manufacturer has done NOTHING to fix this. In fact, all suggested solutions are just bandaids, they don't really do anything. Stronger glass, a kill switch, the Club, all are easily defeatable. They offer me no absolute security against attacks.

      2) My car does not deal with user error very well. If I put it in neutral and floor it, the engine will overheat and seize up, no cut out. If I poot toothpaste in the oil tank instead of oil I'll ruin the engine. There is virtually no protection against me making mistakes, and many of the mistakes will permenatnly disable the car.

      3) My car doesn't handle unexpected situations well. If it suddenly hits a brick wall, it will be damaged or destoryed, same if another driver suddenly collides with me. It only operates properly under normal circumstances.

      What's worse? They KNEW about all these problems from the car's inception. They sold it to me, knowing these problems, and are doing NOTHING to fix them! Even upgrading to a newer version of my car (for which I must pay full price) won't fix them.

      So I feel it absurd to attempt to say "We have to hold software to the same standard as cars" and by that mean that software should be perfect. Cars aren't perfect, by software standards they are buggy peices of shit. I expect that software should be essentially immune to any malicious attacks. If a flaw is found, I expect it fixed in a timely fashion for no charge. Likewise, I expect software to deal with user error well and not blow up if I do something wrong. However if I told you I wanted a car that did all that, I'd be laughed at.
  • Contempt. (Score:5, Insightful)

    by CDPatten (907182) on Wednesday October 12 2005, @10:17AM (#13773600) Homepage
    Programmers are not a parallel to automotive makers; they are a parallel to Authors, Book writers. Can you think of anything more absurd then suing an Author of a book over typos? Or the reviewer of that book who says "this is the best book of the year" and you thought it was the third best?

    This is the same reason patents on software are ridiculous, can you patent a love story plot? It's just absurd. This is another example of our society's run-away liberal government mentality. Big government stifles creativity, freedom, and crushes capitalism.

    A case like this should be thrown out of court as a frivolous lawsuit and the lawyer held in contempt, but we won't get that from activist judges.
  • by RobinH (124750) on Wednesday October 12 2005, @11:21AM (#13774157) Homepage
    While this may actually be feasible for shrink wrapped software that sells a million copies and has a team of expensive testers going over it button by button, this would completely destroy custom programming.

    I write software that is usually only run on one or two computers at one location, and it's constantly modified to add features, fix bugs, etc. Our company and our customers can't afford to pay triple the cost for the stringent software testing that a huge Micro$oft type place would have, so a law making the programmers personally liable would make all custom software prohibitively expensive.

    We do sell our code with a 1 year warrantee, so we agree to fix all bugs that come up within the first year. However, the agreement is not a guarantee. If there is a bug, we agree to fix it, but we're not going to compensate the customer for lost production or expenses.

    There is software in this world (I'm thinking the QNX kernel here) that actually comes with a guarantee that it works as documented. The company (QSSL) has liability insurance just in case. Of course, that makes QNX licenses more expensive than they would otherwise be.

    Most software comes with a disclaimer. Microsoft tells you that the user accepts the liability for any bugs. Even though nobody reads that disclaimer, it still exists. Right now you have a choice - you could hire someone to write code and give you a guarantee (expensive), or you could just buy something off the shelf (cheap) that would probably work ok most of the time. The article is talking about removing that choice.
    • Re:Right.... (Score:5, Insightful)

      by Overzeetop (214511) on Wednesday October 12 2005, @09:19AM (#13772975) Journal
      No, gun manufacturers should be liable for producing faulty safetys which do not function properly, or firing pins which may actuate without a trigger press.
    • Re:Right.... (Score:5, Insightful)

      by TheRealMindChild (743925) on Wednesday October 12 2005, @09:20AM (#13772993) Homepage Journal
      Only if the gun blew up and killed the shooter.

      Your comarison doesn't match because developers would be held liable for a skill that they present as "Professional". Similar would be making the brick layer accountable for a building coming down.
    • Re:I can see... (Score:5, Insightful)

      by rovingeyes (575063) on Wednesday October 12 2005, @09:24AM (#13773034)
      No kidding! If a car manufacturer produces a car that has a faulty part, is the engineer held laible? Hell no! its the company. You don't hear John Doe recalling the cars. Its GM that recalls it. Whether John is fired or not is a different issue and up to the company. Similarly the Software company is liable for the product. You blame Microsoft (sorry it was an easy target)!
      • by Skye16 (685048) on Wednesday October 12 2005, @09:25AM (#13773050)
        We hold them liable for defects that cause people to get hurt.

        If you're going to attempt to compare apples and oranges, let's at least use an orange colored apple, shall we?

        It'd be like holding car manufacturers liable for not making a car absolutely impossible to break into.