Sunday, 29 July 2012

Oops Something Went Wrong!

In the web 2.0 world where everything now is in html and javascript and if lucky a mobile application, we have lost something very important on the way.

Reliability over low quality networks.

When everyone had to use unreliable modems, lots of people use to run their own email servers and other things which would store the email locally and send in the background when there was a better connection.  Now using web based clients, the network goes down for any reason you loose the email.

Messaging and chat clients would store and forward messages whether or not the person the other end was online.  Now in msn messenger can't send to offline people... and Facebook's messaging frequently says "oops something went wrong" for no obvious reason.

Mobile apps fare little better. They seem to mean mobile, with a perfect internet connection.  Many applications just die or disappear if lose connection, sadly just walking a few miles shows that there are many places that there isn't good enough data signal to do anything. And there is no real difference whether that is in a town or in the countryside.  Even apps that should have no need for internet access sometimes fail because its not there.  As an example, The Kindle app on Windows Phone 7 will freeze if you are silly enough to try and read a book when on the tube as it cannot synchronize with Amazon.

So, as developers what do we need to do? Should we be following Google's example and providing offline versions of our web enabled content?  Googles offline documents and email are ok, but it needs to be seamless, and ideally not need to both set something up to be able to work offline and then remember to go to a special page like https://docs.google.com/offline. Docs when shared are shared to the on-line version, not the offline version.

Before broadband became ubiquitous in the towns and cities where most developers live or work, I remember using traffic shaping devices to explicitly set up test and development environments so we could experience things how our users would and know when we'd started doing things that would make things unbearably slow for users.

Certainly with the Windows Phone development tools and I presume with both iPhone, Android and other mobile platforms the development/test environment is on a normal desktop or laptop machine, which will usually have pretty good access to the internet. We need an equivalent of the traffic shaping systems ideally built into the test\emulation environment which also add optional poor internet connectivity to expose these issues.


1 comment: