Tag Archives: facebook

Why Facebook shouldn’t have dumped HTML5

We all want to build fast, reliable mobile apps. Facebook couldn’t make its HTML5 mobile app deliver on that goal, and decided to build its own native app. In practice, this means retiring an app that is a browser-like shell that renders web pages (a thin client), and launching a fully-fledged app on the mobile device (a thick client, with apparently a sprinkling of HTML5 inside).

That’s a step backwards, and flies in the face of history. Haven’t we just been through a twenty-year evolution of thicker clients in general being replaced by thinner clients? How many apps did you install on your PC this year compared to ten years ago? How many tabs do you have open in your browser?

Should Facebook have just made the web faster and more reliable? Rather than mostly abandon HTML5, why didn’t they evolve the standard and make the web better? It wouldn’t be the first time that has happened — I’m many of you remember web standards evolving in the 1990s, and you can thank those days for the better experiences we all have today. So, an opportunity lost — but I am sure the story is not over, and indeed it sounds like their new app is indeed a “hybrid app” (where there is some HTML5 inside the native app’s framework).

This change also makes experimentation much harder. On the web, most major companies are running test versus control experiments or A/B tests. We put a population of users in an experiment, and compare their behaviors with those who aren’t in the test — for example, at eBay, we try out improvements to search ranking on a small population of customers and compare their behaviors to those who are seeing the regular results. The great thing about the web is you can do this fast — pretty much as fast as you can code and test the changes — and test large numbers of simultaneous variants. The outcome is you make fast progress in improving your product on behalf of your customers.

Building native apps makes experimentation harder. You could build an “A” and a “B” experience into an iPhone native app, get it through Apple’s approval process, and try out the two experiences on the customers. But the barrier to entry is much higher — you can only run a couple of experiments, and you probably only release once a month at most. You’re not going to evolve your application as fast as your customers want.

There are always tensions and tradeoffs: in this case it is speed and reliability on one side, and the future of the web and experimentation on the other. I would have fought hard to stay in the latter camp.

An opportunity that Facebook is missing

Facebook is building an amazing, enduring business based on data. Data about
people, and the connections between people. And it is about real people – unlike
(say) Twitter, Facebook has maintained a razor-sharp focus on ensuring it has real
people with known identities.

Facebook. Data that's meaningful, but it's unstructured.

Facebook is my favorite web entry point. But there’s something important they’re not doing that is about me and my connections. (And I should say at this point that I’m happy to share my personal data with Facebook.)

We create and manage structured data, and we care about manipulating it.
Facebook isn’t a great place to manage that data. Here’s an example:
I’ve been a runner for nearly 20 years. For the first 10, I used my Palm Pilot or some
other device with a spreadsheet to track my runs: time, distance, how I felt. I then
had it compute total time for the year, number of runs, total distance for the year,
average time per kilometer, and so on. It was pretty motivational — can I beat the number of runs I did last year? Am I slowing down? Am I running enough miles? It’s the kind of foundation that companies such as fitbit are based on.

There’s lots of other structure in life: calendars, weather, budgets, exercise, television schedules, sporting calendars, airline travel, and so on. Facebook isn’t a great place to store that data as it applies to you, your friends, or to manipulate it. How much did I spend last month? How many miles did I fly last year? Where did I travel in 2011? How many baseball games did I attend in the past 5 years? What time on average do my friends go to bed? Do I eat more or less calories than my average friend in the eBay list? What are the top ten songs my friends from school listen to?

Fitbit. The power of structured data -- my steps, active minutes, and more.

Structured data is inherently easier to manipulate, understand, and monetize with ads. It’s easier to find patterns (Hugh seems to travel to Australia every Christmas). It’s easier to predict from (Hugh has run nearly 200 miles in the past few months, it’s time for new sneakers). It’s easier to sell a substitution (Hugh, did you know that Virgin also flies that route, and they do it cheaper?).

You could argue they’re edging in that direction: the recent changes to the profile page have been working toward more structure. Not that they’ve made this transition well (and I’m not denying it is hard). A couple of years ago they massacred my unstructured text about favorite movies, music, TV shows, and so on by trying to force it into a structured schema. They completely destroyed my profile page – the music was too obscure, I’d made a few
jokes in my hobbies, and so on, and it didn’t map into any neat schema. Perhaps they should have started with a little more structure in the beginning.

But it was a move towards more structure. The timeline is moving in that direction too – though I am not sure that’s the fundamental reason for it, it’s probably about trying to simply get more data of any type. Sure, they’ve always had birth dates for the purpose of birthday reminders — a good example of what can be done with structured data. And there’s some other basic structured data too – I’m not arguing they have none.

Adding structured data, and ways to manipulate it, is something Facebook needs. And it’s a hole in the online social world. The challenge is how to do it right: blending a structured experience into an inherently simple, unstructured stream of text and media is probably not easy. Particularly when you want to provide search over it all — maybe a topic for another time…

That’s my opinion. What do you think?