An app in the cloud does not a cloud app make!
I don't expect that there are many software companies who are not considering some sort of cloud strategy these days. If Ballmer is "all in" (http://techcrunch.com/2010/03/04/steve-ballmer-microsoft-cloud/), then we know it must be mainstream! So we have a vast army of vendors whose per-cpu or per seat priced behind-the-firewall (BTF) server products are being “re-imagined” as cloud offerings. But what does that mean? What is a cloud version of an existing product? How does it differ from its BTF predecessors? Well, what I can say for certain is that just sticking an existing product on Rackspace doesn't make it a cloud application!
The cloud itself is really just an enabling technology; a bunch of resources used as a service over the internet. If a user today accesses an application by pointing her browser at a web app, she doesn’t care whether the database and app server are located in her company’s data center or in EC2. What she cares about is what the application does. The IT manager might care where it runs (there are certainly installation, configuration, maintenance, etc. benefits from running an application in a cloud-hosted VM), but the user doesn’t. So if I, as a Product Manager, say that my company’s cloud strategy is to simply offer a cloud-hosted version of my existing product, I had better be certain that the IT installation/configuration/maintenance challenges that my customers face are grave enough that solving them alone will deliver competitive separation. I certainly hope that that’s not the case in most instances (although many of us can still benefit from a bit more attention to our users’ initial experience with our products)!
Instead, we need to ask what the cloud enables our products to do that would have been difficult or impossible to do BTF. Consider the transition from mainframe/minicomputer UIs to the GUIs of the client/server days. Sure, the emergence of LANs, increased power and lower price of 386 microprocessors and microprocessor based hardware made it possible. But as dumb terminals were replaced by networked workstations and servers and PCs in the 80’s, the change in user experience was far more important than the change in architecture. The same old text based UI didn’t simply move over to a network workstation; the GUI emerged, and users benefitted from a dramatically improved experience with their applications.
So as we “re-imagine” our products for the cloud, we need to be searching for the GUI equivalent of today. What is the quantum leap in experience that we will offer our users in the cloud versions of our solutions? I’ll argue that it hasn’t been fully realized yet, but here are two areas that I’ve been thinking about lately:
1. Vastly increased computing power through elasticity – (warning, this example isn’t very environmentally friendly, but I think it's valid) … If we all had our own electrical generators in our back yard, we would have a very difficult time handling the variable consumption of power. When we were at work, the electricity being created would go unused, and when we came home at night and tried to watch TV, cook, and do some laundry all at once, we would quickly exceed our capacity. We would all need to size our generator for the absolute highest peak we would ever need – and that would be far too expensive. But by hooking up to the grid, we can have all of these appliances because we don’t all use them at the same time (hopefully!). Elastic consumption is much more efficient when pooled. Likewise, there are things that we would never propose our products do on the desktop simply because they would take too much time or be too processor intensive. All of our users would need incredibly powerful workstations instead of the ultralight laptops that they prefer. But the cloud employs a similar utility model as the electrical grid. So now we, as software designers, can dream up tasks that are not bound by the limitations of each backyard generator (the local machine), but by the full power of the grid (the cloud). What are you going to do with that power? Well, that’s the question! What would your product look like if you could kick off huge complex tasks in the background as your user interacted with the system, for example? Liberating, huh?
2. Different pricing models – The cloud forces us to rethink the way that we’ve traditionally priced software. Since the user doesn’t install the software BTF, the old per-CPU model is completely useless. Currently, vendors are using a mixture of options; per user, per hour, bandwidth consumption based, disk space based, etc. It’s a great opportunity for us to explore innovative pricing concepts and new business models. Interestingly, github is trying to do the opposite; go from the cloud to the data-center with their fi product and its “traditional” per-user license and support model. Are they telling us that there’s no money to be made in the cloud? Unlikely! So our challenge as PMs (or anyone who is creating cloud solutions) is to think about how to define the value that we offer our users and to charge appropriately for it. Perhaps it ends up being value based not on usage or consumption, but on outcome. Interesting topic for another day…
The attributes that separate our cloud solutions from our existing BTF solutions are still emerging and they very well may not have anything to do with pricing models or computing power. But whatever they end up being, I can guarantee they will be distinct. If you think that customers will be satisfied with that same old app but running in the cloud, think again.
Comments [0]






