Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
The world at large is consumed by software. We are surrounded by websites and apps used by billions of users everyday. Layman feels infinitely empowered by the sheer amount of photos, jokes and brags he can share with his friends and colleaguesâââusing Facebook, WhatsApp, LinkedIn, or iCloud. Layman never thinks of beating Facebook, Youtube or Apple.
But what about a programmer? Deep down, what he / she feels can be described in one word:Â Envy.
âWhy didnât it occur to me first?â
- Competent Programmer with big dream
The good news is here:
Every big tech product is full of trivial bugs nowadays. Despite its growth, or precisely because of it. Itâs not that they grew large because of those bugs. Itâs the other way around.
This isnât about data breach, stolen credit cards or infamous buyer/supplier disputes.
This is about their core software promise to billions of its users.
Facebook has bugs, and truckloads of them:
Facebook mobile app has grown haywire in its updates past its user data breach. Since considerable part of its mobile app layout is web-delivered (via React)âââthe features are delivered without users having to update their apps. This, combined with rapid feature development (marketplace, messenger ads, video monetization), has opened floodgates to countless unexpected behaviors:
- Availability of Share button is quite volatile. You could see it, or not see it. And this has nothing to do with post ownership, or group policies. You could see share button in a group in the morning, and cannot see it in the eveningâââin the same device.
- While you close a link page opened from within a facebook app post, if you are late enough, you wonât be able to see the source that got you to that link. It will be buried forever. This is bad, because you loose an opportunity to report the post as spam / fake after carefully reviewing the link content. Facebook is spending millions for human and AI moderation, while missing out on user-moderation that is valuable and freely available.
- What you saw on facebook is never accessible to you again in a guaranteed manner, unless you save it. Only facebook owns it.
- Searching posts is a nightmare on facebook already. It was designed to be searchable for people onlyââânever for content.
- Sometimes you could share as yourself, sometimes as a Page you created, and sometimes as both. This option too is quite volatile and has no correlation with the content or content ownership permissions.
- App and website behaves very differently for same posts, and website is often better, despite the fact that audience is mostly concentrated on mobile.
- iOS and Android app has different behavior for same functionality despite being on the same release cycle.
- Groups are at the mercy of moderators, and idleness of moderators results in massively idle groups even if they contain millions of users. âBe there or leave itâ isnât an answer here; it is against democratization by Internet.
- Messenger app shows crazy unread message badge for no reason whatsoever.
Appleâs portals have bugsâââhuge ones:
Apple, the first 1 trillion megalith, mightier than 123 unicorns, never misses to boast about its security and data privacy. But in the race to go to that extra mile, it proves to be extraneously painful for its users.
- Many a times, it is almost impossible to sign out of your iCloud from iPhone. Sign out requires you to enter your password (!)âââand even after entering one, you will be lucky to be successful.
- App discovery on app store is screwed foreverâââand on top of it, Apple is shameless about it.
- Direct title search for an unknown app gives you a suggestion popup, but when you click it, it results in clones, fakes and keyword thief entriesâââif ever it works.
- Appleâs own app submission workflow is too complex, is ever changing, and quite counter-intuitive to understand. Many programmers stopped being Apple developers precisely because of Provisioning Profile hell.
- In fact, Appleâs development portal is quite complex ecosystem, and itâs legally impossible to distribute apps for testing within your teams, contrary to Android where this is quite simpleâââjust share the IPA file like you share your photos.
- This, in light of the fact that every Apple developer is a customer: he / she has to pay Apple at least $99/Year to be able to keep his / her on App store, against Googleâs one time $25 for Android Play store.
- Beneath its white royal mansion of mainstream app store lies the dark underworld of enterprise app distributionâââa place where every app submission guideline can be taken for a ride, and world knows about it now.
LinkedIn has bugs, but not such noticeable ones:
Because of its unique positioning as a professional network, LinkedIn had relatively lesser share of usersâ attention span. As a result, they are quite clean when it comes to fake news, fake profiles, and data privacy breaches. But they got their fair share of bugs:
- While navigating to and from the My connections page, number of connections is not always refreshed correctly. Recently added / removed connections fail to reflect on Number of connections.
- There is no defined path of accessing Follower count. Note that this is different from Connections. You reach your followers list through some random notification of a following / unfollowing, but not otherwise. Not directly.
- Notification about posts and articles often leads you to groups and profiles, but not to the content it cites i.e. post / article. This is against user expectation, and you donât need to be a product manager to catch that.
Netflix and Youtube have bugs:
- Hailed for its recommendation system, Netflix really does poor job with content. Searches produce suggestions that donât really exist in their streaming database. The classification stills clings to IMDB style drama, crime, horror and mystery categoriesâââsomething so broad that even millennials have difficulty connecting to it.
- Netflix TV app search results do not show movie description. One has to go inside to watch it just to view the description. This kind of software simply tells the company is more focused on paying millions to studios for content rather than making a hundred dollar worth bug fix inside its apps.
- Youtube, though proportionally quite larger in terms of content, is worse. And we arenât talking about streaming of violence. Less said is better.
But isnât facebook too big to beat with such bugs?
Because while robustness & correctness isnât valued enough today, there is absolute guarantee it will be valued tomorrow. If you as a tiny programmer care about obvious bugs within the program you write, you can dream of beating facebook one day. All you need is to hit their coolness quotient.
And building correct and robust software is possible. Because itâs executed by machines, not humans. If only humans intend to write it.
Two decades ago, software used to be costly and time-consuming affair, but it used to be robust. With all perils of waterfall development model, Yahoo messenger never showed incorrect number of users in a chat room.
A Windows NT machine always showed correct number of clients connected. When it couldnât, an ugly alert told us something was wrong, and it was time to restart things.
Through friction and seemingly robot-like messaging, it (old tech) encouraged users to evolve with its terminology, instead of making them dumber through frictionless (graceful?) exit.
Software Vetarans
There were & are bugs, yes. A Windows OS update takes 2 hours, but forever shows 10 minutes remaining. Itâs a bug, but it is not something that affects the intention of the programâââOS update. It rattles users, yes, but they will be OK if the update delivered features as intended.
Facebook was created for people to keep tab on people they cared about, and share exciting stuff. If its buttons are inconsistent, and activity data reported has loopholes, it fails to deliver its intended experience. Itâs more serious than a bug, in fact.
Verdict?
Same holds true for Apple and LinkedInâââfailure to manage and display state of data across various parts of your application is a treachery to the user if your app is centric around that data. Grandma isnât always savvy enough to hit refresh. She mostly wouldnât even know how to kill an app and restart it on a mobile device.
- Those big companies failed to manage state of their data.
- They failed to design their components on Single Responsibility principle.
- Their products rarely crash with millions of users. Not because they are smartly built, but because they are encased within yet another robust grid of decades old failsafe devops softwareâââbought in with millions in licensesâââmoney that could be spent hiring smart developers to avoid such rookie bugs.
- They failed to detect bugs despite Agile Scrum meetings, TDD jargons and costly tools of project tracking.
- They failed despite their ivy league school programmers enjoying flextimes, gourmet meals and daily massages.
- Shame on them.
Huge software companies are worse than rookie indie programmers. They are responsible for producing buggy softwareâââsomething they could fix, and they knew they could fix it, but didnât choose to.
But how did it come to that in the first place?
An Irish study suggested evil effects of steroids on teensâ health. The story of software isnât quite different.
Because their coolness quotient was so hard to ignoreââânot only by their exponential user growth but also by its developers enthusiasmâââthey grew on steroids. But still, they used to write better code and respond to userâs feedback.
Then, at some point, sudden spurt of billions of investment drew away programmers with integrity and high calibre. Or they were rendered insignificant. Fresh talent was brought in from ivy league colleges and geek interview sitesâââand they grabbed every piece of open source, untested, sometimes incompatible libraries from Github. So much so that it became assembly rather than development.
Human resources, Operations and Support were now departments instead of 3 people business. Bugs, despite being known by inner circle of devs, only made it to the release pipeline through lengthy, bureaucratic support channels, who happened to have million other things reported. Example: Appleâs radar.
What will happen with those bugs?
- Users know about it, but canât do away with them because they are addicted.
- Their developers and product managers also know about it but they simply donât care. Previously, they always said: âIf ainât broken, donât fix it.â The newer proverb is: âIf users arenât moving away, why fix it?â
- Their stake owners know about it, but will only care if it makes a dent in their shareholdings.
Conclusion:
You canât correct bugs in big companies software. But you could have your own strategy to beat them where they are low.
Here goes your bug fixing strategy to beat facebook & others of itâs ilk:
- Is it something that defeats the core function of the software? If yes, fix it now.
- If not, make a sticky note on your desk. Design the solution in your head and fix it at leisure.
- Are you fooling the user somewhere in the workflow? If yes, fix it now.
- Is it likely that someone else can make a mess out of your currently robust code when you hand it over? Time to ponder it in your bathroom and fix it gradually.
- Feel great. You are better than those billion dollar factories that shrug it off as: âIf they (users) are still coming in hoards, why fix it?â
As a programmer, when you or someone detects bug in your program, stop feeling guilty. Instead:
Just know that if you go to sleep thinking about that mutating variable outside your knowledgeâââeven for a single night, you have beaten those billionaire-owned life-changing unicorns.
Originally published at https://tipsnguts.com on April 30, 2019.
Where you could beat Facebook, Apple, LinkedIn, Netflix and Youtube was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.