Apps are irrelevant. Most of the tasks you perform in a native mobile app can be performed in a browser web app as well. We don’t need to download your stupid app because the browser is well suited as a replacement. One thing the apps do provide is an opportunity to gather data and serve ads. It serves the benefit of tech giants, but not end-users.
The good developer takes time over their software. They write test cases, make an effort to break down the complexity of the problem into sub-tasks, and think deeply about the issue at hand. However, there are also incompetent hacks who lack the drive or the talent to archive anything worthwhile. As a user of the app, you can’t tell which one is well written on the app store.
If the developer writes craps, it rarely comes back to bite them. Maybe the odd of a bad review on the app store. If they make a serious mistake, they may get blamed by their manager. But mostly, however, nothing will happen at all. The bug may be fixed by some hacks which create other bugs. You are not gonna discover then unless you perform a full regression test.
Bad software is not solely the fault of bad developers. The problem is that these most brilliant people have accidentally trapped in an industry that makes less and less sense. Many of these clever developers don’t have the time to clarify requirements or well planning. More importantly, they don’t have the time to think and space to well engineering complicated solutions. Pressure on software engineers has risen exponentially since the launch of the new iPhone. Many vendors require their developers to deliver a dozen features a day — all in pursuit of app downloads. Maintain a high standard is impossible.
It’s already difficult to write something well tested about a single feature and handle all the different states. Not to mentioned they are constantly distracted by slack messages and status report meeting. Yet this is precisely the mission impossible demanded of a software engineer. Generally, unless the company is funded by investors, employing experienced full-stack engineer is far too expensive, so tech debts remain high.
Users rarely notice this. Developers suffered from spaghetti codes and unmanageable amount of bugs. Software engineers as a result, becoming depressed or cynical, or both at once. No wonder many of my friends switch sides and take a job in project management — less stress, better pay, regular hours. They’re no longer trying to change the world by delivering better software.
We can’t accuse companies of having screw up software engineering culture. It was the internet giants, Apple, Google, Facebook and Amazon, decided how we do business. These giants are more successful as we’re spending more time on their platform. Our behaviour as a user has led to a race to the bottom. The only way to avoid losing the race is not to take part. This is my recommendation to you as a user — and especially to my software engineer friends. All self-respecting developers should steer clear of engineering, we take pride in our crafted work, not a coding monkey.
Originally published at https://victorleungtw.com.