Just a few of my opinions regarding why there’s so much low-quality software:
1. No culture of craftsmanship in software outside of niches such as native Mac software development. “Move fast and break things” was supposed to mean embracing iterative development practices and not being afraid to make changes when necessary, but this philosophy has been stripped of its original context, which has resulted in recklessness.
2. Unrealistic deadlines that favor slapdash, “get it out the door as fast as possible” solutions instead of taking the time to deliver quality software.
3. UI/UX designs that serve business priorities over users’ needs. Egregious examples include dark patterns and annoying ads. Less egregious examples include design for branding instead of design based on the platform’s UI guidelines. Unfortunately the Web lacks UI guidelines, and so each website has its own UI/UX.
4. What’s the incentive for quality? Market dynamics such as network effects and lock-in that prevent competition from gaining a foothold or even from existing in the first place. Why would a company improve its software if people are required to use that product and there are no alternatives? A lot of people, for example, complain about Microsoft Teams, but if their job requires it, they can’t use an alternative platform.
Some of my favorite customer-facing software includes The Omni Group’s Mac software such as OmniGraffle and OmniOutliner, ClarisWorks, the classic Mac OS (less for its underpinnings, which weren’t the most reliable, and more for its interface), Mac OS X (especially the Tiger, Leopard, and Snow Leopard era), and late 1990s and early 2000s Microsoft software (Windows 2000, Office 97 and 2000, Visual Studio 6, Visio).