Another surprising thing we learned from this process is that software has bugs. Some bugs are more surprising than others. For instance, if a popular mobile handset manufacturer releases a software update that opens TCP connections and doesn't close them, you get something that looks like this. [The graph shows the number of connections.]
A globally distributed denial of service attack on your servers that lasts for months. And there's basically nothing you can do to avoid this situation except sit and wait and hope they release an update. That means that we have to make the choice between degrading service for all users, or cutting off a large fraction of users. And we never want to make that choice. With application level streaming, we can deliver a fix or a work around in hours, instead of months.
"A popular mobile handset manufacturer"? What are the most popular mobile handset manufacturers? Samsung, Nokia, Apple and a few other companies. It must be a popular smartphones manufacturers which releases software updates and most users install them. Apple?