Tuesday, June 02, 2009

Why mobile apps fail

The other day, a tweet from a competitor (for whom I have great respect) triggered some thinking about mobile apps. He was questioning (I believe) the existence of our Symbian Sync Client, that you can download from the Ovi Store. His tweet was: "who needs a symbian syncml client when it ships with a built-in one that works just fine...".

It is a good question. All Symbian devices come with a SyncML client pre-installed. Once it is configured properly, you just launch it and it syncs well. Why would you need an app on the device to do the same thing?

Because it is easy to discover, configure, launch and use. In a word: because user actually end up using it.

That thought lead to a more generic analysis about why mobile apps fail. I have seen so many fail in my market that I lost count. Here you have my reasons in categories.

1. Discovery
Discovering an app has been the #1 issue for a long time. How do people find out they have a SyncML client on their device? They don't... It is buried under a million clicks. They do not even know they have it. The same for many apps that were developed and had a few users. You have to make it easy for people to discover your app. It was almost impossible.

Then it came the App Store. It changed everything. Finding an app is now easy. You have a need ("I want to sync my contacts with my Outlook"), you search the app store, you click and boom. Here it is, your app, ready to go. Visible in the area where you would expect it to be (the Home Page, in an iPhone).

Discovery has always been a problem, but it is gone. And gone is the fear that the app might screw up my phone. If it is in the App Store, it must be good. I can download it. And use it.

Yes, you can configure a SyncML client remotely over the air (we do it), but that leads to the next item.

2. Configuration
Most app that interact with the network need a configuration. You have to put in login and password somewhere. In the worst cases, you have to select an APN as well and even a URL.

Forcing a user to type a URL is a guarantee of losing 90% of your users. Finding a slash on a numeric keyboard is a task for the fittest. And only the fittest survive. The others give up. Unfortunately, only 10% of the population goes to the gym daily to exercise...

The beauty of the App Store is that you can send an app with all the parameters you need, ready to ask you for additional info when it starts. You have the app on your device, just downloaded, you click, put the additional info in and you are good to go.

If you send a binary SMS (WAP push), you have to hope the users saves the information (not an easy task, I am ready to bet you lose 30% of the users right there), then goes to the sync parameters on the phone (where??? another 30% of the people will give up before getting there), then open the configuration and change the data there. And then they have to go and actually launch the application. It is a two-step process, you just do not start the app, configure and go.

If you want your app to be used, work on the configuration. Make it as simple as possible. Minimize parameters. Make sure they pop up as soon as you launch the app for the first time (do not present a "sorry, app not configured, go into Settings, configure it, then launch it again"). You do not want to lose users just because you are lazy... I know you can guess if the app has never been launched before...

3. Launch
Ok, this seems easy: finding the app and launching it. Anybody can do it.


Apps end up in the wrong places. Apple perfected it, others have to work harder on it. They are hard to find on the phone.

Even worst if they app is preinstalled, like the SyncML client. It is put in an ungodly location on the phone. I am a pro, and every time I get a phone in my hands, it takes me 20 clicks to discover where in the world the client is. Nokia has been moving it around for years...

If you can't find the app, you can't launch it. If you do not launch it, you won't use it. Another 30% of users lost. You really have to want it hard to make it.

There is not much you can do about this, if you are a developer. Make sure the instructions are clear and hope for the best. Device manufacturers are improving fast (thanks as usual, Steve!) so this issue is about to disappear (at least, for apps that are installed from the App Store, I am not that confident about the pre-installed ones).

4. Use
Ok, you made it, you have the application up and running, properly configured (congrats!). Now you use it... and the UI sucks. 30 seconds later you give up. You remove it from the device or leave it there thinking "I might use it later" and you never go back doing it.

Most mobile apps have a very bad user interface. I mean, something that yells "did you ever read a book on usability???". I have been insisting on the topic many times, due to my background on usability. I do not want to be boring, so I will stop here. But if you want your app to be used, make it usable.

Guess which apps are often horrible to use? The ones preinstalled by the vendors... It sounds incredible, but that is often the case. The pre-installed sync client on Symbian is ugly. It does not support client push and has a clumsy way to do server push. It somehow looks like an app slapped on the phone by someone, just to check a box on an RFP ("do you support SyncML?").

Bottom line: if you sum up how many users you might have lost along the way, developing an app that is hard to discover, configure, launch and use... you are probably at 99%. There is no mercy out there. You have to be perfect on every aspect of the experience, and the most important element is making sure the app actually runs... I believe we spent more time architecting and developing the set up process than the app itself. It seems crazy, but it is not.

The statement "who needs a symbian syncml client when it ships with a built-in one that works just fine..." has an embedded flaw: when you get to the "works just fine" part of the experience, you will have 10% of the users that started the process. The rest will not make it. The set-up will kill the experience.

Believe me, mobile users have a limited time doing anything. If you do not get them up and running in 10 seconds, they will give up. They are mobile, they are on the go. They do not have time to wait for you. Do not make them wait. Or your beautiful mobile app will fail.