I previously wrote about how various shopping sites are being very hostile to their customer base [https://news.ycombinator.com/item?id=29384866]. Why does a 32kb text article need 10MB of battery draining heavy javascript to just work? But this is more then just shopping sites as so many websites, browsers, programs, and even OS's are making decisions that are hostile to their users. And it's coming from everywhere. What used to be controversial (e.g. dark patterns), is now normal. And if the user complains - the answers from the developers is "we're sorry, just live with it?"
I could write an essay on this but I'll focus on a company which publicly represent this hostility - Blizzard. Blizzard is an entertainment company in an industry which has a tremendous amount of competition. And many Blizzard games are paid for directly from the user's pockets so the customers are paying. But yet, even with this, the contempt the developers have towards their users is immense. While I'm not a Blizzard fan but listening to people who are - they are not happy. Yet at the same time, even with this angry customer base, the developers kept saying they "knew best" demanding the customers do things their until the ceiling broke and the mass exodus we know today happened. There's no apology, no sympathy - nothing - just complete hostility against their users.
But of course, this is not just a story about Blizzard. It's Apple, Google, Firefox, Reddit, Facebook, Twitter, Microsoft, etc. Just look at Microsoft and their heavy use of dark patterns to force Windows 10/11 options (another essay unto itself). And so many companies gleefully advertising "it's your choice" where "your choice" is slowly "depreciated" until "your choice" is no longer in the deeply hidden options menu.
What is it about this field that attracts people that are so adamant, so demanding that their users, their customers do it "their way or the highway"? People who seemly absolutely refuse to even acknowledge the burdens they force upon their users even when their users are saying, very loudly, "I don't want this."
In the past, I used software because I wanted to use it. These days, I use software, not because I want to, but because I have to.
(To be fair, it might not be the individual developers who is hostile but something in the decision making process is causing entire company to be hostile to their users.)
One of my least favorite days are when we announce new features. Nobody takes a minute to say thank you, instead they want to submit new requests or demand updates on something previously submitted.
I also think, users do not understand the complexities involved. They see software every where that does so much these days for little to no cost and they just demand and think it can be done in a minute.
Sure we get paid well, and it's not a physically demanding field. But it is a mentally demanding job. We are often under appreciated. And then the users blame you for everything. It just gets to you after a while and becomes a self fulfilling prophecy of the angry old developer.
I love my job, I love making software that solves real world problems. I just don't appreciate users telling me how my life's work is worthless because it doesn't have this one feature only that person seems to need and I should be able to add it in a minute if I was good at my job.
Sorry for the rant.
The other aspect though is that devs don’t test in bad conditions. Most modern dev is done on a top of the line MacBook on a fiber connection. With that kind of setup you get spoiled.
It’s been a constant annoyance for me as well, and is part of the reason why I challenged myself to write my latest SPA in vanilla js rather than using a framework. Is it harder to do? Absolutely. But my full SPA is around 300kb of js. Overall the development work to do this took around 2x the time it’d have taken me to use a framework and other plugins to get the work done - most teams aren’t comfortable with that tradeoff.
You talk about websites which use 10MB of JS to display a 32KB article. I think what we have seen historically is that most software developers will work only as hard as necessary to make their products acceptably performant on their testing hardware. When computers were slow, people worked harder to optimize the software. When the machines got fast, people weren't forced to optimize as much, so they didn't.
Do I like that? No. Is it understandable (and perhaps even predictable) that things will go that way? Yes.
You also mention the proliferation of dark patterns in various online services and even products like MS Windows. Well, one thing that has become clear is that many consumers really like products which are free, and which they can obtain with little effort. If an online service employs 'dark patterns' to get what they want out of their users, but it is free, the users might actually prefer that to a paid service. So while it is regrettable, it's not strange or surprising that such things are happening.
I suspect that the software field does not, as you suggest, "attract people who are adamant that their customers do it their way". Probably these developments which you speak of are just a combination of human nature playing out as it always does, plus random events, plus the ongoing advancement of technology which makes it possible for people to do (sometimes undesirable) things which they would have done earlier if they could, but they couldn't until now.
I would love to hear evidence to the contrary, however.
OK so this is a question I'm arguably qualified to talk about -- I focus on usability and promoting it within a large tech company.
The problem that I see a lot is that engineers are not well-versed in what I will call 'imaginative empathy'[1], which, as I define it, is the ability to creatively conceive of end-user needs by reflecting at length on who those people are, what they desire, and what they expect, _even when the end user is a very different kind of person than the developer_, with different strengths, weaknesses, and expectations.
I'm at this moment setting up an internal programme to try to beef up imaginative empathy among engineers. My premise is that imaginative empathy is actually not hard to train for -- people in helping professions (counsellors, therapists, social workers) get pretty good at it, as do novelists; but, like any muscle, it can atrophy, and it is emphatically not something that is tested for in most interviews. Therefore, since it is not selected for, it is often not in abundance on any particular engineering team.
A book that inspired me in this approach is _Anthro-vision_, by Gillian Tett, which is a gift to anyone who makes anything for another human being, and wants them to enjoy it.
1. Empathy on its own isn't enough -- people tend to empathize most with people who are most like them. Sometimes this is enough on its own -- if you're a neovim obsessive (like me :D) and you're making an extension for other neovim obsessives, you can run on just regular empathy. But most of the code I write is not written for 'people like me', it's written for people in the general case, and that means a cognitive stretch. Imagining the Other and attempting to be of service to them requires imagination. I'm inspired in this observation by Buddhist 'metta' practice, and the ways in which the Buddhist conception of 'compassion' differs markedly from what is often called empathy by contemporary professional psychologists.
The web is a fucking shit hole of surveillance, advertising, and megabytes of JavaScript to display a few paragraphs of text. Instead of the Great Equalizer we were promised, we got a dystopia that serves only to enrich a handful of billionaire CEOs who will go on to fuck the world over for decades, the way the Koch brothers have, with their abhorrent right-wing politics.
Phones and computers are getting faster every year but they feel worse to use because the bloated software stacks are laggy and not optimized for responsiveness. And they all track you except on Linux, which is great unless you want acceptable trackpad functionality and battery life.
Everything sucks and from my perspective, a bunch of bay area people are getting paid a fortune to make it suck more.
But devs have a lot less authority in the modern corporate bureaucracy, and what I think of as "the product people" are the source of not so much contempt, but just a lack of interest in practical, useful outcomes. Product "vision" is harder than it looks, and in my mind, that product vision is the singular most important job in the whole dang world. When vision succeeds, it's often coming from customer-obsessed, fully committed founder types. When it fails, it's often coming from bureaucratic functionaries who care about titles and politics and other insider nonsense. Add in a dismissive wave of the hand to devs who complain "But this doesn't make any sense!" and you've got a recipe for slow death.
On a corporate level, I dunno. The total and utter contempt with with companies like eBay treat their users is mind-blowing. And others are equally as bad. I suppose it's an arrogance that comes with having such a huge market share or dominant position that you don't really need to care about upsetting individuals, or even hundreds or thousands of individuals at a time.
Most of your examples are more about companies using software to control customers and shift to extracting value rather than providing value though, not really about developer hostility.
They realise they can do whatever they want and get away with it. So they keep pushing the boundary.
So where’s the money?
I think the mentality that the customer is always right is honestly bullshit and companies sometimes need to tell the customer to shut up or ignore them because no matter what some people will never be satisfied.
For example, for Blizzard management it is easy to release half finished, buggy Warcraft 3 reforged because they can make money. Microsoft has no problem in putting ads in your start menu in OS that you paid for. Firefox can fire developers working on browser innovation (servo) and pay more to CEO. Apple and Intel can manufacture in almost slave labor conditions even having billions in theirs accounts because that what make them more money.
That is few problems
- most users do not understand software or computers
- building software is hard
- users do not care enough two boycott companies
- unrestricted capitalism create conditions for abuse
Developers are arseholes because they are "mighty wizards of computers", but in reality they arrogant codemonkeys who didn't discern the difference between a computer and monitor two years ago, before they took "learn PHP in 10 days and shovel the money" course.
PM are arseholes because they are measured on "innovations", not on "made 10 years old code/feature which is used by 0.5% of users is refactored and now works fine even on a $100 notebook from Walmart".
Business people are arseholes because the only thing they care is money. Sell users data for 3% revenue increase? Sure! Add obnoxious ads everywhere for 5% revenue increase? ABSOLUTELY! Hire another two developers to at least attempt to solve 1400+ known problems with the product? NO FUCKING WAY, IT COSTS MONEY!
Users are arseholes because... because they are, list is too long and others commenters would happily fill out on that part.
Everyone is hostile to everyone, but in case of web/IT products the entry bar is now lower than "You Must Be This Tall to Ride" sign in an amusement park, which allowed literally millions of people to participate in this "show".
In the example of Blizzard, and WoW in particular, my (probably oversimplified and/or naive) guess is that there were two objectives that alienated existing userbase: simplifying the game to attract new (and younger) audience and to make it easier to sell in China.
I was thinking about this the other day: Does anyone else remember when sites made the "log in" form more prominent than the "sign up" form? That made perfect sense, because there are more returning users to your website than new users, and they'll need to log in right away. But that was such a long time ago - now developers have learned to practically hide the login page to make the signup more prominent and optimize your new user funnel. Often the latter is the only form on the homepage, and the former is a tiny link to click. It still annoys me.
Except the "these days" part.
Yes, it is getting worse, but having started back in the 1980s, there always seemed to be a developer attitude hostile to the users, and not merely being (mostly legitimately) fed up with having to deal with "pebcac" and "1D10T" errors, but actively designing to manipulate the user.
I also have to ask how much of it is the tendency for organizations as they get larger to almost actively select for the dark triad personality traits in mgt & executives.
Solution? IDK, mine has been to stay independent as possible. Probably leave a lot of money on the table, but retain more sanity.
Personally, all I would let users have is spreadsheets and email.
Unless users can learn macro and python, I'm not going to interact with them.
People need to learn how to use a computer. Seriously.
The best solution would be a deeper collaboration between product and dev, but it's difficult to make it work since both profiles have different drives and goals.
Developers have no clue how the people actually do. They just smugly think the user is using it wrong
It's like picture of a gate leading to a normal walkway and a foot trail has been carved around the swinging gate
A) there's a LOT more people using computers now than ever before, and
B) the entry point into "computing" has lowered, which means that users come to a piece of software with a wide range of expectations of both what it should do, and how it should do it, and
C) the complexity matrix of the form factors that people expect to use software has also grown in size, and
D) software grows in complexity in response to the needs of the users (B) and the devices it runs on (C)
E) tack onto the above is that you really have to handle N+10 things nowadays to have a proper piece of software (ie. i10n, security, UX, performance, etc.)
It's a bit of a cop out to just blame complexity, but it's almost impossible to have a small team write a (sufficiently complicated) program that does all the above, but companies want single-software solutions (runs on everything for everyone from new users to veterans) and users also expect it. So as a result, developers are overworked, users complain the software doesn't do what they expect (often for good reasons), and devs often end up resenting users because despite their best intentions, it's simply not possible (a lot of the time) to make something that satisfies everyone.
That's it thats the end of the story.
In 15 years you'll have shed your PFY and will know and hate you PHB. Being a BoFH isn't bad.
Either you'll own the code or the code will own you. Choose wisely.