Everyone’s talking about how AI will revolutionize so many things. Most of today’s discussions take place at the application level, although AI will impact software development too. Some vendors, ISVs and consultants anticipate such a shift, but they aren’t able articulate the specifics yet.
For years, organizations have been building software using certain types of knowledge. Now, they also have to consider the probable impacts of AI. Diego Lo Giudice, vice president and principal analyst at Forrester Research, published a report in November 2016 about this particular topic that’s well worth reading. The report, which is the first in a series, is based on a survey of 25 application development and delivery (AD&D) decision-makers at vendor, user, and systems integrator companies.
How AI will impact the SDLC
It’s pretty obvious that AI is going to impact testing, given the ever-rising levels of automation and software complexity. With the help of AI, it will be possible to identify outliers faster, achieve better code coverage, and discover more effective ways of testing. Lo Giudice anticipates that AI will not only “pinpoint production bugs and remedies” faster and with greater confidence, but also “automate decision-making on what to build and test next.”
But how will AI impact the software development life cycle beyond testing? On the front end, it could help with ideation, not only to help clarify thinking, but also by suggesting new ideas. The report mentions the possibility of a natural language processing interface, which would enable developers to type an idea into a system, which would translate the text into executable code. It does not mention a voice-activated interface, which is the direction application interfaces are going generally.
(Related: How Google is preparing for a future driven by machine learning)
Planning will benefit from AI’s ability to monitor and learn from what it observes throughout the life cycle. As the report notes, at present, it is difficult to estimate how long it will take to translate requirements into code. AI is expected to make DevOps more efficient by identifying the root cause of problems faster and helping to prevent problems that are predicted to occur in a project.
In short, AI will impact the entire SDLC and therefore the entire software team.
Think differently
One of the most important changes AI will spearhead will be in shifting development from rules-based programming to building self-learning capabilities into applications. As the report puts it, “[Businesses] will have to adapt to a new world where developers no longer create an app for a specific outcome, but can build software that can handle a range of outcomes and next steps.”
“AI can improve the way we build current software—improving the process (for example, further increasing automation, leveraging analytics to improve quality, etc.),” said Lo Giudice. “Then it will change the way we think about applications—not programming step by step, but letting the system learn to do what it needs to do—a new paradigm shift. The simple view is it can give developers a whole set of powerful tools (APIs) to build ‘cognitive applications’ that can speak, see, read, etc.”
Machine learning requires massive amounts of data and training, however, so Lo Giudice expects developers to partner more closely with data analysts to get it right. Autonomous self-learning follows, although it will take time, as will the full impact of AI on software development.
“It’s the perfect time given the general heat up of AI in the market, but also the maturity and convergence of AI technologies with Big Data, computing power, cloud and software being the brand,” he said. “The need for a new way of software development and new types of apps is high and the best way any digital business can innovate. While everybody is focusing on how AI can be leveraged for business or business processes, I am hoping to trigger AD&D leaders to not miss the opportunity and apply AI to the business of software development.”
Interestingly, the report says developers will be able to build apps that think like humans, which is important because AI-enabled apps must be able to think like humans to understand humans. However, the real value of AI comes from the ability to think beyond the confines of human thought: unearthing what humans are missing or can’t see, and perceiving connections between data points that have not been previously considered, for example. The report mentions AI’s value in systems that will “deal with complexity with increasing precision, adapt to the unknown, and expand their capabilities beyond their original programming.”
All of this means that software development won’t be about inputs and expected outputs anymore. Instead, software teams will learn to embrace the unexpected. Developers will have to move beyond the “known knowns” to the “unknown unknowns,” which understandably makes some people nervous and raises cultural issues that deserve in-depth consideration. Job responsibilities and roles will likely shift, perhaps in unanticipated ways. Meanwhile, workflows and software team productivity will improve, as will software quality.