Saturday, September 18, 2010

Phone as an UI for your web application

In India, there are ~50 million Internet users (source:wolfram alpha). Thats a lot of users and thats why we are seeing a huge spurt in new companies which are coming up to provide services to these users. And thats the reason most of the information is made available on the web.

Let us now look at another statistic. There are 700 million telephone subscribers in India(source:TRAI).So basically the Internet users are only 10% of the telephone users in India. I am sure in the rest of the world also the percentages are pretty similar. But the number of telephony companies coming up do not reflect these percentages. The reasons are many and I have already highlighted a few in my previous blog post Return of the telephony apps.The main reason is development complexity. It is really hard for developers to create good telephony applications. Thankfully, because of recent advancements in technology and services like Twilio,KooKoo (for India) and other cloud telephony platforms it is now as easy to develop telephony applications as it is to develop web applications. In this post I will try to mention some main points to remember when developing applications using these telephony platforms.

1.Complement your web application:The web is the best way for information dissemination and that is not going to change any time soon.Your phone application can never replace your web application completely and you should never try to do that.

The reasons are simple: Our eyes are capable of interpreting information from several dimensions and we have evolved several mechanisms for fast processing of information.For example we do not need to read the whole news, we can just scan it. But our ears can get information in only one dimension and the information is linear. We cannot go back or scan fast. We need to listen to the whole piece to get the complete information.

Additionally, the web provides a mechanism to jump from one information piece to another through links and right now that is not possible through audio.

But there are some things which are better in audio. Most importantly, more people can talk than write and that is more true in a country like India where there are more illiterates.So the information on the web is accessible only to literates.

Also to view content, you need a screen and you may not be able to carry a good screen wherever you go. Though now-a-days the mobile phones have good enough screens.

So basically, you need to complement these two channels. Right now, its all about how can you reach your customers.You collect your information once and then spread that content through different channels.With every passing day more channels are opening up. In addition to having a web site, you are now expected to have a mobile app. Similarly, it makes sense to even have a telephony app which your customers can access by calling a phone number at any time of the day.

2.Identify channel content: Not all content can be provided through all channels because of technology limitations.People will not be able to call and say anything into the telephone as the speech recognition technologies are really not upto the mark. But they most certainly can type anything they want on the web site.

So identify the most important content which you can make available over the phone.Design easily accessible means to reach the content. Users really do not want to spend more time on the phone.

Your web site will be the primary destination for your customers, so try to make only the most important information available over the phone.If you really need audio feedback from customers, ask them to record their message and have it transcribed.

I find the best way to be a mix and match of both the web and the phone. Design the web site so that users can save preferences which they cannot choose over the phone.Then when the users call, you can pick up their preferences from the database.You can also check out Top 10 Voice user interface design practices. Though it is for VXML, you can apply the principles for your cloud telephony app.

3.Follow web design patterns:Though you are building a telephony application, you should reuse the web application patterns you have used for your web application.That is the advantage of these cloud telephony apps. There is no need to learn new technologies. But at the same time don't overdo it.

I find the State Pattern and the Front controller pattern to be the most useful. You can have your own favorites.

Think of your telephony application as another web page that you need to design.

Only difference is, that page is accessible by calling a phone number and not by entering a URL in your browser :) .

In the next post I will give examples of the patterns and take some real world scenarios and see how we can design some telephony applications for them.

Happy coding.