18 ms·
Have Software Developers Given Up?
- maerF0x0 10y agoI need to blame a scapegoat for the world's problems. I blame offshoring.
- nikolay 10y agoWrong. Eastern Europe is offshore, too.
- mifreewil 10y agoAnyone else wondering why the author was concerned about a random person not being able to activate an account using a random name with their email?
- CUViper 10y agoThe frustration was that support kept greeting with the random name despite being asked not to. I'm sure that's just a "Hello $NAME" template, but it's still lazy.
- d2p 10y agoThe original reason for contacting was this: https://news.ycombinator.com/item?id=11579638 https://news.ycombinator.com/item?id=11579638 But yeah, they're included here because of the repeated greetings like that. I suspect it was a template, though it only started after I told them that wasn't my name; first few emails (not shown) were "Hi Danny"!
- d2p 10y agoMy concern was that the name entered was "Pro_Hacking". I was worried that maybe someone had found an exploited in their system and may have been able to activate the account anyway. I was asking them to confirm it had not been activated, but the chat didn't go so well!
- pgroves 10y ago"Write Failed: Success" is my new favorite error message.
- MattGrommes 10y agoI had one of those once so I winced when I saw it. I was printing 'Error: ' with the message that came back from the server and in one case saw 'Error: Success'.
- bschwindHN 10y agoIn a similar vein, applications that output in red when everything is running fine cause a lot of wincing.
- dman 10y agoIn jepsen that might actually be an apt message - https://github.com/aphyr/jepsen https://github.com/aphyr/jepsen :)
- brynedwards 10y agoReminded me of the Interface Hall of Shame[1], which, now that I think about it, might be evidence against his claim that software is getting worse... [1] http://hallofshame.gp.co.at/stupid.htm http://hallofshame.gp.co.at/stupid.htm
- simmons 10y agoI see similar messages fairly often. I believe "Success" is what you get when you use strerror() to translate an errno of 0 (success) on a Linux/UNIX machine with English localization. So this contradictory message is what happens when the programmer uses an errno-printing function (perror() or something custom) to indicate an error that wasn't actually due to a failure that sets errno.
- pc2g4d 10y agoI'm pretty sure that was his SSH connection dying after he killed the remote server. But yeah, it's hilariously/depressingly contradictory. Worse than useless, since you don't know if something went right, or something went wrong, or both, or neither!
- MattGrommes 10y agoI hear a lot of complaints from non-programmers about the software they use and they always try to make sure I'm not offended. I can't even begin to explain how I'm not only not offended, I hate these lazy problems even more than they do. Some of those are clearly complicated issues but there's so many cases of just plain laziness it's infuriating. However, I don't blame the developers entirely. There's so much pressure from management, product managers, etc. and so much cost cutting it's ridiculous. It doesn't directly affect the bottom-line though so I'm not sure we can do much except expect more from ourselves and get used to it.
- civilian 10y agoEven if it's just plain laziness-- how do we get to the point where a developer is being just plain lazy? People naturally want to do good work and want to be proud of what they do. So if people appear like they're being lazy-- they're probably really demoralized, or overworked, and they just haven't heard a nice thing about their work in weeks. We're social animals, and engineers need appreciation too.
- PretzelFisch 10y agoI get so aggravated with other software's bugs. But at the end of the day, you have to ship.
- d2p 10y agoLike everything, it's a trade-off. People try to say "you should do x", but it's just never clear-cut. I think in general though, we would be better moving slightly towards the "spend a little bit longer" end of the spectrum.
- tremon 10y agoIn a well-functioning industry, shipping broken items would just create a money-sink at the support end. One of the reasons this doesn't happen is that many software is unique (effectively, every vendor has a monopoly on their program), so software vendors can get away with ignoring most of their users. Even if there's multiple programs the user can choose from, switching costs are high (they usually require expertise). This is not just a failure of the software industry, you see this in every field where there's hardly any feedback from end-users to the vendor.
- temptossr344 10y agoApparently this person was not using technology any time before the iPhone? Quirks, useless error messages, website rendering problems... they've been around forever. Has this person even tried to install software packages on Linux 10-15+ years ago? Have software developers given up? I'd argue the vast majority never cared. And really, why bother caring so much that you take to the web glorifying others glitches? We hear about data theft stories, companies shutting down due to data loss fuckups... life goes on. It's shit that many people are burned because of these things, but really our society does not care. The loss is absorbed for the most part and we move on. Stop being so dismayed with the world, or how other people aren't as good at things as you are. Move along.
- sqeaky 10y agoIt sounds like you have given up. You know what at least one problem is, I bet you have ideas about how to fix it too.
- tossr3515blah 10y agoThe thesis is that because this person ran across a few glitches in a small subset of systems "programmers" have all given up. It continues to then re-count some bad interactions with customer service types and an anonymous Twitter user. Seriously? That's it? And this leads him to believe programmers everywhere have quit caring? How does this even hold up? You realize it's not necessarily a programmer at many a institution prioritizing work. You realize that the power company customer service person probably will have zero clue what the issue is? This is poorly thought out blog spam. I expect the other 95% of the time, shit works just fine. But blog posts about everything working just fine don't generate hits.
- d2p 10y agoI did use technology before the iPhone, but I don't remember being as frustrated by it as I am now. The most frustrating thing is that we seem to be getting worse, not better. We're not learning from mistakes, we're too busy churning out the next buggy release to review the mistakes in the last one :( When huge software companies like Google and Microsoft are churning out buggy crap, it's easy to see why others assume they can't do any better.
- ensiferum 10y agoOh, thats nothing. Just today Firefox managed to freeze up the entire X server with some WebGL content. Gedit become unresponsive several times, also had rendering faults (just 640kb file with autogenerated html and js). SublimeText2 crashes daily. (it's faulty plugin) Office outlook for Web is a general usability horror and has many features that do not work. Win10 has number of bugs that I encounter almost daily, Edge is generally very buggy. I think generally all these problems are indicative of several factors combined. Laziness, general lack of attention to detail and pure developer incompetence, general need to push out stuff too fast (marketing decisions policies) and then finally complexities in the software systems itself. Today any given software system is enormously complicated to a degree that nobody really understands the systems completely. In fact it's a more or less a miracle that things work as much as they do considering all the billions of bits that need to be just right for me to even write this comment. That being said, I don't think there are shortcuts here. Better quality can be achieved but it requires the mindset for doing things that way. And it's going to require testing. And a lot of it, unit tests, regression tests, automated test suites. Personally I find that when I write code I often need more unit testing code than the actual code to cover the system under test functionality properly. I'm talking about a ratio of up to 5 lines of testing code to a 1 line of real code. Sometimes I can get close to 2:1 or 3:1 if the function/class/method is not very complicated. Anyway even if you now take that conservative ratio of 2:1 and go look at any random open source project I'd be surprised if you would actually find that much testing code there. Good luck.
- d2p 10y agoWindows 10!! Fuuuuu! How did Windows 10 escape my post?!
- rpgmaker 10y agogedit has to be the slowest piece of software on Linux, which is insane since it's supposed to be gnome's notepad counterpart. Starting up geany it's way faster and geany it's basically an IDE. Ridiculous.
- flamethroeaway 10y agoOverhead of unit testing is why I'm not a fan of it for personal projects. Testing even the simplest 400 lines of code needed more than 1000 lines of testcode and I'm doing as little as possible.
- sqeaky 10y agoSoftware development is still young. 30 years ago it really wasn't an industry and 50 it was pretty much an academic venture. We have better procedures and tools. The groups not using version control, unit tests, peer reviews and other common means to increase quality will be out-competed by those who do. Just write the best software you can, with the best group you can in the mean time and in the long run this will sort itself. Of if you think you can sort it out, try to. I don't know what "sorted out" looks like but I would not be surprised to see apprenticeships like plumbing and HVAC or certifications like medicine and law. Sorted out could look like just about anything, perhaps we will be drenched in shitty software until unit testing is taught to second graders along-side basic arithmetic.
- outworlder 10y ago> Software development is still young. 30 years ago it really wasn't an industry and 50 it was pretty much an academic venture. Pretty much that. We are still at paleolithic levels, even if progress has been fast.
- TheOtherHobbes 10y ago>30 years ago it really wasn't an industry 30 years ago it was definitely an industry. The commercial games market exploded with the arrival of cheap 8-bit micros in the early 80s. Mini and mainframe application development has been around for a lot longer. Commercial software development has been happening since the 1950s. https://en.wikipedia.org/wiki/LEO_(computer) https://en.wikipedia.org/wiki/LEO_(computer) "Sorted out" means that software doesn't fail in stupid, avoidable ways. The current state of the industry is shockingly bad. But users have been trained to expect broken software, developers rarely have enough of quality ethic to care about those boring bug fixes, and management just wants more money. So here we are. Personally I blame Microsoft for gifting the industry with a tradition of bullshit EULAs that more or less said "We can ship any old bug-ridden crap we feel like, and we're not responsible if it blows up in your face and takes your business down. Besides, if something goes wrong it's clearly your fault for being too stupid and ignorant to use the software properly. Whatever - definitely not our fault, so don't even think about suing." After the Pavlovian conditioning and Stockholm syndrome set in, it became impossible to expect consumer pushback.
- draw_down 10y agoWhat's most interesting to me is that people choose to blame developers for their observations of quality or content of software, games, etc. Completely ignoring the organizational or institutional structure involved, as if we all have complete autonomy over the products we work on. I've seen people blame developers for, like, female characters in games being oversexed. Newsflash- that's a business, product, and design decision. People even tried to blame engineers for the VW emissions scandal! Companies nowadays set ridiculous release schedules, overwork their developers, and release crap. But sure, blame the devs, that will probably help. The author here is a dev so there's really no excuse.
- d2p 10y agoMy post was actually aimed at the industry more than specifically developers. The headline was a bit bad (it was written before the post) but I didn't expect to get 30k visitors overnight so I probably didn't proof-read/tweak as much as I could've done :D
- am8 10y agonice article. I use OVO Energy they have a nice user interface for managing gas and electric. Although I did just check it and it's down for maintenance.
- rossng 10y agoI did wonder why he would voluntarily move TO Npower. Even if you're saving money, it's not worth it. A single 'live chat' with them was more than enough to convince me of that.
- maaarghk 10y agoI haven't had a gas bill from them in 5 months because their system wouldn't let me put in my gas readings. I had to go through a painful 40 day complaints process to get anyone to put them on the account. Never heard back from anyone. Eventually someone on their twitter feed was able to fix it over the course of a day, but of course it will be 3 months before their system generates a bill from the new figures. I've had plenty of ASP.NET "error occurred in the application" pages too so clearly they aren't building their site in Release mode. Overall, best described as a clusterfuck.
- d2p 10y agoYeah; lots of people told me I shouldn't go there. Iwas lucky it didn't work out and I had to move away, but SWALEC so far hasn't been much better. We still can't login!
- am8 10y agonice a downvote for recommending a utility company with a decent control panel. real smart. Reminds me of the arrogance I faced when trying to get my first programming jobs.
- d2p 10y agoUh, HN has downvotes?!
- amelius 10y agoOr has the QA department given up?
- eropple 10y agoYou're assuming that places have QA departments. Those, in my experience, are the first thing to vanish.
- vectored 10y agoThis reminds me of the content editors vanishing for the newspapers and the drop in the quality of articles.
- icedchai 10y agoQA? Why bother? We're agile, so just push another release. ;)
- dbcurtis 10y agoAhhh... spoken like a true developer. Blame the QA department. The problem with having a QA department is by definition, if they are a "department", they are not part of the development team. The only way testing is ever taken seriously is if the top architect spends his coding time writing test cases, instead implementing features, after all the architecture documents are put under ECO control. And let's hope the same architect believes in closed-loop validation (that is, instrument and measure your test coverage) instead of open-loop validation (write tests without actually measuring what code gets tested by it.)
- carsongross 10y agoSoftware is always bad at the top of the market, when hype and get-it-out wins over quality and measured improvements. Javascript is also always hugely popular at the top of the market. (2000-DHTML, 2008-Web2.0, Now-Node/Ang/React.) Eventually, the Developer Gods of the Copybook Headings with terror and slaughter return.
- SFJulie 10y agoCoder are soldiers paid to do a job. If the army fails, blame the generals that totally do not care about quality and will prefer to pay dozens of obedient coders lower and lower that do not care than be eventually facing opposition based on concern in quality. Most over heard arguments before standing up: hey, we don't have a choice, there are all these companies competing with us doing the same. The other arguments for not caring about quality is : not having customers because you are a startup and that well, we will all be wealthy after we will have sold our shares and you will be able to care with the next management. Bosses get what they ask and pay for.
- eropple 10y ago> Coder are soldiers paid to do a job. If the army fails, blame the generals that totally do not care about quality and will prefer to pay dozens of obedient coders lower and lower that do not care than be eventually facing opposition based on concern in quality. "But I was just following orders" isn't an acceptable excuse in any situation. You are inextricably tied to a set of moral obligations by your decision to build things that affect other human beings, and you cannot shirk them or push them upward. They are yours, they remain yours, and attempts to rationalize the abrogation thereof are at best gross. Own your shit. If you cannot do good and do well, then quit. (I have done this; it is not that hard.)
- carapace 10y agoThat just leaves the field to the incompetents. They are not going to stop inflicting this crappy code on the world just because you quit.
- eropple 10y agoThen own it, and fix it, and be with a clear conscience. I couldn't, at that particular job, and I could do good elsewhere. So I made the decision to do that. "We're just coders, it's not our fault" is not an excuse. Either own your shit (and, implicitly, fix it) or refuse to participate. There is no middle ground.
- deleted 10y ago[deleted]
- stegosaurus 10y agoUltimately it's not really about software developers, is it? Most of these issues seem to be management decisions. Like giving a car mechanic a few cheesegraters and a dog, sticking him in an open field in a thunderstorm, and asking him to rebuild your engine. He could be a prodigy. But there's water in it, man. There's bloody water in it. Half of the stuff on that page should not involve any programming at all. The nPower one, for example. Yeah, it's broken, but that's not the actual problem. The problem is that it would take about 5 years to report the issue, so no-one knows it's broken. Just give an email address or a telephone number, and actually employ customer support instead of paying yourself $50M/second. Done.
- d2p 10y agoI disagree. While there are management/process/whatever issues, there's also a lot that could be improved by the devs. For example, take the podomatic example - that's just a sloppy function written by a dev. The NPower thing is just sloppy setup of the website and bad links in email templates. The MS thing, well why did the devs add jQuery to a site that is so incredibly static? Devs make a lot of decisions that influence the quality of software and I think we need to start taking more responsibility for that.
- swolchok 10y agoVNC passwords being limited to 8 characters isn't a software bug, it's a VNC specification bug. From https://tools.ietf.org/rfc/rfc6143.txt https://tools.ietf.org/rfc/rfc6143.txt: > To form the key, the password is truncated to eight characters
- striking 10y agoThat and allowing anyone access to your computer's graphical interface as if they were at your computer, even yourself over a web connection, is a bad idea. I think the 8 character limitation is helpful. Because if you need to protect yourself against it, you can ask "but wtf do I really want to do? Probably not a VNC server..."
- sago 10y agoI reported a software bug in a commercial package (Allegorithmic Substance Designe) a few months ago. The support guy told me that, to help me, he wanted me to install a VNC server, send him my id and password, and let him have access to my machine so he could debug the problem. When I balked he acted all offended and told me they work with some of the biggest companies in the industry, they see lots of stuff on customer's machines, and are totally trustworthy.
- dingo_bat 10y agoThere are many instances where VNC is useful. Do you think SSH access is also useless? This is the same, except you can also run GUI programs.
- crazy5sheep 10y agoNowadays, companies care more on putting in new features than having high quality products.
- cle 10y agoAs a software developer, there is always an infinite list of stuff to do, things to build, issues to fix, etc. Why do we spend time doing other things rather than fix these annoying quirks? In my experience, it's usually because there was something more important to do. I don't think it's fair to criticize these decisions unless you know what was done instead.
- d2p 10y agoThat's true; and the post wasn't aimed specifically at devs, but more of the software dev industry as a whole (I know the title is pretty badly worded). I think companies should start caring more about their quality and users should stop giving money to those that don't. Some of these silly bugs are pretty ridiculous and should never have happened.
- majewsky 10y agoI think it's entirely fair if there is no proper feedback method indicated on the erroneous page. How else am I going to do anything about it? See also the "dear-github" letter.
- nanodano 10y agoAs software evolves and gets more complicated it only makes sense that bugs will become more obscure and tougher to chase down in projects that are reaching sizes we've never seen before. Most developers have a bug list longer than they can handle. It's not about 'giving up' it's about prioritizing. It's not about being lazy it's about only having so much time in a day.
- deleted 10y ago[deleted]
- tracker1 10y agoStart with very small, modular code... avoid spaghetti coupling (that is removed by multiple laters)... organize structure by feature, not type/class, and accept that all features don't look the same... Some features may only be data structures, service libraries and/or ui. Separate event chains from your UI so much as practical, and avoid classes that look like Car, Wheel, etc that are too smart for their own good.
- jschwartzi 10y agoWe do this. What next?
- tracker1 10y agoActual code reviews, experienced architect(s) that actually understand the whole project, and paired development. Not being afraid to refactor... creating componentized pieces that can live in separate codebases if possible.
- kpcyrd 10y agoI like the "can't download ethernet adapter drivers" limbo I usually get with windows.
- whack 10y agoI remember what software, and the internet, used to be like 20 years ago. My user-experience, and expectations, has increased in almost every way imaginable during this time. From a 10,000 foot view, I'm extremely pleased with the way things have changed in the past 2 decades. To answer your question with a question of my own: If you think that software/service X sucks, why not see this as an opportunity to do something about it? If X really does suck, and if the reason X sucks is because it's being designed/managed all wrong, you could make a ton of money for yourself by building a company around building a better X which doesn't suck. Build an alternative that prioritizes reliability over agile/fast-releases/new-feature-rollout, or whatever you think the problem is. If you're right, if users genuinely care so much about reliability, if reliability is important enough to sacrifice feature-experimentation, time-to-market and development-costs, then you should be able to achieve great market success and win over the current unreliable dinosaurs. More generally, some other company/startup that espouses the above reliability-centered philosophy should be able to enter the market and start dominating it. The fact that neither you, nor anyone else, has killed off the companies/services/products that you're complaining about, leads me to suspect that users in general are willing to give up some reliability, in exchange for other benefits like low price and novel features. I know I certainly do.
- chubot 10y agoYeah, that's basically it: software sucks for economic reasons. It's insanely expensive to create good software, and even if you spend a lot of money, you're not guaranteed to get it. I think there are some tragedy of the commons situations though, where everybody is relying on extremely underfunded common infrastructure. It was only after a bunch of expensive security holes that the users of this software started to pay more attention: https://www.coreinfrastructure.org/ https://www.coreinfrastructure.org/ But there is plenty of other stuff that needs to be done, that would benefit everybody, and doesn't involve security holes.
- pdkl95 10y ago> users in general Blaming users is part of the problem. Yes, they vote with their wallet, but their vote is usually made in ignorance and is often mislead by companies that are so used to dissembling and exaggerating they call such antisocial behavior "best practice". That said, it is true that this is largely a problem with the economic incentives. Capitalism optimizes for businesses that are financially efficient, so the business that sells the lowest quality product they can get away with is "successful". This becomes even worse in software, where quality is harder to see directly. Even the people that write software can have a hard time evaluating "quality". The solution for this situation is simple, but it's basically taboo to talk about it: liability. If you sell software, you need to be liable for any damage it causes when "used normally". For a decent sketch of how this might look, see Dan Geer's explanation[1]. There may be other ways to implement liability. I suggest that the software industry should find a way to implement this as soon as possible, if they want any say in what "liability" means. Yes, this will raise development costs; spending more for better development practices was the goal. [1] https://www.youtube.com/watch?v=nT-TGvYOBpI#t=1531 https://www.youtube.com/watch?v=nT-TGvYOBpI#t=1531
- joshvm 10y agoI was refactoring some legacy academic code recently. It came with a GUI which, if the user did something wrong, fail with the message "Error N" (N being some number) without any further information or logging. The only way to figure out what happened was to grep the source code to see precisely what triggered the alert box. There's also the bizarre policy university has about passwords. Your password is reset every six months (fine), it can't be similar to your old one (fine) and it's truncated to 8 characters (what?).
- majewsky 10y agoI saw something similar when I used a German government agency's website last week to fill out some forms. Their password policy was: - minimum 8 chars - contains at least 3 of 4 of the following types of chars: - small letters - capital letters - numbers - symbols I usually use random-generated passwords that are dumped as hex, i.e. [0-9a-f]{64}, so I just added "A+" at the end. Turns out that didn't work. What did work was to prepend "A+" instead of appending it. So apparently they silently truncate long passwords somewhere before the 64th character.
- saltyoutburst 10y agoWe haven't given up, there is simply not enough financial incentive to make the software any better. See 'We Could Write Nearly Perfect Software but We Choose Not to' https://blog.inf.ed.ac.uk/sapm/2014/03/14/we-could-write-nearly-perfect-software-but-we-choose-not-to/ https://blog.inf.ed.ac.uk/sapm/2014/03/14/we-could-write-nea... "The simple truth is that bug–free on-time software is just more expensive than we (or our clients) are prepared to pay."
- bdamm 10y agoIs there some reason to believe that with enough money software could be bug-free? Developers are often guilty of just refactoring for no particularly good reason other than their personal sense of aesthetic, which can lead to endless (and destructive) refactoring. More money also makes people design lazy, so that instead of finding clever ways to reduce effort and improve uniformity, you just have everyone make their own forms.
- diafygi 10y agoThere is. See the space shuttle software. http://www.fastcompany.com/28121/they-write-right-stuff http://www.fastcompany.com/28121/they-write-right-stuff
- FigBug 10y agoAnd yet it still couldn't handle flying over new years: https://www.newscientist.com/article/dn10459-y2k-like-fears-create-shuttle-scheduling-crunch/ https://www.newscientist.com/article/dn10459-y2k-like-fears-...
- gsnedders 10y agoIt probably could and in testing it could, they just decided not to find out whether it would really work properly when seven people's lives depended on it working. If you can practically avoid an edge-case you haven't ever relied on in decades before when people's lives depend on it, not risking it doesn't seem that crazy.
- edoceo 10y agoDropbox has same sign up non-validation mentioned in the article. I mentioned it to them when I got a phantom sign-up notice. Reset password and found an account with my email and uploaded content! You can fully use DB w/o validating your email. Hello anonymous dead-drops!
- lerxst 10y agoA lot of the decisions made behind software products depend on management's decision as to what is 'good enough' and when to release a first version to iterate upon. Every day, I encounter parts of the codebase that could be refactored or sections of a page that probably do not make sense to half of the user base, but in the eyes of management, this is not a problem as customers will learn. If I were to spend all day polishing aspects of the site, that would not be as preferable as working on a major feature release.
- liveoneggs 10y agothe mess we're in with joe armstrong: https://www.youtube.com/watch?v=lKXe3HUG2l4 https://www.youtube.com/watch?v=lKXe3HUG2l4
- chipsy 10y agoIt's always been really, really bad once you try to take the experience into your own hands. The path of least resistance with technology is to stay well behind the curve, choose the popular brand, avoid niche use cases, use the minimum amount of features, and modify nothing - in effect, to use everything as if it were an Apple device in stock configuration. However, sometimes more effort is worthwhile because the unmodded experience is so poor or ill-fitted. Yesterday I finally got fed up with my cheap Android phone and flashed it with a modded rom. It took probably 8 hours of reading and downloading and testing and waiting to get it into a working state, because there are so many points along the chain where a little misconfiguration breaks the process, and the people making mods often have working software with poor documentation and inadequate testing. In the end, there just is never enough time to go around to make it perfect for everyone in every use case. You have to choose carefully when you want to fight the battle - and you can expect to lose, a lot of the time.
- Walkman 10y agoWhat I do in this "war" is constantly reminding and educating my coworkers that they should care more and also teaching them HOW they can do that. I had already several very hard and harsh fights with my bosses, even with the CEO telling them "everyone is not very good at this company" because I care about quality very much and rather fight over it than sit quietly and just produce shit. I gave "talks" about specific topics, constantly grab the opportunity when I can tell them about a new concept, Clean Code, better tools, whatever. I introduced TDD, CI, automatic deployments, will introduce CD next month over a year I have been working at my current company. If you are one of the better developers you can and should fight against lazyness and low quality, even teach the ones who cares/know less. Also it's very comfortable to blame your boss, but you can do very much about this. I introduced automated testing not because they asked me for it, but because I thought is important. I educated them that this way, development will take a bit longer, but will be higher quality. You can even do things which improves quality and they don't even know about. My next step is to introduce third party services (which they never used before and always went with the open source or cheap solutions) which makes our work easier, so we can focus on what's important, and make it better.
- pdkl95 10y ago> If you are one of the better developers you can and should fight against lazyness and low quality This can be thought of as a type of error correction. If you don't fix problems as they rise up the chain of command, those problems eventually become policy. http://ogun.stanford.edu/~bnayfeh/plan.html http://ogun.stanford.edu/~bnayfeh/plan.html (mild language warning, of the form "____ happens")
- hrnnnnnn 10y agoTotally agreed. In my experience, engineering improvements are always a bottom-up thing.
- stunthamsterio 10y agoI can't agree with this more. Apathy and clock watching has done more to damage our industry than many other things. It shocks me when developers are willing to do the bare minimum, scrape by and avoid arguing to make things better. Much like the OP, I spend a great deal of time trying to guide my clients to work in ways that guarantee better quality. The mantra in a lot of these places though is 'Features first, feature bug fixes second, other improvements never'. Without the folks delivering the software (Everyone from QC, DBA's, DevOps Engineers/Ops and Developers) pointing out the inherent danger in this nothing is going to change.
- skybrian 10y agoMy guess is that it's always been this bad and often worse. But maybe we are more adventurous and use a wider variety of software these days, so there are more chances to see something go wrong. Software updates alone will expose you to more versions, so you'll have more chances to see different bugs (rather than the same ones that you learn to adjust to or ignore).
- xanderjanz 10y agoGiven up? No. Prioritized development speed over bug prevention? Yes,
- d2p 10y agoIt's disappointing, whatever we call it :(
- xanderjanz 10y agoI'm enjoying it. There's a lot still to be to learned about DevOps and massive codebases.
- jasonlotito 10y agoIt's why I started keeping track of all the annoyances I run across on wtfmac.com. Because, well, these are stupid, annoying things that piss me off. So yeah, when the richest company in the world does fundamentally wrong things with software, what does that say about the state of the industry as a whole?
- chris_wot 10y agoI note that most of these errors are web server misconfigurations.
- soyiuz 10y agoIt has not been mentioned that software engineering differs from other types of engineering (like civil engineering) in that it builds abstract objects (software) that are then expected to function in a number of differing material contexts (hardware). Think about how strange that is. Engineers building a bridge for example translate their ideas into specific arrangements of carefully chosen material. The software engineer builds for a limited number of reasonable architectures and for a virtually unlimited number of hardware in various states of disrepair. It is a testament to human ingenuity that software works at all as well as it does. For this reason, the example Shuttle's software misses the mark. Writing code for a single known device is by orders of magnitude a simpler problem than writing code for numerous permutations of hardware.
- zzzcpan 10y ago> that are then expected to function in a number of differing material contexts (hardware) It's not like that. Sometimes they are expected to function in a presence of any kind of errors, other times - not so much and everyone is ok with them breaking occasionally. But we really do have a way to make software that functions reliably in a presence of errors.
- danharaj 10y agoi would spend a lot more time improving software i think is actually useful and beneficial to others if it didn't mean i'd lose my job and fall off the proletarian treadmill
- digi_owl 10y agoNah, they just get bored easily. Writing new stuff is like building model airplanes, fun. Bug fixing is like chores, unless someone gives you some kind of "incentive" to do them you don't.
- d2p 10y agoFor some devs, I'm sure that's true. For me, I like to take pride in my work and be proud of the products I work on. I love people reporting bugs so I can improve :)
- mooseburger 10y agoThat's odd. I think I work the other way around. Making new stuff gives me analysis paralysis as I get absorbed in thinking what would be the best way to build that new stuff. May favorite tasks are not debugging though, but getting the chance to refactor a mess into something better.
- minionslave 10y agoIn terms of software quality, websites are usually the worst. Easier to patch and people and errors are usually less scary.
- nikolay 10y agoI've never written unit tests in my life, and my code works most of the time. There used to be times where I'd write code for an entire week in Java without compiling (because it was taking forever) and back then we used pretty basic IDEs that didn't help as much as they to today to help you prevent stupid errors. And, usually, my code compiled just fine and worked. Today's developer is a trial-and-error one, tweaking a few lines of code, refreshing the browser, and seeing if stuff works or not. Today's developer spends disproportional amounts of time writing unit tests and, yet, producing buggy code.
- jbclements 10y agoAre you suggesting that an increase in unit tests is correlated with a decline in code quality? That would be a surprising correlation.
- Ingon 10y agoI do think sometimes about TDD as Think less driven development. The problem is not that much in TDD itself, but how its usually implemented - as a safety net and excuse for producing all kinds of bad code.
- tracker1 10y agoUnit tests do not correlate to quality, and even at 100% coverage only guarantee that you've looked at every line of code twice (usually). Not only that, a lot of projects skip adding testing until well after a proof of concept is working... why? because we don't want to not ship features for two weeks while we backport in tests... Now you have less than optimal code and less than optimal tests. This persists, every suggestion to refactor structure rebuffed, and this persists until the code debt is so high, it takes 4-5x as long to add a feature as it should. Where, if you're lucky, you can make a new version using only 3-5 year old technology, instead of the decade old stuff you've been supporting for half a decade. Even then the 2-5yo stuff isn't as nice as it was sold, but it's "enforced" by the company powers that be (god I hate angular sometimes).
- cydonian_monk 10y ago
- smac8 10y agoOne issue that separates software from most other industries is that software is not a physical entity. This makes the desire to change - refactor, add features, redefine use cases, etc - all the more tempting, since the only cost is getting someone to fix/alter some code (despite the fact that labor is obviously very expensive). In contrast, in aerospace for example, you have to get it right the first time, else you have millions of dollars worth of payload and equipment exploding. In these industries it means teams will probably be more reluctant to accept rapid change in development and deployment since the cost of failure is so much higher than software. This isn't the only reason for bugs in software by any means, but the sheer innate mutability of software makes the desire to pile on requirements, iterate frequently, and just generally not be averse to change a massive reason for buggy code
- tracker1 10y agoI just spent half a week with the following... I re-joined as a contractor in a new role at (big corporation), I arrived my first day (only gone a couple weeks), was able to pick up my security badge (no problem), issued laptop, bag an accessories, no problem.. AD login was written down, missing the last character that was there before, tried as it was, finally tried with the missing character, still no go... three calls to cusomer support later, disconnect ethernet, and able to login with secure wifi. Able to login, setup a couple things... hmmm, no access... Told my email address was now a different one, ask about original email address. No bueno... wait a day, call back (still waiting on response from original issue), decide I can't wait, needed to get in. No email access, no lync. Finally get a call from email support the next day (weds), but it's 7:30pm and I'm out to dinner, didn't recognize the number, sent to vmail... the issue was that I had no email, the message on the voicemail said "email me", no callback number, no email address, how the hell was I supposed to email them. Two days later, I come in, I'm able to send mail, but not receive... there were somehow two email addresses configured. After the weekend, I'm finally able to send and receive, but now have a 3rd email address, and have to manually fix my profile in a bunch of internal services that were auto-populated at first login. Not to mention a VP in another division (with the same name) getting a bunch of email meant for me, because my email was fubar'd. It isn't just software, it's entire processes. I basically sat for a week, twiddling my thumbs (mostly), because I couldn't communicate... still waiting on access to our ticket tracking system (was told to wait until I had email and lync). I'd cry if it weren't so funny.
- Iv 10y agoI see what you mean and am often equally frustrated, but you know what this reminds me of? The state of infrastructure in a booming underdeveloped country, which is a good thing. Let me explain it a bit further. Have you tried hiring a programmer lately? It is very hard, there is a huge demand and most programmers I know receive several offers a month. The demand for software is CRAZY. So we all do what we can: quick and dirty when it is good enough. Just like in a country with no roads, any dirt road and crappy pavement is better than nothing if you have hundreds of trucks that need to go through RIGHT NOW. So here it is, websites are made hastily, tech half work, but are better than nothing. How much of the things you screencaped have more than 5 years of existence? Like you said, we are software developers. We write software and we write bugs. Right now, there is far more need to implement new features than to correct bugs. Hopefully it will change at one point but right now this is the crazy race forward, and that is a good thing!
- nightski 10y agoI think it's fine we are using what we have to make things work today. But it seems like very little research and development is being performed to build a brighter future. Computer science is a field seemingly led by the loudest voices, not necessarily the brightest. It feels like OS, language, database, and other computer science research is at an all time low and instead is being driven by ad-hoc open source development for better or for worse.
- ewjordan 10y agoMoney is the loudest voice, every time. And nobody has lost a single dollar because OS or database research is lacking. Even a major revolution in database tech would maybe reduce costs, downtime, or latency by 10% or so, max. Since that sort of expense is never the dominant factor in a company's success, it will never be worth serious commercial investment. And as far as academia goes, there is research happening, it's just a slog because all the low hanging fruit has been picked and now people are just optimizing. Fields always slow down after the good stuff is discovered. IMO AI is the only pure CS field worth studying right now, that tree has barely been touched at all. The mundane stuff like OS, databases, and languages have been studied to death, and unless an Einstein comes along, there's not going to be any serious motion unless the AI nut gets cracked first.
- itsthecourier 10y agowe have this saying in the community: start coding, stop complaining
- cloudjacker 10y agothe difference between everyone here and technophobes is that these problems are benign to us. when someone says "computers never work for me! technology hates me!" it isn't that there experience is drastically different, just the very first incongruence causes them to quit, whereas the very first incongruence is completely benign to us such that we don't even notice it as we march toward the entertainment or service we want.
- zippy786 10y agoWelcome to the age where people only think about writing software and releasing fast, and frameworks allowing to do just that. Then you see people trying to solve problems like N+1 query. I look 10 years back where there were not many frameworks and you would laugh if you talked about resolving N+1. Everyone tried to touch DB once and fetch everything in 1 query. It seems many people are doing things when they don't know how the underlying technology is working. This is bound to happen. And many new devs are picking up on bad practices and think they know too much..quite depressing actually.
- keefe 10y agoHow often did the Model T break down compared to the cars of today? (hopefully the stats backup that conceptual point) Mistaks happen all the time. My great grandfather lost three fingers in a printing press accident. That is this kind of accident: "I once switched a production SQL database to Simple recovery mode and Truncated an important table causing a ton of work for my colleagues." How does that even happen...
- d2p 10y agoLong story ;) I was setting up a staging database for some testing. Our DBs are big so we truncate a bunch of data we don't need on the staging server so we can have more DBs without wasting tens of GB per database. I ended up executing this against the wrong server. Needless to say, we've learned from this. Luckily nothing critical was lost, but I felt like a complete spanner :(
- shadesof 10y agoThe "Pro_Hacking" story made me laugh. In that case, I think the support person is just providing the body of a response template, where "Hello Pro_Hacking," is fixed (i.e., not something the support person can easily change).
- d2p 10y agoI wondered that; but the first several emails didn't start like that. It was only after I complained that wasn't my name it started, like they were taking the piss :(
- lazyjones 10y agoYou can really tell when web developers don't actually use the website they're building (especially contractors). Same for applications and for overly complex software where developers only use few features themselves (hence web browser bugs). Only very talented or disciplined people manage to write flawless code without stumbling over their own bugs first. A good, opinionated, statically typed language helps, IMHO (scripting languages are one of the reasons for crappy web pages).
- Falkon1313 10y agoDevelopers want to build quality stuff that they can be proud of. Time, budgets, marketing promises, and reality have a way of interfering with that. Rare is the job where you can tell your boss "We could release this now, and I could start on the next thing, but I'm not happy with the quality and would rather rework it." and they will just say "Ok, do that. Make it good. We'll tell all of our clients that they'll just have to wait for what we promised would be ready this month. They'll just have to deal with however that impacts them and their business." More layers = more bugs, both at the software level and the business level. And there are a lot more layers now. We're not just compiling raw ASM or C and handing it to the end-user anymore. Every couple of years we add more layers to both.
- stretchwithme 10y agoI got a bad one. I tried a few years back to log into flickr with my yahoo account. No matter what I tried, I kept getting this error: "Hello- new account signups are temporarily unavailable from this network address space used by your Internet Service Provider.' Flash forward 2 or 3 years. They've gotta have it fixed by now, right? Nope.
- emilburzo 10y agoThat looks more like an IP (range?) blacklist than a bug, doesn't it?
- stretchwithme 10y agoSure, it is. But I can log into the yahoo account with no problem. You'd think this many years after the acquisition they would have one source of truth on what should be blocked.
- stretchwithme 10y agoAnd I tried with my phone (wifi off) and went through the 2 step authentication. Then I get the same error. So, kind of doubting its an IP range blacklist thing.
- sievebrain 10y agoWithout a doubt that's an anti-abuse block that they forgot about. I've seen it happen. People add IP range blocks and then consider the problem solved and move on.
- a13n 10y agoHi! I work on an incredibly relevant project called Product Pains. https://productpains.com https://productpains.com Products aren't perfect. Whether they have frustrating bugs or are missing a useful feature, there's always room for improvement. The best way to help them improve is to give them feedback. Unfortunately most companies aren't the best at taking feedback. They either don't provide a way to give feedback or don't prioritize it enough in their roadmap. Which is why we created Product Pains, a new feedback channel for every mobile app and website. It works like so: - People can post feedback about any product. - People can also vote and comment on feedback. - Teams can subscribe to feedback about their products and mark feedback as "In Progress" or "Fixed". Voting is critical because teams get a clean, prioritized list of the issues that are most important to their users. Rather than having to manually aggregate individual app store reviews, emails, tweets, etc, they do virtually no work. It's so satisfying to see a Product Rep mark your feedback as "fixed" and know you had an impact on their product and everyone who uses it. I'd love to see your feedback on Product Pains.
- tremon 10y agoProduct pain #1: webpage renders as an empty page without javascript.
- raverbashing 10y agoThe real question is why a missing final newline should cause an abort on an install and this was not detected on package creation
- d2p 10y agoYeah; that got me too. Needless to say I won't be trying that again :)
- SixSigma 10y agoQuality can be defined as : does what the customers expect. If we can train them to accept crud, then we can call broken stuff quality.
- known 10y agoWriting software != Selling software
- api 10y agoEverything is a moving target. Write a web UI? Prepare to re-write it next year. Desktop is reasonably stable but now desktop is "dead" and mobile is the new thing. Mobile is a rapidly moving target and there's lots of platform fragmentation. Everyone knows next year or the year after mobile as we know it will now be "dead" and time to rewrite everything all over again. There will be VR and AR which will demand entirely new interface metaphors, totally new platforms, etc. I didn't even start in on the hip language of the week. Now we have to rewrite it all in Go, or Rust, or Swift, or ... If everything is changing this fast there's little incentive to perfect anything. It'll be obsolete next year. Just ship ship ship and then throw it away and ship again. Some of this churn really is related to progress but some of it isn't. I'm skeptical of whether all of it is really necessary.
- majewsky 10y ago> Desktop is reasonably stable Have you ever written desktop GUI programs? ;) Particularly on Linux, but I remember that when I was still writing .NET programs on Windows, it was a running gag that every major .NET release brought a completely new UI framework.
- jokoon 10y agoI will be called a statist, but I think the software industry is really lacking regulations and quality standards. I'm not a security guy, but I think most of the security flaws you find in software are caused by the lack of government approved security standards. I mean is there ISO stuff for software quality? And even if there is, I really don't think it's useful or that it tries hard enough. Just look at healthcare.gov, I'm sure things would have been going much more smoothly if there was ISO rules. Although it might be debatable if it's possible or wise to have such standards. But I would really appreciate it if important software like OS's had actual standards. It seems that most of the stuff talked about in this article are just mistakes allowed by a permissive practices.
- xj9 10y agoWe have that, it is called formal verification. However, the process is time consuming and therefore expensive. The issue is not permissive practices or lack of standards, but the cost associated with quality.
- hden 10y agoReminds me of a talk from Seth Godin: This is broken https://www.ted.com/talks/seth_godin_this_is_broken_1 https://www.ted.com/talks/seth_godin_this_is_broken_1
- alenmilk 10y agoI think this has been constant. There are more mediocre programmers than great programmers. Since we are exposed to a lot more software we experience more bugs. That means there are more programmers but it does not mean that the ration between good and mediocre programmers has changed.
- snarfy 10y agohttp://www.hanselman.com/blog/EverythingsBrokenAndNobodysUpset.aspx http://www.hanselman.com/blog/EverythingsBrokenAndNobodysUps...
- UweSchmidt 10y agoThat guy keeps finding an awful lot of errors, is what I thought while reading this article. It seems many users like myself don't even notice errors any more or have developed an instinct what software or services to stay away from, have low expectations from support (read a logfile?) and a general disdain for a lot of what is going on by using adblocker or avoiding switching services unless really necessary. So yea, we've given up mostly :)
- d2p 10y agoYeah, I don't know if I get more than my fair share, or if I just notice them more. Maybe it's good attention to detail =D
- codeulike 10y agoPerhaps it's not economical to produce totally bug free software.
- anonymous41 10y agoExpect this to get much worse as the profession is stripped of its remaining threads of prestige by the explosion of bootcamps and the supplanting of the terms "software developer/enginer/programmer" with "coder," one that equally well describes medical data entry clerks (no doubt the way many managers and spiteful journalists actually view us), if Google search results are an accurate representation. Why expect professionalism from people who aren't treated like professionals and shown the respect that would normally be their due?
- apercu 10y agoI agree, but we don;t always act like professionals either. People see development as a commodity because we treat ourselves and our product as a commodity. You don't see lawyers lining up to undercut each other - because that's a race to the bottom. We do see it in software development all the time.
- id122015 10y agothats why I trust Artificial Intelligence
- sickbeard 10y ago"Over the last few years it feels like the quality of software and services across the industry is falling rather than climbing. " hey guys, this guy just started working a couple of years ago..
- gerbilly 10y agoI think the "go fast and break things" mantra is causing programmers to doubt that stable, bug-free software can be built at all. At my last company i was an older developer in a mostly younger team. We were working on a full rewrite of our product. Version 2 was going to address all the hastily patched together misfeatures of version 1. Even with this admission that we had a quality problem, I could barely convince them to let me take time to design the new version. I was supposed to be the architect in charge of designing the new system, and I was constantly being rushed. I would tell them that if we think this through, we'll have a more coherent and stable product. It was like I was talking Swahili to them. On the few parts of the system where I was given enough time, I got very few bug reports. As for the rest, well I did what I could. It's no use being a martyr.
- atulatul 10y agoWhile it seems like developers don't care, as many comments mention it is about the trade-off between resources like money, time to ship. Recently, in our project architecture group meeting a senior architect said that the approach we have taken on our project is not architecturally 'pure' but it is 'pragmatic'.
- CM30 10y agoWell, if you really want an example of software developers 'giving up' and systems not working correctly, there's always the video game industry/world. Where in some cases, products actually do get released in a completely broken state and where bugs like these are endemic. But it's probably all due to one simple thing; people aren't encouraged to do things well, they're encouraged to get them done by the 'deadline' at all costs. Which often means writing hacky code, not testing edge cases (or sometimes, any cases), and then hoping anything that breaks can be fixed later. The latter is also why both web development and game development is arguably more messed up than any other software development, because patches are seen as fairly easy and inevitable. Why get it right the first time when it can be fixed 'post production'?
- meshr 10y agoI think that we need to implement a new layer between software and users to solve this problem (like antiviruses do this nowadays but they solve very narrow problem). It should be like Wikipedia so everyone can fix bugs. There should be also smth like Wikipedia bots that automatically fix bugs.