Innocence vs. Experience

“What is the price of Experience? Do men buy it for a song?
Or wisdom for a dance in the street?” – William Blake

Back in high-school, I was exposed to glimpses of English literature. The literature in a foreign language is tough, but still a few things stuck in my mind. Among those, William Blake's dichotomy between Innocence and Experience, a concept that kept recurring in the years to come, more often than not in different, unrelated and often totally disconnected contexts.

The Blakeian dichotomy paid me a visit the other day, when I noticed that someone had left this headers in our logs:

That's the Firefox browser running on an Android device. Which device? we don’t know. Nobody on this side of HTTP can tell. Which OS version? Ditto.

Our API did the best it could and matched this as generic_android_ver2_0_fennec. Obviously this is far from optimal. For example, developers will be unable to size their pictures and their UI elements correctly. Chances are that users of mobile Firefox are presented a UI with the typical ‘stamp effect’ or that UI elements are out of whack.

In reality, most of the times, developers will adopt a more practical solution and simply direct Firefox user to the one-size-fits all, XHTML-MP user-experience that they reserve for second-class mobile clients. It certainly works, but hardly a very exciting UX.

Of course, the side effect of this choice is that a generic UI is all that Firefox users can hope for.

Wanting that level of privacy and the user-experience reserved for devices that let themselves be recognized is a textbook example of what Italians call ‘wanting a barrel full of wine and a drunk wife too’ (In english-speaking countries, the dilemma is about a cake, but the point remains).

If you want great UX, you need to let developers know what your device can and cannot do. It’s that simple. This is a clear example of (User) Innocence vs. (User) Experience.