David Linthicum recently came out in support of Gartner analyst Daryl Plummer's position that enterprises should consider public cloud first, and turn to private cloud only if it doesn't meet their needs (See Gartner flip-flop: Try the public cloud first).
Obviously it's great that Gartner is promoting this approach, and I certainly agree with it. Many of cloud's biggest advantages show up only after you've cut the server ownership cord. The problem is that what enterprises should do and what they realistically can do are often different.
We all know it's easier to get the time and budget for smaller, incremental projects than for very large ones. Evaluating all the costs and issues surrounding a move to the public cloud is far more challenging than virtualizing applications, or adding a cloud orchestration layer to an already virtualized environment to turn it into a private cloud. Given the number of enterprise applications already virtualized within a corporate environment, further virtualization and the addition of orchestration are not only "safe" projects for IT, but potentially more efficient ones as well.
Once applications are virtualized, or even better, running in a private cloud, the issues associated with moving them to public cloud are fewer and more tractable. IT doesn't have to worry whether the application will actually function in a virtual machine environment, or whether the virtualization has an excessive impact on performance. Instead, they can then focus on the mostly quantitative differences between the public cloud environment and the private cloud, rather than the qualitative differences between a physical machine environment/architecture and the public cloud. They will also be in a better position to evaluate the many public cloud offerings. (And I do mean many. Research firm The 451 Group puts the global number above 500.)
In this incrementalist approach, there is also a natural trigger point for when to evaluate moving applications to the public cloud: when resources are running short. Rather than buy new servers, build a new data center, etc., IT can evaluate the feasibility of moving individual applications to the public cloud to reduce the resource load.
Plummer is also right when he suggests that enterprises can start with deployments "around the edges" and look at moving some of this directly to the public cloud - especially where a virtualization step (e.g., productivity apps, email) is actually a detour.
I'm not saying that enterprises should wait until they have built a private cloud first. My point is that if they are having trouble getting started with that bigger project, building a private cloud is an incrementalist approach that has some benefits.