Horror stories abound in the cloud... and fearful pundits rule the day, questioning the viability, security, or unknown costs of the enterprise adopting Cloud. But the reality is, it is going to happen anyway. Why? Because developers and testers can afford to adopt it on an as-needed basis without a capital expense mandate, and cloud allows software teams to fail faster.
Cloud is not just some "cheaper pay-per-use place" you deploy your apps. It is the culmination of distributed software development processes. The ideas of SOA, BPM, loose coupling, all play into the design of enterprise software for Cloud.
The beauty of developing and testing in the Cloud is not guaranteed success. It is that we can fail far faster, and at a much lower cost. One of our partner sales friends recently sent me this excellent little speech from CSC's expat Mark Masterson (check his blog here):
(Uh, whoever that bank is at about (13:40) in this clip, who lost $500M+ waiting for teams to have sequential access to test environments, needs a Virtual Services Environment to not only provision infrastructure with VMs, but also simulate those off-cloud dependencies in far lower cost for Cloud.)
I like what Mark is saying about companies being obsessed with reducing the risk of failure rather than the cost of failure. They spend all of their energy with a balance-sheet mentality - ensuring that any expenditure has less risk of failure, and in turn, delay projects and limit their options. Driving down the cost of failure is what enables real agility - allowing companies to delay their decisions to deduce the most optimal directions.
As a musician I make a point out of failing faster. The reason for practicing with others is not to play the music perfectly - instead, it is about going for it, and getting all the bad notes and bad ideas out, before you invest in recording or playing live. The same goes for software. If you had unlimited, low-cost ability to try options, rather than having to predict the one with the least chance of failure, you would find the best one much quicker.
Cloud is going to be the reality of distributed enterprise applications, because no matter what the pundits say, before it is a deployment option, it is an optimal platform for agile software development and testing. So get out there, and fail faster!

Thanks for this. I agree violently (as must surely b obvious). I like the music analogy -- I'm gonna use that. ;)
Some dude recently interviewed me about my opinions on the impact of "cloud" (Christ, how I hate that framing, BTW - so imprecise) on project management, for a white paper for the PMI. I said "Well, gee, in a cloud project, all of your assumptions and concepts with regard to 'requirements engineering', 'scope management', 'estimating' and so on are pretty much forked. IaaS, in particular, allows me to proceed in a manner that doesn't require me to commit to *one* hypothesis a priori -- instead, I can test many hypotheses."
His head exploded, and the conversation was pretty much over. ;)
Posted by: Mark Masterson | August 06, 2010 at 02:24 AM
Hah, good to see you on here Mark. Maybe we could help project managers make an impact if they could manage EaaS (Expectations as a Service) in the Cloud.
Posted by: Jason English | August 06, 2010 at 10:22 AM