We shouldn't let people get used to the idea that software fails


  • area_can

    If you asked a member of the general population in the 90s or early 2000s about computers and the internet, I bet most of them would sound optimistic. That’s what everyone is talking about, right? Soon, we will do everything with computers! Computers are super smart!

    While this is anecdotal evidence, today most of the people I know are frustrated with technology. Apps are buggy, the web is filled with ads and intrusive useless notifications (would you like some cookies?), touch screens everywhere suddenly made simple things like washing machines and car control panels barely usable.

    We just got used to that. Electronics is something that’s wonky and buggy. That’s what we expect.

    And this is scary.


  • area_can

    Electronics is something that’s wonky and buggy. That’s what we expect.

    I am in full agreement. In my opinion, computers right now enable people to do lots of stuff but are so complicated that it's not possible to get it right. I guess it's kind of depressing.

    But it's not like it's a complete loss — people are able to talk, chat, share things and experiences (digital and physical) and bring joy to each other over massive distances thanks to computers. /shrug


  • area_can

    @bb36e said in We shouldn't let people get used to the idea that software fails:

    and bring joy and racism and hate to each other over massive distances

    FTFI



  • @bb36e quoted:

    touch screens everywhere suddenly made simple things like washing machines and car control panels barely usable.

    The only reason I can think of for actually having this is to follow the popular "futuristic" TV shows and movies (starting back with the Jetsons and Star Trek and continuing on to nearly every sci-fi in existence) that depict that sort of thing as "advanced technology."

    The thing is, unless it's specifically demonstrating a dystopia, nothing in those shows breaks. That is what I think advanced technology should look like.


  • And then the murders began.

    @djls45 said in We shouldn't let people get used to the idea that software fails:

    The thing is, unless it's specifically demonstrating a dystopia, nothing in those shows breaks. That is what I think advanced technology should look like.

    "The Ultimate Computer", "The Changeling", Star Trek: The Motion Picture, and Star Trek V: The Final Frontier would beg to differ.


  • Banned

    @bb36e the main problem is that making shitty software is way cheaper than making quality software, and sells just as well. Until we get government-mandated standards of software quality like other industries, it's never going to change. Either that, or we all unionize and come up with standards ourselves, and refuse to release broken software. But good luck with that.



  • @unperverted-vixen Ah, but those are special exceptions necessary for the plot. The rest of the "standard" technology in the future Just Works™.



  • @djls45 said in We shouldn't let people get used to the idea that software fails:

    @unperverted-vixen Ah, but those are special exceptions necessary for the plot. The rest of the "standard" technology in the future Just Works™.

    I'm looking through my Steam library and I can't find any games about futuristic technology that always works for some reason.


  • And then the murders began.

    @djls45 True, but you didn't mention plot purposes as a valid exception, just demonstrating a dystopia. :pendant:

    (Also, The Final Frontier's tech difficulties weren't related to the plot.)




  • And then the murders began.

    @ben_lubar said in We shouldn't let people get used to the idea that software fails:

    I'm looking through my Steam library and I can't find any games about futuristic technology that always works for some reason.

    Mass Effect. (Not the sequels, but pretty sure the original fits.)

    Unreal Tournament and sequels. Quake II and IV, I think.

    StarCraft and sequel.




  • Considered Harmful

    @bb36e The problem I see here is that the wrong people are used to software failing. If you mean consumers, I agree that they should not be used to it. If you mean developers, it seems they have yet to fully accept the implications and test their software.



  • @unperverted-vixen said in We shouldn't let people get used to the idea that software fails:

    "The Ultimate Computer",

    Remember it broke BECAUSE he trained the computer to think like a lousy horribly human. If he'd kept the original programming, it would have worked fine.

    @unperverted-vixen said in We shouldn't let people get used to the idea that software fails:

    Star Trek V: The Final Frontier

    Huh? Spock's brother hypnotized people. There wasn't any new advanced technology in this movie that hadn't been in like 50 other Star Trek movies and episodes.

    Or... you mean the rocket boots? It had rocket boots.



  • @ben_lubar said in We shouldn't let people get used to the idea that software fails:

    I'm looking through my Steam library and I can't find any games about futuristic technology that always works for some reason.

    All the technology in Prey works fine.



  • @ben_lubar did you try to prove a point about tech is crap? If so, I couldn't hear it, but I can clearly see it.0_1531380622577_wp_ss_20180712_0001 (2).png


  • Fake News

    @blakeyrat said in We shouldn't let people get used to the idea that software fails:

    @ben_lubar said in We shouldn't let people get used to the idea that software fails:

    I'm looking through my Steam library and I can't find any games about futuristic technology that always works for some reason.

    All the technology in Prey works fine.

    The reboot from 2017?


  • Considered Harmful

    @ben_lubar said in We shouldn't let people get used to the idea that software fails:

    @djls45 said in We shouldn't let people get used to the idea that software fails:

    nothing in those shows breaks

    You have been asleep for NINE NINE NINE NINE NINE



  • @djls45 said in We shouldn't let people get used to the idea that software fails:

    The thing is, unless it's specifically demonstrating a dystopia, nothing in those shows breaks. That is what I think advanced technology should look like.

    Probably because it makes for fairly boring TV if the primary storyline of an episode of ST:TNG consisted of Jordi LaForge trying to get Windows Enterprise Edition 2365 out of a BSOD so they can get the ship moving again.

    Stuff on TV shows breaks when the story calls for it, and works just fine otherwise. It would be better to live in a TV show, I suppose.


  • BINNED

    @gąska said in We shouldn't let people get used to the idea that software fails:

    @bb36e the main problem is that making shitty software is way cheaper than making quality software, and sells just as well. Until we get government-mandated standards of software quality like other industries, it's never going to change. Either that, or we all unionize and come up with standards ourselves, and refuse to release broken software. But good luck with that.

    The problem is that right now in our age of cheap toy products that get replaced after maybe two years, it probably makes economical sense to release them broken. There is just a case of diminishing returns for fixing your software. And making actually bug free, perfect software is impossibly expensive. You wouldn't be able to afford all these gimmicks, or they wouldn't be made in the first place. Instead, you get buggy shit and complain about it, but it might be better than getting nothing.
    Of course, there's a balance somewhere, and it'd probably advantageous if some reasonable standard of "shit doesn't break when you look at it :sideways_owl:" were mandated.

    Now, if we ever find a way to make provably correct software as cheap as outsourced crap, things would be different. Or if in the far distant future the pace of technological change settles down, the economics might change and it might be worth to go and make all the software work, because then it'd be a far more long term investment.


  • Considered Harmful

    This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software, or the use or other dealings in the software.

    Remind me why this is legal.


  • BINNED

    @pie_flavor It would suck if you couldn't do this for free software.
    I can publicly release my code for free, for example with the intent to teach, without having to worry that someone uses this in a nuclear plant and my stupid bug now screws me legally.

    Without this disclaimer, there would be no free software.

    Now, for things that you pay for, I don't think you should be able to disclaim all warranty. The user should at least be able to get his money back if your product is entirely unusable.


  • Considered Harmful

    @topspin You should be able to declare that your product is not fit for public consumption, and therefore you're free of liability. But anything you release with the intent that other people use it, you should be liable for what it does. If I release my free software that deletes system32, what then?


  • Discourse touched me in a no-no place

    @topspin said in We shouldn't let people get used to the idea that software fails:

    making actually bug free, perfect software is impossibly expensive

    We can do it when we need to. Which is usually when a software developer and their managers all go to jail if things are wrong, so it's usually just in the really safety critical systems like avionics and railway signalling and stuff like that. There are whole toolchains devoted to supporting those use cases, but they tend to look nothing like what most programmers are used to as they're much more about producing proofs of correctness (which in turn means you need a strong definition of “correct” to star out with, which is the real usual problem for most software).


  • BINNED

    @dkf Yes, and how many orders of magnitude more expensive is the quality code they produce compared to bug-ridden shit?



  • @gąska said in We shouldn't let people get used to the idea that software fails:

    @bb36e the main problem is that making shitty software is way cheaper than making quality software, and sells just as well. Until we get government-mandated standards of software quality like other industries, it's never going to change. Either that, or we all unionize and come up with standards ourselves, and refuse to release broken software. But good luck with that.

    As a computer user, I prefer it to continue cheap.


  • Discourse touched me in a no-no place

    @pie_flavor said in We shouldn't let people get used to the idea that software fails:

    Remind me why this is legal.

    It effectively states that it is not the authors of this particular piece of software that warrant that it will work in a safety-critical use, but rather the engineer in charge of that project who certifies that it will be fine. That in turn means that they've either got to decide that the software in the way used in that project is fine, or they need to decide to not use that software. A library that has, e.g., a memory leak would be bad, but it's actually OK if either the code in the library that has the leak is never called, or if mitigation strategies are in place to ensure that the leak never causes a problem (such as determining that the leak would take a week to run out of memory on the deployment hardware and instead mandating that the software be restarted daily instead).

    Why yes, I do know people who do actual safety-critical work…


  • Discourse touched me in a no-no place

    @topspin said in We shouldn't let people get used to the idea that software fails:

    how many orders of magnitude more expensive is the quality code they produce compared to bug-ridden shit?

    It's quite a lot cheaper than starting with bug-ridden shit and testing it thoroughly enough (and fixing the failures) that you can be sure there's no remaining bugs. It's quite a lot more expensive than shipping the first version that compiles without catastrophic errors. ;)


  • Banned

    @sockpuppet7 said in We shouldn't let people get used to the idea that software fails:

    @gąska said in We shouldn't let people get used to the idea that software fails:

    @bb36e the main problem is that making shitty software is way cheaper than making quality software, and sells just as well. Until we get government-mandated standards of software quality like other industries, it's never going to change. Either that, or we all unionize and come up with standards ourselves, and refuse to release broken software. But good luck with that.

    As a computer user, I prefer it to continue cheap.

    As an educated person, you should know that price of software has jack shit to do with cost of software.


  • Banned

    @topspin said in We shouldn't let people get used to the idea that software fails:

    @gąska said in We shouldn't let people get used to the idea that software fails:

    @bb36e the main problem is that making shitty software is way cheaper than making quality software, and sells just as well. Until we get government-mandated standards of software quality like other industries, it's never going to change. Either that, or we all unionize and come up with standards ourselves, and refuse to release broken software. But good luck with that.

    The problem is that right now in our age of cheap toy products that get replaced after maybe two years, it probably makes economical sense to release them broken.

    Even with expensive toys, it makes economical sense to release them broken. Even with items that are meant to last 20 years, it makes economical sense to release them broken. As long as there's no downside of releasing broken software (and there IS no downside to release broken consumer-grade software), releasing broken software makes economical sense.

    And making actually bug free, perfect software is impossibly expensive.

    But making software that's reasonably bug-free and adequately tested is at most one order of magnitude more expensive than shitting all over quality. And when coupled with overall high quality of codebase, this cost is mostly (though not fully) offset by reduced maintenance costs.

    Now, if we ever find a way to make provably correct software as cheap as outsourced crap, things would be different.

    There's a whole spectrum of possibilities between provably correct software and outsourced crap. One very good, fairly inexpensive method is thorough unit testing. We get majority of developers do that, and the quality of software will improve greatly all around. It won't help with stupid "visionary" executives thinking touch panels are the shit and should be put everywhere, but it will help with those touch panels rebooting suddenly.



  • @gąska said in We shouldn't let people get used to the idea that software fails:

    As an educated person, you should know that price of software has jack shit to do with cost of software.

    That is only true for monopolies and oligopolies. Most projects I worked had the price for the customer tightly correlated with estimated cost. You charge too much and the customer will order his software developed by someone else.




  • Considered Harmful

    @ben_lubar I don't remember most of that. Wheatley must have been blithering over it.



  • @pie_flavor said in We shouldn't let people get used to the idea that software fails:

    @ben_lubar I don't remember most of that. Wheatley must have been blithering over it.

    Wheatley's line before the door opens never plays all the way through, but the caption has the whole thing.


  • And then the murders began.

    @blakeyrat said in We shouldn't let people get used to the idea that software fails:

    @unperverted-vixen said in We shouldn't let people get used to the idea that software fails:

    Star Trek V: The Final Frontier

    Huh? Spock's brother hypnotized people. There wasn't any new advanced technology in this movie that hadn't been in like 50 other Star Trek movies and episodes.

    Or... you mean the rocket boots? It had rocket boots.

    I was referring to the fact that their brand new ship was falling apart.


  • Banned

    @sockpuppet7 well, yeah, it works kinda differently for business customers. When you said "computer user", I thought you meant consumer software and electronics. In this segment, prices are completely detached from production cost - an indie game nowadays costs about half of what an AAA title costs, even though production costs are between 100 and 10,000 times lower, and prices of other software are completely lackluster since they usually have little to no direct competition, and when they do, the difference in quality is often immense (but not quite quantifiable), and even if they are similar quality, the sole fact that one is popular and the other is not might drive the value of the more popular software through the roof (see: MS Office, and many people that prefer it over free alternatives). It's even more jarring with electronics - an average toy is usually priced somewhere around 100x its production cost. Same with smartphones and computer parts, although a significant factor here is R&D costs. But look at what happened with RAM prices a few years ago. Some factory or warehouse got destroyed in an accident, and suddenly the prices doubled within a couple months even though the production costs stayed the same. They still didn't drop to previous levels - I've checked recently, and 2x8GB is as expensive as it was in 2014.

    Even in business environment, price and cost are only indirectly related by the fact that your price has to be the lowest of all competitors, and those competitors are going to have similar production costs to you (unless they're in India), so making an offer for slightly more than estimated cost is the safest bet if you want to secure the contract.


  • Discourse touched me in a no-no place

    @gąska said in We shouldn't let people get used to the idea that software fails:

    price and cost are only indirectly related

    The cost of manufacture is only one part of the price, and not usually the most important part. For physical things, the cost of shipping it to you (or to a store near you) is important, and any resale steps add to the unit cost too. Then there's the amortised cost of the production of the initial prototype (which is a dominant cost for digital goods). Yet those only really affect the floor on the price, i.e., how low someone could sell and make a profit at all; the actual price you've got to pay also depends a lot on how in-demand these goods are, and how much people are willing to pay for similar things (since if you were willing to buy something for ¤50, why would someone let you have it for ¤20 and miss out on ¤30 of pure profit?)

    Pricing theory is quite a bit of economics…


  • Resident Tankie ☭

    @topspin whenever it makes no economical sense, that's where regulation comes in to save the day. Make it a legal requirement that the software can pass certain tests, and there you go.

    Open source software providing no warranty is perfectly consistent with the fact that the developer is giving his software away and can't possibly know how it will be used, how it will be modified, etc.


  • Discourse touched me in a no-no place

    @admiral_p said in We shouldn't let people get used to the idea that software fails:

    Open source software providing no warranty is perfectly consistent with the fact that the developer is giving his software away and can't possibly know how it will be used, how it will be modified, etc.

    If you want something (anything!) warranted to be suitable for a particular use case, expect to pay for that as it takes someone with expertise to assess the particular situation and work out whether there are any special gotchas this time. That means you're going to end up paying for a person's time, and probably a contribution towards the insurance they have to carry against being wrong.

    There are domains where only certified software is allowed. They're a minority of all software development…


  • Impossible Mission - B

    @dkf said in We shouldn't let people get used to the idea that software fails:

    There are whole toolchains devoted to supporting those use cases, but they tend to look nothing like what most programmers are used to as they're much more about producing proofs of correctness (which in turn means you need a strong definition of “correct” to star out with, which is the real usual problem for most software).

    Hmm...

    The problem, here, is very fundamental. In order to mechanically prove that a program corresponds to some spec, the spec itself needs to be extremely detailed. In fact the spec has to define everything about the program, otherwise, nothing can be proven automatically and mechanically. Now, if the spec does define everything about how the program is going to behave, then, lo and behold, it contains all the information necessary to generate the program! And now certain geeks go off to a very dark place where they start thinking about automatically compiling specs into programs, and they start to think that they’ve just invented a way to program computers without programming.

    Now, this is the software engineering equivalent of a perpetual motion machine. It’s one of those things that crackpots keep trying to do, no matter how much you tell them it could never work. If the spec defines precisely what a program will do, with enough detail that it can be used to generate the program itself, this just begs the question: how do you write the spec? Such a complete spec is just as hard to write as the underlying computer program, because just as many details have to be answered by spec writer as the programmer. To use terminology from information theory: the spec needs just as many bits of Shannon entropy as the computer program itself would have. Each bit of entropy is a decision taken by the spec-writer or the programmer.

    So, the bottom line is that if there really were a mechanical way to prove things about the correctness of a program, all you’d be able to prove is whether that program is identical to some other program that must contain the same amount of entropy as the first program, otherwise some of the behaviors are going to be undefined, and thus unproven. So now the spec writing is just as hard as writing a program, and all you’ve done is moved one problem from over here to over there, and accomplished nothing whatsoever.

    -- Joel Spolsky



  • @dkf said in We shouldn't let people get used to the idea that software fails:

    We can do it when we need to. Which is usually when a software developer and their managers all go to jail if things are wrong, so it's usually just in the really safety critical systems like avionics

    Eh, this is my industry. It's still

    @topspin said in We shouldn't let people get used to the idea that software fails:

    bug-ridden shit

    Just in ways that tend to not kill people.


  • Impossible Mission - B

    @admiral_p said in We shouldn't let people get used to the idea that software fails:

    @topspin whenever it makes no economical sense, that's where regulation comes in to save the day. Make it a legal requirement that the software can pass certain tests, and there you go.

    Which tests? What sort of software do they apply to? Plenty of tests that are relevant to a game would be completely irrelevant for office software, not to mention OSes...


  • area_can

    @ben_lubar said in We shouldn't let people get used to the idea that software fails:

    I'm looking through my Steam library and I can't find any games about futuristic technology that always works for some reason.

    A game where you click a button and the computer fixes everything would be very boring


  • area_can

    @admiral_p said in We shouldn't let people get used to the idea that software fails:

    Make it a legal requirement that the software can pass certain tests, and there you go.

    IME my government's own quality standards for its user-facing software are lackluster. How can I expect them to regulate software quality? To give a sample quote from the article:

    But hey, here is something to consider: I’m typing this in a macOS app on a very powerful 5K iMac computer. It’s just text, and I’m going to publish it on the web. The whole experience is mediocre at best. The software is not blazing fast, even though it’s a native app for text editing (it has very high app store rating and it’s one of the apps selected by the app store editors). The typing experience is laggy on a Bluetooth keyboard. To publish this, I’m going to interact with a browser, which is at this point the whole other operating system with another layer of delays. The only thing that really feels “20 years better” is the connection speed itself.

    I can't see how and what regulation could help here.


  • area_can

    Another post from the same author: https://rakhim.org/2017/02/by_devs

    Remember how your parents would try to use Windows 95 or something like Norton Commander. They’d copy an app shortcut to a floppy disk and be amazed how much stuff they were able to put inside. All the games, and lots of space left! And you’d think they don’t understand anything at all, they are just clicking pretty much randomly, hoping this magic machine would at some point understand them and do the right thing. That was the time when programmers were building products for programmers.

    It wasn’t awesome, but it was sincere. Nobody was pretending that software was built for regular people, and the consensus was: in order to use a computer you have to learn something. Or know someone who can help.

    Today we’re living in times when programmers are building products for people believe that they’re building products for people.

    This isn’t awesome and it’s not sincere. Today all of us regularly feel like our parents with Windows 95.


  • area_can

    @bb36e the reference to Win95 seems off; while it's before my time I think that MS marketed it pretty widely to normal people. So maybe replace Win95 with DOS and the rest of the post tracks.



  • I was thinking the other day "Google should add a monitoring system in Android, and every time an app crashes or freezes for more than a second, fine the publisher a tiny amount of money".

    Now sadly there's a dozen reasons why that wouldn't work (the biggest one being that it's easy to cheat), but I think that's a direction worth exploring.



  • @anonymous234 said in We shouldn't let people get used to the idea that software fails:

    I was thinking the other day "Google should add a monitoring system in Android, and every time an app crashes or freezes for more than a second, fine the publisher a tiny amount of money".

    Now sadly there's a dozen reasons why that wouldn't work (the biggest one being that it's easy to cheat), but I think that's a direction worth exploring.

    If you change "fine the publisher" to "send a stack trace to the publisher and slightly reduce the app's ranking in searches", that could work.



  • @bb36e said in We shouldn't let people get used to the idea that software fails:

    @bb36e the reference to Win95 seems off; while it's before my time I think that MS marketed it pretty widely to normal people. So maybe replace Win95 with DOS and the rest of the post tracks.

    They did, but it was a natural extension of the previous couple of years where every computer came with Windows 3.1 pre-installed (and Office on the more expensive ones) and the computer manufacturers were the main ones saying how easy they were to use and how the multimedia features were awesome and so on. It was an open secret that nothing had really changed.



  • @anonymous234 said in We shouldn't let people get used to the idea that software fails:

    I was thinking the other day "Google should add a monitoring system in Android, and every time an app crashes or freezes for more than a second, fine the publisher a tiny amount of money".

    Now sadly there's a dozen reasons why that wouldn't work (the biggest one being that it's easy to cheat), but I think that's a direction worth exploring.

    But there is so much beyond the publisher/developer's control. I'd hate to get fined into oblivion because some customer's retarded anti-virus or unremovable carrier applications or spotty storage device causes my app to crash all the time. Not to mention the system that monitors and creates fines is going to be just as crappy and buggy as every other system out there.


Log in to reply