This was the supposition of Richard Stallman, founder of the Free Software Foundation. As a venture investor hoping to invest in businesses that are ultimately profitable, with strong customer stickiness, and sustainable defensibility, you might be shocked to hear that I find some of Stallman’s assertions to be quite reasonable. The cloud does have the potential to create lock-in under a certain set of circumstances, and can be called proprietary development platforms. Where I disagree is that as a result of the above, customers should stay far away from cloud computing platforms (such as CPUoD, SaaS, and PaaS, as defined in my last post). In fact, I believe given the rise of open systems, APIs, and standardized data access and retrieval layers, customers can enjoy all the benefits of a cloud platform, while maintaining sufficiently healthy competitive dynamics between vendors to keep them open and honest.
There is the obvious issue in Stallman’s position, which is that only 0.01% of customers have the expertise and resources to build one’s one server farm using all open source components and manage a fully controlled applications and data environment. Putting that aside, I’m focused on the rest of the customers out there, large and small, that only have time to focus on their own value proposition, and where time to market makes use of clouds a very seductive option.
Most SaaS applications today can be decomposed into forms that collect data, links to connect to data, workflow that pushes data to people in the right order, analytics that repurpose data “A” into new data “B”, and presentation to display data. These SaaS applications are “multi-tenant” in nature – meaning there is one version of the application that all customers use. While there are customizations, 90%+ of the app looks the same from customer to customer. IF an application boils down to a calculation and presentation layer between various “rest states” of data, and a single application is fungible to many customers, then “uniqueness” lies in the data, not the application. Therefore, the primary inhibitor to switching to a different application revolves around the concern for one’s data. The easier I can get my data into and out of an application, the less beholden I am to any one vendor. And if I am not beholden to a vendor, I can insist on the value proposition I need when purchasing the application. Thus, to me, the argument all boils down to data portability.
As a very simple consumer analogy, let’s pick the fun world of photo upload applications. If I could easily extract all my Flickr photos and pump them into any other competing service (Ofoto, Shutterfly, Picasa), then I can feel fairly comfortable that Flickr is highly incented to offer best functionality at best cost. If they do not, I take my photos out, and push them into the superior offering. While many services do not provide such photo portability, I believe those that will win long term will be those that do, as savvy consumers will flock to such services.
In the old days, data was stored in proprietary formats that could only be read by the application writing the data. In fact, way back, the physical storage of data to disk was proprietary! Things have come a long way with the advent of standards such as SCSI, SQL, ODBC/JDBC, and XML, as well as published ways to extract the information via APIs via a ubiquitous transport layer in TCP/IP. Data is isolated from the application, and able to be extracted via a variety of methods. Almost all of the major SaaS suppliers today offer APIs (perhaps of varying quality) to push and pull information out of their application. Many also allow connectivity at the database layer, and have built in export functionality. The means to get at the data are provided for by the in the application provider, and I would expect this to increase significantly over time.
The next challenge after being able to access the data is to be able to take data on one side and make sure it is intelligible to any other application one might want to use. Fortunately, there are a number of vendors who offer data integration and migration capabilities in the “cloud”. As an example, FirstMark has an investment in a company called Boomi. There are others. These companies build software that takes the “taxonomy” of one application and translates it for other applications to use. These can be comparable applications, to migrate from one to another, or they can be complementary applications, so that one set of data can be leveraged in multiple dimensions and avoid data input redundancies.
If data is portable, then customers benefit greatly by leveraging a “cloud”. Cloud vendors have extraordinary leverage in CAPEX, one that few companies can match. The bandwidth and storage consumed by users of EC2 & S3 now exceed that from Amazon.com and all its other sites combined! Quite a striking example, and it’s hard to fathom matching that kind of purchasing power. In addition, the people and software investments to scale the infrastructure, the processes and procedures, the knowledge, all are very costly to duplicate. If done right, clouds can be a much cheaper place to operate and allow customers to focus on their core value proposition as long as they insist on data flexibility.
The above is also true for PaaS vendors. Most PaaS vendors go out of their way to note that applications built on their platform have APIs built into the application out of the gate. Now, it is true that ISVs choosing to use a PaaS platform are buying into a proprietary programming style. In addition, they are at the mercy of the viability of the PaaS vendor, and that the PaaS vendor will not jump into the SaaS game by building competitive applications. But ISVs have the same data portability options as an end customer. If they choose to build on another PaaS, they simply have to ensure their PaaS vendor allows them to pump data from one platform to the other.
None of this is easy. Data movement has always been challenging. But I believe we are now in a permanent era where you cannot “hide” data behind layers upon layers of proprietary code. Customers and ISVs must insist that any cloud vendor they choose provide easy and standardized means to access and move their data. If we all do a good job insisting and asking the right questions, the winners in the cloud battles will be those that embrace openness and portability, and who focus on retaining customers by having the best application instead of by scaring them with lock-in.