Customer Focus
If you are paying a service provider, then you will most likely expect to be treated as a customer. Some Internet service providers (ISPs) may have excellent service, while others may act like they are a utility with an absolute monopoly. For example, at CM Best Practices Consulting, we've had some experiences with ISPs that provided horrible service, resulting in an unreliable platform supporting the website for our book on configuration management best practices. Poor service aside, there are certainly advantages to considering cloud services as a utility.
Cloud as a Utility
When you need more electricity, most of us might assume that the electric company will provide as much as we need. So the cloud as a utility certainly has some advantages. If you need to scale up and add another hundred developers, giving each one a virtual image on a server farm can be as easy as providing your credit card number. However, you should be aware that knowing that additional resources are available might lead to your failing to adequately plan what resources will be needed. A good manager should still have a plan in place to meet these requirements.
Planning and Cost
Planning and cost can be as dangerous as running up bills on your credit card. In fact, they may actually be on your credit card. From a personality perspective, you should consider whether or not using cloud-based services is just a convenient excuse to avoid having to plan out the amount of resources you really need. Frequent upgrading can get expensive and ultimately impact your project’s success. Development in the cloud does not mean that you have to stay in the cloud. In fact, sometimes cloud-based development is just a short-term solution to respond to either a seasonal need or a temporary shortage. You should always consider whether or not it is time to get out of the clouds.
Bringing It Back In-house
Many cloud-based development efforts are extremely successful. Others are not. Ultimately, smart technology professionals always consider their Plan B. If you find that you are awake at night thinking about all of the time lost due to challenges in the cloud, then you may want to consider bringing the development back in from the cloud. Just keep in mind that every approach has its risks and you probably cannot implement a couple hundred development, test, or production servers overnight, either. Many managers actually use a hybrid approach of having some servers in house, supplemented by a virtual farm via a cloud-based service provider. Having your core servers in house may be your long-term goal anyway. Smart managers consider what works best from each of these perspectives.
Conclusion
Being pragmatic in the cloud means that you are willing to employ any sound technology effort while keeping both eyes open to the risks and potential advantages of each approach. Cloud-based development has some unique challenges and may not be the right choice for everyone. You need to consider how these issues fit with you and your organization when making the choice to develop in the cloud.
References
[1] Aiello, Robert and Leslie Sachs. Configuration Management Best Practices: Practical Methods that Work in the Real World. Addison-Wesley, 2010, p. 155.






