Will the day come when coders feel tempted to smash their computers, sabotage their own programs, and fight to save their jobs from being done by the very software and machines that they created? Or will human oversight always be necessary?
With the rapid automation of jobs ranging from manufacturing to medicine, it is only natural that, while considering which professions could eventually be taken over by Artificial Intelligence (AI), the spotlight is on the technology industry itself. Is it possible that software engineering could be automated, with developers eventually developing themselves out of a job? Advances in machine learning mean that, when fed a certain amount of data, AI can learn new skills in the same way as humans—in some cases, even better. It therefore seems plausible that the creation of AI itself can also be automated, meaning that software engineers would essentially become obsolete.
Automation is a huge part of software development—in fact, often the very goal of a developer is to make their input unnecessary by creating new scripts to automate particular tasks. “At the heart of software development is the concept of abstraction,” says software engineer George Ash. “An abstraction is a packaged-up script that completes an action. The important thing about an abstraction is that you shouldn’t care how the process is completed, as long as it produces the correct outcome. Part of the software engineer’s job is to make abstractions for people to use. So naturally, programmers code themselves out of jobs all the time.”
In other words, programmers create algorithms so complex that they don’t know precisely how they function—just that they produce the right outcome. This is one of the most important and potentially frightening aspects of machine learning. There comes a certain point where machines are able to learn from their own mistakes (given they are provided with the right data) without input required from the person who originally programmed them. It is not uncommon for developers to be in the dark about how exactly their algorithm works after a certain point. Given the rate of advancement in machine learning, it seems plausible that a developer could create a programme to replicate their own job that eventually learned to write code better than its original author.
The value of soft skills
On the podcast Recode Decode, technology entrepreneur Mark Cuban concurs that developers might become obsolete sooner than we think. He claims that “Twenty years from now, if you’re a coder, you might be out of a job… Because it’s just math and so, whatever we’re defining the AI to do, someone’s got to know the topic.” Cuban goes on to explain that soft skills, such as communication and creativity, are going to be more valuable than those whose main asset is an understanding of programming languages, whose “value is going to diminish over time.”
Creativity is an important part of development. Although it is up for debate whether or not machines could ever attain the same level of creativity as humans, human input is currently an essential part of programming. Many aspects of development have already been automated, but the fact that automation is so rapid is precisely the reason developers are needed. As new solutions are developed to complete the more menial tasks involved in software engineering, they need to be interwoven into existing programmes.
In fact, developers already do this. Many aspects of coding, such as the creation of HTTP servers, are already automated. As programmes incorporate new scripts, problems will inevitably arise, and the main job of the developer is to fix these issues. If developers are willing to keep up with the change in the industry as more aspects of their job become automated, then they will always have a role to play.
Even if you had a machine that was capable of developing software development, then a human would still need to communicate with it to tell it what to do and what to build.
Software engineer George Ash
If anything, there could actually be more opportunities for developers… Automation would help software engineers get rid of many time-consuming and menial aspects of their work, leaving them with more time to solve problems and be creative— qualities that separate out the best and most talented developers in the first place. Furthermore, as building software requires fewer and fewer man hours thanks to automation, businesses will be able to build more of it, opening up opportunities for talented software engineers. This will equally benefit freelance developers and full-time employees working on their own projects. As their job becomes easier, more can be accomplished, and possibilities will skyrocket.
While it is theoretically plausible that a computer would be able to take over software development, some human intervention will arguably always be essential. As Ash says, “Even if you had a machine that was capable of developing software development, then a human would still need to communicate with it to tell it what to do and what to build. If it spoke English, it would be General AI. Otherwise you’d have to speak its own language, which is what programming is.”
Higher skills threshold
The creation of a General AI that would fully be able to understand natural language in this way is known as an “AI-complete problem.” Solving it would essentially require creating an AI that is as intelligent as a human. CEO and founder R2ai Yiwen Huang explains that General or Strong AI is not as far off as some experts would have us believe. However, he also claims that the technology industry is steadily becoming more automated, “there’s always going to be new professions and new jobs to be created.”
But, while there will always be a need for creative developers, there may be a higher threshold for the skills needed to enter into the profession. Although the automation of menial tasks will give more developers the opportunity to work on projects that have real impact, different types of skills will become more valuable—soft skills that AI is still lagging behind on. Creativity and emotional intelligence, when combined with problem-solving and technical know-how, will mark out the best and brightest developers. Innovation will be required to find new ways to use automation tools and programmes, and to consider new ways that they can be used to solve human and societal problems, both inside and outside the technology industry.
Software engineers are essentially creative problem-solvers. While AI looks set on the problem-solving aspect, creativity is hard to code into an algorithm. If machine learning developers are prepared to keep up with the ever-changing nature of the industry, and continue finding innovative solutions, then they are not at risk of being automated any time soon. Human oversight will always be a necessary component of development, meaning software engineers are safe from the tide of automation—at least, for now.
In collaboration with Are We Europe
Writing: Millie Paine
Illustration: Eddie Stok