For a long while I have noticed many skilled computer users complaining about the deficiencies of software. Modern software seems to be more frustrating to use. Related to the complaints are some notable observations.
Computers are complex tools. All humans are creatures of limited knowledge. Many users have a false expectation that software should “just work.” Many users do not understand that building software is difficult. Designing robust error-free software is hard.
Similarly, developers cannot and never will be able to anticipate all needs and wants of users. Because the complexity is so deep, more often than not when a new feature is added an existing feature is broken in some manner.
Sadly, serious testing has been saddled on users. Seems that quality control no longer is a priority. The new development model seems to be to let users find bugs. “Ship now, fix later.”
Complexity increases because so much software these days is designed with an expectation of running while online. Networking is complicated. A significant number of users do not have fast internet connections. What succeeds in a test lab with 1 or 10 Gbps LAN connections stutters and fails in the real world of single digit Mbps connection speeds and shaky wireless connections.
There is another notable observation. Often modern software fails to satisfy because of the built-in data mining, tracking, and so-called telemetry. That overhead adds unnecessary complexity.