My gas car stinks, destroys the planet, needs yearly maintenance, crashes in everything the second I stop paying attention.
My house decays days after day. Floors need constant cleaning, wall have holes from small impacts, paint contains inedible fragments and disperse nocive gas.
Bees are building nests on my balcony and it’s definitely not what it was built for, nor where they should be.
How can we tolerate such a life ?
Software has a nasty habit of iterating on yesterday's ideas instead of rewriting for tomorrow. Not that there's anything wrong with that, it seems to be the path of least resistance thusfar.
The problem is that we do engage in so much "rewriting", instead of leveraging known good, quality code (or at least fully-fleshed out algos, etc.) in our "new, modern, elegant, and trendy" software edifices of crap.
To me, this may be the one really good thing to come of the cloud (as opposed to the re-mainframe-ication of IT): the "OS" of the 21st century, allowing plumbing together proven scalable and reliable cloud/network services to build better software. (Again, not a new idea, this was behind the "Unix Philosophy" of pipes, filters, and making each program do one thing well. Eventually, it will be in fashion to realize this really is a better way...)
We need smaller, better software, not the latest trendy languages, insanely complex platforms that no one understands, and toolchains of staggering complexity that produce crap code so bloated that it requires computers thousands of times faster than the Crays of the 1990s just to do ordinary desktop stuff. (Seriously, folks, the Raspberry Pi 4 on the next table is a rough match for the Cray we had in Houston when I worked for Chevron in the early 90s! Think about that, and then think about how little data you really need to deal with to do the job, vs what you're actually shuffling around.)
For instance books have been with us for centuries, and honestly most of them suck. Paper pages are thin and sometimes cut your finger (how many times did you get cut by an ebook ?), most are weak to liquids yet our world is filled with liquids everywhere, sometimes coming down from the sky. Updates are painful and costly and non scalable. Font sizes can’t be changed, you have to use an external device to deal with it.
Not saying there are perfect alternatives or that the tradeoffs don’t make sense. Just that we learned very early that books have these limitations and we’ll need to live with them to be a member of society. And we can agree all of these aspects could be and sometimes are fixed, but most people are just ok with books ‘sucking’ in those ways.
Although the weaknesses you cite seem like problems in search of a solution. No one ever expected books to have variable font size ... why would they?
Lastly let’s recall the book five hundred years ago is dramatically different from the book of today. For example your point about liquids is now in many ways resolved by the cheapness and ubiquity of books. 500 years ago, not so much.
Same for translations, with even books with dual languages side by side.
I find fascinating how the arrival of ebook readers made us rethink how we relate to books, and a lot of annoyances got surfaced only now because there was no comparison point before. My favorite is how you cannot ignore the length of a book while reading it: you can’t pretend not realizing there’s only a dozen pages left and the story must come to an end.
They can't be stolen back by the publisher or seller, can be trivially transformed into different formats, can take annotations, can be rebound with wear, and even if paper has it's faults, reading a page of a well maintained page in 1000 years is as easy as as the day it was written, even if significant swathes of technological backslide occur, and is only prone to the challenge created by human cultural evolution as opposed to loss of the processor or software required to decode/convert/display it.
An HDCP protected chunk of media may as well not exist in 1000 years.
Humans, as the makers of these systems, are part of that reality, which was not created by us. The reality is that we are great apes writing precise machine instructions with our general intelligence that was not purpose built for being that precise but selected for survival. Our cognitive machinery cannot exhaustively predict all the possibilities of failure of what we write, if we are working in teams, we have transfer most of our technical ideas still through natural language, in a combinatorially increasing manner as the team size increases etc. None of this is user hostile, it is just human fallibilities and limitations in play. And since we can't alter our cognitive capacity drastically, we can only make more machines against these (e.g. unittests) with their own limitations. I think the scale of what we have been achieving despite these limitations are just fantastic.
If anything users are becoming too egocentric, expecting the world to conform to their comfort, with a dash of construal level fallacy, underestimating from a mile away how easy it would be to write bug free programs with perfect designs in a real world, by real people, with real budgets etc.
Selection bias. You only hear from users who want new features. You rarely hear from users who don't want new features and just want software to stop being buggy and acting like a goddamn haunted house.
Most bugs are just annoying, consequences are not catastrophic if your favorite tuner app forgets your settings, your word processor messes up the formatting, your pdf reader crashes. You can recover with some frustration and wasted time. The perception of these being catastrophic failures shows the sense of entitlement users have because they are used to a certain smoothness in their experience and expect everything to go their way. This doesn’t match the underlying realities of the task; it is very easy to construe a sense of a working program in one’s mind but it is exponentially difficult to make the implementation actually bug free, usable and functional the way user wants.
So what? Users get upset when your crap doesn't work. Stop being flippant and pushing back. Pushing back is not your (our) job. Complaining how hard your job is not your job. Griping and moaning about irate users is also not your job. Delivering a product that does what is says it will do on the tin is actually your job. Believe it or not, you produce something people depend on!
Imagine your power steering goes out on left hand turns going north downhill. You take it into the mechanic and all you get is "That's just annoying, not catastrophic. You can recover with just some wasted time. It's exponentially more difficult to make the implementation actually bug free!"
Users quite rightly spot bullshit excuses. And we have none. Save the settings, fix the formatting, stop the crashing.
Please tell me more about my job internet stranger.
You’re making the same arguments without adding substance, just emotional rhetoric and unnecessary personalizing.
> Imagine your power steering goes out on left hand turns going north downhill.
Imagine that steering wheel stopped working depending on the highway you’re driving on (software & hardware platform). Why didn’t they test this on every single highway? Because that would be was combinatorially explosive.
I’m glad you’re making a physical world analogy. Comparable physical world projects have orders of magnitude less moving parts that need to interfit, and assembly gives immediate feedback whether they can fit. They also have orders of magnitude less inputs they are expected to operate on, which makes it easier to exhaustively test their function.
“Shut up and just make it work” might have been popularized by certain tech personas, but unless you have Steve Jobs levels of clout, pulling that stuff in most dev shops will quickly make you very unpopular whether you’re a IC, a manager or a product manager.
Users guffaw at this point. They do not understand why your stuff is so complicated and broken. They think you suck at your job. Both you in the collective sense (you engineers) and you in the personal sense. They start plotting ways to stop using your stuff because you are so frustrating to deal with.
> They also have orders of magnitude less inputs they are expected to operate on, which makes it easier to exhaustively test their function.
I think you still do not understand my point. Users fundamentally do not care about it. Everything, to them, is a problem of your creation and they'd quite rightly regard your long-winded explanations with complete skepticism. To you it always feels likes it's someone else's fault, but to users it sounds like complete BS. No matter how right you are about it being someone else's fault. Someone else's fault is the very definition of a lame excuse from their perspective. They are still getting nowhere and you are even more useless to them because you still can't fix anything and just confuse them and waste their time.
It's a very user-hostile attitude and makes for terrible customer relations. That attitude is also counter productive and helps no one. No wonder people hate tech.
“Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.”
Cars vary widely in their product quality. Houses vary widely in their product quality. Some things in life are inevitable facts of nature, but product quality is not. Quality is to a large extent determined by the time and care taken by the manufacturer.
I think blaming software for this is a little naive. Take a look at consumer reports for any modern fridge, stovetop/oven, washer/dryer, etc, and you will see complaints about fridge motors dying, touch panels going on the fritz, etc. -- none of which involve anything more than low level firmware.
If you want to put a tinfoil hat on, you can consider that it may be planned obsolescence, but to put the blame squarely on software, I would disagree with.
You don't need tin foil hat when facing the truth :).
Also, while things you mentioned aren't software-related, they're modern tech-related. Like, last 20 years. Fridge motors dry out because they're being made cheaper, with not enough lubricant put into them and no option of opening them up and pouring in the grease. Touch panels are going on the fritz because touch panels suck (that's often very much software), and they shouldn't be put on appliances in the first place. But it's cheaper, so they are.
Worth noting that there wasn't some big price reduction happening from solid appliances 20 years ago to crappy ones today. Price remained roughly fixed, but appliances started to suck more and more.
The big deal, at first, was really with memory. Your alarm clock could ring at the same time reliably. If you invested in a VCR, it could record at a programmed time. If you had a synthesizer it could store and recall exact preprogrammed patches. Pinball machines could downsize in weight and keep truly accurate scores instead of relying on tempermental relays and score reels. And so on, with every category of gadgets getting the computerization treatment. Although not everything succeeded there were lots of straightforward cost and quality improvements, with the main downside being that IC designs are less obviously repairable.
And then pretty much every year afterward, the push was towards cheaper with more software, with decreasing margins of real improvement, with the "smart" device representing an endpoint where the product is often price discounted because its networking capability lets it collect and sell data.
What comes to mind is the Rube Goldberg machines and their expression of a past era of exuberant invention, where physical machines were becoming increasingly intricate in ways not entirely practical. Our software is kind of like that.
Every other week I read about someone's entirely-too-roundabout way of doing X via an IoT device (requiring packets to probably circumnavigate the globe). Meanwhile I'm sitting here opening my garage door with a physically wired switch like a pleb.
I just checked my fridge, it has six buttons and an LCD panel, and in all my (4) years of home ownership, I haven't touched the buttons a single time.
First, the "solid appliances" weren't 20 years ago, but more like 25-30.
And though there wasn't a big price reduction in the interim:
- Refrigerators are more energy efficient.
- Refrigerators have larger internal volume for a given size.
Equivalent improvements have been made to other appliance types such as washers and dryers, but not stoves, as far as I know.
Those improvements are largely orthogonal to declining design and build quality, but it should be noted that there are at least some ways in which newer appliances have been getting better (that aren't just gimmicky features) while prices remained the same.
Conveniently, because macos is ass, it's nondeterministic whether the balance controls display in Sound Preferences to fix the balance issue. You just have to open and close the settings panel in the hopes that it will display.
I'm a software engineer and I don't even know where to begin to debug this idiocy.
Duolingo regularly freezes audio in chrome. Once this happens, no audio will play in chrome until you restart or kill "Utility: Audio Service" with the chrome task manager.
That blew my mind, my $20 Amazon-purchased Bluetooth earphones just work™ with no delay.
Things are getting more complicated, like you say, but they frequently aren’t getting enough better to justify the added complexity, especially given all the issues that come along with it.
books work really well until a pipe bursts in your attic. then you wake up and notice half your collection has been ruined (personal experience).
These turn of phrases make me wonder what we are really expecting from software.
I can’t imagine you never slapped the door of your fridge and it didn’t properly close. You gave it a nudge when you realized it, and it was fine, but it must have happened. And your whole food supply would be rotten if you didn’t notice in time.
Or do we monitor energy consumption close enough to realize it’s eating much more than what should be expected, the same way people complain about chrome eating too much memory ?
It can also get pretty noisy but I’d assume most people just think it’s normal.
And we put the blame on ourselves for a lot of issues (didn’t put the bottle at the right place, didn’t put the right amount of force to close, didn’t set the right temperature, forget to leave space around the fridge for ventilation etc.). But few users blame themselves for not having understood the software and worked around its weakness, we just call it broken.
That benavior is normal, but I’d take a lot of “my applicances just work” with a grain of salt.
But if the fridge was software it would randomly turn off and ruin all your food. The light would sometimes stay on, except when you open the door. It would require you to decline an update before you could get the milk out for breakfast. During an update the fridge and freezer components would switch places and then give tips about efficient ways you could manually move everything. If you bought a new fridge, part of it would locked shut until you paid more money, but the one in the store was already unlocked. And god forbid you lose your 2FA device used to setup the fridge -- it will destroy everything inside (including irreplaceable heirloom tomatoes) upon reset. It will then update to a subscription model where custom temperature settings will require a monthly fee or you'll be limited in the number of items you can store in the fridge or number of times you can open the door per day.
Fridges have been with us long enough in a ‘pay everything upfront’ setting that we‘d battle to the bitter end if we had to do micro-payments or aggressive planned obsolescence.
To your point, I lived in long stay apartments where you put coins to have the fridge and air conditioning work because they didn’t bother having pay as you leave metered use. That’s super rare (I hope ? I’d expect the same in some predatory situations towards low income people), but it’s to say that alternative exists.
Otherwise fridges randomly turning off is just a matter of time and/or build quality. Sooner or later it happens (or it stops turning on, which is arguably better, but you wouldn’t say it’s great)
Of course, people perceive that software sucks because it’s more complicated than people perceive. I forget what book said it, but an operating system has more separate components than an aircraft carrier and they’re more tightly coupled. (I’m not sure that’s true, but it conveys the idea.)
Another key difference is that in maintenance of your home, you have complete control. It's extremely easy to understand and act to improve or maintain it. When large software systems (like the IRS login) have problems, you are totally helpless.
Buy software the price of a house and you’ll be right to expect the same build level.
Then even at the price of your house you’ll have fun with mold growing inside the walls issues, soil that degrades in unexpected ways after heavy rain hits the hill you’re built on; rooms were fresh and bright enough on a hot summer day when you visited, but you realize overall orientation makes way darker and gloomy in winter that you expected. And you’ll pay for that house for your next 20 years.
Cars are the same at a lower level, and you see small issues creep up as you lower your budget (or go buy a fancy vintage italian car and you’re in for the wild ride).
> Another key difference is that in maintenance of your home, you have complete control.
In the good old days people had timers on their desk to remember to restart programs before they crash. Also saving stuff, making backups etc.
Of course online services are a different beast, but it’s more akin to fighting bureaucracy, which I see as a our society’s software in a way, with the shitty forms with not enough space for your name and other niceties.
I guess my point is that there is a difference between things sucking because of the laws of nature, and things sucking because of incompetence, laziness or indifference.
It's a lot of work to dig a hole large enough for a water heater, I wouldn't be surprised if something similar happened (I probably would have also checked inside the water heater since if you wanted to bury something and keep it dry one might consider a water heater tank as a possible container, not sure it actually works but it's a natural idea).
That's not a good example, nor is it parallel to the dynamic the article describes.
Your car stinks a lot less than cars did 10/30/50 years ago (emits less in the way of pollutants or CO2 per mile driven), is less likely to kill you in a crash involving the same size cars/velocities (despite weighing less!), needs less maintenance, lasts longer, and can notify you of potential collisions and sometimes avoid them.
It's probably only worse in terms of education needed to perform maintenance or nominal sticker price.
And yes, there are some ways in which hardware has improved. But the claim is that, judged by what you're using it for, most UX-apparent aspects have gotten worse. Is there a clear way this is wrong? If you look at most UX-apparent metrics, it hasn't. Latency from keystroke to character render has gotten worse. App start time has gotten worse. Lots of other latencies have gotten worse.
None of the nightmares described in the article were typical of software UX.
These would be arguably fine if the additional features you get were a necessary cost, but they're not.
I'm also not sure that devices have gotten more efficient in all respects. Each version of iOS gets more energy-intensive, for example.
Do you have sources for this? I mean, I'm not sure there aren't rose-tinted glasses here.
> These would be arguably fine if the additional features you get were a necessary cost, but they're not.
> Each version of iOS gets more energy-intensive, for example.
I would argue that multitasking, camera postprocessing, widgets, background app refresh, and others are all features worthy of more resource usage. Many of those are things you can choose not to use if you want to save power.
>I would argue that multitasking, camera postprocessing, widgets, background app refresh, and others are all features worthy of more resource usage. Many of those are things you can choose not to use if you want to save power.
For all those features turned off (before and after), the usage increases with each version.
To me, software is as if when I open a book to read it, then, the book suddenly snaps itself shut, hurting my fingers.
Thereafter, the book gets wings, tries to fly away, but bumps into my coffee mug on my desk, so coffee spills on the floor. Then the book does fly out through the closed window — smashing the glass into pieces — and gets larger and larger wings, flying higher and higher until it disappears into the blue sky.
It's as if software was alive, and does random things I don't always agree with.
But actually — the bees building nests on the balcony: That feels pretty close to misbehaving software. Or the cat, bringing in a snake from outdoors. Or a squirrel shewing through a power cable, shutting down a city.
No. A hardware product like a car has predictable wear and tear governed mainly by the laws of physics. The fact that I can no longer use my smart speaker because the manufacturer decided to stop supporting it, went out of business, or got bought is not at all the same. My car will still work through all of those things in the exact same way. It also doesn't throw up random dialogs (or whatever a physical equivalent would be) that stop the product from working until I interact with it. Not the same at all.
I see you never had a (EU) Ford.
Also, car companies have been tinkering with "electronic repossession" - remote kill switches due to nonpayment.
So ... get ready for other things to suck as we attach technology to them.
Thank you for bringing this point. The actual problem is not the software itself, but its proprietary nature and infinite hunt for profit without any limits. Consider free software instead and you will see that it is improving year by year, despite very slowly (which is logical, in the absence of infinite resources).
My Linux machine never forces me to reboot, shows any ads or suddenly changes its interface.
When is the last time you flipped a light switch, and suddenly your pool disappeared?
Have you ever had French doors appear in your dining room because of a "Windows Update" on Wednesday morning?
Have you ever had to wait for half an hour for your house to boot later on that same Wednesday?
When is the last time you closed a door, and were killed by a hailstorm of bowling balls?
At least with a light switch, you know it's very unlikely to cause structural issues, or plumbing issues, or drain your bank account. Computers are singularly horrible in the ways things can fail.
To take your second example - if I could then flip the light switch back, and the pool reappeared, then I'd be miffed but not particularly annoyed (assuming I was able to fix that obvious-bug either myself or with an update in a timely fashion). If the pool stayed gone, then yeah, I'd be pissed.
Of course, that whole argument goes out the window when the tech in question isn't controlled by you. Which is often the case.
Or the folks who perished because of badly programmed software interlocks on the THERAC-25 radiotherapy machine.
Just knowing or figuring out to flip that switch may be an insurmountable barrier depending on the circumstances when a failure state occurs. Especially when the implementation is intentionally hidden so as to facilitate continued market value extraction opportunities from the happy accident of information asymmetry.
Yet your examples hint at something more.
Those massive failures are by people not by tech. Mismanagement and incompetence and systems designed to obfuscate accountability.
Which happens aplenty in non tech fields.
When you turn on a switch... it's part of a circuit which is current limited, and in fact there are several limits on that current, all the way back to the source... each designed to protect a link in the chain. Each of those breakers limits the capability to source current further downstream.
When you run a task in any modern OS, it runs with the full privileges of the user id with which it was launched. This is like hooking a generating station directly up to your floor lamp in the living room with no breakers. If the process has a fault, there is nothing the Operating System will do to prevent it from being used to subvert other parts of the system, there is no limit to what it can do.
There are systems that require you to specify how many resources a given task is to be allowed to access. It turns out that such systems can be just as user friendly as the ones we're used to, but they do require things be re-written because the ground assumptions in the security model are different.
Capability Based Security (also known as "Multi-Level Security) was born out of a need to have both Sensitive and Secret information shared on a computer that scheduled Air Traffic during the Vietnam Conflict. (If I remember the situation correctly) The flights themselves were sensitive, and the locations of the enemy radar were top secret (because people risked their lives spying to find them).
It was extremely important that information could not leak, and solutions were found, and work!
About 10 years ago, when I learned about this, and considered the scope of work required to make it available in general purpose Operating Systems, I estimated it would take 15 years until the need for Capability Based Security would be realized, and another 5 more or so until it was ready. I think we're on track.... 2025 people will start adopting it, and 2030 it will be the defacto way things are done.
Genode is a long standing project to bring this new type of security to the masses... I'm still waiting until the point I get to play with it... and have been for a while.
Things will get better... these types of tools, along with "information hiding", getting rid of raw pointers and other clever but dangerous tricks will help as well.
[Edit: Re-arranged to clarify, and improve flow]
Point being, I don't see a shift in the direction of security above usability or ease of mentally modeling doing anything but worsening the problem. I could be wrong on that though, but the last 20 or so years of further encroachment by industry on User's perogative to configure their machine as they like doesn't inspire great confidence in me.
I can say I'm totally reading up on that though. I hadn't heard of it before, and it sounds interesting.
But, _usually_, it's easier to reverse some changed-data somewhere than it is to reverse an actual change-of-state in the physical world. At least, the inherent effort required to do so is less - but policies or obfuscation may make it harder.
As a kid we had a gas range, and it was pretty easy turn on a burner and just leave it open without lighting it. Or just start cooking something and forget about it, depending on your situation your house is gone.
Or the pool just disappeared for no reason and you couldn't get it back unless you sold your house and rebought it?
The current state of computer security.... is like building a fort, out of cases of C-4 explosive.
How so? Almost every program has bugs, many of which can be exploited remotely. It is effectively impossible NOT to have a zero-day exploitable hole in any given computer. Thus, every single computer can be exploited... and then used to attack more computers.... in a chain reaction.... like a fort built out of C-4.
If you're any sort of power user, you likely know that you can backspace by the word instead of the by the character, using Ctrl + BS on Linux or Cmd + BS on Mac.
In the Messages app, the shorcut to delete your _entire chat history_ is also Cmd + BS, and it works even if your caret is in the text box. So if you type five words and then Cmd + BS six times, you will be prompted to delete your entire chat history.
I do this almost every day. So far I've never compulsively hit return but I am dreading the day it happens.
Nowadays, I would consider this a problem with the browser. How often does one navigate backwards with the backspace key?
Recently, I had some doubts over whether or not I should clobber the native browser behaviour for "ctrl-s", but then I realized that nobody anywhere EVER saves a web page to disk... and if they really needed to, the browser toolbar is right there.
ctrl-s is probably fine to break though. even when it does "save" the page, it rarely does so in a useful way.
I don't use Windows other than for gaming, so I'm afraid I don't know if there are other shortcuts other than backspace.
Your alternative is handy. I wonder if it also works on Linux.
they may work on Linux in an attempt to support Mac users.
https://stackoverflow.com/questions/25275598/a-list-of-all-e...
The emacs-derived keybindings use Control on macOS, the Mac ones use Command
Do you know at all times what element has the focus? An error there can be of high consequence. (Even though browsers do make an effort to refill forms on page forward, it doesn't always work.)
It is a very bad shortcut, and there's always an alternative one anyway, because it's not always available.
Some people do it all the time. I was emailed a saved page the other day.
I was responsible for a single page web app, and the error detection code was stored in a <script> tag within the page, so I got plenty of “errors” logged for people trying to access saved pages.
Literally murdering children over here. I just knew somebody was going to come along and prove me wrong!
My dishwasher, which has only buttons to select what to do during the next wash cycle, has a firmware bug.
Sometimes when the door is closed, it will start one of the pumps. If I cycle "heated drying" on then off again, the pump will stop. I figured this out because, well, I've worked on firmware and I understand the how of how software can be stupid.
After I learned to recognize watchdog resets, I started seeing them more and more often, and became even more terrified of how bad software is.
Yup, sounds like my TV. It's not even one of the smart ones, I was careful to avoid those. But once every few days, it stops responding to the remote control when performing some action (opening the EPG, switching channels). I then have to wait about ten seconds for the display to go dark and the TV to "reboot" itself, so I can continue channel surfing.
So why do I tolerate bugs in software like that? Because I know I can fix them. And I also know I won't always. Small gods have handed me tools to remake the world as I would see fit and I do not use them. Are they at fault for not having made the world as I would prefer? Or am I at fault for not using the tools?
In any case, I've noticed a sort of dichotomy among users in their reaction to tools that fail. There are those who go "this tool sucks how can I do my work" and there are those who go "my work is what I want to do which tool can I use instead". The latter set get a lot more done. Once observing this I have attempted to modify my behaviour to be like the latter and have effectively become better.
I can't wrap my head around this, could you explain further?
They don't have to be engineers. They'll pay $100 / mo to solve it or hire a guy on Upwork to solve it or cobble something together on Zapier + Airtable. The thing is, the tool is insignificant. They don't really spend an appreciable amount of time on complaining about it because it's faster to stop using it.
But they didn't give you the only tool you really needed: Time.
Having meaningful access to the source is very important, but its value is limited because even small improvements often take a large amount of time especially to code you're unfamiliar with. Once you've made that improvement, maintaining it (or up-streaming it so someone else might maintain it) can take a tremendous amount of time.
What we've got here is a question of cost and choice. If my choices are all equally bad, IE: vendor one is not any worse than vendor two, then inertia or cost become determining factors. In terms of consumer software - consumers have been conditioned to have low expectations, and these costs are further reduced because prices are so often free or very low-cost. In regards to commercial-focused packages - again, so often we put up with it because the systems we're using are so complicated and specialized that the pool of options are limited and/or the domain is so complicated that problems are inevitable.
So long as this is the landscape, few software producers have incentives to do the things necessary to improve, and/or believe they can spread the cost of improvement over a long period, IE: don't make the investment until the pain is too great.
Deaths, a lot of deaths.
Software Engineering needs a PE type licensure and a union. We need a way to stand together to advocate for better working conditions, practices, and tools.
Really not sure what's the way out of this corner that we've all collectively painted ourselves into.
I coined it watching the robotic soda vending machine crash and reboot frequently.
Everyone is in such an irrational hurry, it's been built into the "culture" such that rushing and making messes is acceptable. And by extension, customers expect things to be shit so you don't get in much trouble for doing it.
It's a feedback loop that only stops if companies (and individual programmers) start taking pride in craft > careless speed and money like they used to do back in the 50s/60s.
Most programmers, and many companies, want to produce something of quality, well crafted.
The drive for low quality kibble comes directly from consumers, and the inability/cost of judging value.
A consumer can’t be expected to be a UI expert, and a slightly better UI might not drive sales because other factors are more important. I try to buy hardware with good UI, but I often make compromises for other factors.
Thankfully that can be disabled, but I find it to be one of the most infuriating 'features' of Firefox. If it weren't something that could be turned off, it would be a deal killer all by itself.
http://kb.mozillazine.org/Browser.backspace_action
Maybe it was copied from IE to keep "closer to the platform"?
My FreeNAS, Arch Linux and my Android phone as well.
I think, we get paid because we are building new stuff and have to maintain shitty stuff. If my job would literaly just desigining it high level, clicking it together and then it works, no one would need me.
Yes its frustrating sometimes.
I would like to cure cancer instead of debugging why this update broke our system.
I’ve microwaved a burrito by mashing the start button hundreds of times.
If I design a bracket for a TV mount, do you blame the bracket when someone hangs a 3000 kg bookcase on it?
You’re expect software to be perfect, yet ignore the massive limits everything in the world has.
Not saying there aren’t quality issues with software. I’m saying software development is really difficult.
You mean where 99 is greater than 100?