Cloud computing may be all the rage with IT management, but what does it mean for the developer? You have honed your programming mojo for years and can solve just about any problem with elegant design and killer code. Business apps, system integrations, testing, you do it all. But as we all know, technologies change, for better or for worse, and you must adapt quickly.
Get hands on
The fastest way to skyrocket your skills to the cloud is to get some hands on experience with real tools. Google’s App Engine (GAE) is a super fast way to get started. Of course, this assumes you are a Java or Python developer. Microsoft .NET code jocks can start by looking at Microsoft Azure.
Each vendor technology provides the basic enterprise application building blocks you will need in order to build new skills or to deepen your current skills. They include message queues, databases, Web services and specific APIs to access specific cloud services. This collection of services is known as Platform as a Service or PaaS. Get used to this acronym. It’s here to stay and you should embrace it if you want to survive.
Jack of all trades or master of one
Developing apps for the cloud means you need to have top notch Web application design and development skills. While traditional approaches to building Web apps will still have their place, thinking outside the box is going to set you apart from other skilled developers. This means both broadening your IT skill set and deepening specific skills.
If your focus as a Web developer has been primarily in the frontend, broaden your knowledge around middleware and integration. If Web integration to internal apps is your forté, learn more about using Web services and database connectivity. A broad collection of enterprise Web application development knowledge and a few expert skills is going to map very well to the cloud.
Tools of the trade
Some tools you use for development will have to change, especially if going to a PaaS cloud model. Vendor solutions have their own tools to streamline development on their platform. However, PaaS providers such as Google offer a plugin for the Eclipse development IDE. This plugin drastically simplifies development for the GAE. If you use Eclipse, no further tool skills are required.
Other tools you will need to build skills for are more architecture-related. Design and testing tools, such as enterprise system modelers and Web app quality assurance tools, are good to have at least a working knowledge of. Designing an app for the cloud takes a broader approach than a traditional in-house business application.
Developing for the cloud means learning a job skill that is not always natural for the hardcore developer: thinking big. Writing tight, optimized code is not only an art but is often unnecessary. Yet we often find ourselves spending extra time fine tuning to saving CPU cycles. While that tight coding has its place, tuning for bandwidth usage is where extra time should be spent in the cloud.
Cloud apps are fat in terms of bandwidth. Why? Because they are distributed apps where any one of an application's tiers can be on any server in any location. Response time becomes the key area to focus on a big honking distributed application. Getting information to the end user over the Internet in a timely manner is paramount. Saving CPU cycles is not.
With cloud computing storming to the forefront of today’s IT trends, your job skills will need to evolve quickly. Most of what you know already will still apply but no matter how nerd-tastic you are at slamming out beautiful and elegant code, you will have to get your head out of the clouds and learn some new skills. Then you will be a developer to reckon with.
Learn more about the future of PaaS