A personal perspective
The first time I came across an error message telling me “oops, something has gone wrong…” was when I installed the LinkedIn app on my Windows Phone back in 2013. After a little research, I discovered that what this particularly unhelpful message was trying to tell me was that the time on my phone was out of sync with the time on the LinkedIn server and, until I had somehow aligned my phone with this server time that I couldn’t actually see, the app was going to refuse to open.
Sadly I seem to be coming across such sloppy design ever more frequently when trying out new mobile apps. In fact, the whimsical phrase “oops” appears to have become as prevalent in the field of mobile app development as the term “bug” has in software development in general.
Perhaps my being bothered about this type of thing is a sign that I’m becoming old and out of touch with modern technology. However my own desire is to build completely robust and reliable software systems, even if it is at the expense of complex and flashy features. To paraphrase a quote from C.A.R Hoare, I’m a firm believer in reliability through simplicity:
Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way – and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay. — C.A.R. Hoare
As testament to this philosophy, the following TED talk offers an insight into how innovators in Africa have created life changing “apps” using nothing more than simple text messages on mobile phones that would make the most modest feature phone available in the UK look cutting edge. These services, which were truly borne out of necessity, include mobile payments, the checking of medicines, and digital marketplaces in which farmers can secure the best price for their milk.
An academic perspective
Given my own personal experiences with the state of practice in mobile app development, I was very interested to see an article in this month’s IEEE Software magazine titled: What do mobile app users complain about?
The authors of this article analysed the review ratings and comments of 20 applications in the iOS app store, half of which were rated as being high quality (average star rating 3.5 or above) and half of which were rated as being low quality (average star rating below 3.5). The high quality apps included Facebook, Netflix and Evernote, while the low quality apps included Farmville, Gmail and Kindle.
For each of the apps, a suitable size sample of one and two star user reviews were randomly selected and then manually analysed. Each review was then placed into one or more of the following 13 categories that emerged during the process:
- Report of app often crashing
- Report of incompatibility with a specific device or iOS version
- Request to remove a disliked feature
- Request to add a new feature
- Report of an app specific functional error (such as notifications not working correctly)
- Complaint about hidden costs (such as in-app purchases)
- Complaint about user interface design
- Report of network connection problems
- Concern with matters of privacy (such as apps accessing the contact list)
- Report of heavy consumption of resources (such as battery or memory)
- Complaint of uninteresting content
- Report of app being sluggish or unresponsive
- General statements that could not be categorised (such as “worst app ever”)
Further analysis revealed that while the most frequent complaints were based on functional errors, feature requests and app crashes, the complaints that caused reviewers to give the most negative scores were based on privacy and ethical issues, and hidden app costs.
The study described above shows that some of the most common complaints made against mobile applications in the iOS app store are due to the developers simply not getting the basics right. Functional errors and scenarios that cause an app to crash should have been discovered and removed during testing, before the app was even placed on the market.
Possibly even more important is the finding that users are deeply concerned with matters of privacy and pricing structures based on hidden charges. This should be a wakeup call to the developers of such apps, as it suggests that they need to seriously reconsider their fundamental business models.
I would be keen to see this analysis repeated on apps with different and diverse user demographics, for example by studying premium rather than free apps, and by looking at different platforms such as the Google Play store. Perhaps this is an ideal future research topic for a software engineering MSc student?
On the other hand, maybe the fact that app developers are consistently failing at the basics, and getting away with it, is a sign that this subject is just not all that important.