Slashdot Mirror


Holding Developers Liable For Bugs

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."

127 of 838 comments (clear)

  1. Send jobs overseas, CMM by Agelmar · · Score: 5, Insightful

    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.

    1. Re:Send jobs overseas, CMM by Anonymous Coward · · Score: 4, Insightful

      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?

    2. Re:Send jobs overseas, CMM by rovingeyes · · Score: 3, Insightful
      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

      You don't hold overseas companies accountable, its not our job. We hold local companies accountable. They received the money from us. We don't care how they spend it or don't spend it. Normally these companies don't tell you upfront that they are the middle man. If they do that then their accountability is diminished. But in reality most of these companies say they are producing the code, have their licenses and brand name on them. So you just hold them accountable. If a software screws up they pay not the overseas company.

    3. Re:Send jobs overseas, CMM by Velox_SwiftFox · · Score: 4, Funny

      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?

  2. Hey, God by Anonymous Coward · · Score: 5, Funny

    About this little thing called "the mosquito" which we received as part of Earth v1.0....

    1. Re:Hey, God by Impy+the+Impiuos+Imp · · Score: 2, Interesting

      Noah and his kin must have been very sick aboard the Ark because things don't evolve, and nobody but God can create life, so they must have hosted tuberculosis, flues, colds, the Black Death, pneumonia, crotch cheese, those little yellow cute guys that live under nails, skin worms, heart worms, et al.

      In fact, every species should have been sick as a dog, who would also be loaded with heart worms.

      Well, either that, or the Noah thing is a bunch of crap.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    2. Re:Hey, God by magarity · · Score: 3, Interesting

      the Noah thing is a bunch of crap.
       
      It should suprise no one that a religion started on the largest flood plain in the world has a giant-flood-wipes-out-everything story as part of its mythos. There may well have been some guy whose family and livestock rode out a particularly nasty flood on a raft and this got enhanced and embellished to the current version. But you don't need to be a sarcastic jerk about it.

  3. Who is the bad guy? by muellerr1 · · Score: 5, Insightful

    Whatever happened to holding the people who exploit vulnerabilities responsible?

    1. Re:Who is the bad guy? by pturpin · · Score: 5, Insightful

      Nah, that requires too much effort. It is much easier to find someone whos name is tied to the code.

    2. Re:Who is the bad guy? by mfifer · · Score: 3, Insightful

      The two need not be exclusive.

      One slightly contrived example...

      A house has a door lock that's poorly made. A burglar jiggles the handle and it falls off and the door opens. You can bet yer bippy that the lock manufacturer is gonna hear from the homeowner's lawyer(s).

    3. Re:Who is the bad guy? by ScentCone · · Score: 5, Funny

      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.

      --
      Don't disappoint your bird dog. Go to the range.
    4. Re:Who is the bad guy? by rishistar · · Score: 2, Funny

      Nah, that requires too much effort. It is much easier to find someone whos name is tied to the code.

      That'll teach those coders to put their names at the top of files.

      --
      Professor Karmadillo Songs of Science
    5. Re:Who is the bad guy? by Phisbut · · Score: 2, Insightful
      If something is advertised as being secure, then it had better be secure. The same thing should apply to software. You should be responsible if you tell customers your software is secure, and it isn't.

      I don't remember ever seeing a piece of software that wasn't provided "AS IS, WITHOUT WARRANTY OF ANY KIND INCLUDING THE IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE". Maybe the military or NASA can afford to buy software that has a purpose, but so far, all the software I have ever installed was somehow useless by design, since none of it should serve any purpose... Hard to hold me responsible if I sell you something and tell you in BIG CAPITAL LETTERS that whatever I'm selling to you is useless.

      --
      After 3 days without programming, life becomes meaningless
      - The Tao of Programming
  4. If anyone it should be the managers by metternich · · Score: 5, Interesting

    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.

    --
    Facts do not cease to exist because they are ignored.
    1. Re:If anyone it should be the managers by gl4ss · · Score: 2, Interesting

      it's all about money in the end.
      going over the code with few extra eyballs costs - it costs in wages and it costs in _time_.

      also sometimes it's about compromises.. sometimes the things are designed badly in some aspects so that the product is convinient in others.

      --
      world was created 5 seconds before this post as it is.
    2. Re:If anyone it should be the managers by Proaxiom · · Score: 5, Insightful
      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.

    3. Re:If anyone it should be the managers by Rob+Riggs · · Score: 2, Interesting

      You also need properly trained personnel who can spot security flaws in code. Those are typically expensive and harder to hire than your average coder or QA person. If said company is only willing to pay an "average" salary, they will get exactly what they pay for.

      --
      the growth in cynicism and rebellion has not been without cause
    4. Re:If anyone it should be the managers by willCode4Beer.com · · Score: 4, Insightful

      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.

      --
      ----- If communism is a system where the government owns business, what do you call a system where business owns govern
  5. Sheesh! by MeBadMagic · · Score: 5, Insightful

    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-)

    --
    A friend will come and bail you out of jail, a true friend will be sitting next to you saying, "damn that was fun!"
    1. Re:Sheesh! by bill_mcgonigle · · Score: 4, Interesting

      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).

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    2. Re:Sheesh! by arkanes · · Score: 4, Insightful

      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.

    3. Re:Sheesh! by DigitalCrackPipe · · Score: 2, Interesting

      Apparently he was willing to blame everybody except himself for failures... he has management written all over him.

      Seriously though, management would be responsible long before the engineers, because they make the choices that either ensure or prevent quality.

    4. Re:Sheesh! by bill_mcgonigle · · Score: 2

      All good points - I guess it comes down to a societal decision. With cars we've decided to only let certified cars on the roads. You can drive anything you want on your own race track.

      We might make a similar decision on the publically-routed Internet, and draw the distinction there.

      There is a process for getting a home-built car certified as street-legal. OSS software could do the same. It might look like a network-proxy or object broker such that each OSS project didn't need to develop its own network code.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  6. Hold Government Leaders personally responsible by HeaththeGreat · · Score: 4, Insightful

    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?

    1. Re:Hold Government Leaders personally responsible by Skye16 · · Score: 4, Interesting

      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...

    2. Re: Hold Government Leaders personally responsible by Black+Parrot · · Score: 2, Funny
      > That proposal sounds fine, but then we should hold government leaders personally responsible for wrongdoings of government.

      My solution is, at the end of a politician's term hold an election where the only two options are:
      • grant him another term
      • send him to prison
      Maybe that would help guide their behavior.

      OTOH, shouldn't the voters who put a bad man in office go to prison for it?
      --
      Sheesh, evil *and* a jerk. -- Jade
    3. Re:Hold Government Leaders personally responsible by xtracto · · Score: 2, Interesting

      That proposal sounds fine, but then we should hold government leaders personally responsible for wrongdoings of government.

      Just to put something valuable to your offtopic rant (FTFArticle):

      Schmidt also referred to a recent survey from Microsoft which found that 64 percent of software developers were not confident they could write secure applications. For him, better training is the way forward.

      I think one of the key issues of non secure software are the tools that are available to develop them. By that I mean
      languages & compilers

      1. You see, people that make programs in C/C++ know that if they are not used well there is a HUGE chance to produce buggy code. Now, it is also known (as another slashdoter stated before) the incentive to put a lot of effort in making bugfree software (i.e. the time spent for QA in C/C++ apps.) is not really good, after looking the average developer per hour payment.

      Because of this, companiles like Microsoft,SUN,Metroworkers etc, should make better compilers, maybe compilers that whine about all kind of errors (i.e. pedantic flag?).

      The other way is (what has been done and I think has been quite useful) to create new languages which less prone to errors (i.e. Java, C#, VB .NET [i expect more than one comment on this last one]).

      2. Another thing closely related to the first point is TOOLS, these tools should be a VERY robust set of tools that allow programers to develop applications. Something like the Java API, for example if I want to make a simple chat program, this toolset would allow me to do it very easly.

      And, as a personal opinion, all those toolset should have a "secure by default" approach. I am sure a lot of people will tell me "there are enough tools, but people do not use them", as for example, a RSA communication module in Java, or what not. The matter is that it should be the OHTER way arround, the common (just an example... I do not know by heart the java api... hell, ANY API) net.java.network.tcp.HTTPObject should have an OpenConnection funtion which is SECURE by default, not an OpenSecureConnection() or even worse to have this connection on a net.java.network.securetcp.SecureHTTPObject because, that way, the general prorammer wont use it.

      Of course training is important but one of the reasons of why there has been an *explotion* of software nowadays [yes, a lot of it crap, closed and open source alike] is that more tools have become available. But these tools should be perfect.

      As for the "developer liability" I think that is reasonable when you buy your software but when talking about open source or any other kind of free software I think it is the most stupid thing. It is like when the kid blew up his fingers trying to make a bomb using the Anarchyst Cookbook, so what, is the author liable?? and worse, if you are just giving away something what the heck could someone claim?

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
  7. Want me to pay 10x more attention when I code? by Anonymous Coward · · Score: 3, Insightful

    Want me to pay 10x more attention when I code?

    Pay me 10x more. And don't be in such a hurry for your product to get completed.

  8. Re:Right.... by Overzeetop · · Score: 4, Insightful

    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.

    --
    Is it just my observation, or are there way too many stupid people in the world?
  9. Not coders fault by Quasar1999 · · Score: 4, Insightful

    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.

    --

    ---
    Programming is like sex... Make one mistake and support it the rest of your life.
    1. Re:Not coders fault by Quasar1999 · · Score: 2, Insightful

      I think you gave away a little too much. Besides, I was under the impression that if a developer checks in code that breaks the build they are put into 'developer jail' to prevent them from screwing up more of the code. Did this not happen in your example? If not, it defeats the purpose of 'gates' in the first place. I used to work for a company that was contracted out to do work at your former company. Needless to say the 'gate' system was totally stupid, as the person in charge of integration simply changed the requirements until our buggy code passed through the gate (redefined the requirements until the bugs were in code not mandatory). Go figure. Took me a few months to find another job and quit, but I know exactly how you feel.

      --

      ---
      Programming is like sex... Make one mistake and support it the rest of your life.
  10. Right. by Bozdune · · Score: 4, Insightful

    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!

    1. Re:Right. by xtracto · · Score: 2, Funny

      Obligatory simpons quote:

      Lionel Hutz
      "Can you imagine a world without lawyers? (Then he imagines everybody holding hands, dancing together, and shudders)"

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    2. Re:Right. by hackstraw · · Score: 2, Funny

      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!

      Better watch out, I have a patent pending on such a thing right now. Anybody with such a plan will have to license it from me!

  11. Re:Wouldn't that be like... by scovetta · · Score: 2, Insightful

    Not at all. It'd be like holding car manufacturers liable for defects that cause people to get hurt.

    And we do that today.

    Why should software be any different, except that writing bug-free software is probably just as hard as designing a "perfect" car.

    --
    Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
  12. Re:Right.... by TheRealMindChild · · Score: 4, Insightful

    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.

    --

    "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
  13. nonsense by moz25 · · Score: 4, Insightful

    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.

  14. Oh, yeah by ceeam · · Score: 2, Insightful

    You can as well ban "software development" as a trade. After all - WTF? You get what you pay for. I say that your average "in-house" enterprise software system has complexity no less than Toyota Camry or something. The difference being that software would be developed by 1-10 men during a year or two whereas any other _industrial_ design costs (both in $$$ and "man/hours") much, much, much bigger. But who cares? Get back to coding, you idiots!

  15. CMMI by pdmoderator · · Score: 5, Insightful

    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.

    1. Re:CMMI by ShieldW0lf · · Score: 5, Insightful

      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".

      --
      -1 Uncomfortable Truth
    2. Re:CMMI by ShieldW0lf · · Score: 2, Informative

      What he's saying is to sign and distribute your code using your legally registered corporation ABC Inc. and funnel everything out of the corporation into your pocket. That way when they try to sue ABC Inc. for their first born child, you can say "na na na na na, you loser, corporations don't have balls!"

      So to speak.

      --
      -1 Uncomfortable Truth
    3. Re:CMMI by 'nother+poster · · Score: 3, Interesting

      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.

    4. Re:CMMI by Danse · · Score: 5, Insightful

      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.

      --
      It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
    5. Re:CMMI by sedyn · · Score: 4, Interesting

      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)

      --
      Am I open minded towards open source, or closed minded towards closed source?
    6. Re:CMMI by LeonGeeste · · Score: 3, Insightful

      Hold on - insurance is actually a good idea. That way, clients get compensated for bad product, and developers pay premiums based on their history. The liability insurance problem with doctors is a problem of the legal system, not with insurance itself. Payments are so widely varying, and probably partially due to jury's emotionalism, but more likely due to the fac that they have nothing to compare it to. If you break a vase for $10,000, they award $10,000 + admin. costs. It's really simple. But people are not allowed to negotiate with doctors before operations: "I will pay you for surgery, but only if you agree to pay $X to my family if you kill me, $Y if you lob off a limb, etc." so juries can never know what a "reasonable" payment is.

      If payments are widely varying, and, as is the case, dependent on a doctor's wealth, NOT actual harm done (rich doctors pay more) it's extremely difficult to insure, and, even worse, becoming a better doctor won't lower insurance premiums! (This is because everyone will make some mistake at some point, and at that point, the jury will award an amount closer to the doctor's net worth, meaning over time, bad doctors pay the same as good.)

      The way to solve this is to agree to a specific schedule of payments if there are bugs as part of a contract to develop code. This avoids all the problems you describe above (like trying to get out of liability) and keeps down insurance costs for good coders.

      --
      Rank my idea: http://www.sinceslicedbread.com/node/531
    7. Re:CMMI by Impy+the+Impiuos+Imp · · Score: 5, Insightful

      Can we make the politicians responsible for the consequences of their actions?

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    8. Re:CMMI by Directrix1 · · Score: 5, Interesting

      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 (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.

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
    9. Re:CMMI by Impy+the+Impiuos+Imp · · Score: 2, Insightful

      I have seen severe, fundamental design flaws get through to nearly the end of a project, passing multiple code and design reviews, and that's without a sinister agent out there trying to defeat you.

      It cannot be guaranteed.

      People who plan for long-term storage of nuclear waste have as rule #1 that they acknowledge they cannot design a system that will defeat people determined to break in. If the army protecting it goes AWOL over the centuries, as happened at the great pyramids, well, ...

      Even if you could prove mathematically a system was secure, there's still the social engineering aspect. Which, I see from various news stories, seems to account for a good chunk of these security "lapses".

      And I don't think you could prove a system mathematically secure "in general", anyway, as people data must go over a network, and people can crack encryption given enough time.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    10. Re:CMMI by Valdrax · · Score: 4, Insightful

      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?

      --
      If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
    11. Re:CMMI by 'nother+poster · · Score: 2, Insightful

      no. Whenever we try, they pass a law granting themselves imunity. Funny how that works.

    12. Re:CMMI by wbradney · · Score: 2, Insightful

      Right. I'd be happy to take personal responsibility for the code I write for my employer, as long as I get: a) a direct and substantial cut of the profit and b) the code I write belongs to me, not them, and I take it with me when I quit or get fired. I will, of course, licence it back to them for a 'reasonable' fee...

    13. Re:CMMI by WolfWithoutAClause · · Score: 3, Interesting

      Yeah, and just try getting malpractice insurance in an environment where in the middle of an operation the hospital can declare that 'the operation is over, the patient can leave now'; and if the patient dies, it's the surgeons fault and (s)he gets sued.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    14. Re:CMMI by sedyn · · Score: 2, Insightful

      Exactly. I forgot about the owning of code part...

      Hell, then they really don't want to piss me off. Then I'll just GPL it and make ownership topple like dominos.

      --
      Am I open minded towards open source, or closed minded towards closed source?
    15. Re:CMMI by dwandy · · Score: 3, Insightful
      This is only a good idea if you're an insurance company, since they are the only ones guaranteed to make a profit on this.
      developers pay premiums based on their history.

      I don't know how it works where you are, but 'round here people pay car insurance based on how everyone else drives (factors like age, gender etc can play an enormous role in the rate, regardless of the drivers own record)

      The liability insurance problem with doctors is a problem of the legal system, not with insurance itself.

      ...and that very same legal system will preside over these claims.

      --
      If you think imaginary property and real property are the same, when does your house become public domain?
    16. Re:CMMI by Kortec · · Score: 3, Insightful

      I agree that obviously this sort of a development, if you'll excuse the pun, would lead to the need for software malpractice insurance, but this is by no means any sort of solution. It's a decently well documented fact that the malpractice insurance costs for medical insurance are driving many out of the profession. On the anecdotal level, I'm personally aware of people who have stopped doing more risky procedures, root canals in the case I'm thinking of, just to lower their insurance bills so they can stay in operation. (For a less anecdotal approach, there's some documentation here, and lots here.) Does this translate to programmers only using languages and operating systems deemed "well supported" by some bean counter, and therefore less risky? Forget about the IP debacle, can we even begin to quantify the sort of effect this would have on innovation and technical advancement? Taking risks and trying out new things is the very soul of technical work, and working with unstable material is the most efficent way to make it stable.

      On a more pragmatic level, there are a number of differences between the more traditional professions to be held liable and that of the code-monkey. Most important, to my mind, is that for the larger firms, much work seems to be done in teams, so tracing down what exact individual is personally and exclusively responsible for a specific bug would be computationally expensive on a grand scale. This, therefore, would seem to point to a larger corporate liability, which I guess is fine for the truly larger corporations, but could kill a small company or an open source group without a second thought. I have yet to see any large company (*cough* Microsoft *cough*) actually being held truly responsible for their mistakes and bugs, so this obviously hasn't happened yet.

      --
      "My heart is in the work." - Andrew Carnegie
    17. Re:CMMI by cenobyte40k · · Score: 2, Insightful

      You can just as easily pay someone to certify that the closed source software does what you want. I have a lab just for that here at work. Nothing gets rolled out until it is completely and totally tested. You really need to stop looking at this as some way to get rid of companies that you don't like and think about it logicly. How about this. Ford publishes the blueprints for all it's cars and truck every year, most major automakers do. (You can pick them up at most auto parts stores) These cars are very much less complicated than say SQL, Linux or Office, so it should be easier to figure out if there is a problem. However I am going to bet that A) you don't get the manual and check over everything about your car and you don't pay anyone to do it either and B) you would expect to be able to sue if the car has some horriable problem that is dangerous. With your logic because they publish the blueprints you should not be able to, which is well just silly.

    18. Re:CMMI by sik0fewl · · Score: 2, Funny

      If only computer programmers were the ones that drafted laws..

      --
      I remember when legal used to mean lawful, now it means some kind of loophole. - Leo Kessler
  16. Yeah, let's blame the developers. by killproc · · Score: 5, Insightful


    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.

    --
    When you die, on your deathbed, you will receive total consciousness. So I got that goin' for me, which is nice.
  17. Says it all by ackthpt · · Score: 3, Funny
    ex-White House cybersecurity advisor

    I didn't catch the ex- part the first look and thought "whaaaat?" as I know the current White House occupation force is very Microsoft Friendly and would never endorse such sentiments.

    --

    A feeling of having made the same mistake before: Deja Foobar
  18. The consultants will love that. by Jaeph · · Score: 3, Interesting

    It's not always a question of the coder, and a bug is not always a bug. In the example in the article, for all we know the specification called for a plain-text transfer, and the coder did exactly right.

    So we'll have yet more wrangling over specifications, more walls between users and developers, and more CYA behavior. That'll be fun.

    -Jeff

    --
    Please learn the difference between a dissenting opinion and a troll before you moderate.
  19. Education system? by JemalCole · · Score: 5, Funny

    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.

  20. Law Suits by Treacle+Treatment · · Score: 2, Interesting

    Look at it this way. There are already laws on the books that say I can sue company X for giving me a POS. Why go after the poor slob who works for the company. If I have a blowout on a tire on my car should I track down the guy on the assembly line that was working that day or go after they company whose prosess stinks?

    --
    TT
  21. What a dumb idea. by mjparme · · Score: 2, Insightful

    So should we hold construction workers who help build a house that gets burglarized be held personally responsible?

  22. Re:I can see... by rovingeyes · · Score: 5, Insightful

    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)!

  23. It's the system, not the individual by coyote-san · · Score: 5, Interesting

    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?

    --
    For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  24. Bah by kpat154 · · Score: 2, Insightful

    This is just what the software industry needs: Another business guy who has never written a line of code trying to tell the rest of us how to do our jobs. For all of the whining and crying about bad software you'd think they'd actually put the developers in charge for once. I can't speak for the industry as a whole but from my perspective 70% of the problems in the development world come from business types setting impossible deadlines and failing to listen to their developers.

  25. OSS Projects? by psyon1 · · Score: 3, Interesting

    How would this affect OSS projects? Would the development community be liable for damages caused by bugs in software? I have seen alot of free software that comes with a disclaimer waving all responsibility of the author, would that still hold up?

  26. Re:Wouldn't that be like... by Skye16 · · Score: 5, Insightful

    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.

  27. Chain of responsibility by 91degrees · · Score: 5, Insightful

    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.

    1. Re:Chain of responsibility by Marsala · · Score: 2, Insightful

      Actually, you're not far off the mark here.

      In any company, there is one person and one person alone who's responsible for the defective product -- the CEO. If payroll isn't met on time, that's the CEO's fault. If someone gets mugged out in the parking lot because there wasn't adequate lighting or your building security was nonexistant, that's the CEO's fault. If there's no toilet paper in the bathroom, that's the CEO's fault. If the company fails to meet its sales expectations, whether it's because the sales staff sucks, the marketing staff screwed up their job, or the engineers decided that the 40% chance of the widget blowing up and unleashing a bolt of lightning into the frontal lobe of the user was "good enough"... that's the CEO's fault.

      The CEO is the chief executive officer. He's responsible for everything that his company does and everything that happens at the company. The weight of the world is literally on his shoulders, and it's why he gets the big bucks, the golden parachute, and the nice office.

      It's also why it's his responsibility to make sure that the developers that get hired by his company have either been trained properly or get trained properly. It's why it's his responsibility that project managers know what the hell they're doing and make sure that when you design "end-to-end solutions" that they don't have gaping security holes like customer data passing into the accounts payable system in clear text. It's why it's his job to hire a CTO that understands all of this and can hire the project managers and programmers necessary to do the job right.

      Schmidt is trying to pass the buck for his mistake. It's as absurd and cowardly as a general trying to say he lost a war because his soldiers didn't fight hard enough, or an NFL coach blaming his kicker missing a 3 pointer for causing the loss.

      If he was serious about getting it fixed, there'd be a lot less whining to a trade rag trying to pin the blame on his employees, and a whole lot more fixing it.

      Leadership for the win. \o/

  28. Liable for what? by mccalli · · Score: 3, Insightful
    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

  29. He can't afford it by samjam · · Score: 5, Insightful

    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

  30. Flawed Premise by GogglesPisano · · Score: 2, Insightful

    To put the entire blame on the developer misses the point.

    While programmer ignorance, incompetence and/or laziness certainly plays a role in the problem, there are other factors that should be considered:

    (1) Death-march-style deadlines imposed by management, leaving no time for proper design, threat modeling, or testing.

    (2) Security flaws in the underlying infrastructure (operating system, network, etc).

    (3) Malice/stupidity of authorized users to bypass established safeguards.

    Security is the responsibility of everyone involved in the creation, management, and use of a system, not just the hapless developer.

  31. organizational problems are bigger part by Thud457 · · Score: 4, Insightful
    1. What about slipshod companies that don't have proper processes in place to test & verify code before they ship it?

    2. What about laissez-fair management that ignores any such processes that are in place so to ship code on some arbitrary market-driven deadline?

    --

    the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff

    1. Re:organizational problems are bigger part by AstroDrabb · · Score: 5, Insightful
      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!

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
    2. Re:organizational problems are bigger part by fossa · · Score: 3, Insightful

      And what if Ford sells you a car that fails to leap to the side to avoid an imminent collision, causing you do get into a very bad accident? And if Ford sells you a car that can drive into a building at 100mph? And if you use your car in some extreme environment that causes the breaks to degrade rapidly? What if the steering only locks after 20 years of use? I think you need to make a distinction between gross negligence and simple physics. Certainly if Ford misrepresents the capabilities of the auto that is different, but one simply cannot expect everything to work perfectly at all times. Life is fatal; everything is a tradeoff of risks, and at the end of the day you've got to watch out for yourself.

      There's also a big difference in that if I drive a faulty car (which there are various regulations against, or at least manufacturers must meet various regulations before they can sell a car), I put you in danger. If I use faulty software, I only put my data in danger (ignoring worms and the like). I'm not really interested in paying more for higher quality becaue you think I should.

      That leaves the question: if my faulty software damages your data becaue it contracted some malware that attacked you (or perhaps it's just faulty somehow), then who is at fault? Should the internet be regulated like roads are? I would like to think "no, certainly not", but who knows. Would regulation even improve things? Highly unlikely I think.

    3. Re:organizational problems are bigger part by shreak · · Score: 3, Interesting

      These were Certified "Professional Engineers". This is different from being a "regular engineer" which is simply a corporate title.

      A P.E. is roughly equivalent to a C.P.A (Certified Public Accountant) and has undergone some form of state certification process. The process typically includes testing then working under a P.E for some number of years and usually another test.

      Once you are a P.E. you are able to "sigh-off" on specific designs. You are putting your professional name on it and can be held personally liable. P.E.s DO NOT do this for free and typically get "malpractice insurance". In this case the engineer made a mistake (or was incompetent) and is no longer a "Professional Engineer" (and may have suffered other claims).

  32. Full of "Schmidt" by guitaristx · · Score: 4, Insightful

    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.

    --
    I pity the foo that isn't metasyntactic
  33. Some Accountability is Good by LexNaturalis · · Score: 2, Interesting

    I think I agree with the British Computing society moreso than with Mr. Schmidt. I think coders should be held responsible, within a company, for poor code that they write, but overall the company should be held liable for bad code that it ships. If a company fails to have proper QC, then it's the company's fault, not the fault of a lone coder who might have written an insecure subroutine. Most companies don't have single coders, and rarely is there a single coder who has full (100%) knowledge of the other 10,000,000 lines of code in the product. I think proper education, as stated in TFA, is a better idea. Why not send the employee to a security class if the coder continually writes insecure code? That'd solve the responsibility issue and the education issue. Then, the company would produce more solid code and everyone wins; especially the consumer.

    --
    Men occasionally stumble over the truth, but most of them pick themselves up and hurry off as if nothing ever happened.
  34. Sarbanes-Oxley by ihistand · · Score: 3, Informative

    I write financial reporting software for my company. Before anything is installed, even the most minor one-line bug fix, I have to sign a Sarbanes-Oxley statement of compliance. There are criminal consequences for not performing these steps properly. My QA person also has to sign this. My CIO is also held personally responsible, in that he/she could go to jail if something I wrote caused inaccurate financial reports to be released.

    I suspect many people who write software, like myself, are already personally responsible. And so we should.

    1. Re:Sarbanes-Oxley by sadr · · Score: 2, Informative

      But if you've complied with the procedures and a problem still sneaks through, you won't go to jail as I understand it.

      If you intentionally sneak something in that causes the data to be misrepresented, you're liable.

      If you put something in that is defective and didn't follow procedures, you're liable.

      But even the shuttle software, for example, still has the occasional bug even though it is developed under some of the most stringent policies in the world and isn't an overly large application.

  35. In the end, it's the people who create quality. by Richard+Steiner · · Score: 5, Interesting

    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.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  36. Profession by archeopterix · · Score: 5, Insightful
    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?

  37. SECURITY IS NOT A STATE, IT IS A PROCESS! by Chas · · Score: 2, Insightful

    Dammit!

    I'm so fscking SICK of these people who treat as if it's something that can be permanently gained by doing A, B, and C.

    BULL!

    Security is about understanding your platform.
    It's about knowing the strengths and weaknesses of said platform.
    It's about maximizing the strengths and limiting/minimizing the impact and exploitability of the weaknesses.

    It's about doing A, B and C, to get going. Then next week, you do D and E. Then think about implementing F. But make sure that it doesn't conflict with B.

    Also, they need to understand that security is NOT about keeping people out of the system. Face it. If someone wants to get into your systems bad enough, they WILL get in. Regardless of your protections.

    It's about making it so difficult to access it in an unauthorized manner that:

    A: The invader gives up and moves on to easier targets.
    B: Spends so much time trying to gain access that he gets noticed eventually.
    C: Has to utilize truly heroic (and traceable and wildly obvious) means to gain access that he gets noticed right away.

    So please, people! STOP with the damn pipe-dreams about "totally secure" systems already!

    The only "totally" secure system is one that's been rendered down to shavings and disbursed in random geographic locations via wind, water, and other means of distribution.

    --


    Chas - The one, the only.
    THANK GOD!!!
  38. Developers will take responcibility if... by jellomizer · · Score: 4, Insightful

    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.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:Developers will take responcibility if... by DavidpFitz · · Score: 2, Insightful
      2. We get paid for the full development cycle, and no pressure to get it done on time, or even close.

      Get real! No pressure to get it done on time? What other engineering discipline would this be acceptable in? None. "Sorry sir, your bridge is not built yet - but we don't feel pressured to complete it in the timeframe we said we could do it in".

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

      The world changes. Deal with it. Or be unemployed. Requirements change, just a fact of life.

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

      What?! So, never retro-fix a serious security flaw into a product just because a newer version exists? So, in your world you would just give your customer the one fingured salute and tell them to upgrade? You'll find yourself without a customer.

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

      I have no idea what you mean by this. Are you saying you would not take responsibilty for anything you produced which is older than 3 months?!

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

      This is engineering. There is an acceptable level of failure.

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

      Fantastic! I'll just tell the Bank who consult with me that they need to upgrade every system they have becasue our new application doesn't like talking to anything which is not 0 day. I can see that going down well.

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

      Yep, valid point. This should always be the case. Although now you can't beef up the servers in case of performance problems, even though this is the cheapest way to do it.

      9. And if the developer wants to support it.

      Now you're just making me laugh!!

  39. Programmers liable but big companies profit?? by KWTm · · Score: 2, Insightful

    My first reaction was: I wonder which lobbyist of a Large Software Company helped put this one through?

    The programmer is personally liable, but the big corporation who employs him/her profits from the work? Wasn't the whole point of creating a corporation to put a degree of separation into liability?

    Also, even if A Large Software Company promised to protect their own employees (some liability insurance as part of the benefit, say), this would still be bad news because it discourages independent programmers and coerces everyone into joining A Big Corp.

    A better idea would be to make it optional, like certification by a licensed Software Engineer. Just like, for example, how you could build your own toolshed with wood and hammer, but to build a house, you have to get a Licensed Inspector or be a Licensed Civil Engineer or something. (Details fuzzy, but you get the idea.)

    Okay, now to go RTFA.

    --
    404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
    [GPG key in journal]
  40. Re:I can see... by MasterOfUniverse · · Score: 5, Insightful

    Exactly. If a software makes $1 million. Do the developer(s) get the million? Then why should they be held responsible for the "loss" and not profit?

    --
    "There is no flag large enough to cover the shame of killing innocent people."--Howard Zinn
  41. This would be great for the insurance industry... by uqbar · · Score: 2, Interesting

    Rather than deal with the problems that lead to insecure code (usually management based) most companies will take out insurance. And this has worked so well for Medicine...

  42. Collaboration is not a hard requirement. IMO. by Richard+Steiner · · Score: 2, Informative

    Producing good code is a complicated process, not something one person can do.

    There are dozens (if not hundreds) of examples out there of high-quality code being produced by a single standalone programmer, some of them fairly complex applications/utilities, and that is true not only in the DOS/Windows shareware and open source software environments but also in the corporate mainframe environments where I've worked.

    Yes, such folks will generally have other folks to testing over time, but often the concept, design, coding, and initial testing stages are all handled by a single person who has the technical skill, vision, and determination to create the initial solution and whip it into workable shape. Once that basic foundation is in place, feedback from others is solicited.

    A person who doesn't care about quality or who isn't technically adept enough to avoid problems is probably going to produce a bad piece of software in the end regardless of the processes in place unless everyone else in the development chain holds his/her hand.

    A person who is obsessed with clean code and who has a clear vision, on the other hand, can often perform amazing feats with little more than a single PC or terminal, a pizza delivery service, and a few hundred gallons of coffee (or Mountain Dew) at his or her disposal. :-)

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  43. Re:Right.... by LnxAddct · · Score: 2, Interesting

    Software is a bit different than anything else you can compare it to. It is essentially "living" math equations. To prove a program to be perfectly functioning is the equivalent of proving a huge mathematical statement... except because of that good ol' Turing completeness you can't ever prove that an arbitrary program will halt given any type of input (that's not to say that you can't severly limit the cases, and it is possible to design a program that you can prove will halt, just very hard for any complex piece). I could go into this further but suffice it to say that proving quicksort sorts on average of nlg(n) is one thing, proving that your program will perform every function as desired is quite another and would take decades to produce any piece of software of any notable complexity. Adding to this... your software is running in an environment on an OS that it doesn't control which can have any of a variety of patch sets and have any versions of various drivers while also running along side other software that may affect your program by hooking into it, corrupting files, eating all the memory on the machine, thus screwing your program and causing it to possibly crash in the middle of an important cycle. Its not like the Universe where you can be pretty sure what physical laws you're dealing with. In software there are no set of standard "laws", every computer is a different "universe" with different hardware, different programs, different speeds, different amounts of memory, things like antivirus and anti-spyware wil interfere with how your program functions, viruses, and random operating system quirks. Your software relies on the operating system to be perfect, and to prove the operating system to be perfect I would imagine would take on the order of 5 decades, while at the same time forcing the software to not be advanced or changed at all because the proof would have to start from the beginning again. Then for every bug found while proving the operating system functions as desired, when that bug is fixed the proof would have to be done all over again from scratch. The world of software is different then any other industry in the history of man, and as such can not be compared with industries that make physical products. If you don't want technology advancement to crawl to a stop, then don't support this.
    Regards,
    Steve

  44. Accountability by plopez · · Score: 2, Interesting

    Is the sign of a profession as opposed to a trade or a craft. If we want software 'engineering' to become a true discipline we need to hold software 'engineers' accountable. In every other engineering profession insurance for errors and ommisions is required to practice, basically malpractice insurance. Even contractors, plumbers and electricians often must be licensed and/or post bond. Why not programmers?

    Any company reselling software in the US developed overseas would carry the liability and there by apply the same rules to overseas programmers (e.g. an offshored CPA must still pass a CPA exam or selling that person's services as a CPA is fraud).

    In addition, development of and adhesion to best practices would have to then be done by companies or they would never get SE's to work for them. The liability issues would be too great, and this would force companies to actually develop best practices and processes.

    It would make sense to do this.

    --
    putting the 'B' in LGBTQ+
    1. Re:Accountability by ctid · · Score: 2, Interesting
      Is the sign of a profession as opposed to a trade or a craft. If we want software 'engineering' to become a true discipline we need to hold software 'engineers' accountable. In every other engineering profession insurance for errors and ommisions is required to practice, basically malpractice insurance. Even contractors, plumbers and electricians often must be licensed and/or post bond. Why not programmers?

      Think about what you're asking here. If I'm a plumber and I fix your toilet and it leaks, then I (or my insurance) would have to pay for the damage to your home and the cleaning up etc. As a programmer, my program might be installed on hundreds or even thousands of computers. How am I going to be able to compensate everyone who uses my software? Specifically, how is someone who offers free software going to be able to continue to do that?
      --
      Reality is defined by the maddest person in the room
  45. guns, cars, airplanes, shuttles... so on by popra · · Score: 2, Interesting

    when you buy a car, drive it, the breaks fail, you hit a wall and die... who is held responsible? the company that built it.
    when your airplane crashes in the middle of the ocean due to engine failure... who is held resposible? the company that build it or the airline.
    the answer is never the designer, engineer or whatever.

  46. Great news for the software industry... by MerlinTheWizard · · Score: 2, Insightful

    So, not content with the actual state of things (an ever decreasing number of young people willing to chose a career in the software development field, at least in most developed western countries), the guy wants developers to be held responsible for the bugs they introduce (and as if that was that easy to determine): so basically no one will want to be in the field anymore, which will just make all things worse and force us to outsource every development work even more than we already do. Yes, all in all, a great move indeed.

  47. Contempt. by CDPatten · · Score: 5, Insightful

    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.

    1. Re:Contempt. by greg_barton · · Score: 2, Insightful

      This is another example of our society's run-away liberal government mentality.

      Right. This was proposed by a former member of a Republican administration, who was appointed and served at a time the Republicans controlled the White House, Senate, and House of Representatives.

      Oh yeah. We're overrun by run-away liberalism.

  48. OT: Clinton did not lie under oath by brlewis · · Score: 5, Informative

    Under oath, Clinton was given a very specific definition of sexual relations, and according to that definition he didn't have sexual relations with Monica Lewinsky. Where he did lie was to turn around and say the same thing to the American people. We didn't give him any such specific definition, so he should speak our language.

  49. I'll give you a maybe... by raygundan · · Score: 2

    I would agree that this could possibly be good for developers. I've done things quick-and-dirty, against my better judgement, and with flaws that I personally would have preferred to remove many a time because management wants it done fast and just barely meeting the contract specs, and bugs can always be fixed "in the support phase."

    That said, programmers would start having to behave like Engineers, and I'm not sure they're all ready for it. It would be a rocky transition for the industry. I don't think management will be happy to hear the sort of estimates that come from engineers whose personal reputation is on the line in a design-- before I'd sign off on anything personally, I'd be damn sure it was right and that there was a rigorous test plan to make sure the implementation worked as planned when we were done. Costs for software will go up dramatically, but so will quality. Still, I suspect it will be a tough sell to management, who will fight any sort of liability legislation tooth-and-nail.

  50. Actually it monetary gain by StillNeedMoreCoffee · · Score: 2, Interesting

    Who gets sued has to do with who has the deepest pockets. If there is a billion dollar software company and a 50k programmer who introduced a defect. The lawyer for the plaintiff will counsel that the company and the store that sold you software (assuming it is a big store chain) will get sued to maximize the lawyers return on investment (not necesarrily yours). You see that with car accidents as well where the car company might also be getting sued if it looks like an argument can be made. Not that it make any sense but it will mean usually it is better for a company to settle than to pay their own lawyers big fees to take something to court where they might loose.

    Doctors are leaving my State because of this practice. Malpractice Insurance is way up. Not because there is more malpractice but because the laws of the State and the courts and the lawyers are having a field day, and orgy of wealth sharing. (Well sharing among lawyers).

    Its more a lawyer wealth acquisition opportunity than a user or industry complaint resolution or redress technique.

    How many times have you heard a plaintiff say "I'm not suing for the money, just to get satifaction or prevent this from happening to someone else". You don't hear their lawyer saying that (pro-bono aside) so often the lawyer gets much much more of a settlement than the plaintiff. Wheres that at. Usually it is structured that the lawyer gets 50 or 70% of a settlement, but wait I'm not done, lawyers expenses (including time spent) are taken off the top before the split or taken out of your split. And I though project managment was a racket.

  51. Why stop there by hey! · · Score: 4, Interesting

    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.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  52. Re:Deadlines by tomstdenis · · Score: 2, Insightful

    Yeah that's the point. Don't take money to do bad things.

    If your employer says "get this ready tommorow or you're fired" you're probably not at a good place anyways. And if enough people held such personal convictions the employer would have no choice.

    That said, all too many developers don't do their share of documentation or proper development practices. how many developers write doxygen/javadoc comments? How many developers verify their code? Write use cases at least? etc...

    There should be liabilities for software developers. Otherwise what are they worth if any "monkey" can develop software?

    Tom

    --
    Someday, I'll have a real sig.
  53. So Long, Gang... by The+Angry+Mick · · Score: 3, Interesting
    Nah, that requires too much effort. It is much easier to find someone whose name is tied to the code.

    Damn. I guess this means the end of Microsoft, and Linux, and FreeBSD, and UNIX (I would say SCO-UNIX, but let's face it, they're gone already), etc. - God knows they've got plenty of names lurking in their code and all have had some sort of vulnerability at some point in time. I guess all that'll be left is OpenBSD, although that one exploit may come back to haunt 'em.

    On another note, I'm curious to see how Mr. Schmidt would lke the liabilities to be addressed. Are we talking say a $5.00 fine for typos, $100.00 for DLL/Library breakage, $1000.00 for a viral vulnerability, and, oh, maybe $1,000,000.00 for a exploit that grants root privileges? Would these penalties be scaled by installed user base so that smaller companies like Bob's Fuzzy Linux won't go bankrupt after the first lawsuit? Or will larger companies be able to buy "vulnerability credits"?

    --

    I'm not tense. I'm just terribly, terribly, alert.

  54. Re:Software Engineer - Oxymoron by tomstdenis · · Score: 3, Insightful

    I think you missed an important engineering concept known as the "tradeoff". Usually 100% verification of software is just not possible [e.g. prove me your implementation of AES works for EVERY plaintext/key combination]. And bugs are normally not intentional but simply in use cases developers/coders haven't explored.

    So while I agree with the sentiment that bug free software is possible this notion that no software [or hardware for that matter] should never have a bug is ludicrous and isn't even reflected by the "real engineers" [e.g. people who build buildings, roads, bridges].

    Tom

    --
    Someday, I'll have a real sig.
  55. Re:Insurance is bad, mm'kay? by ShieldW0lf · · Score: 4, Insightful

    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?

    --
    -1 Uncomfortable Truth
  56. Re:He's right, and it'd be good for IT by ctid · · Score: 2, Insightful
    If the law simply said that software products much be tracable to a company with more than X% (for X>80) software developers who are certified, and that the certification must be in a territory where the sanctions are credible, you'll see off-shoring end. Grandfather in existing developers and you're all sorted.


    Wouldn't this utterly destroy the Free Software movement? (Incidentally, we'd probably lose the internet too).

    --
    Reality is defined by the maddest person in the room
  57. money by willCode4Beer.com · · Score: 4, Insightful

    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.

    --
    ----- If communism is a system where the government owns business, what do you call a system where business owns govern
  58. Could be good for the billables by ClayDowling · · Score: 2, Interesting

    If I have to carry professional liability insurance, I will have to charge some very prodigious rates. These will be rates on a par with what doctors charge. Which means that I'm driving a new Mercedes in the not too distant future.

    At least in theory, companies will simply refuse to hire domestic programmers because their rates would be too high. However it's likely that companies could become pretty risk-averse and unwilling to hire foreign programmers, since they will have no recourse when the corporate data is compromised. The discrimination against foreign programmers will become similar to what is faced by foreign doctors currently.

    Likewise, because of the increased expense, companies will buy far less software in general, and they will plan our their real needs a lot more carefully.

    I can't say if this will be good or bad for programmers in the long run. Attorneys and doctors seem to be prospering and they live under the same burden. It could well be that placing professional liability on programmers and weeding out the pretenders would be good for those that remained. The only question would be which of us would remain?

  59. I'm all for this... by jnaujok · · Score: 3, Funny
    As the only comparable occupation where one is held liable for every action, this would put me in the same category as a medical doctor. That means:

    • My salaray immediately jumps to the $500 to $1000 per hour range
    • The number of people willing to code drops close to zero
    • I carry "Security-Flaw Insurance" to cover my code
    • I can demand only the most up-to-date equipment and refuse to work without it
    • I only have to see one manager every two hours, and that for five minutes. The rest of the time I only have to have my nurse/assistant deal with them.
    • My nurses/assistants do 90% of the work, but get paid 5% of the money
    • You can come to me with requirements, but I'll tell you what we're going to do about them. If you don't like it, go get a second opinion from my other coding friend.
    • I only write about 15 lines of code every day
    • I come to work at 10:00, take a two hour lunch, and leave at 3:30
    • Computer companies give me free stuff to recommend their products
    • One word: Golf

    So, heck yeah, cripple the IT economy, and make me stinking rich!
    --
    Life, the Universe, and Everything... in my image.
  60. There are so many by niiler · · Score: 2, Insightful
    Points of failure in any software, that it is impossible to know who to blame.

    For example. Today, I set up HPLIP for the first time instead of HPOJ for my PSC2110. What a pain. I had no problems configuring or making, but then there was an issue when I tried installing. Clearly the HPLIP programmers' fault, right? Or was it that I was using a Slackware derivative with a mixture of packages and as a result, many libraries and config files were in non-standard places? I would have guessed that if ./configure && make worked, everything was found properly. But it wasn't. If my nonstandard config was the problem, then perhaps I'm responsible. Eventually I got everything working but with one caviat. I could only scan as root.

    In the real world, if this happens to a litigious happy individual who likes to bill $400/hour, he'll sue:

    • The distro - for not giving directions, or having the package properly precompiled for exactly his system
    • Slackware - for not providing a compatible package (the reasoning being that if the distro is Slackware-based, then Slackware must assume some liability)
    • The hpij developers, since this could have been an issue
    • The cups developers, since this could have been the issue
    • The kernel developers, since this could have been the issue
    • HP, since their driver didn't work instantly in the desired way
    • etc...
    • I'm sure I've left someone out. Anyhow, considering the sense of entitlement most people who can hire lawyers have, this is not a path that we want to walk down. Each possible point of failure would become the target for a lawsuit when the real failure might be summed up as a case of not RTFM.
  61. There are different categories of software by RobinH · · Score: 4, Insightful

    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.

    --
    "I have never let my schooling interfere with my education." - Mark Twain
  62. Not a good idea. by unoengborg · · Score: 2, Insightful

    People/companies are not writing bad code because they are sloppy or doesn't want their code to be secure or correct. They write bad code because there really is no way ensuring the security today. If there were, price insensitive things like battle ships would not be dead in the water because of software error. I suppose you could make code reasonably secure for certain certified environments e.g. Running a certain build of MS-Office on a certain build of Windows XP in a certain hardware in a specified configuration.

    What if the user doesn't run it under the conditions specified e.g. connect it to the internet and internet was not covered by the specification should the developer be liable then? Of course you could hold the developer liable no matter what. But that would put software development in a different position than all other products. E.g should a building contractor of a high building be held responsible for the damage to a parked car outside the building caused by somebody jumping from the roof in the act of committing suicide? I think not, even though the errors in building construction making this possible and the means to fix them is much more evident than most software problems.

    The only thing that will happen if this was introduced is that software prices would go up radically as software companies or individual developers need to make sure the make a profit even if they have to pay damages now and then. I.e. the price of the software will have to pay more lawyer and insurance fees. If this is introduced in a country the cost of running a business will increase significantly, and I am not just talking about software business. How many businesses would afford to have the cost of their IT infrastructure increased by several orders of magnitude. A country that introduced such laws would kill all business that need some kind of IT support, at least if it did not also have very high customs fees or taxes for imported products and services.

    As for the software industry of such a country you would probably see fewer and bigger companies with the money to bury customers claiming their rights in legal process for a very long time perhaps until they go out of business before they get their money. The fact that there was fewer actors in the market would in itself raise the price of software due to less competition. It would also slow down the speed of development. If you for instance create a new version of an office productivity suit, you would probably want to test it for several years on a group of subjects that have waived all their legal rights before you release it to the general public. Then you would like to profit from that investment for a very long time. Perhaps 20 years or so.

    --
    God is REAL! Unless explicitly declared INTEGER
  63. Cybersecurity success shows knowledge by foolinator · · Score: 2, Interesting

    There is over $3B spent a YEAR on "cybersecurity." So far, they've implemented an email alert system that tells people of new viruses/worms going around. They've convicted less than 10 people. They made claims that Al Queda operatives can turn off the Internet and disrupt powerlines through a modem in a cave (even though powerlines are turned off through a physical switch).

    Now, our Cybersecuity making an outrageous claim that developers held responsible for unforseen security breaches. I would only be up for this if every time someone does a buffer under/overrun as a security breech that the OS developer be held responsible - Microsoft :)

    There's many layers below the developer that can have security holes:
    * the virtual machine (for .NET/Java/Python etc etc)
    * The OS
    * the hardware's firmware
    * an error in the processor
    * the API the developer uses
    * poor requirements
    * encryption algorithm flaws
    * idiot bosses who proclaim that a product MUST ship on time

    This guy is nothing but a tool of the government. All of cyber security has always been this way. My only regret is not joining them to get a piece of the terrorist/cybersecurity pie they're handing out due to FUD.

  64. Code of Hammurabi by HTH+NE1 · · Score: 4, Funny

    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.

    --
    Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    1. Re:Code of Hammurabi by Franklinstein · · Score: 2, Interesting
      You jest but engineers ARE held liable for their work...as are doctors. That is why they purchase such expensive insurance policies.

    2. Re:Code of Hammurabi by Anonymous Coward · · Score: 4, Funny

      "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.
      "

      If it causes the death of the owner's boss, then the contractor's boss shall be put to death.

    3. Re:Code of Hammurabi by Duhavid · · Score: 3, Funny

      And there was much rejoicing!

      --
      emt 377 emt 4
  65. And people want software held to a higher standard by Sycraft-fu · · Score: 4, Insightful

    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.

  66. Re:Software Engineer - Oxymoron by onkelonkel · · Score: 2, Insightful

    You are correct about tradeoffs. "Perfect is the mortal enemy of good enough." For most software good enough is, well, good enough. Development cost and time-to-market drive decisions much more than ultimate lack of bugs. I realize that 99.9% of all sofware out there is not life and safety critical. Nobody dies if a printer driver crashes. Thus, there is no point, other than pride in ones own craftsmanship, in writing perfect code.

    However, a lot of people here have stated that it is flat out impossible to write code with no bugs. Almost as if it were a law of physics, or religious dogma. It is, of course, also a handy excuse for writing buggy software, and a great way to dodge the responsibilty.

    It IS possible to write bug free software; I know because that's what I do for a living. We write software for railroad traffic control systems. An unsafe failure can easily lead to dozens of lives being lost. For an analogy, picture an intersection of two busy four-lane highways, where the traffic lights once in a while all go green at the same time.

    There simply can't be bugs in our finished software. The procedures and methods we use to ensure this are time consuming and expensive, but we have no choice. And if, God forbid, somebody died because of a bug in my software, then I would be responsible.

    --
    None of them can see the clouds; The polished wings don't care.
  67. responsible politician ... flying pig by ChristTrekker · · Score: 2, Informative

    Ha! Yeah, that'll happen.

    Political responsibility is limited by the memory span of the constituents. If we've forgotten by the time of the next election, then they're not held responsible. There are several problems contributing to this:

    1. US Senators are no longer elected by state legislatures since the 17th Amendment. Can you remember what you senator did 6 years ago? Heck no. The longer term of the Senate was justified because they were going to be the best of the best, the most capable people, selected by a select group that had already been determined the best of their respective localities. Further, an entire state is too large a district to represent adequately from a populist perspective. Do you really think your senator feels personally accountable to any individual voter? Do you think he'd feel more or less accountable to the few dozen people in your state house? Hmmm, think about it. The 17th was supposed to make the Senate more responsive to the popular will, but it did the opposite. Senate campaigns are some of the most expensive there are. If you think Big Money is influencing politics, then you don't need campaign finance reform (which just limits individuals' freedom to support whom they want), you need to repeal the 17th.
    2. US Representatives likewise serve districts that are much too big. By the original reckoning of the Constitution (1:30k, small enough that you'd have a good chance of having met your Congressman at least), we'd need something like 8000 reps today. That's a bit crazy, but we certainly could have 1000 - easy with modern technology like PA systems, TVs, and computers. Again, make them accountable to a smaller group, so the common person will feel more engaged with the process, and hold the fire to their feet when it comes up on election time. At least they only serve a two-year term, so it's a bit easier to remember if the guy has been doing a lousy job or not.
    3. The (plurality) voting system lends itself to voter disinterest. The voting rate is so low because people feel they can't make a difference - they take it as a foregone conclusion that it's going to be a donkey or an elephant no matter they do. Duverger's Law at work. We need to reform the system so that it supports diversity of political thought at a fundamental level - by giving everyone an equal chance, regardless if they're incumbents or not. Anecdotally, I submit the fact that the voter turnout rate in presidential campaign years declined every year 1960-2000, except for one: 1992. What happened that year? Ross Perot. Like him or hate him, he was a well-known well-publicized alternative that people thought had a chance of winning. He pulled some votes from the disenchanted of the Duopoly, and he pulled in votes from those that were disillusioned of the whole system and would have stayed home otherwise. Anyway, without informed and engaged voters, you're not going to get decent people elected.
    4. Media spin and media hype in a revenue-driven media world. The old media doesn't care about educating people anymore, and exposing corruption. They're in bed with the pols. If you want real reporting, you get it online or from other "non-establishment" sources.

    There are other reasons why politicians' actions are poor.

    1. In many states, members of the legislature are paid only a token wage, so you get underqualified people that are somehow in a position of having the free time to serve (e.g. retired). If the job is going to tie up so much time that he can't support a family by working the rest of the year in the private sector, then you need to compensate him fairly. Better yet would be to limit the role of gov't so you can get that business done in a couple months. Legislative sessions are traditionally in the winter so that you can get home in time for spring planting and the "work season" - but we've made the politicians' job into a full-time role. Unfortunately.
    2. There were some more, but I'm getting too long...
  68. Re:Software Engineer - Oxymoron by tomstdenis · · Score: 2, Insightful

    Not disagreeing with the sentiment. I've had to deal with my share of "my god this ain't right" code because for a lot of people simply demonstrating that a function CAN get the right results is enough to call it a day.

    The problem is us few folk who actually care to do things right at the start usually get pushed aside from the peeps who want a really quick solution. Of course it usually happens that down the road a proper start ends up saving time and money in the end but management doesn't care about that.

    For me the best compliment I get is "it just works". As in people use my libraries [and various programs] and they "just work" as advertised [e.g. documented]. People seem to be surprised that I document stuff too [e.g. I have a manually typed/formated manual in LaTeX as well as doxygen comments] as well.

    On my part I do things like make rational design choices [e.g. clear function names, consistent parameter orders, return values, expected behavioural models] because *I* want to use the code. The fact that it helps others [the code is public domain] is purely immaterial.

    And I think that's the trick. Most "really crappy" software is written by people who

    a) don't know better
    b) won't be using it themselves in future work [e.g. it works now, I'm done]
    c) see a)

    Like look at things like some kernel modules. They're for the most part horribly written but that's solely because once it works once they think their job is done.

    Then you have a host of really buggy pieces of commercial, shareware, freeware and OSS tools that come from people who bite off more than they chew. They come out of college or university without a single successful project under their belts and they assume they have unquestionable knowledge about the nature of the universe.

    What's worse is some of these people turn into 50 yr olds with a chip on their shoulders about a golden yesteryear.

    If people just wrote code under the working assumption they'd have to see it again one day you'd see more modular, flexible, well documented and thoroughly tested code. Or they're stupid for inventing more work for themselves...

    Tom

    --
    Someday, I'll have a real sig.
  69. I'd even argue the company angle by sterno · · Score: 5, Insightful

    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?

    --
    This sig has been temporarily disconnected or is no longer in service
  70. Professional Engineers, Practices and the Industry by kaladorn · · Score: 2, Insightful

    Add to the 'sign-off' aspect the usually required (at least here in Canada) training in law and ethics and you will find that few P.E.s will sign their names or affix their seals to things they don't have relatively high degrees of confidence in. When a P.E. screws up, they lose their license to practice and quite often their businesss, consultancy, or academic credentials at the same time. Thus, they try very hard not to screw up. This means they are act as a check on poor practices.

    But getting to be a P.E. involves overcoming the standard challenges and it isn't for everyone. A lot of engineering in non-software fields seems based around working with known processes and known parameters to produce a product or some result.

    The reason bridge building is a pretty sane discipline is that the characteristics of materials and the physics of bridges is pretty well explored. When a Civil Engineer builds a bridge (or designs one), he has good computer aided tools to do it, standard catalogs of parts and materials, and he knows all about tolerances, safety factors, and good processes. He couldn't sign-off on the project otherwise, without taking his head in his hands.

    Contrast that with my work, where I have to build applications using an OS I know is inherently flawed (they all are, but some more notably), it must be designed to work on a wide variety of hardware platforms (many of which I don't have on hand), it must often work with other people's code from outside my organization which is bleeding edge and often of dubious standards, and it is built with tools I only mostly trust and on top of libraries from the OS provider and from third parties into which I have no visibility. There are strategies to mitigate risk, but I'd be very damn leery of signing my name or affixing my sigil in a P.E. context to even my best code - because I know the system it is part of has so many components I don't control and so many points of failure.

    One risk mitigation strategy involves extensive testing (some say up to 90% of project cost). Anyone interested in paying $1500 for a copy of Office? I don't see many hands.

    I'm all for seeing an improvement of professional standards and practices in the field, the injection of more engineering approaches into the field, etc. But the software field moves faster (IMO) than any other technical field. It also is one in which you have the least faith in the parts you build with. Until reform happens *across and throughout* the field, any efforts to go after companies or individual engineers is a waste of time.

    Let's put it another way, more succinct: If I had to sign off in a legal liability sense for the code I've been writing for the last two years on the current contract, I'd imagine I'd have written about 10% of the code I have written and I'd have demanded a *lot more* from the people supplying me with 3rd party code to integrate. Since I know the business model wouldn't support that (the costs would kill the product as it stands), I have to think this approach is only viable once we decide we don't want 'the next new thing' in software and that we care about what we get enough to pay for it.

    Someone compared the effort to Ford or GM making cars. If you want to spend $15-50K dollars for a computer, I'm sure we can offer you a lot higher level reliability from the software. heck, at those kinds of costs, you might get the same sorts of warranties you get from Ford and GM, though they warrant around as much as they can get away with. But if you want to pay under $1000 for the hardware and under $1000 for the principal software, then you might as well expect something that works about 1/10th as well. And it seems to me you've got that.

    So, who here is lining up to buy the first $15K personal computer?

    Nice idea, don't see it happening anytime soon.

    --
    -- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
  71. A bit unreasonable considering... by riprjak · · Score: 2, Interesting

    ...Ok, I have donned the flame proof underwear here. And speaking entirely subjectively; well, in reference to Australian Engineering in any case.

    Anyway, I am an Engineer, with certified competencies in Australia. I specialise in mechatronic engineering and work mostly in manufacturing systems development. As a highly qualified professional, I can be and indeed am held personally liable for my failures, as can a Medical Doctor. The similarities?? LONG and COMPLEX degrees, sufficient training and sufficiently rigorous oversight that graduates, after an intern period, may be considered legally liable and have the skills and competence to operate in such an environment. Not only that, but I must demonstrate a significant number of hours a year in professional development to maintain my certification. Without it I couldnt get professional indemnity insurance, nor indeed jobs for which I am likely to be held personally liable.

    Here in Australia at least, there are NO true Engineering degrees for computer programmers, Electrical or Electronic engineers often specialise in computer systems, but they are still trained as Engineers first and foremost. Degree qualified computer programmers are at best science graduates and at worst arts graduates. It is unreasonable to place the burden of personal liability on people who did not choose such a career path. When I was at university the difference was 35+ contact hours vs 16- contact hours and a 4~5 year degree vs a 3 year degree. Those doing the latter certainly arent likely to be adequately prepared to shoulder that kind of professional burden.

    Take a graduate mechatronic Engineer, a mechanical Engineer, a civil Engineer and an aerospace Engineer. Give them each problems from the other's field and appropriate references. They will struggle with unfamiliarity but they WILL be able to competently solve the problem, why?? they are all trained in the same basic principles. Hand a computer "engineer" a fluid dynamics problem and they will almost certainly NOT be able to solve it. They learn to write programs (so do we, actually, in fact, I consider the ability to program essential in graduate Engineers I hire, same as a second language; just important complementary skills, not core skills).

    In summary, you cannot start to hold an employee personally liable until the training and development systems that produce them are sufficiently rigorous to ensure that people who graduate into that field are at least theoretically able to take on the responsibility. Furthermore, some strong professional bodies would be required. The kind that require members to continue their professional development to retain certification and, therefore, continue to be considered competent to be held personally liable.

    Anyway, not trying to belittle computer "engineers", but I think their training has to step up several levels in rigor and broaden its scope to truly be considered an Engineering discipline before you start laying the burden of personal liability on their shoulders. Essentially, if you couldnt get professional indemnity insurance, you probably shouldnt be able to be held personally liable. Whilst there are very certainly programmers and hackers out there more than competent to be held liable for their work, without a professional structure; there is no sure or reliable means to make that descision or filter people who really aren't able.

    Just my $0.02 AUD, apologies to any I offended :)
    err!
    jak.

  72. Clueless! by wakked1 · · Score: 2, Informative

    That's pretty moronic. Anyone who works in software security (and has a clue) would never put themselves in a position of being personally liable for certifying a piece of software as being "secure".

    Likewise, security consulting companies generally only issue "verifiable statements" regarding the software they evaluate. Such statements can include things like "passwords are not stored in plaintext", or "all network traffic is encrypted with SSL". No company with a clue would risk its business on a blanket guarantee that a piece of software is "secure". That's because there is no way to verify a given application is "secure" in the absolute sense anyway.

    Yet Mr Schmidt expects developers to certify as such. He clearly has no clue. While he's at it he should demand that automotive engineers certify their cars will never break down, and that police be held personally liable for failing to prevent a crime.

  73. Re:Iterative Development by jafac · · Score: 2, Funny

    Scary, but you just described my company's business process. I think it's even documented that way. ;p

    --

    These are my friends, See how they glisten. See this one shine, how he smiles in the light.
  74. Re:Professional Engineers, Practices and the Indus by Kuros_overkill · · Score: 2, Insightful

    Here is the thing. My car is 20 years old. I'm living in a 40 year old building. The building is warm, and secure. My car runs, and has very little mantinance issues. My 3 year old computer is seriously out of date. If the computer could be garunteed to last for 10+ years, (Even I will admit that 20 years for a car is exceptional) I would have no problem shelling out $15K for it. I think this is where some of the issues come in to play. Every one is so desperate to have the Newest and prittiest, that they arn'd demadning the Best. And companies deliver what the people whant. And don't get me started on the big companies (not just M$, others do the same) that push the New and Pritty, just so they can keep turning large profits. Most of it is the software equivalent of repaining last years modle, and selling it as this years. Yes it looks newer, but it still has that faulty Altenator, that unreliable Fuel line. Eg. Word Perfect 5.1 did everything I use Word 2003 for, So why did I need to buy Word 97, Word 2000, WordXP, and Word 2003. (O.K., I still use Word Perfect 5.1, don't tell anybody, But most people out there know what I am talking about)

    sorry, got on a little bit of a rant there.