Luke Wroblewski discusses some lessons learned by the team at Polar. Here’s a taste:
When people like or comment on a photo on Instagram, the results of their actions show up right away. In reality, their request is still getting processed in the background — but Instagram assumes it was successful rather than waiting to find out if it actually is.
While designers can’t speed up the network, they can provide users with the sense that response times are faster than they actually are.
In the current version of Polar... we assume that any polls a user creates will make it to our server. As soon as they create a new poll, it shows up in their feed.
In reality, we’ve created a temporary local copy of the poll and added it to the front of the list. This temporary version of a poll is fully functional: That is, users can vote and comment on it and we’ll make sure their actions get applied to the actual poll once it is live. (To ensure the poll does go live, we use multiple background processes to hold on to it locally and resend it to the server several times before ultimately telling the user something went wrong.)
I really like the idea of using a “noble lie” to improve user experience. Most of the time the user never needs to know the difference. The critical aspect to making this work is to ensure that on the few occassions where data fails to make it to the server, the experience is not significantly degraded from a more traditional approach.