Nearly a decade has passed since renowned venture capitalist Marc Andreessen famously declared that “software is eating the world.” The subsequent years have proven his observation was a prescient one, and the software developers driving this phenomenon have risen to the top of the proverbial food chain. Now, however, it’s becoming increasingly clear that they, too, are on the menu. Will development eventually make itself obsolete?
An Inconvenient Truth
The ever-increasing technological capability has forced workers in nearly every industry and sector — engineeringgovernment, insurance, manufacturing, and many others — to grapple with the prospect that they might soon be made obsolete.
As the technology landscape continues to shift (thanks to continuous innovations and advancements in areas such as cloud computing and the proliferation of the DevOps movement), roles tech companies have historically struggled to fill with human workers are becoming increasingly automated.
Applications that used to require a stack of hardware servers — and people to monitor and maintain them — can now be run completely in the cloud. It used to take an entire team of programmers and testers to build, test, and deploy a new application.
Now, cloud service providers like Amazon Web Services have embraced the DevOps approach and automated a considerable chunk of the process with infrastructure as code — or IaC. A deployment process needs merely to upload a configuration file to the platform. The file itself can be customized to deploy to a specific environment with all its dependencies to function seamlessly.
Programmers might continue to debate the merits of cloud development versus traditional software development, but those debates are likely to lose relevance soon.
With advancements made by cloud providers, coding in the future will look much different than it has in the past. As cloud providers continue to battle for market share by making the cloud more accessible.
More convenient for users, more functions that have historically required programs rather than programmers will perform programming expertise.
The Coder as an Architect
Software developers do still play an integral role in the development of applications — for now. But the evolution of cloud computing offers a glimpse of what’s to come. The nature of development is changing. It still centers on writing applications, but the need for new applications is diminishing, and this will change coding in the future.
Soon, the role of the developer won’t be about building applications from scratch.
Instead, developers will be primarily responsible for orchestrating calls between various preexisting services, writing the code that connects them together to form custom applications.
Already, cloud platforms have removed the need for developers to build routing functions into their programs. For instance, Amazon API Gateway is a service that lets you create a secure REST API that gives your application access to virtually any amount of data, at any time, from anywhere on the web with a simple GET request. The cloud provider handles all the routing and related logic.
As companies continue to invest heavily in machine learning — and they will —they’re able to build intelligent routing processes that eliminate even more developer work. So what does this mean for the future of developers?
A Glimpse of What’s to Come
Artificial intelligence-powered coding programs are already in development at places like Stanford University, and programmers all over the world are looking for ways to make software that can do what they do — only better.
The computer scientists behind the Bayou programfor instance, have harnessed a process called neural sketch learning to create an AI that can read massive quantities of human-produced code and discover the intent behind each line.
Software will continue to supplant hardware processes, and technology workers — specifically coders — will have to adapt to interact effectively with an intelligent mesh of cloud-based services.
Today, developers very closely identify themselves with the practice and process of coding.
Within the next five to 10 years, however, their identities will become more centered on building solutions out of various disparate services written by software systems. No longer will developers write code — they’ll put the already written pieces together to build solutions and solve problems.
The software developers of today will need to learn to be the solution developers of tomorrow. As machines grow more and more intelligent, writing code and programming will continue to be a commoditized skill set.
But the ability to solve problems is (and will always be) valuable. The future of developers depends on their ability to think beyond the code. Knowing what services to write to get answers will mean less while knowing what questions to ask to find solutions will mean more.