If there's a set of people resistant to the idea of moving their work environment into the cloud, it's developers. Which is understandable in many ways. It's comforting to know that your code lives on systems that are under your control, especially when your livelihood depends on that code. But developers' livelihood also depends on productivity and efficiency, and the cloud offers significant improvements to both — more than enough to justify the purported lack of control.
Moving development lock, stock, and barrel into the cloud allows for the integration of coding, testing, and building systems, which has the potential to produce significantly more efficient coding cycles. One obvious advantage of a cloud integrated development environment is continuous integration. With both the development and compilation environment closely tied together on a flexible cloud infrastructure platform, integrations can take place seamlessly and automatically without the developer ever having to worry about deploying hardware or the infrastructure layer.
Traditionally, infrastructure provisioning was entirely within the ambit of IT departments, which often didn't provide particularly efficient "APIs" — aka forms in triplicate — with which developers could deploy hardware. The time between developing a requirement for hardware and gaining access was variable and entirely dependent on the whims of IT staff. With cloud platforms, developers have control over server deployments, which can be up and running with ready-made development environments within seconds — no more waiting for hardware to show up in the data center.
And the ability to provide consistent and simplified development environments is a further advantage of cloud development. Any developer knows the problems that are caused by sometimes radically different development, testing, and production environments — the "it works on my laptop" problem. By moving development into the cloud, teams can ensure that their development environments are consistent and predictable.
Maintaining centralized and consistent development environments also increases the efficiency of collaboration between team members who aren't necessarily in the same building or even the same country. The open source world has fallen in love with GitHub, which is essentially a SaaS version control system, enabling collaboration on software projects that would otherwise have been dogged by the complexity of managing their own VC and collaboration platform.
But perhaps the biggest advantage of cloud development, and the one that has generated most enthusiasm among developers is testing. Deploying test infrastructure is a key aspect of the development workflow, and anything that introduces friction into the testing process reduces the speed of iteration. From unit testing to stress testing, the cloud provides unbeatable flexibility. If you needs a hundred servers for a couple of hours to stress test your application, it can be done with a simple script, and you'll only pay for what you use.
According to the Evans Data Cloud Development Survey, cloud platforms can reduce overall development time by almost 12 percent, and 38 percent of developers said cloud development introduced time savings of up to 20 percent.
Development in the cloud is more efficient, more flexible, and it helps developers make better software more quickly.
Image: Flickr/Yuri Yu