Who bears the cost of (non)-standardization?

Last week my feed reeder was dominated by two news: Google dropping support for h.264 (a format for playing videos on the web) videos in Chrome and Nuxeo dropping JCR (a way to access content in a content management system). Both announcements were followed by heated debates around the pro's and con's of the standards in question, of possible alternatives and impact to users.

Of all the things I read in the last week, two really sticked out: Adrian Sutton's analysis of the impact of Google's video move to other players in the HTML5 video game and Arjé Cahn's post on the impact of allegedly "dead" standards to users. Both posts left one topic unanswered: "Why do companies standardize - and why don't they standardize.". Stephane Croisier's tweet made the point clear:

My answer needs a bit more elaboration, which is the reason for this blog post.

Every standard has only one single reason to exist: to save the user money. This money-saving can be immediate, by reducing cost of interoperability, or deferred by avoiding vendor-lock-in and increasing competition. This does not mean that every standard saves user's money, there are ample examples of failed standards - and the reasons for failure can be both technical and due to market adoption. Those failures often prove costly for the early adopters of failed standards, but without risk there is no reward. If for a certain problem domain no standard emerges, users have to pay the opportunity cost of non-standardization through increased vendor lock-in, reduced competition and higher transaction costs.

On the other hand, the cost of standardization is carried entirely by the standardizing vendors. Aside from R&D investment to actually implement the standard, they have to acquire patents, participate in standardization organizations and sometimes even give credit to their competitors. Additionally, they cannot immediately carry over the cost of standardization to users, in order to make sure they get initial adoption. The new standard must prove it's value over the status quo almost immediately, but will pay off only over time.

We can see exactly these behaviors in the events and discussions of last week:

  • Vendors not implementing JCR, because it means a departure from their established technologies and technical debt
  • Vendors not implementing h.264, because it means having to license patents from their competitors
  • Standardizers open sourcing and giving away reference implementations of their standards to increase adoption (Apache Jackrabbit, WebM)
  • Standardizers granting free use of their h.264 technology for limited time to increase adoption

And last, but not least: Users bearing the cost of non-standardization, because vendors fear the short-term costs of standardization and being unable to realize the long-term payoff. In the case of Chrome and h.264 this means video publishers have to encode videos into more than one format and provide additional storage. It means browser users having to install and maintain plugins to view content. In the case of JCR it means developers having to rely on vendor-specific APIs and users not being able to access their content across repositories.

Synchronizing Foursquare Check-Ins with Google Talk Status

There has been a bit of a foursquare craze at Day last week and I admit my part in driving this craze. After all, for a company with distributed operations and many employees that are heavy travelers it makes sense to know where everyone is. Many people at Day are using their Google Talk status message to indicate where they are (@home office, @basel office, etc). While this is a straightforward way to eliminate many questions even before you start asking "Are you in the office, can I call you?" I find it troubling that I have to enter the same information twice, just because some people do not use the communication channels I prefer. So I have been looking for a method that will automatically update my GTalk status when I check in at Foursquare.

And this is how it works:
  1. Go to ping.fm and sign up for an account
  2. Go to http://ping.fm/gtalk/  enter your Google Talk address and password and check "use for status updates". Click submit to save
  3. Go to http://twitterfeed.com/ and sign up.
  4. Go to http://twitterfeed.com/feeds/new to create a new feed
  5. Go to http://feeds.foursquare.com and copy the URL of the RSS feed of your checkins
  6. Use Foursquare as the feed name and copy the feed URL from the previous step
  7. In the advanced settings,
  1. Set the update frequency to 30 minutes and post up to 1 item at a time
  2. In the post content, include only the description
  3. Optionally, include a link
  • Continue to step two (Publishing Services)
  • In a new tab, go to http://ping.fm/key/ and copy your Desktop/Web key.
  • Click Ping.fm, paste the key from the previous step and click "Get Available Methods" to validate the key
  • Select "status update" and click "Create Service"
  • It should take 30 minutes for Twitterfeed to check your Foursquare location and update your GTalk status, so have a bit of patience.