Let's investigate how AI can shape software development, which skills will be relevant in the nearest future, and how to approach all those changes.
The age of artificial intelligence (AI) is upon us, and many software developers fear that they won’t be able to stay relevant.
It would be easy to dismiss their concern about the future of their profession as yet another example of the Luddite fallacy, the simple observation that new technology doesn’t destroy jobs because it only changes the composition of jobs in the economy, but there are many indicators that paint the future of software developers in much darker colors.
According to a team of researchers at the US Department of Energy’s Oak Ridge National Laboratory, there’s a high chance that AI will replace software developers as early as 2040.
“Programming trends suggest that software development will undergo a radical change in the future: the combination of machine learning, artificial intelligence, natural language processing, and code generation technologies will improve in such a way that machines, instead of humans, will write most of their own code by 2040,” state the researchers.
Software developers are understandably worried. In fact, nearly 30 percent of the 550 software developers surveyed by Evans Data Corporation, a California-based market research firm that specializes in software development, believe that their development efforts will be replaced by artificial intelligence in the foreseeable future.
According to Janel Garvin, CEO of Evans Data, the fear of obsolescence due to AI, “was also more threatening than becoming old without a pension, being stifled at work by bad management, or by seeing their skills and tools become irrelevant.”
While some software developers have resigned to their fate, most want to know how exactly AI will change software development so they can start acquiring relevant new skills as soon as possible.
“A large portion of programmers of tomorrow do not maintain complex software repositories, write intricate programs, or analyze their running times,” believes Andrej Karpathy, a former research scientist at OpenAI who now serves as Director of AI at Tesla. “They collect, clean, manipulate, label, analyze and visualize data that feeds neural networks.”
Karpathy has proposed a new software development process for the age of AI, called Software 2.0, and its key components include problem and goal definition, data collection, data preparation, model learning, model deployment and integration, and model management. Software developers of the future will source and compose large data sets to train applications to be smart, instead of hard-coding the desired capabilities.
Solutions such as DeepCoder, which was built by Microsoft and academics at the University of Cambridge, already allow us to see a glimpse of the future of software development. DeepCoder can create a new application by predicting which properties the application must have to generate some desired outputs from inputs.
While Microsoft’s solution is highly experimental, Ubisoft’s Commit Assistant AI, which was developed in partnership with a Concordia University researcher, has already been used on the Rainbow Six and Assassin’s Creed games, two major Ubisoft franchises. Commit Assistant AI automatically identifies coding defects as programmers write them, saving developers about 20 percent of their time.
“It touches all software developers. I believe that in the future we will be deploying more and more AI technologies to reduce the maintenance burden in software industries,” says Concordia University researcher Wahab Hamou-Lhadj.
To successfully bridge the skill gap that exists within the software development industry, software developers themselves must realize that their skill sets will have to change.
According to a report from job search site Indeed, the three most in-demand AI jobs on the market are data scientist, software engineer, and machine learning engineer. The demand for these and other AI-related roles has more than doubled over the past three years, and it’s expected to keep growing at a similar pace.
The skills that software developers need to be proficient on AI projects include math, algebra, calculus, statistics, big data, data mining, data science, machine learning, cognitive computing, text analytics, natural language processing, R, Hadoop, Spark, and many others.
Clearly, it would be virtually impossible for most software developers to master each and every AI-related skill, especially considering the breakneck speed at which the field of AI is moving forward. That’s why software developers who want to stay relevant in the age of AI should see themselves as expert-generalists and treat learning new skills as an ongoing process.
Having a breadth of knowledge makes it far easier to acquire deep expertise in one particular area based on the current market demand. “[Those who will be successful will be the developers that have the best understanding [of] the essential complexity of their domains: which data are important [and] the impact of uncertainty on decision making, etc.,” says Todd Schiller, head of engineering at MOKA, a disruptive technologies advisory firm.
Software developers won’t have to know the intricate details of the latest machine learning algorithms or possess excellent command of the trendiest programming language to work on AI projects, but not being able to navigate the AI landscape and learn new skills at the speed of business won’t be equally optional.
Artificial intelligence will radically reshape software development and force software developers to acquire new skills in order to stay relevant. Those who will adapt most successfully to the coming era will get to enjoy an abundance of work opportunities, but the process will require a different mindset than many software developers have today.
Get actionable product building tactics in your mailbox, monthly.
No previous chapters
No next chapters