- Users prioritizing new features over rock solid performance hurt us badly. Basically, we as customers are our own worst enemy.
- Software done as distributed services when it doesn't need to be. Each tier added to a distributed architecture is a point of failure. And each tier needs to be supported in vendor upgrades and the like for server software, VM software, security patches, etc.
- Reduced emphasis on protocols. When my team started to develop services for the first time we decided to use JSON as the lingua franca for communicating between them. But we didn't think about developing protocols using JSON. Now it's a shit show of different messaging formats in JSON. So we don't have any standard components for parsing and forming messages.
- Here's a particular pain point with me. I'm sick of creating an account for every damned service I use. When I pull up an app to order takeout from a restaurant, I shouldn't need an account. All too often, I'm required to create one. I have accounts all over the web now and I'm sure I don't remember half of them. Of course, having lots of accounts requires lots of passwords to manage. So I have a password manager which works mostly until I'm in a hurry and then it doesn't.
I don't see a way out of our current predicament. But I do hear an undercurrent of "I want to simplify my life" growing. I believe that tech is taking too much cognitive effort from non-tech people.