This is somewhat provoking title, but I can't get my head around it: Amazon, Apple, Google, Microsoft et. al. claim to hire only tech's top talent. They often still put some mediocre to terrible frontends out there.
- Apple TV+ on the web: https://tv.apple.com/ is not a great experience. I get that Apple wants to people to use an Apple TV, iPad, iPhone to watch Apple TV+. So it might be an intentionally sub-par experience in this case, I guess?
- Official Reddit app: I'm actually fine with the Reddit app and use it since Apollo was killed. It's still way less polished than Apollo and it's hard to grasp why that must be. It's not even about the ads: For example opening threads with a video embedded is a terrible UX (just try it out). The settings are a mess, I turned off all activity notifications and still receive some (in-app) - and can't figure out why.
- Official Youtube app: It's quite buggy. For example, the "use device theme settings" on my iPhone 15 does not work (it works on my iPad though!). When browsing through shorts (I know, I know), the audio from the previous short often remains, so one sees the current short's video with previous short's audio track - one needs to switch back and forth to fix that.
- Github: Not sure if it's just me, but I find browsing Github extremely slow. I have no benchmarks, but subjectively browsing through repos the latency seems quit high. Given how obsessed frontend devs are with loading/rendering times (SSR, Million.js, etc.) this doesn't appear to be right.
In most cases there's also no way to officially report bugs.
On the other hand there are so many indie devs - who would probably have a hard time getting hired by FAANG or even an interview - who create far superior user experiences. It's also fairly easy to report bugs and in my experience they get fixed.
My question is: Is it a lack of developer skill on the FAANG site? Is user experience not a priority at all?
I wonder: Wouldn't tech companies actually benefit from supporting third party clients? They might even force third party clients to put ads into their apps. Maybe even force tracking and provide tracking SDKs? I know tech companies won't give up on ads & collecting data. But at the very least put a clean, polished and stable app out there or allow talented indies to do so.
- You have the usual BigCo problems in software with prioritization and incentives and pressure to deliver new features
- Front-end work is less mathematically complex and is generally undervalued by large companies that rely on complexity as a metric for difficulty/value
- When you use a piece of software all day for months/years, you learn the happy path to get things done and you forget all the rough edges because "it works fine for me"
- It requires a lot of detailed thinking about how other people perceive your work which is not something that software developers tend to excel at
- The user story which led to the UI/UX is not explicit to the user and the ways that users will try to use your UI are almost infinite
- Writing tests for front-end code has historically been more difficult
- There are a large variety of devices out there and testing on them all is time-consuming and painful
- Software is hard. People are hard. Combining them is harder.
- Small companies have a small surface area (people x devices x products) to cover and thus get more focused attention from their devs. Large companies have team reorgs and turnovers and many people who might have different priorities working on the same product
- Large companies know that people will still use their products even if the UX is worse because breaking out of the Apple/Google/Microsoft ecosystem requires significant tradeoffs
- Bug reports from the general public are given lower weight at big companies because of scale. When you have 10 bug reports to sort through it's not that hard to prioritize and ignore, not to mention that early adopters and small software users are more likely to be good bug reporters. When you have 10,000 bugs of which 9,000 of them are filed by people who don't know how to explain the problem: "my X doesn't Y", you become numb to new bugs unless they are show-stoppers, which many UX bugs are not.