Why Nigerian Apps are ALWAYS buggy

17Nov, 2019

I find it necessary to first of all, acknowledge that this is an unusual article in that this topic is rarely up for discussion in the Nigerian Techsphere.   My main purpose of writing this article is to highlight the reasons “Made in Nigeria” apps always look and feel…“Nigerian”!    Although it may seem offensive, this is something that should ultimately help Software Developers in Nigeria, create better Apps and shake off the stigma of bad quality.

WHAT IS “THE NIGERIAN FACTOR”

What exactly do I mean by “The Nigerian Factor”?   The Nigerian factor is that obvious or not too obvious bug or imperfection present in most Apps made in Nigeria.   These kinds of bugs immediately make a user know the App is made in Nigeria.  The imperfections can be of different types or categories.  Most obvious ones are:

  • Minor User Interface Bugs: These are bugs like weirdly positioned logos or improperly centered views etc… These are minor but obvious imperfections. Unfortunately, they are more common in Nigerian Apps.
  • Bad User experience: These are not actually bugs. They are just UI behaviors that are either not expected or odd.
  • Grammatical errors: Grammatical errors, is just what it says –  spelling mistakes, improper punctuation (in a Corporate App). These are minor, but their presence, unfortunately, gives away the nationality of the App.
  • Plain old bugs: These are the normal bugs in almost all apps but much more obvious in Nigerian Apps.

EXAMPLES OF APPS WITH THE NIGERIAN FACTOR

Apparently, just listing a couple of bug categories is not enough to fully grasp the concept of the Nigerian factor, so in this part, I will list some popular Nigerian Apps and point out the Nigerian factors I could find in them.

CHANNELS TV APP

I had never used this App before. A quick Google search suggests this is one of the Top Apps in Nigeria. I noticed these Nigerian Factors minutes after downloading it:

  • Playstore screenshot does not match the Actual App’s screenshot:

    This is more of imperfection than a bug. The Channels TV App screenshots on Playstore looks like an App designed with Jquery Mobile while the actual App itself looks completely different.

    Screenshot of Channel TV App on Playstore
    Screenshot of Channel TV App on Playstore
    Screenshot of Channels TV actual App
    Screenshot of Channels TV actual App
  • Visible WordPress shortcodes on the posts:

    When you tap on any post in the App, there is a presence of WordPress shortcode. These codes are meant for WordPress, suggesting that the App gets data from a WordPress website. Apparently the developers had the time to strip HTML tags off but didn’t just bother about WordPress shortcodes

    Screenshot

    Visible WordPress shortcode on Channels TV App
    Visible WordPress shortcode on Channels TV App

QUICKTELLER

I use this App regularly and of course, there are a lot of Nigerian factors. Most of them are difficult to put in words.  However, I will explain the most obvious ones:

  • Unexpected Back Button behavior:

    When you try to transfer funds to an account, after inputting the Account details, the next screen requests for an amount. Tapping the hardware back button on Android devices takes you back to the send money screen instead of the Account Details screen. You then need to re-type the account details again.

  • Inconsistent UX behavior:

    Now, this Nigerian Factor is just a series of abnormal user experience issues. For example, the Home Screen uses a Navigation Drawer for navigation. Other Screens in the App uses both a Navigation Drawer and a Bottom tab Navigation. This is just plain weird.

The entire Internet/Mobile banking system:

It is important to realize that though, the Nigerian factor is present mostly in Mobile Apps, it is also present in other Nigerian technology services like Web Apps or Web services.  These issues are so common that an awful lot of people (including bank employees) see it as “Normal”.  The most common one is our electronic banking system.  For example, being debited even when the transaction fails is not normal AT ALL.  Most people see this as a “Network problem”. People think of it as the weather system were no one has control over. Now that’s a Nigerian factor.   We need to realize that the network software, network devices, mobile apps, web services and every other thing in between were created by humans and therefore within the reach of perfection. We need to realize that each time the “Network fails”, someone somewhere is actually directly or indirectly responsible – buggy codes, not well-maintained devices, not enough devices, old or outdated software/hardware, etc. The situation is so bad that when a failed transaction occurs, you get debited.  When you report the issue to your bank, they will request you to wait for up to 7 days, in some cases more.

In an ideal situation, inevitable failures like a failure originating from the user’s physical device, in the middle of a transaction, should cause the transaction to be immediately reversed without a second failure. The point is, “Network failures”, ATM failures, failed Airtime top-ups are not normal AT ALL. They should work perfectly at all times.  Systems can actually be fail-safe.

 

WHAT CAUSES THE NIGERIAN FACTOR IN NIGERIAN APPS

A lot of time was spent thinking about this question. What exactly causes most Nigerian Apps to have at least one obvious bug or imperfection? I know for sure that it is definitely NOT due to the incompetence of Nigerian developers.  Of course, there are a lot of inexperienced developers in Nigeria,  but there are almost as many professional and very experienced developers as well.  However, Apps developed by even professional developers still possess the Nigerian factor.   So what exactly is the problem?  Here’s a list of the possible factors responsible for these imperfections.

1.  The way developers generally access performance

This problem comes down to the individual. The way most developers evaluate the performance of an App is usually based on the tasks that have been done vs what should be done. Normally, it should be based on pure perfection. For example: If a developer should take on a project like Google Maps. The tasks could hypothetically be divided into these phases

  • UI
  • Data collection
  • Data cleaning
  • Pathfinding algorithm Etc.

Let’s assume that the most difficult part is the pathfinding algorithm and it took an estimated 50% of the project time to develop. Once this is done and works intelligently, the developer is likely going to spend a lot less time working on the other parts. Reason being that

the main engine has been done, no one would care about the position of a logo as long as the app works

The above quote is the primary cause of UI/UX bugs in Nigerian Apps. The “App works perfectly, so nothing else matters”!  Ideally, each phase should be done with perfection in mind regardless of how incredible the main functionality is. Unfortunately, a surprising amount of developers are guilty of this.

2.   The nobody is perfect mentality

This issue does not only affect Nigerian developers but affects humans in general. It is just a lot more common in developing countries. At FincoApps, we don’t believe in the statement “Nobody is perfect”. We believe perfection can be attained in your work with the right mentality and effort. Nobody is perfect is just the perfect excuse for imperfection. Most times when you draw the attention of a developer to an obvious mistake in their App, the most likely response is “Nobody is perfect”.

3.  Companies/Clients setting impossible deadlines

This is one of the issues that are beyond the developer’s control.  Most times, a developer is not developing for his or her self, but for companies or individuals. The problem is that a lot of these clients are not programmers so most of the time, they don’t understand why a project should take a certain length of time to complete and so, they enforce an impossible deadline. This is something we should all keep in our minds –

What is impossible is impossible.

Regardless of the situation, if it’s impossible, there’s nothing a developer can do except compromise. For example, it is near impossible for a team of 2 developers to develop a ride-hailing app like Uber for both Android and IOS from scratch in just 1 month. No matter how much you offer to pay them, it is just not possible. The client will only succeed in forcing the developers to compromise standards thereby creating room for bugs.

4.  Startups without a Minimum Viable Product (MVP) wanting to compete with Top Tech companies

Now this problem is too frequent. We cannot count how many times we have seen startups trying to implement the entire features in Apps like WhatsApp, Facebook, Uber, etc from scratch without an MVP.  Remember that these top companies did not become what they are in just one year. Let’s take Facebook as an example. Facebook was launched in 2004 which makes it about 15 years old. Consider that throughout this time, the company’s engineering team has gotten larger and is constantly working on improving the systems.  Remember that as at the time Facebook launched in 2004, it did not have a whole lot of the features it has now such as:

  • Realtime comments
  • Ability to reply to comments
  • Ability to mention users in comments or chats
  • Infinite scroll
  • Developer API
  • Stories
  • Reactions
  • Graph search
  • Face detection and Face recognition
  • 3D photos and videos
  • Live stream
  • Video/Conference call
  • A whole lot of privacy controls

We can literally go ahead and count at least 100 features that were added over the years. Technically, it took Facebook about 14 years to be what it is today. The problem arises when a startup company decides to compete with Facebook but does not take into account the age of Facebook.

Additionally, there are some features these top tech companies implement, that seem simple enough but are incredibly tricky or difficult to implement. Example of these features include:

Realtime comment feedback on Facebook:  This is the realtime feedback you get when someone somewhere in the world is typing a comment on a post you are currently looking at. To a non-developer, this is just…..easy. But trust me, this is not only difficult, but also quite tricky. For the developers, think about it, you have a newsfeed with 100 posts, you could use a WebSocket connection to the server to listen for activity on each of these posts right? Not really, it’s wasteful because the user cannot look at 100 posts at the same time. So basically, you need to switch the WebSocket listeners as the user scrolls upward or downward. Now, a client or a manager might like this feature, but most likely will not understand why it should take so much time.

Realtime driver tracking in Uber:
When you log in to the Uber App, the App shows you a bunch of drivers driving around you in realtime. At first glance, it seems easy to implement, but it is more tricky than simple.

Augmented Reality on Snapchat (Snapchat Filters):  For some odd reason, a lot of non-programmers feel that the Snapchat filters are easy to implement.

There are a lot more but the point should be clear by now. If you as an individual or a company is not willing to invest the money, resources and time that these big guys have invested, then don’t try to compete.  Start with your MVP and grow from there. You might eventually grow exponentially and actually start the real competition.  As mentioned above, what is impossible is impossible.

To conclude, Nigerian factors can be very well avoided. Guilty Developers simply need to change their general mentality, Aim towards perfection because it can be achieved.  In addition, if you are not a programmer but need to hire a programmer to implement some features, you need to do some research on what it actually takes to implement the features you desire.


2 Comments

  • KO November 20, 2019 @ 5:39 am

    Very well said. Expository and hope it adds to the knowledge base of Programmers. Kudos.

  • Whales November 22, 2019 @ 5:21 pm

    I can’t agree less, most especially the impossible deadlines part set by clients, they forget the fact that when you rush developing a product, It will obviously be prone to bugs, And now they will also set impossible deadlines for fixing those bugs and that’s how we end up pushing bugs to productions and acting like nothing happen.
    Also, @FincoApps, you forgot to mention the fact that Nigerian clients always search for cheap developers rather than paying the experienced once to handle the core aspect of their product.

Leave a Reply

Your email address will not be published. Required fields are marked *