Developing software in the cloud involves working with people who are likely in a different location and possibly employed by an entirely different company as well. These folks may have very different priorities than you do, and getting what you need from them may be quite a challenge at times. Development in the cloud involves development in an environment where you do not always have full control of the resources you need. You may feel that you are the customer and you deserve service. But the reality is that interfacing with all of the stakeholders in a cloud-based development environment presents unique challenges. Your people skills may very well determine whether or not you get what you need. Read on if you would like to be more effective in developing in the cloud.
Control of Resources
Development in the cloud has a number of challenges, but none more apparent than the obvious loss of control over essential resources. Development in the cloud involves relying upon another entity and the services that they provide. This may work out great for you, or it may be the worst decision of your career. One issue to address early on is how you feel about having to rely upon others for essential resources and the resulting loss of control. This situation may create considerable stress and even anxiety for technology managers who are responsible for the reliability of their companies’ systems.
Anxiety in the Cloud
Seasoned IT professionals know all too well that bad things happen. Systems can crash or have other serious outages that can threaten your profitability. When you have control over your resources, you may have a stronger sense of security. With the loss of control, you may experience anxiety. As a manager, you to need to assess your tolerance for risk. Risk is not bad, but it needs to be identified and then mitigated as best you can. One way to do that is to establish a service-level agreement (SLA).
Setting the SLA
The prudent manager doing development in the cloud will examine closely the SLA that governs the terms of the cloud-based resources upon which you depend. You may have to choose, however, between working with a large, established service provider and a smaller company that is willing to work harder for your business. This is where you need to be both a savvy consumer and a technology guru. If you think that ironing out all of these terms is going to be easy, then think again. However, you can always be certain that communication is key.
Communication Is Key
Make sure that you establish an effective communications plan to support your cloud development effort, including announcing outages and service interruptions . You should consider your service provider’s established communications practices within the context of your organization’s culture. Alignment of communication styles is essential here. Realize that you must not only plan to receive communications but also to process, filter, and then distribute essential information to all of your stakeholders. Remember, even weekend outages may impact the productivity of your developers. The worst part is that you may not have a specific dedicated resource at the service provider with whom to partner.
Faceless and Nameless Partners
Many large cloud-based providers have well-established service organizations, but you, as a manager, need to consider how you feel about working with partners whom you do not know and may never actually meet. The faceless and nameless support person may be just fine for some people, especially if they do a great job. But, you need to consider how you will feel if you cannot reach a specific person in charge when there is a problem impacting your system.