Developers are the golden child of the fourth industrial revolution. Straight out of college — or even just coding boot camp — developers can make well over six figures. In fact, the average mobile app developer salary in the US is $107,000 annually (compared to the average American salary of $44,000). Out of school, the highest average starting pay for a new grad is Software Developer, which pays $20,000 annually more than the average straight-out-of-college position. A career as a developer seems bullet proof: it doesn’t require an advanced degree, pays well, and there are plenty of positions available. Or at least not for now.
NewtonX conducted a survey with 50 coding automation experts including senior technologists who worked on Google’s AutoML system; founding members of Dev Bots startups, contributors to programming automation libraries and other senior experts. Additionally, NewtonX CTO, Anuja Ketan moderated a panel last month on the topic. These technologists informed the conclusions drawn in this article.
The main takeaway? Coding as we know it is on the verge of a major disruption.
Developers are moving from being disruptors, to being disrupted
NewtonX interviewed several founders of startups trying to make writing traditional code obsolete. In particular, we have collected the thoughts from one of the founders of Bubble, a visual programming platform enabling non technical people to build web applications without needing to type code.The typical developer spends 15% of their day actually creating: problem-solving, designing, and creating on a conceptual level explains the Bubble team, the other 85% of the developer’s day is pure execution: writing, QAing, and debugging previous work. This breakdown means that developer work is ripe for automation .
AI is good at pure, flawless execution. It’s good at implementing clear instructions with no mistakes; what it’s not good at is conceptual thinking. Therefore, conceivably AI could automate 85% of a developer’s day. And if you can implement that AI for less than 85% of your dev team’s salary the economics are almost irresistible. In fact, even GitHub, one of the most popular developer tools, believes that the future of coding will be largely automated. In 2017, the CEO at the time, Chris Wanstrath said “We think the future of coding is no coding at all. Typing on a computer is such a low-fidelity way of exchanging information with a system.”
There are two ways to eliminate this low-fidelity exchange of information. The first, is through visual programming, wherein users use “drag and drop” interfaces rather than code by typing text instructions. The second, is through automated code generation.
1. Eliminating the need for coding language
Tools like Bubble, Luna (a visual data processing tool), and LabView aim to eliminate the need for humans to learn the language of coding at all. Instead, users create workflows, design elements, and implement data collection through symbols. This allows customers to build entire interfaces and workflows through visual options. Should there be a button on the front page of your app? Instead of writing the code necessary to describe “button” just drag and drop a button!
In many ways this is just the next step in an overall movement toward user-friendly digital creation tools. From Wix (site creation) to Canva (visual assets creation) to Mailchimp (email design and campaign execution), the market for tools that allow laypeople to create is huge. And it’s not particularly difficult to eliminate the need for coding if you give enough options. This approach works like building blocks — each block is made up of code, that can be stacked together and personalized in myriad individual ways.
2. Automated Code Generation
Think of automated code generation as the equivalent to auto-complete on Google: it guides, proposes, and corrects. In the same way that writing or any other task can be formulaic, so can coding. Currently, we’re good at identifying a problem that is repetitive and then creating steps that will automatically handle that. For instance, at NewtonX we have a code generator that follows a “boilerplate” for setting up our URLs. We write a fairly readable spec that describes the URL and the things it will need and then we can choose from a range of different programming languages and generate all the necessary code to get it up and running quicker.
Automated code review also already exists: in most large-scale coding operations, continuous integration and powerful analysis tools check source code for compliance with a predefined set of parameters and rules. Some systems can also provide an automated way to correct the issues found. There are also Integrated Development Environments (IDEs) that can generate code to automate refactorings (that would have required multiple manual steps). IDEs can be difficult to use, though, and are underutilized because of this.
Another form of automation that has already occurred in the devops space is “Infrastructure as Code”, wherein instead of owning high-cost server that requires high levels of maintenance time, devs can just spend an hour or two writing a small script that will automatically remove the old service in the cloud, launch a new one with the most updated code, specify if you want load balancers, etc. Advances like this have dramatically reduced the time that devops spend on infrastructure and server issues. Counterintuitively, though, demand for devops has actually gone up in recent years, according to the former Google engineer. Because devops requires a solid understand of computer science, computer and network architecture, and the actual business needs, the position pays well and is in high demand. While there are numerous tools to automate devops work, implementing those tools in a specific business context is still manual.
This is all to say that while there are currently numerous forms of code automation, much of the work is still manual — from debugging to devops to reviewing.
The role of the dev will evolve before it disappears
In a recent NewtonX survey, a third of developers said their biggest fear is that their jobs will be automated. “Everyone knows this is coming,” said the member of Bubble. “But the profession isn’t really in immediate danger yet.”
As of today, all auto-generation code efforts still have limited use cases. AI can act as a translator, or vector for higher abstraction language, but this only opens up development to individuals or very small-scale companies. The need for software developers and devops is still there, and will continue to be there for the next twenty years.
That said, as generalist tasks and skills become more automated, developers will interact more naturally with code and machines in high-level ways, instead of being fully vertically integrated. The next generation of coders might not even need to know Python, C, and Java — they’ll be builders and designers, not translators.
Recently, Google, Microsoft, and IBM have announced deep learning frameworks that can partially write code themselves. The days of fully automated code are still fairly far off, but according to NewtonX experts — including the NewtonX CTO — the profession will shrink dramatically over the next 50 years.