Reskilling the Technology Workforce in the Era of the Cloud
The cloud provides tremendous opportunities for companies that make use of it. But, it has created a new set of challenges. One big challenge is skill development. This problem is specifically acute at IT companies. That’s because they are the largest providers of cloud skills, and if they don't plan properly the skills gap will have a long-lasting impact on their long-term sustainability.
Each company has its own way of solving this problem. But a pattern is clearly emerging for the future of technology worker. Semantics differ, but for this article I would label the needed skills as those of the fullstack developer. This term is not new but has gained lot of popularity lately. And it has morphed to a new definition altogether. I must also mention that this term is contextual to custom experiences built in the cloud, and not solving other problems using cloud.
In the pre-cloud era technology choices were limited. Because there were boundaries within an organization, different functions were carried out by different departments. For example, a coder would not bother with what deployment infrastructure looked like or whether his or her code made too many calls to an API and the cost impact of that. Such concerns were addressed by different stakeholders (infrastructure, project manager, etc).
With the cloud, however, expectations are different. Businesses want innovation cycles to run fast. And that is translating in smaller teams which are pretty much self-sufficient from development through deployment.
Below is my take on other potential considerations – such as experience design and the ability to make technology choices – for the fullstack developer in the era of the cloud. Organizations should focus on combining these skills rather than taking a traditional isolated approach.
Designing experience for cloud-enabled applications requires a lot of technology considerations. Each aspect of the experience could be enabled and enhanced through a specific technology choice from the cloud. Designers could go deep on the details of experience while developers must know the offerings and how they will be implemented.
Then there’s the issue of choosing between available technologies. This is where the deep understanding of technology will come into play. Sometimes technology choices are provided by an enterprise architect. But with the expectations of agility and smaller teams, developers are increasingly involved in such choices.
Because the cloud continues to evolve, new architecture patterns are emerging frequently. At any point in time there are multiple patterns that could lead to successful implementation. Developers must be able to understand the technical details of these various approaches, and to choose between them using comparative analysis.
For example, AWS, Azure, and IBM all offer cognitive services. It is the developer’s job to pick the right service. This individual must also ensure portability between the cloud vendors if desired.
Very often fullstack developers are expected to perform the build vs buy analysis. Often it makes sense to buy rather than build. At other times, however, building is the better choice when viability and cost don’t fit your expectations.
Security – Traditionally inward-facing applications followed the enterprise security implementation and guidelines. But on cloud, access is more often through the public internet. And based on cloud choice, security frameworks may also vary. Hence it becomes the developer’s responsibility to ensure applications comply to organization policy and ensure data is secured.
Cost – This is one of the things developers in the past never bothered to consider. Licensing cost were negotiated mostly by the sourcing department. For large enterprises, though, there is a negotiated price in place. And the final cost may vary based on how an application has been coded. Subscription-based pricing is tricky in many situation. With a few unnecessary API calls, suddenly the cost of an application can shoot up. And if a process is running idle costs continue to accumulate.
Scalability – Every application has a different scalability requirement. In fact, some don’t even need any kind of scalability. Since most cloud solutions are marketed as high scalability offerings, developers may be tempted to over-engineer this concern. Scaling out and scaling up are two broad categories of scalability. One must choose the right solution diligently. Failing to do so will have cost and performance consequences.
DevOps – Agility is in high demand, and the cloud can help on that front. But traditional DevOps tools and process doesn’t necessarily apply in the cloud. Based on the technology choices developers make, they may have to constitute their own little DevOps effort.
Testing – There is a paradigm shift in how cloud applications are tested. In some cases, stress and regression testing are not needed at all. The cloud could scale to whatever level needed. And containerization ensures seamless deployment between development, staging, and production environments. That eliminates the need for regression. However, one may have to test for unnecessary usage of process, which has cost implications.
Infrastructure – The world is moving toward self-service infrastructure. Earlier tasks that were explicitly carved out for infrastructure specialists are now becoming part of developers’ skillsets. Provisioning services, setting up servers, or production push can easily be automated or triggered through simple user screens.
Generally, an experienced technologist possesses these skills or can easily acquire them. But it’s tough to find and expensive to employ experienced professionals these days. And training a large portion of the workforce on diverse skills using traditional training techniques doesn’t work. So businesses need to adopt a new set of tools and design courses to create fullstack developers.
About the Author: Rahul Deo is vice president of digital at IT solutions provider Mphasis (www.mphasis.com), which specializes in cloud and cognitive services.
Edited by Mandi Nowitz