We use cookies and other similar technologies (Cookies) to enhance your experience and to provide you with relevant content and ads. By using our website, you are agreeing to the use of Cookies. You can change your settings at any time. Cookie Policy.
Start a Discussion
Cloud Computing

What Are the New Skills Developers and IT Managers Need for Successful Cloud Development?

Vote 0 Votes

Do we have these skills already? If not, what skills do we need? Also, please note that ebizQ will be exploring this question in depth at Cloud QCamp on June 3rd, which you can register for right here.

8 Replies

| Add a Reply
  • I don't think Developers and IT Managers have skills ready to develop applications in the cloud right now, majority of them are in their early stages. Some early adopters of cloud who had a strong partnership with Sales Force have developed some applications in Force(Cloud offering from Salesforce) platform using Apex/Force proprietary plaftorm. If I ask my team to use SF cloud platform I have to make sure they are trained in Apex/Force. Microsoft and Oracle have their own cloud offering . Windows Azure from Microsoft has a big advantage for developers they can use Visual Studio Tools and .Net Programming skills. My answer is if a IT Team is SOA ready then they are ready for Cloud Development.

  • Some developers and IT managers may need to get up to speed on the latest web-oriented programming languages. More importantly, the developers will need to become more focused on the usability of their applications rather than the functionality alone. They will also have to adopt agile development techniques aimed at continuously enhancing their cloud-based applications rather than accummulating customer requests over an extended period of time. IT managers must become adept at evaluating the reliability, security and performance of cloud computing services, and contracting for these services in the same way they have become accustomed to contracting for telecom or internet access services.

  • In one sense developing cloud based tools and apps isn't that different from typical software development. Yet, there are differences -

    Developing for cloud based apps is a combination of building rich websites and enterprise scale software applications. The user experience (UX) is uniquely different since it marries the web based interface with the complex interactions of an enterprise application. Look at my blog post on RIAs and SaaS applications to see how the UX will change dramtically.

    Managing the testing, deployment of a cloud based solution is also different because when it gets released, all your users get the new code at the same time - staging a release, while possible, is not easily done.

    There are other differences

  • The most important for the developer is to be aware to the integration and connectivity. Once you put something on the cloud, it becomes remote. Not in your LAN. So existing integration may not work or will require new set of security, monitoring and reliability assurance.
    The IT manager need to look into the feasibility of moving to the cloud. I refered to that in my BLOG.
    Other important issue is the ability to move from one cloud provider to another or back to the home office.

  • Of course there are new tools and technology considerations to learn, but the main differences lie in process and lifecycle management.

    Cloud development is inherently more collaborative, not only within the development team but also allowing much closer interaction with business managers and users. That in turn leads to a much more iterative development style, with the ability to run up prototypes very quickly and get frequent feedback from users, ensuring the final result is much closer to delivering what the business needs.

    Developers need to become proficient in agile development and they also have to interact well with users and be attuned to business results and best practice.

    The application lifecycle changes too, with shorter, more incremental update cycles and ongoing functional maintenance rather than infrequent 'waterfall' upgrades. IT's role in turn becomes more strategic, responsible for ensuring that application performance, functionality and cost continues to meet the needs of the business.

  • I agree with Andre's basic premise of development techniques being consistent. The skills required will be different relative to the reason for going to the Cloud. If the Cloud development is for elasticity and on-demand Cloudbursting, then developers need to really understand the impact to their application and the impact of high-volume transactions. Many developers believe that the environment will handle all this for them, when it typically falls down under severe stress. If the Cloud represents outsourced data center or disaster recovery, then the skills should be the same regardless of where the application gets hosted.

  • Looking at JP Morgenthal's second comment, it strikes me that there are two completely separate kinds of cloud development being discussed here:

    1) Cloud infrastructure development, ie what skills do you need to build a cloud or to implement an application stack to the cloud as an extension of your IT infrastructure

    2) Cloud application development, ie what skills do you need when using the cloud or platform-as-a-service to build and maintain applications for your business

    So maybe another skill IT people need to learn is to let someone else take care of the infrastructure!

  • I would like to take JP Morgenthal's point further. I think that we should distinguish between the kinds of applications being developed. Traditional Web applications, which are usually stateless, require similar development skills regardless of the manner in which they are operated (Cloud or On-Premise). When it comes to rich interactive applications, which are statefull, the story is entirely different. Deploying such applications in the Cloud calls for taking a tightly coupled synchronous design and implementing it in a loosely coupled asynchronous architecture. Few PaaS and Cloud platforms (such as Force or uniPaaS) take care of this, so the development skills required are a small increment to the current ones (a matter of a few days of training). But trying to develop such an application without a Cloud enabled platform, for example with JEE at the backend and JavaFX at the front, reminds me of the Titanic story and the hidden iceberg. It required many more skills to deal with session, context and state management as well as the communication and security between the Front and Backend tiers – calling for the addition of system programmers to the application development team. My recommendation joins Jeff Kaplan's - IT managers should examine carefully the desired solution functionality and design constraints, and in case of a statefull application evaluate one of the Cloud enabled application platforms before venturing into “traditional? development (and a high probability of hitting an iceberg).

Add a Reply

Recently Commented On

Monthly Archives