Slashdot Mirror


Bad Software Runs the World

whitroth tips a story at The Atlantic by James Kwak, who bemoans the poor quality of software underpinning so many important industries. He points out that while user-facing software is often well-polished, the code running supply chains, production lines, and financial markets is rarely so refined. From the article: "The underlying problem here is that most software is not very good. Writing good software is hard. There are thousands of opportunities to make mistakes. More importantly, it's difficult if not impossible to anticipate all the situations that a software program will be faced with, especially when — as was the case for both UBS and Knight — it is interacting with other software programs that are not under your control. It's difficult to test software properly if you don't know all the use cases that it's going to have to support. There are solutions to these problems, but they are neither easy nor cheap. You need to start with very good, very motivated developers. You need to have development processes that are oriented toward quality, not some arbitrary measure of output."

349 comments

  1. Numbers don't lie by Anonymous Coward · · Score: 5, Funny

    50% of all software is of below-average quality.

    1. Re:Numbers don't lie by K.+S.+Kyosuke · · Score: 4, Insightful

      That would be "below-median quality", I suppose.

      --
      Ezekiel 23:20
    2. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      Not true. A large portion of software should be expected to be very near average quality. Go study a bell curve. Unless you have infinite resolution in your measurement of quality, it's likely that the bin covering the average will not be empty.

    3. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      50% of all software is of below-median quality.

      FTFY.

    4. Re:Numbers don't lie by pympdaddyc · · Score: 4, Insightful

      That depends on your definition of average, mathematically speaking that's not true. What percent of numbers are below average in this set: {1, 1, 1, 1, 1000}

      This isn't pedantry, this is a meaningful distinction: I expect the amount of good software is extremely outnumbered by the bad, and even good software developers can be forced into kludges by time pressures, bad team culture, etc. I don't see any reason to think that code quality globally resembles a normal curve.

    5. Re:Numbers don't lie by Sperbels · · Score: 1

      Is there a real definition for quality?

    6. Re:Numbers don't lie by istartedi · · Score: 2

      Your one-liner has a bug. It's Open Source though, so it's a shallow bug.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    7. Re:Numbers don't lie by omnichad · · Score: 1, Informative

      I'm sure they were referring to the arithmetic mean.

    8. Re:Numbers don't lie by omnichad · · Score: 1

      Wait, no, scratch that.

    9. Re:Numbers don't lie by slartibartfastatp · · Score: 1

      Is the distribution curve simmetric?

      --
      -- --
    10. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      That would be "below-median quality", I suppose.

      Exactly.

    11. Re:Numbers don't lie by Anonymous Coward · · Score: 1

      Assuming a Gaussian distribution of software quality, they are the same. And a Gaussian for software quality sounds about right.

    12. Re:Numbers don't lie by gorzek · · Score: 2

      Yes, actually. You can measure it in terms of raw numbers of defects found. You can also determine the number of defects produced per some measure of effort (e.g. 1000 man-hours.)

      You need quality control, which is about ensuring good practices that are documented, repeatable, and measurable, and quality assurance, in which the results of your process are analyzed for their overall quality.

      Good QC should make QA's job a lot easier. (Or harder, depending on how you look at it.)

      There is, of course, no number that says "this represents the total quality of this product." As with anything else, quality in software can only be measured in terms of failures (defects.) You want fewer and fewer failures over time--that is a sign of a good quality process.

    13. Re:Numbers don't lie by bluefoxlucid · · Score: 1, Insightful

      None are below the median and mode; 80% are below the mean.

    14. Re:Numbers don't lie by luis_a_espinal · · Score: 1

      That depends on your definition of average, mathematically speaking that's not true. What percent of numbers are below average in this set: {1, 1, 1, 1, 1000}

      This isn't pedantry, this is a meaningful distinction: I expect the amount of good software is extremely outnumbered by the bad, and even good software developers can be forced into kludges by time pressures, bad team culture, etc. I don't see any reason to think that code quality globally resembles a normal curve.

      Indeed. I would actually think that global software quality resembles an exponential curve with x representing how craptacularly bad the software is. Very few systems are near the origin (and thus are well written.)

    15. Re:Numbers don't lie by ceoyoyo · · Score: 2

      It depends on your definition of "average" AND on the underlying distribution. If the distribution of software quality is symmetric then 50% of values are below the mean, median and mode (the three most common measures of central tendency or "average").

    16. Re:Numbers don't lie by bluefoxlucid · · Score: 5, Insightful

      Raw defects doesn't indicate quality. A defect by which the system occasionally has to stop and replay some data write-out because of some hoakey disk driver is not a gerat problem: the disk driver is buggy, and is using a shitty hack to fix it. By contrast, a much better written driver with a very corner case race condition that 1/100 as often simply destroys a ton of data has a huge problem.

      Linux is like that. If a hard disk drive starts to not respond, it'll send it a reset command and continue. It'll mount the filesystem read-only without special options; in some conditions that's important, because the OS view of the FS might be completely different due to undetected write failures. In any case, it's still up and you can get information out of the kernel. I've had the system hose itself so bad I couldn't actually read the logs or run dmesg, but if your boot process copies a few utilities into a ramdisk and sets tty1-5=login tty6='chroot /recovery login' you should be able to switch to that tty and run. Bonus points for statically linking chroot on boot (i.e. the boot process copies everything in from installed fs, then uses ld to statically link chroot to all its dependencies), so in a barely-functional active ssh session you can '/recovery/bin/chroot /recovery /bin/sh'

      A high-quality system that fails 1/10000 of the time and destroys everything is worse than a low-quality system that fails 1/100 of the time without cause for concern. Yet the low-quality system is clearly shitty.

    17. Re:Numbers don't lie by fisted · · Score: 1

      Actually its below or equal to median quality.

    18. Re:Numbers don't lie by Smauler · · Score: 2

      All defects are not created equal. A defect that is known that hits in a 1 in a billion UI interface offchance that just throws up an error, and nothing more is a defect, but 99.9% of people would not fix it, if it requires significant work. Why would they - it's a waste of time. A defect that drops all keyboard interface onto the internet in a secure system every time is still 1 defect - it's just a bigger one.

    19. Re:Numbers don't lie by jpmorgan · · Score: 1

      Why wouldn't it? Code quality is something driven by the uncoordinated decisions of millions of individuals around the world. Such things are usually normally distributed.

    20. Re:Numbers don't lie by gorzek · · Score: 2

      I agree with you. Severity is certainly relative (and I should have said as much when talking about raw defects.)

    21. Re:Numbers don't lie by gorzek · · Score: 1

      Yes, I know. I should have pointed out the relative severity of defects.

    22. Re:Numbers don't lie by luis_a_espinal · · Score: 5, Insightful

      Is there a real definition for quality?

      When it comes to software, yes. We have had it for decades: quality entails

      1. architecture, design and implementation decisions that minimize the cost of change,
      2. that does not deteriorate with each change (or at least deteriorates linearly with each change),
      3. that exhibits strong cohesion and lose coupling,
      4. that permits reasonable maintainability and configurability,
      5. with relative small bug count per whatever metric one picks (FP, SLOCs, etc.)
      6. that is amenable for testing
      7. with architecture and design that are understandable (tied with #1)

      Just to mention a few. There might not be a single universal definition of software quality, but there are common desirable attributes that have been known for decades. It's when people code without knowing these attributes (or not giving a shit about them) that we get the crappy stuff we get.

      Software doesn't have to be perfect. It simply needs to be economical due to its qualities (again, qualities well known for decades.)

    23. Re:Numbers don't lie by moderatorrater · · Score: 1

      I think a useful distinction is what makes good software. If it runs the world, I think there's a strong argument to be made that the software is good.

    24. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      He gave a sample distribution that was far from symmetric.

    25. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      The central limit theorem would apply if any single piece of software was scored by averaging together a whole bunch of independent scores/effects. In reality, most aspects one considers when evaluating software quality are probably not independent, but instead correlated to various degrees. Additionally, most people probably don't average together the various aspects when considering overall quality, but have some prioritization, or some non-linear response if one aspect is bad/good enough. You could still end up with something vaguely looking like the normal distribution, but the central limit theorem doesn't prevent various biases skewing the distribution into something else.

    26. Re:Numbers don't lie by Grishnakh · · Score: 1

      While obviously the average and the mean in your set are very different, I'm wondering if that's not the case for very large populations. For instance, the frequent adage that half of the human population has "below-average intelligence". The population is over 7 billion, a much larger set than your five numbers there, and likely follows a gaussian curve. While I don't know, wouldn't it be a fairly safe assumption that the median and the average are very close to each other? I'm thinking software is the same way; there's a countless number of software programs out there now.

    27. Re:Numbers don't lie by HeckRuler · · Score: 4, Funny

      So the first step is to assume the horse is a sphere...

    28. Re:Numbers don't lie by Grishnakh · · Score: 2

      Not only that, but you've identified another problem with judging quality: software usually does not stand on its own; it's part of a larger system. What if a piece of software is well-written, but the libraries it links to are shit? A programmer may not have much choice if he's required to use system libraries, or some special vendor-provided libraries. He can add in workarounds for some of the bugs in the libraries, but that's it.

    29. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      What makes you think a bell curve is the appropriate curve?

    30. Re:Numbers don't lie by ZorroXXX · · Score: 2

      I think you also missed to include the corresponding XKCD reference for this :)

      --
      When you are sure of something, you probably are wrong (search for "Unskilled and Unaware of It").
    31. Re:Numbers don't lie by lennier · · Score: 1

      Code quality is something driven by the uncoordinated decisions of millions of individuals around the world.

      Citation required for the "uncoordinated" bit. Code doesn't just "happen" in a vacuum. There are a huge lot of potential quality factors in common between coders, including but not limited to the programming language, libraries, IDE, OS, education, and corporate environment they work within.

      I'm guessing that if two coders both work in C++ on multicore Windows for the same company that their decisions about which underlying software architecture, variable naming and API calling conventions to use aren't exactly going to be uncoordinated.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    32. Re:Numbers don't lie by lennier · · Score: 2

      You can measure it in terms of raw numbers of defects found.

      That's a pretty bad metric. Defects found is most certainly not the same as defects existing, or we wouldn't have the security situation we have today.

      Granted, yes, we know those defects are in there because those defects are eventually found... by someone... but the huge elephant in the room is that 80% of security defects are not found by the company which wrote the code. In any other industry that kind of failure rate would be not just criminal but verging on hostile military action.

      What we need is positive proof that defects simply aren't there, rather than knowing that an unknown number of possibly catastrophic defects are there but are likely to be found by the bad guys first. And we can get there using mathematics, but not using the languages which we're currently using, because they're mathematically intractable.

      C and C++ are fast. But fast and full of 0-days just means you get rooted quicker. It's not good enough any more to say "but there's no alternative to C/C++". If there's no alternative to C, there's no alternative to a global infosys apocalypse. We can do better, and we need to if the Internet is going to survive.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    33. Re:Numbers don't lie by stanlyb · · Score: 1

      Nope, it is 99%

    34. Re:Numbers don't lie by gorzek · · Score: 1

      The problem is, you can't measure how many defects there are, only how many you've found, so you have to work on better ways of a) preventing them and b) finding the ones you didn't prevent.

      How do you prove there are no bugs in something? You can wrap unit tests around all code, ensure 100% coverage, have documented use cases and tests for all of them... and still end up missing bugs because there was a corner case nobody thought of, or an interaction of modules that no one anticipated.

      There is, in fact, no known practical way to prove--mathematically or programmatically--that a given piece of software is free of defects. Probably the very definition of an NP-Hard problem. ;)

    35. Re:Numbers don't lie by hairyfeet · · Score: 5, Insightful

      I think a better question would be "Why does it NEED to be better?" and the answer in most cases is "it doesn't". Remember perfect is the enemy of good and often the difference between "good enough" and great can be truly insane levels of expense.

      At the last shop I worked at before striking out on my own i had to rush home one day and dig my very first two gamer PCs, a Pentium 60MHz and a P100MHz out of the shed, why? because a guy came in the shop about to have a breakdown because the PC they used to control their custom lathe had gone tits up and they had a $60k order due by the end of the week and no columns? No contract. No when i was cloning the drive I asked him "if the thing will only run on ISA, and the company is OOB, why not replace it?' and found out a unit today that will do what that one does would cost upwards of $150k, that one was paid for, it works, its easy to use.

      Now I'm sure that if any of the programmers here saw that software they'd either laugh or bawl like babies. We're talking a primitive GUI running on top of DOS 3 that lets you build the design from templates or build your own from various shapes, VERY rudimentary and frankly made Win 3.x look like Win 7, ancient stuff. But ya know what? It works and works well. it does that one task, day after day after day, very WYSIWYG, you could get someone up to speed on running the unit in maybe an hour.

      So while i can see why many programmers might look at something like that and think half ass I can also see why it was made the way it was. i'm sure those designing that software they are bitching about in TFA did it that way because they designed it for a task, weren't thinking about someone plugging into it down the line, and just concentrated on that one task. I'm not saying one should design like that today, but usually when i hear programmers screaming about bad software its because they've found something old and creaky and are bitching because they are gonna have to support it. Welcome to the real world Chuck, where jobs often suck.

      And just to prove how fussy programmers can be I'll end this with something that always ends up getting programmers to gnash their teeth...I LIKE VB6, okay? If all you need is to have a GUI to a local DB frankly there is NO tool that can compare to VB6. Its fast, uses practically zip when it comes to resources, easy to whip off prototypes right there if you need to so the customer can see what fields he/she needs, for that one task and one task only, putting a GUI to a local DB even now you just can't beat VB6. That is why to this very day its like the third most popular business language, because businesses need that job often and it does it VERY well.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    36. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      An arbitrarily fraction (well, 0 Sturgeon's Law, I'd actually be willing to guess that 90% or more of the code that "runs the world" is below average.

    37. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      50% of all software is of below-average quality.

      99.43% of Americans have an above-average number of limbs

    38. Re:Numbers don't lie by anubi · · Score: 2

      I keep several old machines around for the very purpose you state. Many businesses have invested a substantial sum of money in machinery and their controller that does a specific thing, over and over, day in and day out.

      If it breaks ( which is seldom ), they are in a bad way if a replacement part is nowhere to be found.

      The good thing is that a lot of that old stuff is very fixable and interchangeable. I can usually pull that old DOS stuff off one machine, slip it onto another, and take off like nothing ever happened. The only critical part is usually the interface board - which in those days was usually nothing more than a bunch of standard TTL latches and drive chips.

      The most important thing is the guy at least has a good readable backup of his software and directory structure. There was an old program called "LapLink" which I could use to quickly transfer a working image of his system to a laptop, so I could burn the image onto modern storage devices such as USB sticks, CF cards, and CDRoms.

      From what failure rates I have seen, I have enough stock to keep the family of businesses I support operational for as long as I live. At one time, I feared loss of disk drives would do me in, as I simply cannot get those old floppy, MFM and IDE drives anymore, but lately I have found ways of using CF cards to replace the old drives.

      I have noted the old power supplies are now failing. The problem is usually the filter capacitors and the small electrolytic capacitors in the switching transistor's base drive circuit. Although I could retrofit the old case with a new supply, I often just re-cap the old one, and sometimes I have to replace the blown transistors which often occur when the transistor's base drive was compromised with insufficient drive due to the deteriorated capacitor. Of course, the fan nearly always needs to be serviced.

      The fly I see in this ointment is there are not many of us old guys left which get into these things on the component level any more. I know of no companies which will support them on this kind of thing - as services as Geek Squad do not do this kind of stuff. If companies that have this old stuff have not cultivated a network of old coots like me which understand this old stuff, they have no alternative but replace the thing when it dies. Its such a shame because the controller system is so simple to maintain compared to the expense of replacing the machinery it controls.

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

    39. Re:Numbers don't lie by ATMAvatar · · Score: 1

      The system also includes the people using it. A piece of software can be of excellent quality and have nearly zero defects in it when run against the environment it was designed for, but it is hardly a rare scenario where the very same program is then run against something completely different.

      For example, it is commonplace to see a piece of software run in an environment which is at least one (if not several) order(s) of magnitude larger than what it was designed to handle. Sometimes this is because the customer was cheap and decided to save money. Sometimes this is because the vendor's sales department was itching for a new car/yacht and decided to stretch the truth about the product's capabilities. Sometimes it's both.

      Part of the problem is that people don't understand software, and part of it is a fundamental disconnect between the guy causing the problem and the guy getting blamed for it. If someone entered a race against high-powered sports cars with their riding lawnmower, he'd get laughed at. The manager or C-level exec who purchases Billy Bob's Desktop WebHost for a company that needs 24/7 uptime with millions of transactions a day gets a bonus and moves on before the software is finally rolled-out 6+ months later. If someone tried to sell a sports car with a lawn mower engine, at best he'd be laughed at and at worst he'd be jailed for fraud. But, the salesman who inks the deal for a multi-million dollar contract to deploy a system designed for 10 machines against a site with 1000 machines is going to be cashing his commission check and moving on to his next sale long before the roll-out happens and everyone realizes it won't work, and there's no one who's going to connect the problem to the individual salesman who lied through his teeth to get the deal. His company may suffer for it, but his next employer will only see that he was making high-dollar deals.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    40. Re:Numbers don't lie by knuthin · · Score: 1

      For a continuous distribution, integration of a PDF over a range [A, B] wrt variable 'x' to give P(A (less than or equal to) x (less or equal to) B) is the same as:

      • P(A (less than) x (less than) B)
      • P(A (less than or equal to) x (less than) B)
      • P(A (less than) x (less than or equal to) B)

      That is, you can just ignore the = sign wherever you want, because that by itself doesn't have any area.

      PS: It just looks messy without the mathematical notation. /. doesn't allow me to use (less than) signs because they are interpreted as HTML. ;)

      --
      Some apps are WYSIWYG. Some others are WYSIWTF.
    41. Re:Numbers don't lie by garyebickford · · Score: 1

      I taught a software quality assurance workshop at one of my earlier employers. We discovered that as early as the late 1960s and early 1970s there were already many good metrics for productivity, quality, defects, etc. It turns out that black box testing will only catch something like 30% of the defects. If the group is using good software quality procedures (back then that included structured programming, code walkthroughs, a coherent design cycle, etc.), then a large proportion of the bugs (80%?) were built into the original design. The cost of fixing a bug increased by a factor of 10 with each stage in the design cycle.

      An interesting question is whether programming quality back then was harder or easier to achieve - back then just browbeating the machines to get them to do what you want was harder but for most applications there were few networking and multiprocessing problems (other than getting remote jobs to run, etc.); now that part is easy (at the application level, anyway), but we have all these interoperation and security problems.

      Nowadays it is effectively impossible to know, much less to anticipate and program around, all the possible problems related to a program running in a multiprocessing network environment. Heck, it's impossible even for a human to anticipate all the possible ways that people might act in their presence while crossing the street, and that's a reasonably useful analogy. One of my recent projects involves pulling data (with permission) from another organization's website. In the last year they have changed the website in ways that break the software at our end almost monthly. We have one guy now essentially 1/2 time doing nothing but updating our code to match their code. Now, a human can figure out how to use their website in a few minutes (with the advantage of a browser that does a lot of work in the background) but we are just not there yet with software - or at least not with our software.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    42. Re:Numbers don't lie by garyebickford · · Score: 1

      because there was a corner case nobody thought of, or an interaction of modules that no one anticipated.

      ... or things just changed in the environment, so what used to work is now a bug.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    43. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      The answer to why does it NEED to be better is that, when running critical systems, the probability of failure is low but the impact can be catastrophic. Since humans tend to underestimate the importance of low-probability high-impact events (see "The Black Swan"), we engineer products of insufficient quality without even knowing it.

      This is exactly why regulartions on things like bridge construction exist--shortcuts seem worth it in the short run, but aren't in the long run, and profit driven time constrained organizations take them anyway.

    44. Re:Numbers don't lie by Lucractius · · Score: 1

      The market your talking about is one I have wanted to service for a long time.

      Unfortunately the problem is a lot of these businesses dont think about the issue until it breaks, and will too frequently just take the vendor at their word that 'it cant be fixed' and are then forced to buy new gear for as GP said $150k or so when if they knew there were people who could fix it for less than $500 they would jump at the chance. Vendor practices like poor documentation on the equipment (no schematics etc) only make things worse.

      I would imagine you didn't wind up servicing these businesses by saying "I know i can help these people" and then approaching them, most people I hear of who do work like this have collected the clients over years working on more modern things for people. But if you did set out to help them, I would love to hear how you managed to convince them to take up your services.

      --
      XML - A clever joke would be here if /. didn't mangle tag brackets.
    45. Re:Numbers don't lie by hairyfeet · · Score: 1

      That is why I went and got those TWO machines instead of one. he is running it on the 60MHz and has the 100MHz set up in the back of his office for a spare. I told him to fire the spare up once a month, just to make sure it doesn't lose a cap and that if it ever doesn't fire up to bring it in BEFORE the other one wears out so we can fix it or repair it.

      But I can see what you are talking about, i'm probably the only shop in my area that will still support the old stuff. I've had plenty of experience with it, even had a customer that ran new old stock for ages because the XRes software he needed was picky as hell about what kind of hardware it would and wouldn't run on. that damned thing wouldn't even run in a VM and he had a ton of plug ins for it that took him ages to find equivalents in Corel and PS.

      If you do ever need chips changed perhaps you should send me an email and i can put you in touch with one of my customers, he's an old engineer that still does TTL work. I swear his little shop is like walking into a 1970s Radio Shack, he still has all the TTL bibles and shelves filled with nearly every kind of chip. He's retired but still works rocketry over at the local college and its just nuts what he can cook up with a breadboard and a handful of chips. Oh and a good source for that kind of stuff is BGMicro if you haven't heard of it, they are pretty good at getting their hands on NOS chips from guys like TI.

      But you are right, talking to the other guys its all cell phones and laptops, they wouldn't know how to support something like an old C&C or other ancient hardware if their lives depended on it. As more of us get older and die or quit these companies that have all that expensive but old tech is gonna end up SOL. Can you imagine handing the Geek Squad a 60MHz Pentium 1 and telling them they need to fix it? LOL.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    46. Re:Numbers don't lie by Skal+Tura · · Score: 2

      The bottomline is that there is a tool best fitting for every task, there is no magic bullet.
      Even quick'n'dirty code is the perfect choice for some things, things that do just one thing, like a database backup which needs more than a mysqldump cronjob (ie. send e-mail notification if backup failed)

      Too often programmers fail for wanting to make things too fancy, forgetting the golden rule of code: Keep It Simple, Stupid!

      For example, Zend Framework used to be quite great couple years back, but already suffering from the Coder's God Complex, things needing to be too fancy, a simple redirect doing 13+ method class to different classes. However, mainly it was still fairly simple and easy to work with. Today? It's insane complexity even for the most basic tasks, and basicly ruined completely. Magento is the culmination of this Coder's God Complex problem. (Weeks to just template the thing for all which is not exactly the same layout just colors changed!)

      Then there is the other kind of problem: Absolutely no thought given to the task at hand, and a big complex system done completely Quick'n'Dirty, like WHMCS, osCommerce.

      WHMCS is the worst piece of crap i've seen, they seriously thought that 1 EUR = 1 AUD = 1 GBP. WTF?!
      They still point towards mysql result arrays by *NUMBERS*, not utilizing the column names like they should.
      It's mostly function based code, no classes, no abstractions, no structure.
      It even have serious security flaws due to these, for example mass invoice payment works by giving the customer credit then marking all the mass invoice payment invoices paid, which results in many automated systems that the customer gets free services, as auto-suspending doesn't work anymore and services looks like paid.
      Hell, if you enabled multi-currency you can't even sanely go back at all anymore! You need to build a big conversion script and verify everything manually.
      Also, by default TAX reports are done invoice based not transaction based like they should, and amounts checked from invoice. So you end up with completely wrong tax reports.
      Infact, all the reports are screwed up by default, every single one of them concerning money are too badly flawed to be useable.

      Also, there is e-mail bomb security flaw in WHMCS, allowing a nefarious attacker, especially if smart one, to DoS attack your system with spending 0 of their own resources and completely untraceable (we had an attack like this).

      I've reported tens upon tens of these bugs to WHMCS, and they simply delete the threads claiming there is no such bugs even tho repros have been provided, only if i provide workarounds/solutions they will not delete them immediately. Some of my fixes did flow back into future releases tho (without credit).

      Nevermind the huge usability issues, i do specialize in UX and tend to notice usability issues very easily.

      The most worrying part tho? Some vendors simply refuse to admit any issues exist, and simply ignore you, for example i found potential critical security flaws in Bit-Pay WHMCS payment gateway module, Bit-Pay never bothered to even reply to my concerns, even tho i showed the particular issues with the module. That particular module had the worst crap i've seen in many years tbh, just a glance over the code showed severe code QA issues, and altho i did not test, i'm fairly confident there is a exploit there due to incorrect handling of payment verification. I even refactored and fixed some checkup code before giving up as it being too far off

    47. Re:Numbers don't lie by hairyfeet · · Score: 3, Informative

      Awww...what the hell grasshopper, old Hairy will show you the way. What you wanna do is go start talking to all your local mom & pop PC shops, let them know what kind of work you do and tell them you'll give them a referral fee for every one they send you way.

      Ya see we old PC shop guys end up getting this kind of work because we are all little pack rats at heart and HATE throwing away working gear, and once you've done a few of these "miracles" it really don't take long for word of mouth to spread. Now since it don't sound like you want to get into the wonderful world of Windows PC repair, which is actually a damned nice way to meet girls BTW, then what you are gonna have to do is get to be buds with the PC shop guys.

      While there are some like me that have old engineer buds that can do any chip changing and TTL stuff i can't there is just as many that are straight 'fixit guys' that can't do the soldering, replacing chips, fixing burnt boards, and like I said we hate throwing stuff away and telling somebody "we can't do it". hell that was one of the reasons i got to be buds with an engineer, I can't do the solder stuff anymore as my hands aren't steady enough and he hates working on computers so we just swap it out.

      So go talk to the little shops, be prepared to BS awhile, have yourself some cards made up to hand out, and before long you'll be ass deep in busted gear. remember that most places won't work on this stuff so a little word of mouth goes a long way, a little ad or two can't hurt either. Trust old Hairy that there is plenty of old gear that needs fixing and as long as you charge a reasonable price (remember starting out you need the business, don't go nuts. Once you have the buzz the price can go up) and it won't take long for that phone to start ringing.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    48. Re:Numbers don't lie by Skal+Tura · · Score: 1

      No amount of QC will make bad coders produce quality code. Absolutely none.

      For example, the Indian development philosophy is no testing what-so-ever, other people test. Resulting in very bad kludges as the developer itself hasn't bothered to check if the code actually works. Continuous testing is the pre-requisite for quality code. And no, i do not mean unit tests, but manually, during development testing, if at all possible.

      Defects found is far from perfect measure, infact, it does not actually test for code design quality at all, simply the line-level quality.
      Design in a big system is EVERYTHING, and i do not mean "ABSTRACT EVERYTHING", but keeping it simple, not abstracting 1-2 line things, but logic which is to be repeated. It all boils down to spotting and understanding repeating patterns, building short (sub 100 line) methods, in a structurized manner, human readable and understandable (so instead of prtcsh($data,gcnf('sirs')) do somethings like reports::print::calculationSheet($thisSheetData, $thisReportStyle))

      Some good rules are also keeping intends at maximum of 4 levels (linux kernel rule by Linus Torvald's), camelCasing variables & methods, not shortening any variable or method names but typing them in full, realising coding is atleast 4 times more reading than typing, keeping it all human readable (humans do coding, not computers!), and intending correctly and in right places with the right formatting, ie. all if clause contents should be intended, some for switch case clauses, method contents should be intended (except in very few cases 1-2 first lines MIGHT be unintended when those have somekind of global influence, ie. sometimes fetching registry objects but not always, as those could be considered defining that method), first load all your data into variables then after empty line do the business logic so -> do not mix & match control & logic.
      Do separation layers as needed on codebase global basis.

    49. Re:Numbers don't lie by Skal+Tura · · Score: 1

      The system also includes the people using it. A piece of software can be of excellent quality and have nearly zero defects in it when run against the environment it was designed for, but it is hardly a rare scenario where the very same program is then run against something completely different.

      Exactly, developers testing it rarely no problems arise but as soon as the system is demo'd in a new system with new users a lot of problems are bound to arise due to differing usage patterns and installation on a fresh new system.

    50. Re:Numbers don't lie by Skal+Tura · · Score: 1

      That's a pretty bad metric. Defects found is most certainly not the same as defects existing, or we wouldn't have the security situation we have today.

      To make matters worse the more code there is, more defects there is going to be, so it again boils down to design. http://amartester.blogspot.fi/2007/04/bugs-per-lines-of-code.html

      To make matters even worse, many vendors refuse to admit any issues, i know several such vendors, and more important it is, the worse they are admitting and fixing those issues. The worst crap i've seen is eCommerce applications, and the worst pieces of code i've seen is in the payment gateways and handling of money/transactions.

      It's funny how it's inverse relationship with required quality to defects, more serious it is, more defects there is going to be.

      For example, WHMCS considers 1EUR = 1GBP = 1USD = 1AUD for the most part! They fixed some of the issues after i reported WITH solutions (tho they did not give credit for it), but those i reported without solutions they simply swept under the rug.
      I even found a severe exploit which could gain free services for the attacker on very specific circumstances. I also did find a DOS exploit in the system, requiring 0 resources from the attacker to make it happen.

    51. Re:Numbers don't lie by Lucractius · · Score: 1

      Hoarding just seems to go hand in hand with the idea 'of course that's still a useful part'. Its no wonder we never throw things away, we know they still work & have value. And your right, I've done big company corporate IT as a 'white collar desk jockey' way too long to want to spend another decade getting paid to sit on my ass and push WSUS patches and wondering how long till they realize they can probably make one of my team redundant and if it will be me.

      There may not be a lot of the tiny pc repair shops left round my parts, but that's still some solid advice.
      Word of mouth truly is how the best businesses are built regardless of what they work in.

      --
      XML - A clever joke would be here if /. didn't mangle tag brackets.
    52. Re:Numbers don't lie by Kergan · · Score: 1

      That's very theoretical. I've never seen any piece of software that ticks all of those boxes. Or a few of them, for that matter.

      Non-trivial software tends to quickly turn into a big ball of mud. Because it works.

    53. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      I think you are right and wrong.

      You are right that GUI stuff is totally out of hand and stupid these days. Everything needs to have a "sleek finish" with cooowl blinking lights and awesome colors, and especially it needs to break the paradigm it is made for, so for example, a HTML page can not look like it is written in HTML, it must be far more complex than that.

      You are however wrong that stuff does not need to be better. It is quite seldom that I find applications that are not filled with stupid bugs. The app you talked about, worked and worked good when it came to doing the job, not when it came to looking sleek. Most applications do not.

    54. Re:Numbers don't lie by dbIII · · Score: 1

      Some very expensive oil exploration software runs on solaris 6, and it's GUI doesn't like CDE which came out at least before solaris 5, so I'd say it hasn't been touched since 1992. For spares I bought a pile of old sunblade machines (which are like desktop PCs despite the name) because running it on anything newer voids any support, and the thing needs support. Meanwhile the guys using it have mobile phones with more processing power.
      I'm pretty sure it's still being sold that way - a kit costing millions containing machines that you couldn't sell on ebay as the time consuming bottleneck.

    55. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      Is it a dead beaten sphere?

    56. Re:Numbers don't lie by RaceProUK · · Score: 1

      <

      Easy when you use HTML entities.

      --
      No colour or religion ever stopped the bullet from a gun
    57. Re:Numbers don't lie by RaceProUK · · Score: 1

      So the first step is to assume the horse is a sphere with zero friction...

      FTFY

      --
      No colour or religion ever stopped the bullet from a gun
    58. Re:Numbers don't lie by hairyfeet · · Score: 1

      Glad to help, and don't forget advertising, every little bit helps when you are starting out, everything from any trade papers in your area to an old fashioned newspaper ad in the business section, you just gotta get out there and get your name known.

      Believe me, once you've done a few of those jobs and get a rep you'll be good to go. And I bet if you search there are still some mom & pop shops around, if not in the city in the small towns nearby, and they're good for getting the word out.

      And I know what you're talking about as i was once too a white collar IT desk jockey, trying to do too much with too little with bosses that were always looking to fuck IT but then my kids gave me a bit of an intervention and i got the hell out. I may not make as much, and it may be swamped one week and slow the next, but at least with a little shop i actually get to help folks who are actually grateful for it and listen to me which is more than i can say about those damned PHBs with MBAs, Masters of Being Assholes.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    59. Re:Numbers don't lie by Rich0 · · Score: 1

      I think a better question would be "Why does it NEED to be better?" and the answer in most cases is "it doesn't". Remember perfect is the enemy of good and often the difference between "good enough" and great can be truly insane levels of expense.

      Yup, just the other day at work we had somebody complain about a cosmetic regression in a piece of highly specialized software. They were basically on a crusade for quality, and pushing hard to have it fixed. I basically went to the project managers and pointed to the pile of much more critical needs and fixed budget, and it is very unlikely we'll ever get to the cosmetic issue as a result.

      If this were something displayed on the company homepage I'd look at it differently, but for an internal piece of software it just isn't worth the trouble. Some might argue that a good quality system would not result in such regressions in the first place, but again I have to point out to the pile of high-importance needs and fixed budget. If I have to choose between a system improvement that has documented ROI and creates a business opportunity, and spending money so that the stuff we deliver is less likely to have very minor bugs, I'll pick the feature. If we were talking about regressions with a significant functional impact then that would be a different matter.

      Scope*Quality, Cost, Time - pick two. Pick the wrong balance and your company might go out of business...

    60. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      I'm guessing that if two coders both work in C++ on multicore Windows for the same company that their decisions about which underlying software architecture, variable naming and API calling conventions to use aren't exactly going to be uncoordinated.

      You have to account for the temporal relationship between the two coders. If coder A was working on the software in the late 90's and coder B was working on the same code a decade or so later, well...drift happens...

    61. Re:Numbers don't lie by Rich0 · · Score: 1

      Usually the way these sorts of things get looked at in the real world involves some kind of FMEA approach (failure modes effect analysis). You look at what can go wrong, how often it will go wrong, what happens when it goes wrong, and whether any of that can be mitigated and if so how likely it is that the problem will be spotted and mitigated.

      There are lots of ways to do it, but the bottom line is that not all problems are created equal, as you've stated. If I've got some system that "just works" placing that stability at risk to fix some UI glitch that isn't causing problems is a dumb decision, especially if it costs a lot of money.

    62. Re:Numbers don't lie by Rich0 · · Score: 1

      Software doesn't have to be perfect. It simply needs to be economical due to its qualities (again, qualities well known for decades.)

      This last bit needs to be emphasized - perfect software that you can't afford is useless. As is often attributed to Stalin, sometimes quantity has a quality all its own. If some other start-up's hacked together social media site that isn't scalable lets them get to 10k users before yours is written, then the network effect will prevent you from ever taking advantage of the fact that yours can handle a billion, and they'll have plenty of money to spend doing a complete rewrite.

    63. Re:Numbers don't lie by cthulhu11 · · Score: 2

      I think a better question would be "Why does it NEED to be better?"

      Because there are millions of humans on this planet with an apostrophe in their name, or two middle names. I currently have the former and have had the latter in the past. I *constantly* encounter broken software that can't handle either. In at least one case, a certain airline accepted the apostrophe when creating a FFM account, but not when booking, so I couldn't tie the two together. I frequently get snail mail where the apostrophe is replace by "&". I saw an endontist last week who couldn't bring up my insurance info because their software couldn't handle it. That's why it needs to be better.

    64. Re:Numbers don't lie by Tamerlin · · Score: 1

      You should realize that because you pointed out that the software you describe "works and works well" it's also very much in a minority. "Bad software" isn't software that's built on a primitive platform and only does one thing (unless it does that one thing poorly, or crashes constantly, or something). Instead it refers to software that is simply buggy, nightmarish to maintain, extremely brittle, that sort of thing... much like most of today's software. I don't know VB, but as far as I'm concerned if the application does what it's supposed to and is maintainable, then who cares what it's written in? It's like iPhone photography... sure the camera in an iPhone is pretty basic, has a puny sensor, and a tiny lens, but there are people who've made great photos with iPhones.

    65. Re:Numbers don't lie by Anonymous Coward · · Score: 0

      Actually I'd say that that is actually good software. But I guess I'm more Unix oriented so I think a program should perform one task, and perform it well.

      When I write a program, I try my best to make it work well and be as simple as possible. Sure I try to write it in a way that makes it easier to write additional features later on, but if someone wants the program to perform I completely different task, a lot of times I just make a new application.

      I've just completed a project where I moved a DOS application that was running a machine over to a linux box running DOS-EMU. It was a pain in the ass, but now we can run it on modern hardware, use samba to get files off the network, etc, all while the old DOS app thinks its 1995 and that "N:" is actually a physical hard disk, not a file share on a Windows 2008 machine in our server room. As long as they keep the mechanical parts of the machine working, that decades old software should be able to run it.

      I do disagree with you on VB6. What a pain in the ass that language is. Do you know there is a hard limit on how many lines of code one function can have? We had a bitch of a time with that one. Want to add a new check on something? Have to remove another one or somehow put some other stuff in a different function and call that. All kinds of stupid bugs like that.

      VB.net is ok, a lot less bugs in it, plus you can use a newer version of VS. I'm no MS fan, but VS is a really awesome product. I don't really get why you wouldn't want to use .net. It's even easier than VB6, and a hell of a lot less buggy. The IDE is a lot nicer, so that makes writing code easier.

    66. Re:Numbers don't lie by anubi · · Score: 1

      There were a lot of unusual tools we used back in the day to service PCB's. I have not seen them around anymore.

      One of the handiest ones I have ever owned was one of those old PACE solder extractor irons. It had a hollow tip and a little pyrex collector tube inside the handle. When you had a pool of solder melted on the PCB, you could cover up a little vent on the side of the iron with your finger and the vacuum would reroute through the tip and suck all the solder neatly up into the collection tube.

      Its original vacuum pump has long since failed, and has been replaced by a GAST carbon-vane pump with lengths of tubing connecting it to the iron. I installed automotive fuel filters in the vacuum line to insure bits of wire and solder don't make it into the pump.

      I have been making tips for it using short lengths of 1/8 inch copper refrigeration tubing. This tool will let me neatly remove pin-through-hole parts without damaging either the part or the board. I find the guy that has the problem of a failed obsolete part has always been tickled I could get another part - not once have they been concerned I got it out of something else. They were just tickled to have their machine running again. I have gobs of old circuit boards filled with 7400 series stuff I can raid parts off of to support older machines. And lots of discrete transistors. The output transistors usually took a fatal hit if the wires to the machine got shorted.

      About the only part I insist I get new are electrolytic capacitors. I have had bad experience trying to coax further life from old electrolytics. Transistors and IC,s seem to last forever until they are misused.

      Yes, I am a pack-rat. That has saved my customers both time and money, and allowed me a life of doing the things I know how to do, instead of sweating it out working for some MBA who I mean nothing to - and also gives me a choice in who I work for.

      You gave some excellent advice upthread. I lucked into my position as I had known a neighbor who "took me in" and allowed me to fix his machines on a part time basis and spread the word around I did such stuff. I never worked corporate any more, as I did not have the communications skills ( paperwork, administrative, contracts, legal, salesmanship, etc. ) it takes to deal with "big business", but there was enough small businesses that are running on a shoestring budget that really seem to appreciate the idea they do not have to throw a lot of stuff away just because some tiny little part broke.

      The latest project I worked on involved the repair and re-calibration of a reverse-recovery time (trr) analyzer for fast ( nanosecond recovery time ) rectifier diodes. To do this, I worked withr friend who owns a very high speed oscilloscope ( well actually, I was fixing this for HIS customer ), and together we got the device back into shape and ready to send to NIST for official certification. It had some bad solder joints, a filter cap had developed some ESR, and an old carbon resistor had changed value a bit. A little time tracing it out sure beat buying a whole new tester.

      --
      "Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]

  2. A Wise Man Once Asked by Anonymous Coward · · Score: 2

    "Do you not know, my son, with how little wisdom the world is governed?" -- Axel Oxenstierna

  3. Knight's problem wasn't the software by Anonymous Coward · · Score: 1

    Knight's problem was operations. Somebody pushed a test program onto a production network. That's not to say that software isn't hard. It is. It's just that system administration is hard too.

  4. You get what you pay for by Anonymous Coward · · Score: 0

    It's as simple as that.

    1. Re:You get what you pay for by Anonymous Coward · · Score: 0

      Yeah, serves them right for using Free Software.

    2. Re:You get what you pay for by mcgrew · · Score: 1

      You have that backwards.

    3. Re:You get what you pay for by luis_a_espinal · · Score: 1

      Yeah, serves them right for using Free Software.

      He's referring to businesses preferring low-salaried code monkeys over developers worth their money. The nuance is lost to most (a sad indictment not only on businesses, but on software developers in general.)

  5. Yeah, but how do you measure 'Quality' by Anonymous Coward · · Score: 1

    FP. And what exactly do you mean by Quality???

    1. Re:Yeah, but how do you measure 'Quality' by SirGeek · · Score: 2

      There are ways to determine quality. One pretty standard way is to count the number of bugs found during testing each phase of development (design, coding, unit test, product test, integration tests and after its in production).

    2. Re:Yeah, but how do you measure 'Quality' by Reasonable+Facsimile · · Score: 2

      There are ways to determine quality. One pretty standard way is to count the number of bugs found during testing each phase of development (design, coding, unit test, product test, integration tests and after its in production).

      Those can be valuable metrics, but finding and fixing a lot of bugs can't improve the innate quality of the item under development/test. In other words, you can't test quality into the product.

    3. Re:Yeah, but how do you measure 'Quality' by Sperbels · · Score: 3, Insightful

      What is this number compared against? A bugless program may still be a piece of shit.

    4. Re:Yeah, but how do you measure 'Quality' by turbidostato · · Score: 1

      So the standard method is that untested software is always optimum quality? No wonder there are problems, then.

    5. Re:Yeah, but how do you measure 'Quality' by NeutronCowboy · · Score: 5, Interesting

      AC hits it on the head. This is nothing but the age-old search for the perfect metric. Development processes ARE oriented towards quality - for arbitrary values of "quality". The problem is that quality software is like porn: you know it when you're looking at it, but you have no idea how it is exactly defined. Is it a lack of bugs? Sure, but that's definitely not the only aspect. Is it maintainability? Maybe - if the software needs to be around for the next 30 years. Is it readability? Dunno - machine code is pretty unreadable, yet there's quality machine code out there. Is it how long it took to develop, how flexible it is, how user friendly, how much power features are in it? Maybe, maybe, maybe.

      Pick a metric - a boatload of metrics - and I will find you a large number of cases where the metric fails. Are we doomed? Kinda. Just like there's no silver bullet that solves all your development processes, there's no silver bullet when it comes to measuring the output of the process.

      In the end, what people care about is "does it do what we need it to do?", and that's all that anyone is going to remember. Unless, of course, it's review time, and then the only thing that matters is "the metric".

      Yep, we're doomed.

      --
      Those who can, do. Those who can't, sue.
    6. Re:Yeah, but how do you measure 'Quality' by Local+ID10T · · Score: 2, Funny

      Tea, made from real koalas, of course.
      http://www.koalatea.com.au/

      Oh. I see. Nevermind

      --
      "You want to know how to help your kids? Leave them the fuck alone." -George Carlin
    7. Re:Yeah, but how do you measure 'Quality' by davidwr · · Score: 2

      A bugless program may still be a piece of shit.

      Yes, but by definition a bugless program that is a POS is a POS by design.

      In other words, if the customer orders a POS, and you give him a bug-free program, he will get a POS.

      --
      Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    8. Re:Yeah, but how do you measure 'Quality' by Anonymous Coward · · Score: 0

      And by this definition, a 20-million-LOC program with 10 minor bugs has lower quality than "rm -rf /*", which has only one bug: the target was supposed to be "./*".

    9. Re:Yeah, but how do you measure 'Quality' by fustakrakich · · Score: 1

      A bugless program may still be a piece of shit.

      But it would be really good shit

      --
      “He’s not deformed, he’s just drunk!”
    10. Re:Yeah, but how do you measure 'Quality' by autocannon · · Score: 1

      In the end, what people care about is "does it do what we need it to do?", and that's all that anyone is going to remember.

      That's all they remember today, when it's first released. Tomorrow they look at it and go.."gee I wish it did X" or "gee, this doesn't look right" or "gee it sure would be nice if it ran faster". That's when having quality software becomes important. Especially with the flexibility that modern languages like C#, C++, Java, even Ada despite its age and style give. It's maintainable. Anyone else can go in and figure out what functions and classes are doing by reading the inline documentation and a quick glance at the code. If I have to spend more than 2 minutes looking at a function to figure out everything it does, then it's piss poor code. If I can't look at a variable and instantly get a basic understanding of what it is and why it probably exists just by its name, then it's piss poor. When "genius" programmers get all cutesy with the syntax and try to do as many possible operations in a single line just because they can, it's piss poor.

      And when all those and more piss poor practices are in place in any program, you inevitably have a steaming pile that does whatever it is intended to do. But only in the intended way, and only on the intended system, and never shall it do more without paying through the nose in both money and time to get anything done. I know there's programmers out there now screaming, "But it's only supposed to do X on Y, and nobody paid to do Z". That's no excuse for bad programming though.

    11. Re:Yeah, but how do you measure 'Quality' by Burning1 · · Score: 1

      Apparently, all my hello world programs are very high quality.

    12. Re:Yeah, but how do you measure 'Quality' by sosume · · Score: 2

      That behaviour always annoyed me, there's just no valid use case for 'rm -rf /'. It has caused way too many system wipes to not be addressed. The only valid output should be:


      # rm -rf /*

      Usage: mkfs [-V] [-t fstype] [fs-options] device [size]

    13. Re:Yeah, but how do you measure 'Quality' by luis_a_espinal · · Score: 1

      There are ways to determine quality. One pretty standard way is to count the number of bugs found during testing each phase of development (design, coding, unit test, product test, integration tests and after its in production).

      Those can be valuable metrics, but finding and fixing a lot of bugs can't improve the innate quality of the item under development/test. In other words, you can't test quality into the product.

      Barring the most external layer at the user-facing interface, any quality of a software system at any level (architectural, design or implementation) is internal, ergo an "inner quality". But I assume you are referring to the architecture of a system. In that case, yes, it is true. However, architectural correction is not the only valuable type of correction. Also, for the typical enterprise system, architectural problems are not that important compared to the design and implementation decisions done day to day, and to the quality involved when writing the actual code (be it new development or bug fix.) It is only when you have very large systems (dozens of components and hundreds if not millions of line of code) and very large teams (20+) that make architecture truly crucial.

      However, when you have a turd that cannot be re-architected (or when the re-architecting is not cost-effective), then the obvious (and only other sane) approach is to incrementally change implementation so as to gradually bring the beast (or at least parts of it) to a manageable state. A low-hanging fruit approach. I strongly suggest people to read Michael Feather's "Working Effectively with Legacy Code". Excellent read.

      When we refer to the "inner quality" to all aspects of the system (and not just the architectural ones), bug fixing can effectively improve if active refactoring (boy scout rule) is part of the bug fixing process. Even without considering continuous refactoring, if a bug is fixed and the fix does not introduce another bug, then, however little it was before the fix, the inner quality of the system improves.

      And if the system if of small or medium size, incremental code improvement typically facilitates the incremental improvement of architecture over time.

      This is assuming that there are no additional morons dropping crap into the software (or a business/work environment that permits it and subordinates quality to get-that-code-out-yesterday). If that's the case, then now we are dealing with organizational issues that are beyond the realm of software engineering.

    14. Re:Yeah, but how do you measure 'Quality' by luis_a_espinal · · Score: 1

      What is this number compared against?

      C'mon man. Quality is contextual. Quality is determined by the cost it takes to operate the system. Cost is typically a function of the ease by which users utilize it to do whatever it is that they need to do (and the correctness and reliability of its output). That is, how does a piece of software facilitates an employe, for instance, in completing his/her tasks during the day.

      Does the user needs to spend 5 minutes every time the system searches for a record? Or does the system completes the search in 30 seconds? Does the system provides good reporting capabilities, or does the user has to print multiple reports and then spend an hour creating his own from the provided ones (I've seen this case in real life)? Does the system prints the correct medical records for a patient, or does the nurse have to doublecheck every single report because the system can make mistakes from time to time.

      Quality is always tied to cost. And cost is always an operational quantity. Someone has to use the system for it to be valuable. Someone uses the system to procure something of valuable. If the system imposes excessive cost (in term of unnecessary time spend using it), then the system is of low quality. If the system, on the other hand, facilitates users' productivity, then the system is of high quality.

      A bugless program may still be a piece of shit.

      There is no such a thing as a bugless program that is shitty. If a system is shitty, then it is a buggy one.

      You can always come up with an edge case, like this one. But the edge case has to be valuable as a concrete representation of the problem. This example, without any specific details that describe why the system is shitty, of yours isn't one.

      So what makes the system shitty? Bad ergonomics? Bad HCI? Too slow? Those are bugs, those are faults. A bug is not just printing the wrong outcome, or crashing. A system might compute the right answer for 2+2. But if it takes it an hour to print 4, then the system has a bug.

      If a system is shitty, then that system has a bug or series of bugs that makes it shitty. There is no such a thing as a bugless system that is not shitty.

    15. Re:Yeah, but how do you measure 'Quality' by TCM · · Score: 1

      Yeah, seen by a dumb user, the output should probably be that. Seeing it as a consistent piece of software, however, it should delete everything from / downwards.

      there's just no valid use case for 'rm -rf /'.

      This is plain bullshit. There is a use case: "What happens if I do rm -fr / on a live system?" See? Use case. Counter question: What use case makes you delete complete current directories as root every so often?

      The problem is exactly that for every stupid user working as root too often, there are workarounds, failsafes, side conditions introduced into perfectly working software. Imagine how many semantic possibilities exist to address / using symbolic links, parent directories, null mounts, whatever. If you try to catch them all, you introduce way more bugs than there are lines in rm(1) currently. In addition to that, you now proclaim your rm(1) now is idiot-proof against removing /. Guess what? A better idiot WILL come along.

      If you can't operate a UNIX system without a nanny holding your hand, maybe try working as root less often. These stupid failsafe provisions are just useless cans of worms.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    16. Re:Yeah, but how do you measure 'Quality' by TCM · · Score: 1

      Who writes ./*?

      rm *

      Done. If you beg to be shot don't complain afterwards.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    17. Re:Yeah, but how do you measure 'Quality' by sosume · · Score: 1

      No, the use case is still invalid. Executing rm -rf / on a live system will make the system fail, so it should at least require a separate switch to verify that the user is not making a common mistake.

      If you can't operate a UNIX system without a nanny holding your hand, maybe try working as root less often

      That's like driving a Formula 1 car without a helmet or seat belt, claiming that you shouldn't drive at all if you need all that.

    18. Re:Yeah, but how do you measure 'Quality' by arth1 · · Score: 2

      That behaviour always annoyed me, there's just no valid use case for 'rm -rf /'.

      On the contrary, it's something I do often - I chroot into a directory which has read-only bin/lib mounted, to test software in, and the first and last command is always "rm -rf /".

      What you have to realise is that the Nike options (like -f and --force in most commands) means you sign in blood that you know what the command is doing, have verified it three times, and that you know that any blame rests squarely on your shoulders alone.
      If you aren't willing to sign that, use -i instead.

    19. Re:Yeah, but how do you measure 'Quality' by TheLink · · Score: 1

      I think the real problem is if you are doing rm -rf bar/foo
      and somehow accidents happened with the spacebar...

      The scary ones I see are the < and > keys are close to each other on most US style keyboards, and so are the i and o keys (think dd).

      So that's one of the reasons why I use cat instead of < and ignore those who harp about "useless use of cat".

      --
    20. Re:Yeah, but how do you measure 'Quality' by hawkinspeter · · Score: 1

      There's so many ways to hose a system that's it's not worth trying to prevent them all. Would you change "dd" as it's easy enough to use the wrong output device? "rsync" can just as easily hose a system as "rm".

      Typically, the analogue of helmet or seat belts would be to have a backup and not run things as root unless necessary.

      --
      You're a temporary arrangement of matter sliding towards oblivion in a cold, uncaring universe
    21. Re:Yeah, but how do you measure 'Quality' by wmbetts · · Score: 1

      No, the use case is still invalid. Executing rm -rf / on a live system will make the system fail, so it should at least require a separate switch to verifythat the user is not making a common mistake.

      uh, you realize that the separate check to verify is already there right? You say "HEY RM I KNOW WHAT I'M DOING SO SHUT UP KTHX" by using -f. You can remove directories / files without it, but rm will prompt you.

      --
      "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    22. Re:Yeah, but how do you measure 'Quality' by robsku · · Score: 1

      What you have to realise is that the Nike options (like -f and --force in most commands) means you sign in blood that you know what the command is doing, have verified it three times, and that you know that any blame rests squarely on your shoulders alone.
      If you aren't willing to sign that, use -i instead.

      ~$ mod -f "this up, high up!"

      --
      In capitalist USA corporations control the government.
    23. Re:Yeah, but how do you measure 'Quality' by turbidostato · · Score: 1

      "rm *
      Done."

      Are you sure?

      mkdir mytest && cd mytest
      touch {afile,.ahiddenfile}
      rm *
      rm: remove regular empty file `afile'? y
      ls -a
      . .. .ahiddenfile

      So, no, not done.

    24. Re:Yeah, but how do you measure 'Quality' by TCM · · Score: 1

      Yes, done. Because rm ./* doesn't remove that, either.

      Nice try, though.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
  6. Nothing New by Herkum01 · · Score: 4, Insightful

    That is because corporate infrastructure software does not generate revenue. Why spend money that does not directly impact the bottom line?

    Maybe when you get people who actually understand the underlying business rather than a MBA graduate, that will change.

    1. Re:Nothing New by florescent_beige · · Score: 1

      That is because corporate infrastructure software does not generate revenue...

      Hi. Corporate infrastructure supports the creation of whatever the corporation sells. Thus, creates wealth.

      Where any specific bit of the enterprise fits in the revenue generating chain is an arbitrary organizational decision. Ultimately the entire entity is there to give the sales force something to sell and the ability to accept purchases and support customers.

      In other words, the pointy end of the stick is useless without the rest of the stick. It's just prick lying on the forest floor under a pile of bear poo.

      --
      Equine Mammals Are Considerably Smaller
    2. Re:Nothing New by brainzach · · Score: 1

      I think software engineers share just as much of the blame. Even if they write good clean code, they are usually terrible at making something user friendly and their solutions can be rather wonky.

      The challenge of making good software is getting business people and engineers working together. If one side has too much power, the likely result will be crap.

    3. Re:Nothing New by JDG1980 · · Score: 2

      That is because corporate infrastructure software does not generate revenue. Why spend money that does not directly impact the bottom line?

      It does impact the bottom line; it's just harder to see and measure. When lots of employees are wasting time rebooting after crashes, or repeatedly navigating a slow and/or suboptimal user interface, that's wasted time that costs productivity and money. Just because you aren't measuring it doesn't mean it isn't happening.

    4. Re:Nothing New by frisket · · Score: 3, Insightful

      That is because corporate infrastructure software does not generate revenue. Why spend money that does not directly impact the bottom line?

      Marketing can always get fat funding to have designers polish the turds on the web site, but the backend people don't have access to that kind of money.

      Maybe when you get people who actually understand the underlying business rather than a MBA graduate, that will change.

      If payroll is threatened, you may get some action, but anything else usually gets a Band-Aid.

    5. Re:Nothing New by luis_a_espinal · · Score: 2

      That is because corporate infrastructure software does not generate revenue.

      Says who? That's like saying a cleaning crew or the electric system does not generate revenue for a supermarket. Revenue is not just a function of what you sell. You need a lot of things to generate revenue. A business that uses corporate infrastructure uses it to generate revenue. The problem in most unorganized enterprises is that they have poor accounting for tracking the cost and revenue of corporate infrastructure. Added to that is that most software developers have no clue about the cost and ROI of the software they build for a living (which is completely unnaceptable.)

      Why spend money that does not directly impact the bottom line?

      Maybe when you get people who actually understand the underlying business rather than a MBA graduate, that will change.

      It's not just MBA's who don't get it. Software developers do not get it either. There is plenty of blame to throw to both sides of the fence.

    6. Re:Nothing New by sjames · · Score: 1

      In other words, the pointy end of the stick is useless without the rest of the stick. It's just prick lying on the forest floor under a pile of bear poo.

      That analogy is fairly apt for CEO and workers as well.

    7. Re:Nothing New by ZorroXXX · · Score: 1

      Companies do not set out to write good software. They set out to write good enough software, for some definition of good enough. I think that is the root cause of the existence of bad software as discussed in the article.

      --
      When you are sure of something, you probably are wrong (search for "Unskilled and Unaware of It").
    8. Re:Nothing New by Anonymous Coward · · Score: 0

      Because the person comissioning th eproject and paying th ebills probably doesnt have to actually use the system every day. We used to have nice HP laptops, pretty tough, good battery life, small and light. I even had a tablet. Then some bean counter noticed you could get a Dell laptop for less, so we got upgraded to the crappiest laptop I have ever had the misfortune to use. Battery life is poor, performance is only average, the screen is dim and narrow angle of view. But hey, they saved some money! I just use my mac instead, and the laptop pretty much just sits in its bag all day.

  7. The old adage by killmenow · · Score: 5, Insightful

    Good, Fast, Cheap...Pick Two.

    1. Re:The old adage by dkleinsc · · Score: 4, Insightful

      Another rule here is out-of-sight-out-of-mind: If management can't actually see the effects of what's going on, they don't care how good it is, which is why UIs can be fantastic while the backend completely sucks.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    2. Re:The old adage by AliasMarlowe · · Score: 1

      Good, Fast, Cheap...Pick Two.

      Provided neither of them is "Good".
      "Good" is the Pick One choice...

      --
      Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    3. Re:The old adage by Anonymous Coward · · Score: 0

      Only one is necessary to win the day... cheap! For bonus points outsource.

    4. Re:The old adage by Anonymous Coward · · Score: 0

      Wrong. Here's a better one:

      The cheaper, the better the quality.

      Really, buy software for hundreds of thousands of dollars, and there's no end to grief. Buy Angry Birds for a dollar, and it works like a charm.

    5. Re:The old adage by blahplusplus · · Score: 1

      "Really, buy software for hundreds of thousands of dollars, and there's no end to grief. Buy Angry Birds for a dollar, and it works like a charm."

      Angry birds is orders of magnitude less complicated then many other software projects, you cannot compare apples to oranges.

    6. Re:The old adage by Anonymous Coward · · Score: 0, Insightful

      Except where Google is concerned, then it's Good, Fast, Cheap, No Strings Attached...pick three. Well, actually, we picked three for you.

    7. Re:The old adage by JDG1980 · · Score: 1

      Of course, the reason Angry Birds can be profitably sold for a dollar is that millions of people are buying it. When you're buying a custom solution, you have to pay the whole cost yourself. This is why it's generally best to try to find off-the-shelf (or open-source) software that can be made to work reasonably well, rather than writing a one-off solution.

    8. Re:The old adage by Anonymous Coward · · Score: 0

      Some 40-dollar console games are far more complicated than most business solutions. Yet the inverse quality-price ratio holds.

      Of course, the reason is in the volumes. But it can be a customer relations nightmare to justify your crappy quality when you are charging your customer through the nose and they see all this great software that's available (virtually) free of charge.

    9. Re:The old adage by Anonymous Coward · · Score: 0

      Perhaps it just that for many applications, problems due to software issues are a small part of the ordinary problems that bedevil all human en devours.

    10. Re:The old adage by Exulion · · Score: 1

      Except where Google is concerned, then it's Good, Fast, Cheap, No Strings Attached...pick three. Well, actually, we picked three for you.

      You forgot in beta and probably going to get shut down in two years.

    11. Re:The old adage by Anonymous Coward · · Score: 0

      Pick Linux.

    12. Re:The old adage by Ryanrule · · Score: 1

      Pick one.

    13. Re:The old adage by kbolino · · Score: 2

      Good, Fast, Cheap...Pick at most Two.

      FTFY

      I've seen plenty of software in the "none of the above" category.

    14. Re:The old adage by cgenman · · Score: 1

      "UIs can be fantastic while the backend completely sucks."

      I'd like to find where the UI's are fantastic. Most of the UI's I've worked with have been godawful, though probably came from pretty static images made by people who have no idea how interactions should happen.

    15. Re:The old adage by Anonymous Coward · · Score: 0

      I use Playbox and Listbox at work. It ain't cheap. It ain't fast. It sure ain't good. Almost all the time, the sound won't run in the Listbox clip trimmer, and that is when I can get the clip trimmer to open.

      Then there's Maya. It's very expensive, and it's terrible - unstable, multiple ways of doing the same thing and yet some of them don't work in certain circumstances... I could go on, but I don't really give enough of a fuck.

  8. Unavoidable: Human Nature by Anonymous Coward · · Score: 1

    With money and profit being the primary motivators, and these being directly related to the amount of time spent getting something released and generating revenue, there is no really good way to avoid this. (The software industry does not have a monopoly on this, either.) There are people within the organization whose primary function is to rein in devs who try to make every chunk of code completely bulletproof and spend hours, days, or even weeks trying to anticipate every sequence of events that could conceivably happen. At some point, you have to call it good 'nuff and move on, if you want to be competitive. If you're lucky, you'll be able to patch it later. If you're unlucky and there are errors to the point that the software is not usable, the company crashes and you move on. Everybody understands this game.

  9. hmmm by Anonymous Coward · · Score: 0

    The underlying problem is that there are only so many people who really 'get' software development. Most of them are working in industries where they are compensated well or find the work exciting and interesting. Fixing legacy code on the cheap for a white-shirt-and-tie company like an electric utility or a defense contractor just isn't worth it.

    1. Re:hmmm by SirGeek · · Score: 1

      It isn't worth it if you don't care about a long term job. Usually once you're at one of those companies (Utility or Defense Contractor) you're there for as long as you want to be there.

      Too many younger programmers are looking for a fancy title and stay only long enough to find their next job (not staying long enough to invest in a 401K, etc.)

    2. Re:hmmm by PPH · · Score: 5, Interesting

      You mentioned utilities, so I've got to jump in with an anecdote.

      Several years ago, I was brought in by our local electrical utility to develop a configuration control system for engineering documentation. Specifically, substation engineering documentation. The problem was presented to me as one of engineers getting behind schedule working on as-built drawings. And working from the wrong drawing revisions. So, before accepting the project, I asked to speak to some of the other stakeholders in the design and build process. Specifically, the construction crews. The first sign of trouble: Engineering management looked at me kind of funny. It seems that engineering and construction didn't get along too well. Nevertheless, as an outsider, I figured I had an advantage.

      After speaking to a few workers, I had a better picture. It seems that the relationship between these two groups had been poisoned for many years by (as far as I could tell) one individual in engineering management. The crews considered him to be a raging a**hole and wouldn't work with him (he had retired years before, but people still carried a grudge). As a result, the crews pretty much built things the way they wanted instead of per the drawings. Specifically, they built new stations the way they built the last one. As a result, the smarter engineers as-built the older drawings. Those being the ones the crews were working to.

      Management wanted me to come in and build a system to 'lock down' released drawings and restrict the work flow. Without understanding the root causes of their problem and how people were working to accommodate process and personnel problems. I walked away from that job offer quickly.

      I have a few stories (oddly about defense contractors) where software was built intentionally to be lousy. If the users' management had to employ a staff of a few hundred people to repeatedly sanitize database entries (rather than built error checking into the entry system) it meant they were a third or fourth level manager (with the commensurate salary) instead of first level with a couple of DB admins under them.

      Good software is easy to write. Bad management or personnel problems are difficult to fix. An associate one told me that he could fix all of the problems in a $250 million dollar failing s/w project with one clip in a .45.

      --
      Have gnu, will travel.
    3. Re:hmmm by Anonymous Coward · · Score: 2, Insightful

      An associate one told me that he could fix all of the problems in a $250 million dollar failing s/w project with one clip in a .45.

      That is an awesome line.

  10. It's called job security... by IflyRC · · Score: 2

    True, most software is badly written and there are entire jobs dedicated to maintaining legacy and even current systems. Some software is so badly written that it requires a team to prop it during peak usage times or War Rooms to determine fixes. Managers usually only care about meeting a deadline and push for that. Young guys don't care about if something is correctly written - just that "it works" in that instance in time. Being a good developer requires being enabled to be a good developer by your team.

  11. It's a big world by MozeeToby · · Score: 5, Insightful

    There aren't enough 'good' coders in the world to implement all the software that needs to be written, let along 'very good' ones. Not to mention good architects, designers, requirements analysts, etc, etc, etc. And even if there were, software that needs to work together isn't always designed to do so. Hacks, cludges, and jerry rigged solutions are what hold the tech world together, no amount of wishful thinking is going to change that.

    1. Re:It's a big world by Anonymous Coward · · Score: 0

      I believe you mean jury rigged, not jerry rigged.

    2. Re:It's a big world by SirGeek · · Score: 1

      Yeah there is. Companies need to figure out how to assign realistic values to the software ("What will this save me in 1yr, 2yr, etc.) vs. which is cheapest to do now ?

    3. Re:It's a big world by dyingtolive · · Score: 1

      Maybe it was done by Nazis?

      --
      Support the EFF and Creative Commons. The war is coming, and they're supporting you...
    4. Re:It's a big world by Anonymous Coward · · Score: 0

      No

    5. Re:It's a big world by Sperbels · · Score: 1

      Ah yes, the mythical good coder who writes it "right" the first time. Yeah...haven't met one yet. I don't think they exist.

    6. Re:It's a big world by Sperbels · · Score: 1

      Furthermore, I'm not even sure there is a right way to write it.

    7. Re:It's a big world by Surt · · Score: 1

      I'm pretty sure he meant what he said:
      http://www.merriam-webster.com/dictionary/jerry-rigged

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    8. Re:It's a big world by Anonymous Coward · · Score: 0

      'Jerry rigged' is a phrase originating from World War II. Jerry was a nickname for Germans, and it was said to mock the engineering prowess of the enemy.

    9. Re:It's a big world by Anonymous Coward · · Score: 0

      You should read the thing you post before posting it.

    10. Re:It's a big world by mooingyak · · Score: 1

      Usually, it's not so much that one guys does it "right" the first time vs. others who don't, but more like one guy does it acceptably, and (ideally) flexibly, while another guy does it horribly wrong.

      Sometimes the most valuable skill a developer can have is a good instinct for which business requirements are most likely to change over time.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    11. Re:It's a big world by Anonymous Coward · · Score: 0

      This is why you don't correct people before ensuring you are correct in the correction.

      http://www.merriam-webster.com/dictionary/jerry-rigged

      Origin of JERRY-RIGGED
      probably blend of jerry-built and jury-rigged
      First Known Use: 1959

    12. Re:It's a big world by MozeeToby · · Score: 1

      The implication of your statement is that companies need to sometimes say "this solution would save me money in 5 years vs this solution which costs half as much". There are times, quite possibly the majority of times, where the 'correct' decision is the cheaper one, and what you'll end up with is a world full of 'bad' software. What if the company simply doesn't have the money or time to invest in what you would consider the 'right' solution? What if implementing it the 'right' way is going to make you 6 months late to the market? What if there are simply no coders available with the skill sets you need?

    13. Re:It's a big world by Anonymous Coward · · Score: 0

      Seems that everybody on slashdot is one of these good coders.

    14. Re:It's a big world by cduffy · · Score: 1

      Ah yes, the mythical good coder who writes it "right" the first time. Yeah...haven't met one yet. I don't think they exist.

      Don Knuth comes pretty close to being a living existence proof.

      Granted, there's only one of him.

    15. Re:It's a big world by Surt · · Score: 1

      I'm happy with it.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    16. Re:It's a big world by rbmyers · · Score: 1

      Spoken like a witness from Microsoft arguing for more H1-B visas. Slashdot is dominated by software types, and if the world is run by bad software, I don't know why you would look for a hard-hitting and insightful discussion of the subject on slashdot.

      The old-timers, the ones who weren't born into a world of smug software fantasy, know that good and reliable software is not only hard, it is expensive, and that "See, it works" must be scrutinized very closely and sometimes at great cost.

      The whole situation is a perfect storm: the cost of doing it right is high, the moment of truth is often delayed in time, and blame for the mess too hard to pin down to prevent recurrences by prominently displaying a few severed heads near the Tower of London.

    17. Re:It's a big world by Duhavid · · Score: 2

      "Sometimes the most valuable skill a developer can have is a good instinct for which business requirements are most likely to change over time"

      Amen!

      --
      emt 377 emt 4
    18. Re:It's a big world by gstrickler · · Score: 1

      There are plenty of good coders, but not so many very good or great coders. Obviously, you want the best coders you can afford. The main problem is the lack of (or lack of use) of a good software architect and proper design documents. Exactly what constitutes "proper" will vary with the scope of the project, complexity of the project, and size and skill of the coding team, but the documents are necessary. Time-frame is not one of the considerations; if you don't have time to perform a requirements analysis, design the architecture, and create design documents, your chances of having a successful implementation are very low anyway, unless it's a relatively small project with 3 or fewer developers, one of whom is a decent architect.

      There probably is a shortage of competent software architects, I certainly haven't met many, but being one myself, I may be a bit biased.

      --
      make imaginary.friends COUNT=100 VISIBLE=false
    19. Re:It's a big world by oakgrove · · Score: 1

      Heh. If people are so worried about "good" coders then start some kind of exclusive app store. Lay down the law that only correct code is allowed in here! I'm sure they'll come running by the dozens.

      --
      The soylentnews experiment has been a dismal failure.
    20. Re:It's a big world by sjames · · Score: 1

      There are plenty if they would quit with the up or out policies and poor work-life balance.

    21. Re:It's a big world by arth1 · · Score: 1

      Origin of JERRY-RIGGED
      probably blend of jerry-built and jury-rigged
      First Known Use: 1959

      The opposite of jury-built?

    22. Re:It's a big world by Roberticus · · Score: 1

      Do you mean the jerry-rigging, or the posting by an ill-informed Grammar Nazi?

      Better to have avoided such etymological confusion by saying "duck-taped solutions".

    23. Re:It's a big world by dyingtolive · · Score: 1

      Valid question. I was going for the WW2 slang definition of 'jerry', implying that the rigging was of a sort that a very nationalistic German fellow of the time might have engaged in. "Duck-taped solutions" is a pretty solid term. I may use that in the future, if only because it's more work-safe that my previous favorite, the "profoundly whimsical clusterfuck".

      --
      Support the EFF and Creative Commons. The war is coming, and they're supporting you...
    24. Re:It's a big world by dyingtolive · · Score: 1

      I also believe I might have Godwinned the thread.

      --
      Support the EFF and Creative Commons. The war is coming, and they're supporting you...
    25. Re:It's a big world by Anonymous Coward · · Score: 0

      Because making good software is an engineering science. Making awesome software is an art.

    26. Re:It's a big world by Anonymous Coward · · Score: 0

      The other thing is usually you don't know how you would want something to look until you have had at least one pass. Often at the end of that pass, it is easier to make small modifications to it rather than a complete refactor, but sometimes you can still justify a refactor. Trying to get it 'right' before the first pass, however, is a fools errand, you'll end up going nowhere fast.

  12. Re:Cost of geek food going up by Moheeheeko · · Score: 0, Offtopic
    Not a single fuck was given that day.

    Papa John's is shit-tier pizza anyway.

  13. Fixed by SuperKendall · · Score: 5, Insightful

    That is because corporate infrastructure software does not obviously generate revenue, and losses of opportunity are invisible.

    Fixed it for you.

    Basically just supporting the last half of what you said.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Fixed by Anonymous Coward · · Score: 0

      It does not generate revenue. What it would do is increase productivity and therefore cut costs and increase profit.

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

      Dumbass, if it increases profit then it is generating revenue.

    3. Re:Fixed by bws111 · · Score: 1

      If you want to avoid looking like a complete idiot, learn what words means before calling someone else a dumbass.

      Revenue is the amount of money flowing INTO a company.
      Cost is the amount of money flowing OUT of a company.
      Profit is the difference between revenue and cost.

      Changing cost DOES NOT AFFECT REVENUE, it affects PROFIT.

      Dumbass

  14. Re:Cost of geek food going up by Anonymous Coward · · Score: 1, Insightful

    11 cents a pie? I'll pay that if it means people can get healthcare.

  15. Hey now! by killmenow · · Score: 2

    That's just mean!

  16. That by Anonymous Coward · · Score: 0

    That is so because the big boys are the first ones to have their development teams outsourced overseas, where a coder is made in 1 week from his previous shepherd job, and, i kid you not. Big4Style

  17. User-facing software is well-polished? by dgharmon · · Score: 2

    "James Kwak .. points out that while user-facing software is often well-polished, the code running supply chains, production lines, and financial markets is rarely so refined"

    I disagree, while the GUI may be well polished, the underlying code is of poor quality, as it has most probably written by some contractor on an hourly rate. Quality control works like this. If it compiles, ship it and fix all the bugs in the next version ...

    --
    AccountKiller
    1. Re:User-facing software is well-polished? by Anonymous Coward · · Score: 0

      The GUI isn't even well polished. At least not web-based stuff anyway. It all turns into Homer Simpson's web page eventually. Twitter loads something like 250k of scripts and garbage noise in order to display about 1k of signal. There is a noticeable pause when loading Twitter with older hardware. Unbelievable.

    2. Re:User-facing software is well-polished? by HeckRuler · · Score: 2

      Beauty is only GUI deep, but ugly goes straight to the code.

  18. I've worked at investment banks since '93 by bobs_lounge · · Score: 5, Interesting

    and this article is absolutely correct. Forthe most part, we do regression testing, but a lot of code (a whole lot) is never unit tested, its not written to be used it tested, and there are configuration holes all over the place. Each time there is a Jerome Kerviel or Nick Leeson, a generation of auditors will come through and find systems faults, and put in reasonably effective controls, but that is not the same as programmatic correctness. Programmatic correctness often has to be baked into the code from the start (same with effective unit testing), and by and large, this is not an investment banks highest priority (as an earlier poster wrote, code that is not directly involved in revenue generation does not get funded).

    1. Re:I've worked at investment banks since '93 by davidwr · · Score: 1

      How about code that is directly involved in lawsuit prevention or downtime-prevention?

      Both directly affect the bottom line.

      --
      Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    2. Re:I've worked at investment banks since '93 by Anonymous Coward · · Score: 0

      Those may potentially affect the bottom line, and that potential is covered by insurance which is usually a fixed cost. The cost to fix code in time and money? Nobody can even reliably come up with a number or a way to get a number.

    3. Re:I've worked at investment banks since '93 by ebh · · Score: 5, Insightful

      Measuring how often something *doesn't* crash is extremely hard to show to the bean-counters. So, be ready to demo.

      True story: When I started a sysadmin job, we had JBODs that routinely ran out of space, causing all sorts of downtime problems, like leaving the whole building dead in the water for days. I convinced TPTB that we needed decent storage (in this case, NetApp), but many of them choked when they saw both the purchase and maintenance costs. After we had it installed, I saw that a volume was close to hitting the wall. Before doing anything, I called in the most skeptical of the PHBs, and said, "Wanna see the NetApp pay for itself?"

      I showed him the alarm that indicated a space problem, and told him we were on the verge of going down for two days. I waited for his skin to turn pale, and at the right moment, I said, "But we won't, because the NetApp can do this," and in a few keystrokes and mouse clicks, I added enough space to the volume.

      I then told him that things like this happen once or twice a week, and I fix them without anyone knowing anything went wrong, but that I documented them in the trouble ticketing system I had installed, so if anyone wanted to know how many disasters were prevented by having decent storage, that's where they should look.

      That didn't completely solve the problem of the thousand successes going unnoticed and the one failure never forgotten, but it came close.

    4. Re:I've worked at investment banks since '93 by SuperKendall · · Score: 1

      Brilliant sir, my hat is off to you for demonstrating to someone non-technical the concrete monetary value of a technical solution at work.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    5. Re:I've worked at investment banks since '93 by kurtdg · · Score: 1

      Program testing can be used very effectively to detect the presence of bugs, but is hopelessly inadequate for showing their absence.

      -- E. G. Dijkstra (original emphasis)

      as quoted in The Dawn of Software Engineering: from Turing to Dijkstra.

    6. Re:I've worked at investment banks since '93 by Anonymous Coward · · Score: 0

      Sooo you're on-site 24x7? Because any place I've worked has processes that run overnight, as well as during the day.

      You could, of course, go a slightly different way - have the disk system (NetApp, or, well, anything else, really) configured to auto-grow so you don't need to babysit permanently.

      Or, shock, horror, you could even do some planning and trend analysis so you size your disks properly.

      If you can't tell, I'm not impressed by your anecdote. It's the sort of story typical of way too many kids in the industry. Focused on symptoms and break-fix. Once the immediate problem is fixed, they wipe their brow, say "phew", and go on to the next crisis. Without bothering to figure out why there was a crisis in the first place. Result - spaghetti systems which keep on having crises.

    7. Re:I've worked at investment banks since '93 by Anonymous Coward · · Score: 0

      Measuring how often something *doesn't* crash is extremely hard to show to the bean-counters.

      No it's not. It's called mean time between failure (MTBF).

    8. Re:I've worked at investment banks since '93 by ebh · · Score: 1

      When I walked in (at age 41 and 20 years in the business, BTW), there was no sysadmin, and the development lab consisted of two PCs and supported 15 users. I was the only sysadmin and for almost eight years I was on call 24x365. At the end, the lab had about 150 tracked assets supporting 250 local and remote users. The above story was early on in that time period, and disk space wasn't even close to the top of my worries. Even after the environment matured and stabilized, of the seven development sites on the project, what I did at my site was done by three full-time people at each of the others, yet 40-45-hour weeks were my norm. For all but two of those years, I had four-nines uptime, and the years I didn't were due to power outages longer than my UPS could handle. (To get to five-nines would not have been cost-effective for what we did.) Nobody ever lost any data for any reason. Not even once.

      You bet your arrogant, condescending kids-these-days ass I analyzed and planned (and budgeted, and audited, and standardized, and measured). If you want to think that I spent all that time putting out fires and slapping band-aids on everything, go right ahead. My bosses, my users, and my successor knew different.

  19. It isn't cost effective to build good software by neves · · Score: 3, Informative

    It isn't cost effective to build good software... for a few users. I develop some internal systems. They are very complex and each of them have 40 users at most. The ROI of Apple polishing every tiny bit of a software is great. If each of their 100000 users spend one second less, it is a ROI of more than one day. Human beings are very intelligent. They can learn to play a musical instrument, drive a car, operate a machine and to use shitty software.

    1. Re:It isn't cost effective to build good software by PRMan · · Score: 1

      Human beings are very intelligent.

      Link?

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:It isn't cost effective to build good software by Anonymous Coward · · Score: 0

      Slashdot.org

    3. Re:It isn't cost effective to build good software by Anonymous Coward · · Score: 0

      Time isn't the only cost (or $) of using shitty software. How long can your users go, knowing the job could be smoother, but for a few maddening bugs and design decisions? If i'm doing something that results in a face palm regularly, i'll either fix it or quit before i break my nose. If those arenot options I break down, productivity suffers. It's like working in a dirty shop, if the boss doesn't care, why should I?

    4. Re:It isn't cost effective to build good software by dbIII · · Score: 1

      Link?

      No. He's some sort of Elf. A Hylian apparently.

  20. Re:Cost of geek food going up by dainbug · · Score: 1

    There should be an additional $0.11 tax added to every pizza for the extra health care needed to treat all the fat geeks! Wait... what? Oh crap, am I that fat?

  21. Missing requirement for quality by t'mbert · · Score: 1

    OP mentions a few of the factors that help achieve better software (very good, motivated developers; orientation towards quality, etc). But the most important one was left out: customers willing to pay what it costs to get quality software, and their ability to spot high quality software up-front (during sales cycle). Until that happens, the quality will continue to be poor, because as OP notes, the cost will increase (driving customers away from higher-quality) and the lack of visibility to higher quality will keep them from getting it (ie, ability to recognize a better quality product during sales cycle and pay the extra price knowing they'll actually get higher quality out of it).

  22. What I Saw at First by carrier+lost · · Score: 1

    "You need to have development processes that are oriented toward quality, not some arbitrary measure of stupid."

  23. Re:Cost of geek food going up by h4rr4r · · Score: 2

    Sounds good, add another $1 to the price and pay the folks making it the money made from it as well I say.

    I have no problem paying a little more so that the people working long hours for shit pay can at least see a doctor when they get sick.

  24. I disagree by bhcompy · · Score: 1

    I wouldn't say it's all bad software, I'm sure a lot of it is, but some of it is purpose driven software that has been repurposed as if it were off the shelf software. Dev houses build a piece of software for a specific need for a specific customer, then that customer refers them to others and they all want the same thing. They don't rewrite the software to be off-the-shelf, they just repurpose what they have and shoehorn it in and make it work(well, it works with MS SQL, but this company uses Sybase, so lets just quickly change the syntax and now everything is okay). It might be great software, but it's a shitty implementation of it.

  25. Bull turds! by QuietLagoon · · Score: 1

    ... it is interacting with other software programs that are not under your control. It's difficult to test software properly if you don't know all the use cases that it's going to have to support...

    You define the use cases it will support, and reject anything outside of those defined cases. If your software acts upon cases that it does not know how to handle, then it is your problem, and only your problem.

    1. Re:Bull turds! by asc99c · · Score: 1

      It doesn't matter to the client whether your software segfaulted or replied 'sorry Dave I'm afraid I can't do that'. Either way, it hasn't completed a use-case that it is meant to do. And that fact may well mean that a load of downstream activities happen differently, and you quite possibly have gained nothing by rejecting it.

  26. Why bother? Even God has bugs by Anonymous Coward · · Score: 0

    Perfection does not exist, as humans, we degrade over time and eventually die... Why we should expect software does not?

  27. He was a founder at Guidewire by Surt · · Score: 1

    http://jameskwak.net/about/

    So he has some actual experience with seeing the kind of effort it takes to do software with high quality.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  28. Re:Cost of geek food going up by omnichad · · Score: 1

    Maybe, but it comes with a top-tier garlic dipping sauce that forgives all the sins of the pizza. Wait, you think Little Caesars is better? WTF is wrong with you?

  29. Re:Cost of geek food going up by dyingtolive · · Score: 1

    No kidding, that stuff fucks me up worse than White Castle.

    --
    Support the EFF and Creative Commons. The war is coming, and they're supporting you...
  30. Re:Cost of geek food going up by Desler · · Score: 1

    Perfectly fine. Anything that would drive that crappy company out of business is a win. Their pizza tastes like warmed over turds.

  31. AI by Nullifier · · Score: 1

    Humans write software. Humans are inherently fallible, therefore the software they code is likewise fallible. Properly motivating a software engineer with pain or pay will not cause the engineer to become infallible. Removing greed from the equation might help, but like fallibility, it is in our nature and not likely to change.

  32. Re:Cost of geek food going up by Surt · · Score: 2

    Like a lot of the audience, I think it's really really good if products include the price of caring for the health of those who produce them.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  33. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    [Citation needed]

  34. Indeed by Ancient_Hacker · · Score: 5, Funny

    Indeed. I've been parachuted in to several companies with major software issues.

    Three had avoided even starting a migration from hardware and databases that hadn't been supported in a decade or more.

    Another placehad no concept of file locking or threading, or QA, and was using 8 different programming languages on just one project.

    Two companies that handled 80,000 to 300,000 transactions a day did not have any way of simulating input or comparing the input to output.

    One company that depended on several million TCP/IP connections a day had no idea that TCP/IP data might not all arrive in one packet.

    Another place whose business was dependent on several custom fonts would not believe the veracity of both the Postscript and TrueType font verifiers when they said "your font has 488 serious errors".

    About 3/4 of the places had not a clue what SQL injection was and how they were vulnerable.

    The quality of the stuff out there is just horrible.

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

      Even worse - worked at a major software vendor that had millions of customers that had code that could be trivially proven to not work, that considered nested comments as valid.

      Another problem showed up where there was the possibility that the code might work given a specific set of circumstances - but it was very difficult to make those circumstances work

      There was the case that there was a bug that said - A High fault was detected in the logs. The developer fixed the bug by turning off logging of highs and fatal errors (leaving low and informational logging turned on)

      It is a scary world out there

    2. Re:Indeed by MrSenile · · Score: 4, Insightful

      The quality of the stuff out there is just horrible.

      Having worked under several hats, the latest being as a system architect, I can tell you exactly why this happens.

      We start with some upper management who have this 'nifty idea' that they must have for the business. Ok, fine... now let's get the ball rolling!

      First, you have the budgetary committee. Without any input what so ever from the technical groups that make up the technology and know what is or isn't possible, they work with vendors on a parachute budget for the project.

      Secondly, with this locked in budget in hand, they introduce it to the system architects and project management. The project management are giving timetables saying 'we need this done by this time, no exceptions'. They then pass that timetable, as well as the budget, to the afore-mentioned system architect.

      Introduce stroke-approaching WTF moment for the architect....

      Third. The architect goes back to the project manager saying 'We can't build the specs for the money in the time allowed'. The manager goes 'oh, right'. They go to the budgetary committee and bring this up, and once they realize the bottom figure is wayyyy out in left field, they come back with 'that's impossible, we need this done, with the results of this, for the money you originally quoted us'. So... head back to the system architect...

      Forth, the architect then, to un-bury himself from the absolute disaster sitting in his face, tell the project manager what will be required to minimally meet the ends. This generally requires a ton of over-seas consultants, paid to grind the wheel 24/7, at the lowest dollar, to get it to work on outdated hardware to meet the end core/cpu/memory requirements and still 'work'.

      Fifth, the consultants are hired, you're lucky if they understand english sufficiently to understand the nuances of day to day communication. They also take shortcuts, because they either don't know the right way, don't want to spend time on the right way, or are told that doing the 'right way' is not time efficient for the cost. So now, we have crappy code being tossed in, usually undocumented.

      Sixth, the dev work is slammed in, marginally tested, and quick-shotted through QA because the upper management are in a time crunch and don't have the time to deal with all that 'quality assurance nonsense'. So this work is now fast-tracked to production in a non-fully tested workflow.

      Seventh, it's been live for a while, things break randomly without reason, but it's ok, a restart of the application always 'fixes' it. So what if you have to bounce the app every 2-3 weeks to free up that memory leak. It works, in the budget... well, maybe for a few hundred thousand more... but it's done, it provides the 'nifty feature' that the share-holders were promised by the upper management, and the things that don't work are being pushed on...

      three guesses...

      The management who pushed the idea? Nope.

      The budgetary committee who gave the low-end figures out of their butt? Nope.

      The project manager who gave the tight time-frame for the project without major input from the technical people? Nope.

      I know... the IT professionals who are still at the company like the system architect, network team, dba team, san management team, and the security group who are left holding the bag of the big pile of steaming crap? Yup.

      Soo... when things evidently break so bad to be noticed, and management are told to 'fix' it it will take more money, more time, and more hardware. Shock, awe, and bafflement is shown, bonuses/raises are crushed because the IT professionals obviously can't do their job right, and maybe a few heads roll because management have their golden parachute and are not held to blame for the project they initially started up.

      That. Is why the 'stuff out there is just horrible'.

      It's not any one thing, it's how business runs, because these yahoos frank

    3. Re:Indeed by Anonymous Coward · · Score: 0

      Having worked under several hats, the latest being as a system architect, I can tell you exactly why this happens.

      From your story, it sounds like you're frankly a bad system architect, who doesn't know how to communicate issues effectively to his customers.

      Stop "blaming" management, and learn how to explain the issue and quantify it in terms they understand. No, don't drone on about "File locking" and "DB tables" and other technical esoterics - speak in lost revenues, speak in money saved on maintenance, speak in new business opportunities.

      If you're an architect, you are in a LEADERSHIP position: LEAD, or get the fuck out of the way and let someone who can lead do it. If you can't speak management's language at least as well as you speak the developers' language, then you are an overpromoted incompetent who was placed in his current position on account of political connections, rather than technical capabilities for the role. If you design a system and can't defend that design from a bunch of technical ignoramuses, and make a compelling case why spending a little extra money to do it "the right way" now is better than spending a lot of extra money to "fix it" later, then you don't deserve your title, and you DO deserve all the blame that management chooses to heap on you.

      Passing the buck is conduct unbecoming of a technical leader. Stop doing it, and own up to your own shortcomings.

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

      Throw some hardware at it and stop your crying. Or blame the network guys.

    5. Re:Indeed by Anonymous Coward · · Score: 0

      Sometimes things go sour for different reasons. I work at a retailer that deals both with consumer products and commercial support contracts. The business has been growing substantially over the past 4 years. For much of this time the company's IT department consisted of one very talented Filemaker developer, who many years ago had built an entirely in-house sales and recordkeeping system in Filemaker. And then just kept adding to it.

      As the business grew and more managers and teams were added to the company hierarchy, the single developer started getting almost daily requests for new features and bugfixes from the owners, managers, and even lowly employees. There wasn't even any ticketing system so these requests either came by terse email or in-person.

      Eventually this developer realized that nothing was getting done and he seriously needed help, so the IT department was expanded significantly. Some new people were hired, I myself was hired from another department. We're now in the process of transitioning the day-to-day business operations away from the buggy, creaky Filemaker behemoth to a combination of in-house web services (built around a database that can actually handle our load requirements) and third-party solutions. Things are still pretty messy and personally I believe we really could use a couple more devs, but at least we have a ticketing system and an actual protocol for handling feature requests.

      Still, I frequently come across really shitty code. There's a lot of stuff that it's obvious was never finished or suffered significant changes in the requirements after development had already started. Our former genius developer pleaded with the business owners to demote him and hire someone with real IT management experience, so that he could actually focus on development without having to worry about running the department.

    6. Re:Indeed by Anonymous Coward · · Score: 0

      If you can't speak management's language at least as well as you speak the developers' language, then you are an overpromoted incompetent who was placed in his current position on account of political connections, rather than technical capabilities for the role.

      Middle Management spotted.

    7. Re:Indeed by dbIII · · Score: 1

      Worse than that, I've got the guy who has written some sort of inventory "database" who doesn't have a clue what SQL means let along SQL injection.
      He keeps on blaming the poor performance of his software on my network even though his entire collection of flat files can be sent over the network three times in a second.

  35. Re:Cost of geek food going up by Desler · · Score: 0

    Yeah I love this quote:

    “We’re not supportive of Obamacare, like most businesses in our industry?

    Yes, because most in your industry pay your employees shit wages and treat them like disposable slaves. You might actually have to treat them better. THE HORROR!!!

  36. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Shit food huh says Moheeheeko the wise.

    Let's see, is the third largest take-out and delivery pizza restaurant chain in the United States, 3,300 Papa John's establishments, including over 2,600 in the U.S. and the remainder spread among more than 30 countries, 500 million dollars in assets.

    Geen, Moheeheeko, I'm curious what you do with your time, other than make up grade school rhymes and dream of spending other peoples money.

    Do tell.

  37. Wrong... by Anonymous Coward · · Score: 0

    The underlying problem here is that most software is not very good.

    Wrong. You get what you pay for...news at 11

    Writing good software is hard.

    Wrong. Understanding the requirements and getting it right is the hardest.

    There are thousands of opportunities to make mistakes.

    Just like anything...people are fallible.

    More importantly, it's difficult if not impossible to anticipate all the situations that a software program will be faced with, especially when — as was the case for both UBS and Knight — it is interacting with other software programs that are not under your control.

    Actually, this was by design. Knight wanted a fully automated system and they did not want any user intervention at any cost.

    It's difficult to test software properly if you don't know all the use cases that it's going to have to support. There are solutions to these problems, but they are neither easy nor cheap.

    That's why they call it engineering. Do you think when they crash test cars and check to see how much damage will occur if you hit a cow? Of course not, because we stay within the bounds of accepted principles. We don't need to know the answer to everything.

    You need to start with very good, very motivated developers.

    It's not motivation that makes a good product.

    You need to have development processes that are oriented toward quality, not some arbitrary measure of output.

    Most development processes that are oriented toward quality use some arbitrary measure for output. The best measure is to see if it works.

    1. Re:Wrong... by Knuckles · · Score: 1

      That's why they call it engineering. Do you think when they crash test cars and check to see how much damage will occur if you hit a cow? Of course not, because we stay within the bounds of accepted principles. We don't need to know the answer to everything.

      Do elks count?

      Car makers such as Volvo and Saab factor in elk crashes when designing and building cars. VTI, the Swedish National Road and Transport Research Institute has developed an elk crash test dummy called Mooses.

      The dummy features similar weight, centre of gravity as well as dimensions to a live elk, and is used to recreate realistic elk collisions. A very popular European car failed its first Moose test and today is one of the safest in the world, thanks to the test results that initiated more stringent safety development.

      --
      "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
    2. Re:Wrong... by BranMan · · Score: 1

      "A Mooses once bit my sister."

        - Sorry, couldn't resist.

  38. Writing good software is hard. by RabidReindeer · · Score: 2

    Software isn't hard. Everyone constantly tells me so. "It's simple! All You Have To Do Is...".

    "Oh, those preliminary mockup screens look almost perfect". So you'll have the entire system ready for production deployment next Tuesday, right?"

    "Just git 'er DUN!"

  39. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Ahh but that's not the question now is it. Listen carefully now this is really complicated.

    ACA is not about healthcare, it's about incurance. You have full insurance in Cuba, do you understand this?

    Furthermore, it's not about "if products include the price of caring for the health of those who produce them", it's about the state taxing the producers all the while pretending to supply this healthcare, as if it was a right of the people.

    It is not a right, no more than MTV, Ipods or bling.

    You have so much to learn grasshopper, so little time.

  40. Because we all know by Stirling+Newberry · · Score: 1

    That Lawyers and bloggers know about bad software.

  41. Engineers don't make the buying decisions. by gestalt_n_pepper · · Score: 3

    Bean counter and management do. They don't care how much the staff struggles with lousy software (e.g. Oracle server on Linux). They care about saving a few bucks, getting their bonuses, reorganizing to hide the bodies and moving on to the next job. Hence, there will always be a market for crappy software. Capitalism fails at the interface level. If the engineers and low level end users made the purchasing decisions, you can bet quality would improve in a hurry.

    --
    Please do not read this sig. Thank you.
    1. Re:Engineers don't make the buying decisions. by El_Muerte_TDS · · Score: 1

      Same thing on the other side (i.e. the software creator side). Bean counters and management are more interested in selling half finished software that needs to be delivered yesterday.

    2. Re:Engineers don't make the buying decisions. by Anonymous Coward · · Score: 0

      Which means that there is no good scale of quality and or certificate for it.

    3. Re:Engineers don't make the buying decisions. by mdielmann · · Score: 1

      This reminds me of a sig here on slashdot (can't remember whose). "If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." The problem with the analogy is that for most of these 'catastrophic' software errors, you're back up and running in 5 minutes with little or no data loss. Since each incident costs almost nothing, if it doesn't happen enough (that being a sufficient amount for the decision-makers to notice) the corrections won't get made.

      If you want a better idea of the true cost of quality software, take a look at the cost of software for things like a space module - things that are mission critical, technically correct, and unmaintainable. People are surprised by the costs of these things, but, besides redundancy, these are the costs of very high quality software. And so they decide that they'll just restart the software when the occasional command freezes...

      This is the mantra that always drives me crazy when dealing with software. "It's good enough. Deliver."

      --
      Sure I'm paranoid, but am I paranoid enough?
    4. Re:Engineers don't make the buying decisions. by Anonymous Coward · · Score: 0

      While I agree with you for the most part, I believe that letting engineers and low-level end-users make purchasing decisions could result in chaos because most people will tend toward getting what they want without regard to how things fit together within the entire organization.

      The problem isn't specifically the money people, management, engineers, or end-users. The problem is the lack of communication between all of them. Just take a little bit of time to sit down and talk with each of these groups and you'll be able to get an idea of what everybody needs and try to find solutions to meet their collective and individual needs combined. Without good communication, you end up with Oracle and Microsoft empires within the company that start driving the company direction instead of finding tools to help further the company direction.

  42. Productivity == SLOC by jcadam · · Score: 1

    As a software developer, I have yet to hold a job where I felt as though I was being paid to produce quality software.

    Me: "In order to implement the new functionality I've had to rewrite the entire module"
    PM: "Ooooh, what's the SLOC?"
    Me: "It's decreased by about 2000."
    PM: "WTF?! How am I supposed to report that on my weekly metrics spreadsheet?"

    1. Re:Productivity == SLOC by pclminion · · Score: 1

      If you are just measuring raw activity, the measure to use is CHANGED lines of code. A deleted line, added line, or modified line all score the same. If reduction in SLOC is interpreted as negative productivity, then refactoring is impossible. And your company deserves their fate!

    2. Re:Productivity == SLOC by Yath · · Score: 1

      IMHO, a removed line should count for 10 times as much as an added line.

      --
      I always mod up spelling trolls.
  43. What does 'good software' mean? by parkinglot777 · · Score: 1

    When I first read the article, I asked myself "what is the meaning of 'good' software?" in the article and "what does good mean?". Then after I read through it, I found out that the article does NOT explain the meaning of "good" but rather generalizes that any software is bad if it "fails" to correctly serve even one of its purposes. All examples in the article are about money (of course). The meaning of "good" software in this article means "ideal/perfect" and "robust" software. I really doubt that any huge software could be even close to a robust software, leave alone the "perfect" part.

    The solutions given in this article do NOT guarantee that a good software will be produced either. In other words, the "cost" of software implementation and qualified developers can only be used as an implication of software quality, but they are NOT the software quality themselves. One could spend billions of dollars and have all knowledgeble team, but could still get a crappy software even though it is unlikely. And even though the software is good, it could still fail under certain conditions (either by itself or being tampered from external sources -- hack -- or both).

    Nevertheless, I like the conclusion of the article that the solution is to accept whatever might happen and attempt to reduce the damage done by software failure. That is what everyone should expect and be prepared for.

  44. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Right, Papa John's must good because they have a lot of locations. If he said McDonald's made shit food, I doubt you'd be getting anywhere near as defensive.

  45. Re:Cost of geek food going up by Desler · · Score: 1

    There are also 5800 Taco Bells in the US. This doesn't mean their food isn't shit. It just means that for the price people are willing to accept the lower quality.

  46. Re:Cost of geek food going up by Desler · · Score: 1

    Ok, and? Other than an 'OMG! SOCIALISM!' why am I supposed to be crying?

  47. On time and "okay" is better than too late by davidwr · · Score: 1

    Which is better for code that runs won't-kill-anyone-if-it-fails systems like the stock market, airline scheduling, and the like:

    Software that is delivered on time with a 0.1% downtime, a 1 per-1000 transaction "caught" error rate that leads to doing work over again or a reported failure, and a 1-in-100,000 transaction "uncaught until things get expensive" error rate,

    OR

    Software that is 100 times as good on every metric but which isn't delivered until 5 years after the "bad" version above?

    For some customers, the first one is the better choice.

    The problem with software is we don't have a good handle on how much delay or additional effort it will take to get from "definitely on time, maybe good enough, maybe not" to "definitely good enough, but very likely unacceptably late."

    We also don't have a good handle on whether any improvements will introduce new problems or increase the odds of an existing problem being triggered from "almost never" to "often enough that people notice."

    When you have systems that can kill people if they malfunction, the questions are the same but the costs of failure is much higher. When you have life-saving systems which can kill when they malfunction you have to trade off the cost of lives lost in malfunctions (medical radiation machines delivering overdoses) to the cost in lives of the machines not being available (cheap radiation machine not being widely available in the 3rd world for several years after it could have been if an occasional fatal malfunction in "version 1.0" was acceptable).

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  48. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    "The cost will never stop going up, and the quality of care will go down"

    I happen to know history, you apparently do not. Not my fault you are ignorant. Go and ask someone who endured healthcare in the former USSR and report back. My job is not to educate you.

  49. More than just implementation flaws by bouldin · · Score: 1

    The way the article is written, it hints that low quality = more implementation flaws.

    Let's not forget that software can have design flaws, too, and careful programming might still lead to low quality software.

    In the case of Knight, the defects might not have even been a function of the software per se. I'm sure a good bit of probability and machine learning go into HFT; these algorithms may have been the source of the errors, and the flawed algorithms might not even be due to the software engineers.

    1. Re:More than just implementation flaws by superflippy · · Score: 1

      The articles I read about this incident made it sound more like human error. Knight was informed about the malfunction within minutes of it happening. Normally in a case like that there would be some failsafe switch built in to the software so they could halt trading. But absent that switch, they still could have intervened and shut it down in a non-nice way. The fact that it took them 15 minutes - an eternity in the realm of high-frequency trading - means that either nobody at Knight knew what to do when something went wrong, or else someone was in denial about the problem. Either way, that's a people problem.

      --
      Your fantasies contain the seeds of important concepts.
  50. Re:Cost of geek food going up by Moheeheeko · · Score: 1

    Not posting AC like a spineless bitch for starters.

  51. Re:Cost of geek food going up by dcsmith · · Score: 1

    Perfectly fine. Anything that would drive that crappy company out of business is a win. Their pizza tastes like warmed over turds.

    So, you're a turd connoisseur, then?

    --
    This has been a test. If this had been an actual Sig, you would have been amused.
  52. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Please indicate where I said good. Take your time. Successful is the point I was making, and I am correct, as I always am.

  53. Re:Cost of geek food going up by Desler · · Score: 2

    Yes. I prefer my turds grilled with dill and lemon not warmed over like a Papa John's Pizza.

  54. Re:Cost of geek food going up by h4rr4r · · Score: 2

    You do realize there are other nations that have socialized medicine than the USSR, right?

    Many of them have fine medican care.

  55. Huh? by avandesande · · Score: 1

    while user-facing software is often well-polished

    I think the distinction is that most user facing software doesn't lose 400million due to a bug.

    --
    love is just extroverted narcissism
  56. Perhaps it's a communications failure by davidwr · · Score: 1

    If someone wants code that will work when honest, competent people don't try to "game" it and know where the holes are and avoid them, it can work well.

    But as soon as you ask it to do something it wasn't meant to do, such as be used by someone who doesn't know where the holes are or doesn't know how to work around them, or someone who intends to poke at the holes and exploit them, then you are no longer using the code for its original purpose.

    Think of it this way:
    Assume my car works fine and "bug free."
    Assume yours is too.
    Assume our town's roads are bug free as well.
    BUT the definition of "bug free" for a car implies that it will work as a transportation device only as long as competent, trained drivers who obey the rules of the road are driving. If I decide "hey, I'm going to see if my car can be exploited as a killing machine" then all bets are off. Likewise, if an untrained driver hops in and says "what happens if I turn the key and press the pedal on the right?" all bets are off.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    1. Re:Perhaps it's a communications failure by joelsherrill · · Score: 2

      Are you saying that the technicians who used a left arrow as a backspace on the Therac-25 were not "honest, competent people"? Bad software and hardware design can kill. See http://en.wikipedia.org/wiki/Therac-25

    2. Re:Perhaps it's a communications failure by davidwr · · Score: 1

      Obviously, the technicians who were using the device weren't properly trained to use a device which could easily kill if used without careful thought given to every keystroke.

      Seriously, your point is well taken, but when using devices like this, "competency" implies being trained to work around such "design features."

      --
      Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
    3. Re:Perhaps it's a communications failure by systemeng · · Score: 1

      The clinicians using it may have been honest and competent but the people designing it were anything but.

    4. Re:Perhaps it's a communications failure by lennier · · Score: 1

      But as soon as you ask it to do something it wasn't meant to do, such as be used by someone who doesn't know where the holes are or doesn't know how to work around them, or someone who intends to poke at the holes and exploit them, then you are no longer using the code for its original purpose.

      In the pre-Internet era, maybe.

      But today, for any piece of software running on any computer which is currently or might in future be connected to the Internet - which is, practically speaking, every computer - if any piece of code's "original purpose" doesn't include being poked at by nine billion random strangers and their botnets, then that code has no business being written.

      It's no longer good enough to assume that "good enough" is good enough. When it's on the Internet, it's either correct, or it's a catastrophic security failure waiting to happen.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    5. Re:Perhaps it's a communications failure by dbIII · · Score: 1

      if any piece of code's "original purpose" doesn't include being poked at by nine billion random strangers and their botnets, then that code has no business being written.

      As can be seen, for example, if you do a simple nmap port scan on a company network to see what is there and brick a couple of crap HP jetdirect boxes in the process. That factory reset button does not bring them back to life.
      Some current Samsung VoIP phones crash with a portscan but will at least work again after you power cycle them.

  57. Bullshit by Anonymous Coward · · Score: 0

    Software is generally of very high quality. This guy has no idea wh500 Server Error\nConnection closed by client\n

  58. May I Say a Word About Patran by florescent_beige · · Score: 2

    I have used this program my entire career. For the last 20 years (since MSC bought PDA), it has not changed apart from the odd user-generated macro getting included in. The windowing interface has had the same bugs (e.g. scroll bars that are 1 pixel high) since I was a wee lad. Half the stuff in it that isn't used regularly doesn't work, never has, never will and yet it is the standard for FEM pre/post in aerospace. Staring at this broken-ass POS year after year has filled me with ennui.

    May there be a special circle in hell just for MacNeil-Schwendler.

    Thank you. That is all.

    --
    Equine Mammals Are Considerably Smaller
  59. This is why we still use FTP, etc. by xxxJonBoyxxx · · Score: 1

    >> It's difficult if not impossible to anticipate all the situations that a software program will be faced with, especially when — as was the case for both UBS and Knight — it is interacting with other software programs that are not under your control. It's difficult to test software properly if you don't know all the use cases that it's going to have to support.

    That's why so many industries continue to use FTP (also FTPS and SFTP) to punt files over the wall when real-time response is not critical.

    File transfer is cheap, easy, and as long as at least one side hangs onto the files, reversible if someone makes a mistake. But most of all, it breaks up operational problems into two distinct parts: 1) did it transfer? 2) did it parse? From there, you can build help desk and other entry-level IT tasks to correct transient problems...and usually avoid having to hire programmers to maintain a potentially faster but more brittle tightly-coupled interface.

    1. Re:This is why we still use FTP, etc. by Anonymous Coward · · Score: 0

      You can have same benefice as "file transfert" with online transaction IF you implement a journalisation mecanism. This mecanism permit audit of transaction, permit testing by "transaction injection".

  60. Depends on what you mean by 'bad' software by Anonymous Coward · · Score: 0

    We have home-grown billing software here at MegaDyingCorporation. We've used it since the corporation was a wee little LLC and it will never go away. One of the things that is so attractive about this software is its interface.

    It is green text on a black background.
    It has no HTML-esq 3D fields to fill in.
    It runs in a browser.

    When rookie billers first see the software the thought most often expressed is "it looks so old" and then they are trained.

    It is is difficult to learn
    It has many obscure work-arounds
    It has no in-line help

    When rookies are trained there is no binder that says "do this and get that result," or "Standard billing practice requires you to do X and then Y and follow it up with Z". The rookies are trained by someone who knows precisely how to bill all of the accounts the rookie will be billing and knows that if the rookie goes off the beaten track even a little they will end up cleaning up after the rookie. Everyone trains. Everyone knows how to bill their accounts. Everyone has notes.

    It runs in an old version of java
    It cannot be updated
    IT hates it with a passion

    Accounting refuses to part with it.

    The application takes the data from the account, marries it with the time-keeping data from another app, mixes it in with the services, and stock used and allows those who have been trained to produce any sort of invoice the customer wants.

    It is hard to use like a blacksmith's hammer is hard to use. (or vi)
    It is hard to learn like some martial arts are hard to learn (or some programming languages)
    Once you learn how to use it the application has it's small flaws but those flaws are there to be used by others who want a different outcome.
    It is a horrible, ugly, difficult to learn application that has driven more than one rookie to quit.

  61. Re:Cost of geek food going up by ddd0004 · · Score: 4, Funny

    I always assumed that Taco Bell's product was consumed as a laxative, of which they produce a highly effective product.

  62. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    I believe in socialism.
    except for that guy, he's on his own...

  63. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    No. I don't want to. How do you like that?

  64. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    I see that socialized education system worked wonders for you. What's a medican, by the way?

  65. 2 Simple Solutions: by CanHasDIY · · Score: 1

    1) Ban all HFT software. Period.
    Not a bad idea anyway, IMO, since HFT software tends to give the big fish an unfair advantage over, well, everyone else.

    2) Tax the living shit out of all trades. When the day traders bitch, tell them to get off their lazy asses and contribute to society like the rest of us.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
    1. Re:2 Simple Solutions: by PRMan · · Score: 1

      Tax the living shit out of all trades. When the day traders bitch, tell them to get off their lazy asses and contribute to society like the rest of us.

      Seriously.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:2 Simple Solutions: by Anonymous Coward · · Score: 0

      Only if you agree to not speculate on the price of bread, gasoline, or overpriced electronics at best buy and get them on Amazon instead. Also since you just banned day traders and HFTs you can no longer invest in the stock market because there are no market makers. Good thing you don't make any important decisions.

  66. Re:Cost of geek food going up by Surt · · Score: 1

    I'd like everyone to have insurance too. Helps to encourage risk taking, which all the right wingers seem to think is a good thing if rich people can do it.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  67. Re:Cost of geek food going up by h4rr4r · · Score: 1

    It is called a typo you ignorant twat.
    I have actually lived in a country with socialized medicine, it was quite nice.

    Unlike you who has probably never left his trailer park.

  68. Software is not the problem, people are by devforhire · · Score: 1

    The real problem is two things. People either not understanding the quality of the tools (software) they are using, or willingness to use "good enough" software and gamble against a catastrophe. Given the financial market's track record, it's most likely more of the second. If I have no idea about how to judge the ripeness of fruit and I make a pie that makes me sick because the apples were rotten, how can I blame the apples?

    That being said, as a developer I can honestly say about 99% of the code I've seen is not Scottish. (It's CRAP!)

  69. Sometimes Bad... by hsthompson69 · · Score: 1

    ...is just good enough.

    With the understanding that the world hasn't burnt itself down to a crisp thanks to all the bad software out there, the logical next step is to figure out just how bad you can write software with it still being good enough to run the world. Save the money and spend it on something else you think is more important.

    1. Re:Sometimes Bad... by dbIII · · Score: 1

      world hasn't burnt itself down to a crisp

      Bits of it has, most spectacularly in aircraft on every continent (including Antarctica - Boeing 727 crash from autopilot problems).

  70. Re:Cost of geek food going up by luis_a_espinal · · Score: 2, Insightful

    You fools think it's going to be a dime or a dollar? The cost will never stop going up, and the quality of care will go down.

    Boy you libs are so damn predictable.

    You want 100% coverage, gee Cuba has had that for a long time now.

    "Ohh I'll gladly pay [and pay and pay and pay and pay]."

    Keep bending over suckers, the real hard part is just around the corner.

    No, it hasn't. Ever been to Cuba, where you get an aspirin for free, for everything because that's all they have?

    A better comparison is the health care systems of say, Japan, Canada or Israel... or almost any other developed country for that matter.

  71. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Like a lot of the audience, I think it's really really good if products include the price of caring for the health of those who produce them.

    They should also include the price of caring for the health of those who consume them.

    If we pay for our health care costs up front at the register it means:

    1. We can stop arguing about health insurance.
    2. People who take risks assume the full cost of those risks.

    I don't care if you smoke 2 cartons/day, you've already paid for your cancer treatments at the register.

  72. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    There are also 5800 Taco Bells in the US. This doesn't mean their food isn't shit. It just means that for the price people are willing to accept the lower quality.

    Found on another website many years ago:

    "Taco Bell...it's cheaper than food."

  73. Human being's are not very intelligent by Anonymous Coward · · Score: 0

    You have "intelligent" confused with "trainable." If people were very intelligent, they would not be baffled every time an OS or application had a major UI overhaul.

  74. Quality is also on speed of delivery. by Tei · · Score: 1

    The other day I was surprised wen talking about Debian to a friend. Debian is represented (misrepresented perhaps) as using only stable versions. This make so every new version of Debian is very rare. While other distros can live more on the cutting edge of tech and include more modern versions of all software.

    He said that this is low quality. And I suppose kind of make sense. Quality can also be a attribute of delivery. Good code now is much better than the perfect code 10 years from now and having to pay 20 million dollars. For most uses, we write and use good code, and the perfect code is beyond what everyone need.

    --

    -Woof woof woof!

    1. Re:Quality is also on speed of delivery. by Anonymous Coward · · Score: 0

      I disagree. This is really an argument against compatibility of Debian with current hardware because the kernel is old. The quality of Debian is still great, it just doesn't happen to work on a device not conceived when the OS was put together. From my perspective, this is a quality fail of the hardware vendor for not making their hardware work with software.

  75. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Their regular crust is too thick, making the pizza bready. Try thin crust w/ extra sauce, well done for an excellent pizza.

  76. The Test by SuperKendall · · Score: 1

    There aren't enough 'good' coders in the world..

      Yeah there is.

    Apparently not.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  77. True Quality is measured by real world performance by Lashat · · Score: 1

    All of the quality engineering, quality assurance, and quality control measurements should be designed to emulate the real world application of the software to the highest possible degree. Then a company must hire a compentent Quality Team in order to implement and perform the real world test cases. When it is not possible to recreate the actual real world environment due to cost or time, that risk is documented. Then management decides if it is an acceptable risk or if the money and time should be spent on creating that real world environment.

    Sadly, they don't teach Quality Engineering as a focused career skill in school. It is always a secondary concern of development. Based on my own 17 years of Quality Engineering career experience as an individual contributor and as a department manager, about 2/3 of the developers I have worked with, are horrible at quality design, etc. That other 1/3 you find are the best developers in the company.

    --
    For every benefit you receive a tax is levied. - Ralph Waldo Emerson
  78. That's not the good coder by SuperKendall · · Score: 2

    Ah yes, the mythical good coder who writes it "right" the first time.

    That's not really the work of a good coder. Anyone could get lucky, and no-one writes correct code all the time.

    A good coder though can structure code in such a way that problems do not cascade, that incoming issues are limited in scope in terms of affecting the rest of the codebase. A good coder can make a huge system where you can replace a part of it without magic or too many tears.

    Perhaps it's nothing more than the ability to think ahead a bit while coding or planning to code or pondering the data that is to be fed into a system, but from past experience there are simply many people who do not do that when coding or architecting for whatever reason.

    For the non-coders out there, they kind of guy I am talking about is the pants tailor in "The Hudsucker Proxy", who added a second layer of stitching because he liked his client...

    That's the kind of system a good coder gets you, the kind of system that lets you metaphorically hang by your pants 50 stories above the ground when things go pear shaped or your input goes wiggy.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:That's not the good coder by Anonymous Coward · · Score: 0

      Ah yes, the mythical good coder who writes it "right" the first time.

      That's not really the work of a good coder. Anyone could get lucky, and no-one writes correct code all the time.

      A good coder though can structure code in such a way that problems do not cascade, that incoming issues are limited in scope ...

      And by now the psychopathic boss is standing by your cubicle, red in his face, pounding is fist into your cubicle wall, and YELLING: DELIVER! DELIVER! I WANT DELIVERIES!! NOT BEAUTIFUL CODE!!.

      Repeat every two-three hours. That's how crappy software comes to be. Not because of incompetent programmers. (Yes, the above is a true example).

    2. Re:That's not the good coder by locofungus · · Score: 1

      A good coder though can structure code in such a way that problems do not cascade, that incoming issues are limited in scope in terms of affecting the rest of the codebase. A good coder can make a huge system where you can replace a part of it without magic or too many tears.

      I'm not sure that's really the case. However well designed the system first was, requirements changes, tight deadlines etc over 20 or more years can mean that there is coupling between systems that nobody in their right mind would have designed in from the start.

      But a good coder writes code that they *expect* to work in a *predictable* way and when it doesn't do what they expect they take the time to understand why and their fixes themselves make sense.

      Poor coders write code and then make changes until it appears to work for the test cases that they have. Even the original coder doesn't understand *why* it "works".

      Probably the greatest cost of rearchitecting a huge legacy system is finding all those weird corner cases that *nobody* has *ever* understood or known they are there but the users of the software are now utterly dependent on. Unfortunately, they're often found during user acceptance testing and result in even the new system ending up with "unpleasant" fixes that increase coupling.

      On huge legacy systems even upgrading the compiler or changing the optimization settings becomes a major project because there's countless places in the code where there is undefined behaviour that happens to work in the current compiler with the current settings.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
  79. Re:Cost of geek food going up by Master+Moose · · Score: 1

    On arriving in the US a few years ago, being someone who likes mexican food, hungry and tired after a long flight, I found my way to Taco Bell.

    I think that my travel agent should have warned me before departure, or provided some literature so that I could make an informed decision. .

    --
    . . .gone when the morning comes
  80. That is the biggest problem by SuperKendall · · Score: 1

    blame for the mess too hard to pin down to prevent recurrences by prominently displaying a few severed heads near the Tower of London.

    That is so true. Not even "git blame" can lead you to the truth of who is at fault, when the problem is not that any one person is at fault as there is simply a failure to do something in a better way.

    The problem with software is it's all to easy to get it working, but far harder to have it working a long time for any degree of shift in what must be done - and at the point something is working it's so hard to tell which variant of software you have....

    There's got to be some kind of humorous measurement of what quality software you have based on what kinds of liquor are consumed on launch day by the engineers.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  81. Stop being part of the solution. by Ryanrule · · Score: 1

    Be part of the problem.
    Consulting. Minimum $100 an hour, right after you quit the first job you got out of college.

  82. Pffft, of course it's simmetric by tlambert · · Score: 2

    Is the distribution curve simmetric?

    Why wouldn't it be measurable by the little people who live in your computer?

  83. Not an issue by SuperKendall · · Score: 1

    One company that depended on several million TCP/IP connections a day had no idea that TCP/IP data might not all arrive in one packet.

    As long as all they cared about was opening connections then it doesn't matter how much data a packet could hold... :-)

    But seriously, what you describe I'm pretty sure is common across most companies.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Not an issue by Eddy_D · · Score: 1

      One company that depended on several million TCP/IP connections a day had no idea that TCP/IP data might not all arrive in one packet.

      As long as all they cared about was opening connections then it doesn't matter how much data a packet could hold... :-)

      But seriously, what you describe I'm pretty sure is common across most companies.

      This issue could have had to do with TCP/IP stacks placing closed ports in a limbo state for ~ 60 seconds (for catching late data or FIN packets) . When you only have 64535 ports (not counting any below 1000) then having most of them in limbo is a big deal when you are cycling through millions of connections, with short connect periods, per day.

      --
      - I stole your sig.
  84. Re:Cost of geek food going up by 19thNervousBreakdown · · Score: 1

    Taco Bell is most definitely American food.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  85. Re:Cost of geek food going up by Anonymous Coward · · Score: 1

    If you should want any general class of people to be able to go see a doctor when sick, it would be people who handle your food...

  86. Re:Cost of geek food going up by Grishnakh · · Score: 1

    You think any kind of fast-food delivery pizza is even worth eating? WTF is wrong with you?

  87. we live in the era of "Ship then patch" by logicassasin · · Score: 2

    why is this news to anyone? Software is -always- shipped full of issues to meet a PM's deadline in order to say "See!!! We got it done on time!" to justify their salary and existence at the company. "Ship it now and fix it after the fact" (if at all) has been the mantra of in-house and commercial software for 20+ years.

    --
    Fifty watts per channel, baby cakes.
  88. Now observe the impossibility of measurement by SuperKendall · · Score: 1

    quality entails
    I totally agree with your list, but it also illustrates what an impossible task it is to know while building or at launch the level of quality of your software...

    Look over that list, only this time with an eye to what you can actually determine about a system while you are building it, vs. years after it has been running:

    architecture, design and implementation decisions that minimize the cost of change, that does not deteriorate with each change (or at least deteriorates linearly with each change),

    You can have software that theoretically has this property, but here you cannot really know until the real changes come along. Very often the kinds of changes that must be made in reality, were not the ones planned for...

    that exhibits strong cohesion and lose coupling,

    This you can actually tell. So there's one.

    that permits reasonable maintainability and configurability,

    This depends on who is going to maintain it and administer it.

    with relative small bug count per whatever metric one picks (FP, SLOCs, etc.)

    I disagree with this point, as another poster pointed out there is a huge difference in kinds of bugs and the degree of pain they inflict, so a mere count is never a good metric of anything.

    that is amenable for testing

    Helpful but not in the end I think much of an indicator of the final quality of the software.

    with architecture and design that are understandable (tied with #1)

    Again, the measure of success here depends on who has to understand it going forward.

    The real measure of quality in software rests on people that do not yet exist, and system changes that have not yet happened.

    Given all that, the best you can do to build quality systems is to make sure at least some of your team are seasoned and trying their best to plan ahead for unplanned issues. AND that they are listened to when they have a bad feeling about something. When a guy who has built several working systems says he doesn't like something but can't explain why, don't argue - run screaming from whatever bothered him.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  89. Re:Cost of geek food going up by HeckRuler · · Score: 1

    From top to bottom:
    That one local place which has DIVINE pizza (which is Great Plains in Ames or Alfano's in Rock Island, YMMV)
    GodFathers
    PizzaHut
    Papa Johns
    Little Ceasers
    Dominoes
    (all those thin-crust pizza joints)

  90. Re:Cost of geek food going up by 19thNervousBreakdown · · Score: 2

    I'm going to step in here as a pizza connoisseur. You are correct about how to order a Papa John's pizza (although you neglect to mention that the reason for going thin crust is more the hideous amounts of sugar they dump in their regular crust than its thickness), but it's definitely not excellent. Passable, if nobody else near you delivers and you don't feel like going out, but far from excellent.

    The sauce isn't great, their thin crust is way too crunchy (unless it's soaked in grease and falling apart like toilet paper) and about as flavorful as a wafer cracker, their regular sausage is weird-tasting rubbery balls of fat, and their cheese is as tasteless as everything else unless you get one of their blends, in which case it's actually pretty good but there's far too much of it.

    If Papa John's seems like excellent pizza to you, go to New York. Or Chicago, for a completely different but still very yummy experience. Either way, you'll find better pizza on the way there than you will at Papa John's, and I'm saying this as someone who ordered so much of it that the manager of my local store sent me a Christmas card.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  91. Re:Cost of geek food going up by Desler · · Score: 1

    So you have no real response for me other than the boogey man of 'socialism'?

  92. Re:Cost of geek food going up by Fallingcow · · Score: 5, Interesting

    Bingo.

    Single-payer, for instance, would be a bigger boon to entrepreneurship, job mobility, and (actual) small businesses than any tax cut proposal the right (or left, for that matter) has put forth. Even better, if it's done right (so, at least as well as it is in the very worst system of that sort in the industrialized world, since they all spend less than we do) it'd cut costs for everyone, including big businesses.

    Too bad that would be evil socialism, I guess.

  93. Re:Cost of geek food going up by Desler · · Score: 1

    So you pay 10+ dollars for some shitty puzza for 5 cents of garlic dipping sauce?

  94. "Just-Good-Enough" software runs the world by n7ytd · · Score: 4, Insightful

    Remember: Broken gets fixed. Shoddy lasts forever.

  95. Re:Cost of geek food going up by Desler · · Score: 1

    Get that fucking commie talk out of here! *cocks gun*

  96. Re:Cost of geek food going up by omnichad · · Score: 1

    You can buy the sauce on its own from them. The sauce complements the pizza. I like the pizza with the sauce. I don't like the pizza without the sauce. See spot run.

    And no - I usually wait until I have a 50% off coupon code because I'm cheap and I'll buy a frozen pizza before spending too much on carryout. It's comfort food, not gourmet.

  97. Not only important industries by damn_registrars · · Score: 2

    Bad software also runs unimportant websites.

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
    1. Re:Not only important industries by Anonymous Coward · · Score: 0

      Damn, man! Why you being such an asshole?

  98. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Oh right, because every slice of new york pizza is heavenly.

    As a New Yorker myself, maybe YOU should try going to New York and sampling some of it, dickcheese - MOST NY pizza is half-stale shit-tier cardboard with greasy, overcooked cheese falling off it. "Great NY Pizza" is one of the most pervasive urban legends known to man - and it's just about as common as Nessie.

    Most of it is shit, and it's just as easy to get a good pie in east bumfuck as it is in New York.

  99. If houses were built the way software is built,... by D4C5CE · · Score: 1

    ...the first woodpecker would bring down civilization.

    Weinberg's Second Law

  100. Re:Cost of geek food going up by 19thNervousBreakdown · · Score: 1

    Maybe your mistake is ordering the dickcheese pizza.

    --
    <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
  101. Re:Cost of geek food going up by Reverand+Dave · · Score: 1

    Man you don't need to go to New York or Chicago to get some top notch Pizza, you could go This place in Boise for some of the best pizza you'll ever put in your fat mouth.

    --
    I got here through a series of tubes
  102. It's a shoddy industry. I've worked in it. by MrSteveSD · · Score: 1

    I've worked in business software development for vertical markets (particular industries) for many years. It's full of incompetence both at the management level and the programming level. For example, a company will put out an RFP (Request for Proposal) for software that performs a particular task (e.g. managing customer orders in the gas industry or something) and it will consist of hundreds of pages of requirements that interested parties must fill out (does your software do X, etc).

    What tends to happen though is that nobody wants to say no to anything in case your competitors lie. So everyone ends up saying yes, and either you quickly develop the missing functionality in some hasty half-arsed fashion or late in the day you basically say "We meant yes in the sense of no". These kind of shoddy practices distressed me initially, but eventually I came to realise that the whole industry was like this. Full of crooks and incompetence. Far shoddier than anything you would encounter on the shelves of a high-street software store.

    Part of the problem is due to lack of funds, particularly in smaller companies. There often just doesn't seem to be the money to employ proper testing/quality assurance teams, so the programmers themselves end up doing those tasks. Also, due to money issues they end up employing inexperienced students instead of experienced industry professionals. The software managing your gas bills may well have been designed by someone straight from college who is still trying to learn C#/ Java etc. This is not uncommon at all.

    So yes, the software suppliers are often unprofessional crooks but so are the customers. For example, there is a legal requirement (at least in Europe) that procurement of something over a certain cost has to go open to everyone. You can't just say "we want to spend £1000,000 on a customer management system from Company X. So the customer is forced to put out an RFP even though they have no intention of buying anything from anyone other than Company X. So software companies end up completely wasting their time filling out these RFPs. It can be really time-consuming and costly. So sometimes you make a judgement call that "this customer always buys from Company X, so lets not go through the costly charade of filling out their RFP".

    It's quite a different world from that of developing Microsoft Word, or Google Docs etc. If you are in charge of software procurement at a company and you have to deal with this industry, you need to be incredibly cautious. As early as possible you need to demand to see demo installs of software to confirm that the RFP requirements are indeed met, and the companies concerned were not just lying through their teeth.

  103. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    As a resident of NYC, I can tell you that Papa John's is right up there with the most disgusting food I've ever eaten.

    Real pizza is much different. it saddens me that you can't really find decent pizza outside NYC, but life is like that. There is (or was) a pizzeria on Lawrence Expressway in Santa Clara that wasn't half bad. The owner started making pizza in NY before he moved to CA and complained that you couldn't get the same quality of ingredients outside of NY. It's sad really.

    All that said, I wouldn't care if Papa John's started giving away their pizza. It is *nasty*

  104. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    From top to bottom: That one local place which has DIVINE pizza (which is Great Plains in Ames or Alfano's in Rock Island, YMMV) GodFathers

    disgusting

    PizzaHut

    Less disgusting but still gross

    Papa Johns

    Might as well barf on a plate and eat that. Just nasty.

    Little Ceasers

    Doesn't make me want to barf. two stars for Little Caesar's

    Dominoes

    Just yuck.

    Come to NYC and go to just about *any* non-chain pizza place. It will ruin you for all of the above.

  105. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Oh right, because every slice of new york pizza is heavenly.

    As a New Yorker myself, maybe YOU should try going to New York and sampling some of it, dickcheese - MOST NY pizza is half-stale shit-tier cardboard with greasy, overcooked cheese falling off it. "Great NY Pizza" is one of the most pervasive urban legends known to man - and it's just about as common as Nessie.

    Most of it is shit, and it's just as easy to get a good pie in east bumfuck as it is in New York.

    Not sure where you live, but I know of at least seven or eight places in Manhattan (and don't even get me started on Brooklyn) that, compared to Papa John's, Dominos, etc., are little (or in the case of Koronet, not so little) pieces of heaven. Sure there are crappy pizza places in NYC. But you only end up eating one slice (or a portion thereof), then you know better.

  106. Two words: Microsoft Office. by Anonymous Coward · · Score: 0

    ...

  107. So why are they called Software Engineers by aXis100 · · Score: 3, Insightful

    I'm not trolling, it's a reality check.

    Most big software projects I've seen fail hard, like millions and 10's of wasted dollars hard. By comparison you just dont see that very often in big electrical/mechanical/civil projects, which can be equally complex (eg refineries, cruise liners etc).

    There are software developers with all sorts of fancy titles - architects, analysts, engineers - and yet they cant get the code right. Usually the root cause is inadequete requirements spec and failure to manage the customers expectations but that's no excuse, there are usually numerous poeple employed in the project process specifically to get those parts right.

    Software engineering is still playing catch up, in the sense that most developers and development companies I've seen still dont follow a formal enough process for it really to be called engineering. Usually it's a bunch of computer science graduates having a wild stab at it, and the good ones are closer to artisans than engineers.

    Until the entire software industry gets off it's high horse and admits this to itself - and more importantly admits this to the customers, we are going to continue to be dissapointed with the quality.

    1. Re:So why are they called Software Engineers by Cazov · · Score: 1

      Yes. Also the ideas of "we can just fix it in software" and "what do you mean the software isn't ready? we got the hardware in today and we're on a really tight schedule!" don't help matters any. You are right, though, the biggest problem is a lack of useful requirements, specifications, and other assorted documentation.

    2. Re:So why are they called Software Engineers by Anonymous Coward · · Score: 0

      By comparison you just dont see that very often in big electrical/mechanical/civil projects, which can be equally complex (eg refineries, cruise liners etc).

      Young grasshopper, if you haven't seen how common massive cost overruns or project failures occur in other types of engineering projects, you haven't looked very hard at all.

    3. Re:So why are they called Software Engineers by Rich0 · · Score: 1

      I'm not trolling, it's a reality check.

      Most big software projects I've seen fail hard, like millions and 10's of wasted dollars hard. By comparison you just dont see that very often in big electrical/mechanical/civil projects, which can be equally complex (eg refineries, cruise liners etc).

      It really depends on the engineering project. When you're talking about designing a cruise liner that has 50 more rooms than the last one, that might cost millions of dollars, but the complexity is more analogous to a software point release. Building the thing is like running make. Neither of these two operations tend to have massive cost overruns in the software world.

      Engineering projects have a greater tendency to be about making incremental improvements on work that has already been done, if you're even making improvements at all. The number of interacting components tends to be much smaller as well compared to software. The typical software project tends to involve things that nobody on the team has ever done in quite that way before. When you do get engineering projects like building a new manned spacecraft or fighter jet or aircraft carrier they tend to be loaded with overruns.

      Engineering also involves human beings in the construction, vs software which uses computer programs to do all the compilation. If your ship contains a wire that runs along and then just stops and doesn't connect to anything, chances are that somebody is going to report that when they're actually running the wire. It is also unlikely that the ship just dynamically "allocates" wires and other interacting parts while it is at sea.

      I don't think competence is really the fundamental problem so much as the problem is just that much more difficult.

      Software engineering is still playing catch up, in the sense that most developers and development companies I've seen still dont follow a formal enough process for it really to be called engineering. Usually it's a bunch of computer science graduates having a wild stab at it, and the good ones are closer to artisans than engineers...Until the entire software industry gets off it's high horse and admits this to itself - and more importantly admits this to the customers, we are going to continue to be dissapointed with the quality.

      People only state that they're disappointed in software quality in a vacuum. When their free smartphone app crashes they say, "man, we should have better quality software." They don't say, "man, we should have better quality software - I'd have gladly paid $100 for what was a free app." Quality costs money, and completely formalizing all aspects of software development the way they formalize space shuttle design would cost a LOT of money (and as I recall you're still much more likely to be killed by a space shuttle ride than driving a car). At work somebody was griping about having to fix a cosmetic bug from the last round of development, just after complaining about the fact that we can't make all their desired changes due to budget. Well, if the team were to increase quality to cut down on even cosmetic bugs then FAR fewer changes would be made.

      Software needs to be good enough. If my rain gutters had a slow drip somewhere along the line, chances are I wouldn't spend hundreds of dollars to have it repaired.

  108. What's new by Anonymous Coward · · Score: 0

    Yep, it's mostly bad and made bad not solely by the programmers but by the business analysts.

  109. Re:Cost of geek food going up by SillyHamster · · Score: 1

    You believe that all of those countries that spend less have better outcomes?

    A monopsony for medical care means that doctors and other medical professions get paid less for the time and effort they put in; either quality suffers, or quantity suffers. Both are reductions of the supply of medical care.

  110. Re:Cost of geek food going up by Desler · · Score: 1

    Yes. They also are very highly rated by the citizens of those countries.

  111. DEAR PROGRAMMERS OF THE WORLD: by Anonymous Coward · · Score: 0

    ...please keep producing crap software, as much as you can make.

    Personally I earn a *stack* of money every year from clients who are fed up with your paltry offerings and want to get software from someone that knows what they are doing.

    If the rest of you start doing a good job then I'm going to lose a lot of clients.

    Sincerely,

    One of the good ones.

  112. Re:Cost of geek food going up by hibiki_r · · Score: 1

    Your quantity is already suffering because doctors act like a guild. How many people that want to be a doctor in the US can't do so because they can't afford it, or can't pass entrance exams that are far more difficult than needed? Why do I need a doctor instead of a nurse for most run of the mill medical care? It's all as silly as needing a license to cut hair.

    How many unemployed doctors are out there?

    The US doesn't have either a good public system that cares about cutting costs, or anywhere near enough competition to use market forces in the customer's favor. Worst of both worlds.

  113. Re:Cost of geek food going up by Surt · · Score: 1

    That's tough because you have to figure out the inflation factor, as well as escalating treatments. If I charge you $500 / pack of cigarettes, that may not be enough to cover modern medical treatment 20 years from now when you develop the cancer. The treatments on which your fee was based may not even exist anymore, so we can't even necessarily just restrict you to the treatment you've prepaid.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  114. Re:Cost of geek food going up by Surt · · Score: 1

    Argue theory all you like, the statistics say the outcomes are better in basically every country with a socialized healthcare system. When facts and theory diverge, I prefer to stick with facts.

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  115. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    You hit the nail on the head. If a fraternity did half the hazing they make you do to become a doctor, they'd have their charter revoked and their house deeded over to the school. It's no wonder most students would rather rush the Finance fraternity. Initiation is just a simple soul signing-away, and then you get all the free beer you can drink.

  116. Re:Cost of geek food going up by CodeBuster · · Score: 1

    They also are very highly rated by the citizens of those countries.

    Have you actually lived or spent time in a country with such a system? Canada perhaps or maybe somewhere in Europe? While it's true that one can always find some satisfied patients, even in otherwise flawed systems, my impression after having spoken to many Europeans and particularly to Italians and Russians is that for most people socialized medicine results in a lower standard of care. For example, regular services may be of lesser quality or one might have to wait weeks or even months to receive them or else pay bribes to get decent service. At the high end of the spectrum, advanced or experimental treatments are generally unavailable unless one has money and even then such care often necessitates foreign travel. The United States is a common choice in these instances because the standard of care is excellent and the choices of drugs, devices and procedures are almost unlimited and highly available to those who can afford to receive them. Socialized medicine does control costs, but the standard of care often suffers as a result. What's the point of paying taxes for a socialized health system when one still has to go to the "checkbook" clinic to receive a decent standard of care in a timely fashion? I'm not arguing that the US system isn't in need of changes, but we would do well not to repeat the mistakes of Britain or Italy or any number of other socialized medical systems when considering what sorts of changes to make.

  117. Re:Cost of geek food going up by CodeBuster · · Score: 1

    It's all as silly as needing a license to cut hair.

    You will observe that in both cases, medicine and cosmetology, the practitioners lobbied for the own licensing and regulation so as to restrict entry into their respective professions. It' reasonable to have some licensing for medical care, and possibly even for cosmetology, but many qualified people choose not to enter the medical profession due to the overly restrictive licensing rules designed by the existing doctors to severely limit supply and protect the wages of existing members at the expense of consumers who bear the costs of an uncompetitive market for health care services enforced by overly restrictive government regulation.

  118. Re:Cost of geek food going up by bogjobber · · Score: 1

    Your impression is wrong. While socialized medicine does have it's own negatives, quality of care is much better in Canada and the majority of Europe. Almost universally. The facts do not support your argument.

  119. The coming complexity collapse by Sqreater · · Score: 1

    Sooner or later the complexity we create will be too great for human intelligence to deal with. And not just in software.

    --
    E Proelio Veritas.
  120. My experience is the opposite by Anonymous Coward · · Score: 0

    My back end and close-to-the-metal code is always much more solid -- and easier to write -- than UIs. I feel I'm much better at anticipating what a computer is going to do that what a user will try.

  121. Some machines shouldn't be on the 'net by davidwr · · Score: 1

    When it's on the Internet, it's either correct, or it's a catastrophic security failure waiting to happen.

    Believe it or not, there are some industrial and embedded computers out there that are by design not on the Internet and in many cases, aren't capable of being put on an IP-based internet without major software changes and possibly even hardware changes.

    Heck, most consumers own that will never be on the Internet, including some that could kill if they malfunction:

    * Until recently, "smart" thermostats weren't able to be remotely accessed, but if they malfunction they can cause a house to get very hot or very cold, possibly killing a medically fragile person.
    * Microwave ovens, which if the timer malfunctions can cook food to the point that it starts a fire.
    * Automobile computers, which until recently couldn't be remotely accessed. If these malfunction, brakes can fail or be mis-applied, engines can rev, and other potentially deadly things can happen.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  122. Knight might well been a technical issue by ZmeiGorynych · · Score: 1

    Here's a very plausible explanation:
    http://www.nanex.net/aqck2/3525.html

    1. Re:Knight might well been a technical issue by superflippy · · Score: 1

      Thanks for the link. That does explain why it took so long to shut it down.
      This is exactly why I freak out a little every time I package a new set of upgrades for a client - even if it's been QA'd, double and triple-checked, I still worry that some file is going to be out of place and blow everything up.

      --
      Your fantasies contain the seeds of important concepts.
  123. Re:Cost of geek food going up by HeckRuler · · Score: 1

    You mean like "a local place which has DIVINE pizza"?
    Wow, if only I had taken that into account on my list.
    If only I had put that at the top.
    If only someone had read my post.

    See kids, this is what thin-crust New York style does to you.

  124. Re:Cost of geek food going up by SillyHamster · · Score: 1

    So instead of doing anything to increase the supply of doctors or medical care, we'll create a new system where the we have some single payer who simply pays less.

    Econ 101: When you reduce the price paid without changing the supply curve, the market equilibrium shifts to a point on the supply curve with a lower "quantity". For medical care, quantity translates to availability and quality. You might end up with good doctors but a long waiting period, or available doctors who aren't as good. Depending on how much one values one's own health, that isn't a good tradeoff.

    Does it really take a college education to realize that single payer does nothing to actually improve medical care? It's just a way of choosing to do without.

  125. Re:Cost of geek food going up by SillyHamster · · Score: 1

    Lies, damn lies, and statistics.

    Facts are one thing. Opinions on how to interpret the facts are yet another.

    Stats don't say anything of themselves, especially when it comes to something as difficult to quantify as human health. When it comes to comparing healthcare of different countries, what stats are you comparing? What stats are left out in the comparison? Your post is data free. Good for you if you believe it, but you have provided no reason for anyone to agree with you.

  126. Re:Cost of geek food going up by SillyHamster · · Score: 1

    And ... ? Do these same citizens have experience with America's healthcare system? No baseline of comparison?

    A vegetarian may really really enjoy their veggie burger, but it doesn't mean that I'd take it over a cheeseburger. It may be tasty in its own right, and certainly better than nothing, but their preferences are not mine.

    How another country's citizens feel about their own healthcare system doesn't provide enough data to demonstrate objective superiority.

  127. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Why do you assume that if the US tried to implement socialized healthcare, it would end up like Cuba's? Why wouldn't it be similar to a nation whose healthcare system works?

    You're approaching it with the mentality of "Oh, we can't do anything Canada can do. Maybe we'll try to see if we can match Cuba instead." Do you have so little faith in the ability for Americans to do things better than Cuba?

  128. Structure is not beauty by SuperKendall · · Score: 1

    And by now the psychopathic boss is standing by your cubicle, red in his face, pounding is fist into your cubicle wall, and YELLING: DELIVER! DELIVER! I WANT DELIVERIES!! NOT BEAUTIFUL CODE!!.

    Well structured code does not have to be beautiful, it can be quick... obviously some structure suffers as a result but less than you would think.

    Unlike Test First programming which imposes a huge up-front cost leading to exactly the effect you describe, simply writing well-structured code is something that is a skill you can fit into the most absurd of schedules to make the result better.

    I have been on projects with exactly those pressures and still produced a code base that was suited for growth.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  129. Never mind corporate software... by epp_b · · Score: 1

    Forget corporate software, end-user software is just as bad. Consider something popular like ... I dunno, let's say Windows.

    You see sloppiness every day. Things like:

    # The file copy process. This remained basically the same from Windows 95 through to XP. Run into a locked or corrupt file? It kills the *entire* copy operation because of one bloody file, even if you were in the process of copying a thousand files. One uncopyable file doesn't mean all the files are the same way, this is just extremely lazy programming. Windows 7 has finally improved things a bit, but it still doesn't compare to far more usable replacements like TeraCopy (seriously, try it out, you will never go back).

    # The command window. You are stuck with a very low maximum width. Why? Why can't I resize it to full-screen? Again, lazy programming.

    # UI elements hanging on background processes. Open a network share, attach a USB drive, insert a CD, and what happens? Everything grinds to a halt, because the UI is waiting for something to load. Worse, it doesn't even provide any indication, it just locks up and you have to sit there and wait for whatever's holding up to finish. Lazy programming and lacking foresight.

    # Internet Explorer, enough said (yes, IE9 is still crap)

    I could go on, but I don't have all day.

  130. Funny, I complained about this today... by Anonymous Coward · · Score: 0

    And have not yet read this email! Though generally speaking I do not complain about it, I SUFFER IT. My search capacity in my own computer has decreased steadily from Win98 to this one. I can barely find anything now. I even feel like MS is like mimicking what I do while waiting for a team of programmers to advance it further... But anyway, compared to any other Human product, software manufature is still **on the making** and the least understood of all productive activities, though you have many experts who know why you are not as good as you think and what are your errors and how EXACTLY must be done, right?

  131. Re:Cost of geek food going up by robsku · · Score: 1

    No, it hasn't. Ever been to Cuba, where you get an aspirin for free, for everything because that's all they have?

    I call bullshit...

    A better comparison is the health care systems of say, Japan, Canada or Israel... or almost any other developed country for that matter.

    ...there is a point to comparison with Cuba here - and it's something you dislike so much you had to resort into lying: you could never accept that a socialist country has done something better than you do in USA.

    Anyway, I know the man is a populist, but still the documentary film Sicko is quite worth watching - it has a part where they get "aspirin" from Cuba too ;)

    --
    In capitalist USA corporations control the government.
  132. Re:Cost of geek food going up by robsku · · Score: 1

    You go ask someone living in one of the "nordic welfare states" - someone like, umm, me... ah yes, I live in Finland - and we have socialized health care. Watching the documentary film Sicko really makes me sick, in a way that even our health care system can't help :(

    --
    In capitalist USA corporations control the government.
  133. Re:Cost of geek food going up by robsku · · Score: 1

    Yanks should try and have a pizza in Italy - and no, 4rth generation Italian-American stereotype doesn't make it an Italian pizza.

    But I don't know if you people would actually even like it - I kinda have an image of Americans loving their pizzas which would be shunned by Italians and maybe Yanks would not even recognize the Italian ones as good pizzas... but then, this is just my imagination... And I'm Finnish, but I've been to Italy and my papa was also big on Italian cuisine so I've had quite Italian pizzas at age of 3 at rent apartment in Finland...

    --
    In capitalist USA corporations control the government.
  134. Re:Cost of geek food going up by robsku · · Score: 1

    As Finnish citizen, I confirm this.

    --
    In capitalist USA corporations control the government.
  135. Re:Cost of geek food going up by CodeBuster · · Score: 1

    By who's measure? The people to whom I've spoken all complained about nearly every aspect of their experience from the time spent waiting, to the way the doctor set their broken arm, to the cleanliness of the facilities, you name it. I suppose that it's possible that I just happened to meet only those few people who had bad experiences, but I doubt it. The bottom line was that people were dissatisfied with the care that they received. They thought that it could have been much better had they gone instead to the private clinic and paid out of pocket. Now, the doctors might say that the care was good if the arm healed and didn't get infected along the way, but that doesn't take into account the patients' experience. Who gets to decide whether or not the care was "good quality"? It would seem that the one who pays the bill decides that. In a country that mandates socialized medicine, they probably don't care if you thought the doctor was a butcher as long as you recovered, but would you chose to go back to that same doctor again if you were paying the bill yourself? I'd think not.

  136. Re:Cost of geek food going up by robsku · · Score: 1

    Single payer?

    In Finland we have free/cheap (you get billed, but if you are unemployed the social security system covers your public health care costs and your medicine) socialized health care system - and we have a well doing private sector as well, with healthy competition. It's a very healthy system.

    --
    In capitalist USA corporations control the government.
  137. Re:Cost of geek food going up by bogjobber · · Score: 1

    By literally any metric you care to use, other first world countries have far superior health care. And they spend much less to get that health care.

    Surveys consistently show that people in countries with socialized health care are much more satisfied with the quality of their medical care. Patient outcomes are better. Hospital stays are fewer, and for a shorter duration. Life expectancies are higher. Infant mortality is lower. Preventable diseases like diabetes are lower.

    You also seem to be making the assumption that because we have a market-based health care system that those same poor anecdotal experiences don't hapeen. My grandmother once passed kidney stones in the emergency room of a hospital because she was waiting there for 6 hours. A close friend of mine cut finger off slamming it in a car door, and the surgery was completely botched leaving her with a significant amount of pain. These things happen happen all the time in the US.

    The idea that a market based health care system is superior is laughable. If it was superior, we would be healthier!

  138. Re:Cost of geek food going up by SillyHamster · · Score: 1

    In the context of this discussion, an earlier post claimed single payer would fix all of the ills of America's health system.

    It's bullshit, because all single payer does is create a monopsony and reduce the amount of medical care bought. It'll be cheaper, but it won't be better.

    A policy that encourages an increase in the supply of medical care is the only type of policy that can claim to reduce prices *and* improve quality of care. (ex: Encourage training of more doctors/nurses -> higher supply of medical personnel to meet demand for their services)

    All I want here is for people to understand the cause and effect they're playing with. If you're happy with your country's healthcare system, great. You'd be just as annoyed as I am when people talk about how to improve it while showing ignorance of how it actually works.

  139. Re:Cost of geek food going up by Surt · · Score: 1
    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  140. it ain't rocket science by gzuckier · · Score: 1

    1) It's like the old adage; fast. cheap, or good; pick two. If you're lucky. If not you get only one. Or zero.
    2) Unlike other engineering disciplines where you have to pass a licensing exam, in "software engineering" there aren't established standards equivalent to the crush strength of asphalt or the melting point of tungsten which you have to at least know exist and can be looked up in order to be accepted as a real engineer in the chemical, mechanical, aeronautical, hydraulic, automotive, or whatever other real engineering sense. I wouldn't let a high school kid who taught himself mechanical engineering in his spare time design me a roller coaster; i know quite a few folks who should know better who had their cousin in high school who "taught himself computers in his spare time" design for them a billing system or inventory system or something of that ilk.
    3) writing code is more like writing music. and there are general concepts which help you write good code just like there are general concepts that help you write good music. but writing a VBA macro for excel is a far cry from designing a pentode audio amp, to pick two tasks of approximately equal degree of difficulty, for those who are marginally facile in the relevant disciplines; like having a single course under the belt.

    --
    Star Trek transporters are just 3d printers.
  141. Re:Cost of geek food going up by volmtech · · Score: 1

    You can not have successful single payer unless you also have single provider. Multi-million medicare frauds are common with quarter billion frauds not unheard of. Single payer will be twenty times bigger than that. Government will have to employ all doctors and nurses as civil servants and all medical devices supplied by government contractors. Imagine the VA for everyone.

  142. Re:Cost of geek food going up by CodeBuster · · Score: 1

    Are there no allowances to be made for different lifestyle and cultural choices, independent of what sort of health care system exists? For example, we Americans eat lots of red meat, high fructose corn syrup and trans fats or at least some of us do because approximately 2/3 of all US adults are now overweight with a substantial percentage of those being obese. No matter what the quality of health care system, those independent choices are going to worsen American health outcomes as compared to say Japan or other nations where highly refined carbohydrates and meat are less available. Thus, It's a mistake, in my estimation, to attribute longer lifespans or better health outcomes solely to the health care system because it tends to make the American system look worse than it actually is while at the same time making others look better than they really are. These factors are known to be difficult to control for when making comparisons to other health care systems.

    BTW: many Americans are well aware of the problems in the average emergency room. In fact, it's often better, if you have a choice, to arrange for treatment at a private clinic or even an urgent care facility instead. Their wait times tend to be much shorter, because they only admit paying patients, and for the price of a few hundred dollars cash or credit you can have your broken bones set, bullet fragments removed, wounds stitched and even receive minor surgeries. If you still require more extensive treatment, they can send you on to the hospital afterwards, but without being admitted through the emergency room which again lowers overall costs. Good care at reasonable prices can be found here in the US, provided that one knows where to look and how to ask.

  143. Re:Cost of geek food going up by robsku · · Score: 1

    Well, I can see no reason to disagree with what you are saying on this post, so at least that far we can fully agree :)

    --
    In capitalist USA corporations control the government.
  144. Re:Cost of geek food going up by bogjobber · · Score: 1

    To a certain extent, yes, there are differences in culture that are independent of the health care system. Preventable disease like diabetes and heart disease are largely dependent upon lifestyle choices like diet and exercise.

    But a lot of that difference can also be attributed to the way the health care system in the US is run. It is not a holistic system. Because health care is so expensive, most people only go to the doctor when they are very ill. On top of that, most private medical insurance does not cover much in the way of routine checkups or consultations with nutritionists/dietitians/etc, therefore the majority of people do not have access to those services without paying a hefty fee. If people had free and easy access to those services, many would make different choices regarding their diet and overall health.

    A lot of the other metrics like patient outcomes, duration of hospital stays, infant mortality and the like I think are completely valid metrics to directly compare two countries' health care systems.

    And I remain unconvinced that the private health care system actually results in increased choice and competition most of the time. My private insurance charges drastically different rates for in-network and out-of-network care. We have two different major hospital systems in my city. One is in-network and the other out-of-network. If I were injured and needed to go to the hospital, I wouldn't choose the hospital that is closest or the one that provides the best service. I would choose the hospital that was in my network because that's what my insurance covers. I'm not making that decision, some bean counter in my insurance company is making that decision for me. And there are many, many places around the country where there is only one hospital or one hospital system available.

  145. Re:Cost of geek food going up by Anonymous Coward · · Score: 0

    Yes and no. NYC is full of shitty pizza places, but there are also some exceptional ones. You really have to know where to go. Hint: not one of the 9000 Ray's clones.

    Contrast this with the Midwest, outside of Chicago you're lucky to do better than Dominos.