Looking for software developers to help you transition your IT projects into the cloud? The main thing to keep in mind about cloud computing is that it’s still early days. The typical experienced web application developer will eventually figure things out, but the organization that hires her needs to realize that hardly anybody has this particular combination of experience yet.
For example, with Amazon’s EC2 service, she’ll need to create and manage her own machine instances, understand the difference between blob and relational storage architectures, manage data backups, deal with load balancing, and consider the cost model and her budget. Or she’ll need to coordinate with her IT operations people to do some or all of that stuff (and it’ll all be new to them, too). But has she ever had to work that closely with IT operations people before? And since the IT people won’t own the machines (Amazon does), do they even want to support this project?
All of those considerations have software architecture implications as well, so it’s not like she can just merrily write code while the IT people go off and design the system. To continue the EC2 example, it has its own message passing and storage interfaces, so much of her code is going to be purpose built. And new code means bugs – has she developed the debugging skills necessary to triage an offsite system in a timely manner? The latter can be a real concern under a deadline, since many developers (and not just web devs) have never really been forced to learn how to debug.
Microsoft’s Azure cloud service presents similar challenges: understanding the storage options, message passing, debugging, and cost model, figuring out the split of responsibilities between operations and dev, and then architecting the application accordingly.
None of these tasks is insurmountable, and all of the cloud vendors have case studies showing customers of various sizes using their services at scale. Although, it bears mentioning that those case study customers may have had invaluable internal assistance from the vendor.
The one additional piece of guidance I would give is to not hire that brilliant developer from outside, then expect her to ramp-up on cloud computing, the existing service/technology, and the internal politics of the company at the same time. Instead, task the most senior internal developer with leading the transition, and fill in staff to support him or her as needed.