Artificial Intelligence and Machine Learning

How AI Is Changing Software Development

A robot typing.
Part of the promise of artificial intelligence is that it will impact how software is developed.

Disruptive technologies have become commonplace in the software industry, and lately, artificial intelligence (AI) is on many companies’ radars.

The month of November 2016 alone saw much activity in the AI space, including Amazon launching an AI platform; General Electric acquiring two AI startups to help it try and compete with IBM’s Watson; Google launching an AI group for its cloud, and an AI startup backed by entrepreneur Elon Musk signing a cloud agreement with Microsoft.

All of this comes on the heels of a report released earlier last fall by the Obama administration’s National Science and Technology Council’s Committee on Technology  examining potential use cases of AI. The study, “Preparing For the Future of Artificial Intelligence,” observes that AI-related technologies already “have opened up new markets and new opportunities for progress in critical areas such as health, education, energy, and the environment.”

The promise of AI is that it will change how organizations conduct business and make applications smarter; it will also impact how software is developed. Forrester Research recently surveyed 25 application development and delivery (AD&D) teams, and respondents said AI will improve planning, development and especially testing.

Software developers will be able to build better software faster, using AI technologies such as advanced machine learning (ML), deep learning, natural language processing, and business rules, says Forrester analyst Diego Lo Giudice.

Machine learning and deep learning are the core AI technologies developers need to master to build applications that learn on their own, Lo Giudice says. “Developers will focus less on using coded rules to program applications to be smart and instead program algorithms or configure them to self-learn,” he writes in the October 2016 Forrester report How AI Will Change Software Development and Applications. “Devs will integrate algorithms, compose, and source large data sets to train and test such apps.”

Todd Schiller, head of engineering at MOKA, a disruptive technologies advisory firm, believes AI holds great opportunity for developers. “In many ways, it will be similar to the impact of open source and social software development [such as] GitHub, Stack Overflow. By tapping into the collective intelligence of the community, software engineers have gained an immense amount of leverage.”

That said, embedding state-of-the art AI into their software means developers need to shift their focus from algorithm development to data development, he adds. “For instance, if you're developing an image transformation, most of your focus isn't on defining the algorithm; instead, it's on acquiring/creating a good training set.”

Another shift will need to occur when it comes to debugging. Right now, software engineers typically fix bugs by adding logging to their program and/or stepping through their program with a debugger, Schiller says. “With AI, we need new developer tools that allow you to interrogate the intelligence: ‘How did you arrive at that conclusion?’ ‘Why didn't you draw a conclusion I thought you would?’” For some types of AI, such as rule-based systems, he says, this can be straightforward. For others, as in certain deep neural networks, “the problem is extremely challenging.”

Lo Giudice agrees the nature of debugging will change, and AI can reduce the time it takes to fix bugs in production by supporting root-cause analysis.

AI also will impact program synthesis and automatic programming, says Schiller. A developer will specify their intent and the AI determines a program that implements that intent, asking questions where the intent is ambiguous.

Developers will also need a renewed focus on domain expertise, he says; 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.”

Shawn Drost, the co-founder and lead instructor of coding boot camp Hack Reactor, says AI still has a long way to go and is only impacting the workflow of a small portion of software engineers on a minority of projects right now.

“AI has shown to be good at some data analysis and other related tasks, but doesn’t understand the context and complexity of code in the same way that humans do,’’ Drost says. “Companies that conduct extensive analysis are gradually testing AI systems to augment or replace their other codebases.”  

Although some in the development community have expressed concerns about AI taking over their jobs as more tasks are shifted to machines, that’s not keeping Schiller up at night. “If you view your job as writing code, you're in a position to get replaced. If you view your job as delivering value to businesses and society, you're going to be empowered by the leverage that AI and ML deliver.”

Even as AI transforms the software development life cycle, integration in particular will remain a relevant skill, says Lo Giudice.

AI also will not change the fact that there will be a shortage of software engineers for the next decade or longer, observes Drost. “Beyond that, it's hard to predict what AI will bring—but developers will have far less to worry about than the rest of our workforce.”

Esther Shein is a freelance technology and business writer based in the Boston area.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More