HACKER Q&A
📣 mirekrusin

What is your F/E vs B/E bugs ratio?


I'm working on a project where majority of bugs come from F/E (around 99% vs 1%).

Is this normal/common or not at all?


  👤 ant1oz Accepted Answer ✓
It is normal. Frontend code is much harder to test than backend. It also has a visual aspect that backend doesn't have. Your API server doesn't care about cross browser specs, or screen resolution. So when a new iPad comes in, you don't have a new dozen of bugs. Also frontend lacks developers, so it happens that there are plenty of intermediate developers who have a junior level, leading to spaghetti code, and unmaintainable code, and poor management pushing unrealistic deadlines.

👤 muzani
99% is a little extreme. Probably closer to 75/25.

BE bugs tend to be less, but also higher priority. They're more likely to cost money or break things. And so manpower is often as many as all the various FE engineers combined.

Normally double the Android bugs as iOS. Samsung and Xiaomi are primary suspects. Samsung doesn't play nice with hardware while Xiaomi messes with display. Also schizophrenic Android stuff - things always becoming deprecated, some hack that was necessary in an older version suddenly doesn't work in recent versions, permissions and stuff getting stricter.

iOS has its own set of bugs, most of ours coming from SwiftUI.

Web bugs are very frequent and usually unfixable. All over the place - memory management, cached data, tons of SPA related stuff. If you made a hybrid app then you've also stacked on all the weird bugs like back button management and camera access. Every bug that happens to native because of an OS policy change, you have to fix on two layers on hybrid.

If you're counting by weight/story points, then maybe yeah, 99% makes sense on a hybrid app.


👤 isbvhodnvemrwvn
In most of companies I worked for, backend had a more mature and robust testing approach than frontend. It also had a fair bit less churn or experiments which vastly increased complexity for the frontends.

👤 DamonHD
I have fixed (and written!) plenty of bugs but I don't recognise that terminology. Could you expand please?