Artificial intelligence isn’t writing much software on its own—yet. But companies are finding the technology invaluable in helping professionals develop and test custom software.
ARTIFICIAL intelligence is making the process of designing, developing, and deploying software faster, better, and cheaper. It’s not that programmers are being replaced by robots—rather, AI-powered tools are making project managers, business analysts, software coders, and testers more productive and more effective, enabling them to produce higher-quality software faster at lower cost. AI may become a key factor in meeting rising demand for custom software.
- Large and small software vendors have launched dozens of AI-powered software development tools over the last 18 months.1
- Startups offering AI-powered software development tools raised US$704 million over the 12 months ending September 2019.2
- The global market for custom application development services is forecast to grow from US$47 billion in 2018 to more than US$61 billion in 2023.3
- Due to increasing demand for software, employment of software developers is projected to grow 21 percent from 2018 to 2028, much faster than the average for all occupations.4
Organizations are struggling to meet growing demand for software
Developing and deploying custom software is a critical element of how many companies innovate,5 with top-performing organizations developing many of their most important software solutions in-house.6 And the market for custom software development services is large: around US$47 billion in 2018 and climbing.7 But 65 years after the invention of the FORTRAN programming language, major challenges plague software development efforts—most urgently, a chronic shortage of talented developers.8 Plus, more than half of all software projects are late and over budget, with another 20 percent canceled outright, a 2017 study found.9 Last year, poor software quality cost US organizations an estimated US$319 billion.10 The application of AI in the software development process promises to mitigate some of these problems.
From big data to better software
New AI-powered tools are having a remarkable impact on the software development process, such as reducing the number of keystrokes developers need to type by half, catching bugs even prior to code review or testing,11 and automatically generating half of the tests needed for quality assurance. To see why this is happening now, it’s important to understand another software development trend: open source.
Open-source software has lowered the cost of software development by allowing developers to reuse and build upon others’ work. Organizations large and small are using open-source software.12 A 2018 study that analyzed more than 1,100 commercial applications found that 96 percent of them used open-source components.13 The volume of open-source software available for use by any developer is enormous and growing rapidly.
AI technology is making all of this code more useful than ever before. Researchers have discovered that machine learning and natural language processing can be used to analyze source code and other data about software development, such as records of project schedules, delays, and application defects and their fixes. This makes it possible to automate some developers’ work. A new generation of AI-powered tools is thus emerging, guiding and empowering software professionals to produce better requirements documents, write more reliable code, and automatically detect bugs and security vulnerabilities.
How AI can help develop better software faster
Developers are using AI to help improve every stage of the software development process, from requirements gathering to deployment. Consider the following examples.
Project requirements. Requirements management—the process of gathering, validating, and tracking what end users need from a piece of software—is a major cause of delayed, costly, or failed projects when done poorly.14 Several vendors have introduced digital assistants that can analyze requirements documents, flag ambiguities and inconsistencies, and suggest improvements. These tools are powered by natural language processing and trained on widely referenced guidelines for writing high-quality requirements.15 These tools can detect inaccuracies or other weaknesses—such as incomplete requirements, immeasurable quantification (missing units or tolerances), compound requirements, and escape clauses—to expedite requirements review.16 Enterprises using such tools have been reportedly able to reduce requirements review time by over 50 percent.
Coding, review, bug detection, and resolution. As developers are typing, AI-powered code completion tools provide recommendations for completing lines of code.17 According to various sources, this can reduce the keystrokes required by up to half. Some tools even generate a relevance-ranked list of usable code snippets.18 Some of these tools work on the same principle as Gmail’s Smart Compose, a machine learning–powered feature that suggests words or phrases as a user is composing an email. Meanwhile, code-review tools use AI to automatically detect bugs and suggest code changes by understanding the intent of the code and identifying common mistakes and their variants.19 At Facebook, a bug detection tool predicts defects and suggests remedies that are thus far proving correct 80 percent of the time.20 This is important: The cost of fixing bugs rises considerably further down the software life cycle, as reproducing the defects in a developer’s local environment can be complex and business-critical services failure can be costly.21 Video game company Ubisoft says the use of machine learning is helping it catch 70 percent of bugs prior to testing.22
More thorough testing. Automated testing tools that run test scenarios written by quality assurance analysts have been in use for years. Now, AI has made it possible not only to run tests automatically but to automatically generate the test cases. This saves analysts time and helps ensure that more scenarios and functionality are tested. For instance, a private equity firm used an AI-powered tool to automatically generate over half of the test cases it used to validate one software project.23 These tools can also make it easier to distinguish true defects from noise and identify their root causes. A mid-sized software company found its traditional tool to be brittle—tests would break with slight changes in the user interface (UI). The firm found an AI-based testing tool to be more robust; able to adapt to UI changes by identifying elements by their functionality and not just their position on the screen. The company achieved the same test coverage as with its older testing tool in a smaller fraction of the time.24
Deployment. Sometimes software defects become apparent only after the software is deployed in the environment in which it is meant to run. But AI-powered tools are helping to predict deployment failure ahead of time by examining data such as statistics from prior code releases and application logs. This can speed up root cause analysis and recovery in case of a failure.25 In one case, machine learning–based automatic verification of deployments and rollback helped an e-commerce company attain faster application delivery and a 75 percent reduction in mean-time-to-restore from a failure in the production environment. AI can even help applications run optimally while in production.26 Another online company deployed a machine learning–based tool that analyzes numerous potential application runtime settings and automatically deploys optimal environment configurations. This helped them halve cloud costs and more than double application performance.
Project management. Firms are even using AI to improve project management. A number of startups have introduced tools that apply advanced analytics to the data from large numbers of prior software projects to predict the technical tasks, engineering resources, and timelines that new software projects will require. This can make project planning more accurate and project execution more efficient.27 As an example, the innovation team at French telco Orange deployed an AI-powered project management tool to automate the long, manual process of updating project timelines with changes in project scope or feature sets.28
AI-powered tools coming to market
A growing number of AI-based tools…