I haven’t posted in a while for no good reason other than I find myself often uncertain of my opinions on particular topics. I will have an upcoming post detailing why this is particularly hard on tech topics J, but I at times find myself holding an opinion only to reconsider elements of it a few months later when more information is available. So for blogging I look for issues and topics where my opinion has been consistent for some time. Unfortunately this is difficult to rectify with my stated goal of frequent blogging.
One such topic that I have consistently had interest in for a while now is the development of the HTML5 spec. I particular I want to talk about web video and Google’s announcement months ago that chrome will no longer support h.264. Before I do so I should call out a few things.
- I work at Microsoft
- Despite being a Microsoft employee, I love a lot of Google’s products (search, maps, gmail, chrome and picasa in particular).
- I use Chrome as my primary browser on a number of my machines (including some work machines, much to the chagrin of some of my colleagues).
Generally I have usually liked the policy decisions of Google. I believe they have been pushing an environment in software which is “open”, encourages innovation and leads to better products for consumers.
Recently though I believe they have stumbled. In particular the “open-ness” of Android and Google TV are suspect. Although open source they are not, by their own admission developed via a community process. Given that Google retains control over the development process they really aren’t doing that much more for the community than Microsoft does by releasing releasing protocol compliance documentation. In short they release the blueprint for what is happening internally but do little to enable developers to change that blueprint without a Google employee badge. The only difference between Google and Microsoft “documentation” is that Google’s will compile and Microsoft’s will require a lawyer to read. This is not a small difference but it’s also not as big as I’d imagine an open source proponent would hope. That said as long as new development models lead to the better products for consumers I am open to changes in how open-source software has traditionally been developed.
Google’s current stance on web video, in contrast to that of Andriod, is not just different, it’s a fundamentally a negative development for the web as a whole. Let me explain. For the purposes of this conversation we will assume the webM codec is functionally identical to h.264. In reality this is not the case in and fact many argue h.264 is a superior codec but that is primarily a technical argument and I think we have plenty of non-technical information available to analyze Google’s decision around web video. Additionally for the purposes of this argument we will say that this decision from Google’s standpoint was not about money as the max licensing cost they would possibly pay to MPEG-LA is 6.5 million dollars. The sum represents .1% of Google’s total revenue last quarter and is barely more than a rounding error on their books and they likely are still going to need to be licensing h.264 for android anyway.
Before we do that I want to posit a framework with which to think about decisions on all kinds of products that are developed. Living in Seattle and working in the software industry I have a number of friends who work at Amazon.com. Among other things about Amazon’s decision making processes, they tell me that at Amazon most arguments can be resolved by asking the question “What is best for the customer.” Amazon at its heart is a retailer. The old retail adage is that “the customer is always right”, Amazon, despite offering many non-retail products today keeps this at their heart. I think it makes sense, not just for retailers but for all types of product development as well (in fact I would claim is a pretty good way to think about things for most any business).
When applying this retail advice to the realm of software though we see it can get a bit less clear. The most common mistake I see in software development is the inability for software designers/developers/decision makers to answer a very basic question, “who is your customer”. Generally in software we think the user is our customer. Sometimes they are, and at other times they are not. Consider this fairly simple example… who is the customer of the Xbox 360? Taken at face value the answer is simple… it’s “a gamer”. But when we dig a little deeper we see there are many customers:
- The user of the Xbox … (aka the “gamer”)
- The final purchaser of the Xbox… (very frequently this may be parents who may never play the system)
- The seller of the Xbox… (this is Best Buy or others, since Microsoft generally sells first to these retailers they can also be thought of as a purchaser of the product)
- The developer of Xbox games… (a Xbox without games is pretty worthless, so maybe our customer is the developer, ensuring they create things that gamers want).
Each of these different customers lends themselves to radically different feature sets and products as whole. If for example you are designing for the final purchaser you might want parental controls and limits on children’s play. If you are designing for the “gamer”, they really don’t have this need. It is important during your products development to be crisp about which customer you are truly targeting. Doing so will better allow your team to deliver a product in a focused manner that creates real value for that customer. Failure to do this often leads to poor product decisions made with conflicting interests.
Anyway back to Google’s stance around pulling support for the h.264 codec out of Chrome. Let’s ask that simple question… “What is best for your customers?” Like before with the Xbox we need to figure out whom Google’s customers are for Chrome. Thinking through this I came up with a number of different customers
- Is their customer actually web “users”? I would argue this “should” be their primary customer. If it was their customer they would look at the numbers around web video and realize that today the largest number of websites support h.264. As such it would seem that the best thing for these customers is to let them play the most number of videos possible. Additionally given the pervasiveness of h.264 in cameras and other types of hardware users benefit from this becoming the web standard the most. They will get hardware accelerated video (much like our phones today do hardware accelerated audio) and interoperability between common capture devices already in the market today.
- Is your customer “web developers”? I would argue this is also a pretty solid customer to target for something like a web browser. “Users” will be happy with killer websites and if Chrome makes it super easy to make killer websites you can actually do what’s best for the first customer listed on this list by doing what is best for this customer. That said I do not believe this is the target customer for removing h.264 from Chrome. In fact this customer gets screwed over probably the most. Given the reality that IE9 and Safari do not support WebM and Theora it means that any web developer wishing to have sites which host video either needs to rely on proprietary plugins like Flash, or they need to encode the video 2 times (once in h.264 for IE9 and Safari and again in WebM for Chrome, Firefox and Opera). Additionally the MPEG-LA licensing requirements state that parties merely serving content do not need to pay royalties, so web developers are not even hit with the negative royalty nature of h.264. So Chrome’s move is certainly not what is best for developers, it is not only not helpful it actually may have just doubled their server storage costs.
- Is your customer “those parties interested in the royalty-free web”? If so I would imagine Firefox and Opera are thrilled by Google’s stance… Since customers tend to not to directly pay for browsers or royalties on their codecs they are not really that interested in this. That said I do not believe “those parties interested in the royalty-free web” is not their customer. If it was they would also have removed html5 audio support for mp3. Just like h.264, mp3 is an “open” yet not royalty free audio specification, so “those parties interested in the royalty-free web” are likely not their customer.
- Is Chromes customer “YouTube”? This actually could be a reasonable customer as well. As a customer it has very similar requirements to those of the “web developer” outlined above though. Given that nearly 40% of the web’s video content is already on YouTube they are probably the most important “developer customer”. That said all their content is already in h.264. Having to store things twice is also fairly costly for YouTube, a business that has been struggling to actually make a profit.
Doing this exercise really begs me to repeat the question… “So who is WebM’s customer?” Given that I know the folks at Google are smart, hardworking and rationale human beings, I can find only one customer whom this decision would make sense.
- Is Chrome’s customer “the strategic interests of Google Inc.”? From Chrome’s inception you must have thought this was the customer. Google is an almost 200 billion company that was, up until Chrome and Android 100% dependent on others software and “pipes” to distribute their services. Building their own OS and browser made them only dependent on ISP’s (for whom they have tried other techniques to shed themselves of these dependencies). If this is the true customer of Chrome then this decision on web video is both sensible and should not be surprising. Google today owns 40% of online video and does not want to allow a 3rd party (namely MPEG-LA) to control the codec for which that content is delivered. Particularly given that the MPEG-LA has two companies which Google is most actively in competition with (Microsoft and Apple) as members.
Companies make the wrong product decisions when they stop thinking about what is “best” for the customer and instead focus only on what is right for them strategically. I would argue almost universally that what is “best” for your customer is what is right for your company strategically. Microsoft made these mistakes in the early part of the 2000’s and I believe is still reeling from them in various parts of its business. Google would be smart to not make these same mistakes.