Cloud, Private Cloud, fill in the blank . Personal Cloud. Don't be surprised if you hear about the Personal Cloud. It is the next natural progression in Cloudmania. Don't get me wrong. I am a fan of Cloud computing as an exciting new deployment option for applications as I said in a previous post. But, this is a classic case where many cloud vendors are trying to make a case for why cloud is the uber solution to everything – including a subject that is near and dear to me – application development.
Can The Cloud Improve Application Development Effectiveness? No.
The case I have heard very recently about how the cloud can improve application development goes something like this. Developers have a need to spin up complex environments for development and the cloud makes it easy to do that. In addition, the cloud makes it easy to provision test environments. First of all, most developers are working on their own computer. For example, Java developers will have an IDE like Eclipse that is integrated with a Web Server, possibly a local database, and perhaps a connection or two to some outside "development" databases. As developers write code, they are constantly testing. Write a few lines. test. Write a few more lines. Test. Debug. Write a few more lines. Check in the code. Come back tomorrow. Every developer knows this develop-test cycle. They do it constantly throughout the day.
Cloud Or No Cloud, Application Developers Still Have To Write And Test Code.
Every few days or perhaps every couple of weeks, a couple or JAR files or perhaps and EAR file will be deployed to a test or UAT machine that is configured for testing by QA or end-users. I can see an advantage to the cloud for provisioning test environments, but there is no advantage for developers because they are working locally.
Obligatory Moore's Law reminder: Computers including PC are getting faster and faster.
So why would we want to reverse the trend of using all the computing power available on the desktop for developers? We would not. Because developers who write code are also constantly testing that code as they work, the best case is to keep the dev environment local and use application lifecycle management(ALM) tools for collaboration. That is just more efficient.
Developers Need A Personal Cloud
What developers could use is a Personal Cloud that would allow them to configure their local environment in multiple way and take it with them wherever they go. I know this sounds like virtualization and it is to some extent, but extend PC virtualization with cloud concepts and you get the Personal Cloud.
The Personal Cloud is not just for developers either. Everyone should have a Personal Cloud that follows them around (the mobile cloud is still the Personal Cloud) while at the same time making the most of the increasing amount compute power available on personal computers.
WIM: With all of these clouds floating around cloud interop standards will start to emerge making it even more confusing for customers to decide which way to go.