Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Bad Software Runs the World

Soulskill posted more than 2 years ago | from the and-runs-it-badly dept.

Software 349

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

Sorry! There are no comments related to the filter you selected.

Numbers don't lie (5, Funny)

Anonymous Coward | more than 2 years ago | (#40921365)

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

Re:Numbers don't lie (4, Insightful)

K. S. Kyosuke (729550) | more than 2 years ago | (#40921437)

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

Re:Numbers don't lie (1, Informative)

omnichad (1198475) | more than 2 years ago | (#40921601)

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

Re:Numbers don't lie (1)

omnichad (1198475) | more than 2 years ago | (#40921621)

Wait, no, scratch that.

Re:Numbers don't lie (0)

Anonymous Coward | more than 2 years ago | (#40921691)

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

Exactly.

Re:Numbers don't lie (1)

Anonymous Coward | more than 2 years ago | (#40921737)

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

Re:Numbers don't lie (0)

Anonymous Coward | more than 2 years ago | (#40921461)

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.

Re:Numbers don't lie (0)

Anonymous Coward | more than 2 years ago | (#40921467)

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

FTFY.

Hey now! (2)

killmenow (184444) | more than 2 years ago | (#40921503)

That's just mean!

Re:Numbers don't lie (4, Insightful)

pympdaddyc (586298) | more than 2 years ago | (#40921513)

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.

Re:Numbers don't lie (1, Insightful)

bluefoxlucid (723572) | more than 2 years ago | (#40921875)

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

Re:Numbers don't lie (1)

Sperbels (1008585) | more than 2 years ago | (#40921539)

Is there a real definition for quality?

Re:Numbers don't lie (2)

gorzek (647352) | more than 2 years ago | (#40921865)

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.

Re:Numbers don't lie (2)

istartedi (132515) | more than 2 years ago | (#40921567)

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

Re:Numbers don't lie (1)

slartibartfastatp (613727) | more than 2 years ago | (#40921653)

Is the distribution curve simmetric?

A Wise Man Once Asked (2)

Anonymous Coward | more than 2 years ago | (#40921375)

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

Knight's problem wasn't the software (1)

Anonymous Coward | more than 2 years ago | (#40921377)

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.

You get what you pay for (0)

Anonymous Coward | more than 2 years ago | (#40921389)

It's as simple as that.

Re:You get what you pay for (0)

Anonymous Coward | more than 2 years ago | (#40921675)

Yeah, serves them right for using Free Software.

Cost of geek food going up (-1)

Anonymous Coward | more than 2 years ago | (#40921407)

Thanks to your hero Obama

http://washington.cbslocal.com/2012/08/08/papa-johns-founder-to-raise-price-of-pizza-due-to-obamacare/

How do you like that you looters?

Re:Cost of geek food going up (0, Offtopic)

Moheeheeko (1682914) | more than 2 years ago | (#40921441)

Not a single fuck was given that day.

Papa John's is shit-tier pizza anyway.

Re:Cost of geek food going up (1)

omnichad (1198475) | more than 2 years ago | (#40921651)

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?

Re:Cost of geek food going up (1)

dyingtolive (1393037) | more than 2 years ago | (#40921657)

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

Re:Cost of geek food going up (0)

Anonymous Coward | more than 2 years ago | (#40921751)

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.

Re:Cost of geek food going up (0)

Anonymous Coward | more than 2 years ago | (#40921817)

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.

Re:Cost of geek food going up (0)

Anonymous Coward | more than 2 years ago | (#40921925)

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

Re:Cost of geek food going up (1)

Desler (1608317) | more than 2 years ago | (#40921823)

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.

Re:Cost of geek food going up (1)

Moheeheeko (1682914) | more than 2 years ago | (#40921903)

Not posting AC like a spineless bitch for starters.

Re:Cost of geek food going up (1, Insightful)

Anonymous Coward | more than 2 years ago | (#40921463)

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

Re:Cost of geek food going up (1)

dainbug (678555) | more than 2 years ago | (#40921565)

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?

Re:Cost of geek food going up (-1)

Anonymous Coward | more than 2 years ago | (#40921719)

WARNING: We've got a socialist fagget here. Mod parent down. Everyman for himself. If you don't believe in that, you don't believe in America.

I hate muzzies.

I wish G. W. Bush were still in office. The best 8 years this country has ever seen.

Re:Cost of geek food going up (2)

h4rr4r (612664) | more than 2 years ago | (#40921579)

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.

Re:Cost of geek food going up (-1)

Anonymous Coward | more than 2 years ago | (#40921617)

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.

Re:Cost of geek food going up (0)

Anonymous Coward | more than 2 years ago | (#40921731)

[Citation needed]

Re:Cost of geek food going up (-1)

Anonymous Coward | more than 2 years ago | (#40921761)

The problem with ignorant folks like you is that you don't know you are ignorant, so you think you have the ability to argue with people who are informed. You also state things without backing them up at all, as if they are well known facts. e.g. " The cost will never stop going up, and the quality of care will go down." But keep hiding behind anonymity it really helps your arguments.

Re:Cost of geek food going up (0)

Anonymous Coward | more than 2 years ago | (#40921863)

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

Re:Cost of geek food going up (2)

h4rr4r (612664) | more than 2 years ago | (#40921941)

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

Many of them have fine medican care.

Re:Cost of geek food going up (1)

Desler (1608317) | more than 2 years ago | (#40921667)

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

Re:Cost of geek food going up (1)

dcsmith (137996) | more than 2 years ago | (#40921915)

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?

Re:Cost of geek food going up (2)

Desler (1608317) | more than 2 years ago | (#40921935)

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

Re:Cost of geek food going up (2)

Surt (22457) | more than 2 years ago | (#40921685)

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.

Re:Cost of geek food going up (0)

Desler (1608317) | more than 2 years ago | (#40921745)

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

Re:Cost of geek food going up (0)

Anonymous Coward | more than 2 years ago | (#40921793)

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.

Re:Cost of geek food going up (1)

Desler (1608317) | more than 2 years ago | (#40921837)

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

Obamacare puts up the price of pizzas? (-1)

Anonymous Coward | more than 2 years ago | (#40921715)

Someone must figure that analogy is as complicated as the average Republican RedNeck can understand. Unfortunatly Shelley the Republican [archive.org] is no longer with us :)

Yeah, but how do you measure 'Quality' (1)

Anonymous Coward | more than 2 years ago | (#40921413)

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

Re:Yeah, but how do you measure 'Quality' (2)

SirGeek (120712) | more than 2 years ago | (#40921477)

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

Re:Yeah, but how do you measure 'Quality' (2)

Reasonable Facsimile (2478544) | more than 2 years ago | (#40921575)

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.

Re:Yeah, but how do you measure 'Quality' (3, Insightful)

Sperbels (1008585) | more than 2 years ago | (#40921595)

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

Re:Yeah, but how do you measure 'Quality' (2)

davidwr (791652) | more than 2 years ago | (#40921901)

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.

Re:Yeah, but how do you measure 'Quality' (1)

turbidostato (878842) | more than 2 years ago | (#40921769)

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

Re:Yeah, but how do you measure 'Quality' (0)

Anonymous Coward | more than 2 years ago | (#40921917)

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

Re:Yeah, but how do you measure 'Quality' (5, Interesting)

NeutronCowboy (896098) | more than 2 years ago | (#40921799)

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.

Re:Yeah, but how do you measure 'Quality' (2, Funny)

Local ID10T (790134) | more than 2 years ago | (#40921893)

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

Oh. I see. Nevermind

Nothing New (4, Insightful)

Herkum01 (592704) | more than 2 years ago | (#40921415)

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.

Fixed (5, Insightful)

SuperKendall (25149) | more than 2 years ago | (#40921453)

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.

Re:Nothing New (1)

florescent_beige (608235) | more than 2 years ago | (#40921919)

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.

The old adage (5, Insightful)

killmenow (184444) | more than 2 years ago | (#40921419)

Good, Fast, Cheap...Pick Two.

Re:The old adage (4, Insightful)

dkleinsc (563838) | more than 2 years ago | (#40921445)

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.

Re:The old adage (1)

AliasMarlowe (1042386) | more than 2 years ago | (#40921493)

Good, Fast, Cheap...Pick Two.

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

Re:The old adage (0)

Anonymous Coward | more than 2 years ago | (#40921703)

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

Re:The old adage (0)

Anonymous Coward | more than 2 years ago | (#40921777)

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.

Unavoidable: Human Nature (1)

Anonymous Coward | more than 2 years ago | (#40921421)

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.

hmmm (0)

Anonymous Coward | more than 2 years ago | (#40921423)

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.

Re:hmmm (1)

SirGeek (120712) | more than 2 years ago | (#40921521)

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

It's called job security... (2)

IflyRC (956454) | more than 2 years ago | (#40921425)

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.

It's a big world (5, Insightful)

MozeeToby (1163751) | more than 2 years ago | (#40921439)

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.

Re:It's a big world (0)

Anonymous Coward | more than 2 years ago | (#40921499)

I believe you mean jury rigged, not jerry rigged.

Re:It's a big world (1)

dyingtolive (1393037) | more than 2 years ago | (#40921551)

Maybe it was done by Nazis?

Re:It's a big world (0)

Anonymous Coward | more than 2 years ago | (#40921583)

No

Re:It's a big world (1)

Surt (22457) | more than 2 years ago | (#40921709)

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

Re:It's a big world (0)

Anonymous Coward | more than 2 years ago | (#40921791)

You should read the thing you post before posting it.

Re:It's a big world (0)

Anonymous Coward | more than 2 years ago | (#40921781)

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

Re:It's a big world (0)

Anonymous Coward | more than 2 years ago | (#40921921)

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

Re:It's a big world (1)

SirGeek (120712) | more than 2 years ago | (#40921541)

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 ?

Re:It's a big world (1)

Sperbels (1008585) | more than 2 years ago | (#40921639)

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.

Re:It's a big world (1)

Sperbels (1008585) | more than 2 years ago | (#40921697)

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

Re:It's a big world (1)

mooingyak (720677) | more than 2 years ago | (#40921825)

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.

That (0)

Anonymous Coward | more than 2 years ago | (#40921507)

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

User-facing software is well-polished? (2)

dgharmon (2564621) | more than 2 years ago | (#40921531)

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

I've worked at investment banks since '93 (5, Interesting)

bobs_lounge (2703799) | more than 2 years ago | (#40921555)

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

Re:I've worked at investment banks since '93 (1)

davidwr (791652) | more than 2 years ago | (#40921883)

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

Both directly affect the bottom line.

It isn't cost effective to build good software (3, Informative)

neves (324086) | more than 2 years ago | (#40921561)

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.

Missing requirement for quality (1)

t'mbert (301531) | more than 2 years ago | (#40921573)

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

What I Saw at First (1)

carrier lost (222597) | more than 2 years ago | (#40921577)

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

I disagree (1)

bhcompy (1877290) | more than 2 years ago | (#40921585)

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.

Bull turds! (1)

QuietLagoon (813062) | more than 2 years ago | (#40921599)

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

Why bother? Even God has bugs (0)

Anonymous Coward | more than 2 years ago | (#40921619)

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

He was a founder at Guidewire (1)

Surt (22457) | more than 2 years ago | (#40921635)

http://jameskwak.net/about/ [jameskwak.net]

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

AI (1)

Nullifier (911937) | more than 2 years ago | (#40921671)

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.

Indeed (5, Funny)

Ancient_Hacker (751168) | more than 2 years ago | (#40921743)

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.

Wrong... (0)

Anonymous Coward | more than 2 years ago | (#40921757)

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.

Writing good software is hard. (2)

RabidReindeer (2625839) | more than 2 years ago | (#40921765)

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

Because we all know (1)

Stirling Newberry (848268) | more than 2 years ago | (#40921801)

That Lawyers and bloggers know about bad software.

Engineers don't make the buying decisions. (3)

gestalt_n_pepper (991155) | more than 2 years ago | (#40921803)

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.

Productivity == SLOC (1)

jcadam (964044) | more than 2 years ago | (#40921811)

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

What does 'good software' mean? (1)

parkinglot777 (2563877) | more than 2 years ago | (#40921815)

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.

On time and "okay" is better than too late (1)

davidwr (791652) | more than 2 years ago | (#40921849)

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

More than just implementation flaws (1)

bouldin (828821) | more than 2 years ago | (#40921899)

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.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?