Artificial intelligence is revolutionizing things faster than anyone could ever imagine. We see the effects of artificial intelligence everywhere today, ranging from the self-driving capabilities of Tesla to Google Photos. So, how is AI likely to impact the software development future? Will the job of a software developer or tester change? In the words of Google’s CEO, Sundar Pichai, is software likely to become a system that writes itself?
Better Coding and Testing
Currently, AI is helping developers code better and quality assurance experts test more effectively. Already, we are witnessing things that were previously thought impossible as quality assurance experts deploy bots to identify bugs. In the meantime, a new area involving testing tools that use AI to assist test experts to identify vulnerabilities in their applications and fix such flaws automatically, is emerging. Recently, Defense Advanced Research Projects Agency (DARPA) held a major event to demonstrate how such systems can autonomously and automatically identify, evaluate and fix software flaws in an effort to enhance cyber security.
Software Development will Become Easier
Today, developers fix bugs by adding logging to their program or by stepping their program through a debugger. Todd Schiller, head of MOKA (a disruptive technologies advisory company), says that with AI we will require new developer tools that enable people to interrogate the intelligence. According to Schiller, questions such as ‘How did you arrive at that conclusion?’ will be commonplace. For certain types of AI, including rule-based systems, this may be straightforward. For others, the problem may be extremely challenging.
Deploying bots endowed with artificial intelligence will make debugging projects extremely easy. This will expand the amount of time that tests can be performed without the input of human effort. Since these intelligent bots can work 24/7, humans can delegate some tasks to them during the night and come back in the morning to examine, triage the test outcomes and deal with issues that may arise.
Forrester’s analyst, Diego Lo Giudice, agrees that debugging will experience a revolution as AI has the potential to reduce the time taken to fix vulnerabilities by supporting root-cause analysis. AI is also likely to impact automatic programming and program synthesis. A software developer will specify their intention and AI will determine a program to implement the intent as well as asking questions where the objective is not clear.
Going forward, AI holds the promise of changing how organizations conduct business and build better and smarter applications. According to a recent survey involving 25 software development and delivery teams, all the people who participated in the study said that AI will help in improving planning, testing and development of new apps. In addition, software developers are likely to build better software faster using AI technologies including deep learning, advanced machine learning and natural language processing.
Apps that Learn on Their Own
According to Lo Giudice, deep learning and machine learning are the core AI technologies developers need to master in order to create applications that can learn on their own. Software developers will cease focusing on coded rules to program applications to be smart. Instead, they will focus on program algorithms or configure them to learn on their own. In the Forrester report published in 2016, Lo Giudice says that developers will integrate algorithms and source data sets to test and train apps.
Schiller goes a step further to explain how AI will affect the software development future. According to him, AI revolution on software development is likely to be similar to the impact of social software and open source software development, such as Stack Overflow and GitHub.
Schiller says that software engineers will gain an immense amount of leverage by tapping into the collective intelligence of the community. A good example of how AI is likely to help developers work together and produce better results is in agile development. While agile teams can be highly effective in accurate estimation after working together for some time, they may face challenges given the range of influencing factors. This is where AI is likely to provide guidance on estimates where there is a sophisticated interplay between different variables and huge amounts of data available from previous projects.
Though AI holds a lot of potential for the software development future, Shawn Drost, lead instructor and co-founder of Hack React (a coding boot camp), says it has a long way to go. Currently, AI is only impacting the workflow of a small percentage of software engineers on a few projects. However, it has shown to be highly effective in data analysis and other related tasks, says Drost.