Ever wondered how Artificial Intelligence impacts software development? Francis Miers, Director at Atlassian consultancy and software development lifecycle company, Automation Consultants gives us the lowdown.
Is artificial intelligence changing the world of software development? The short answer is no – not yet. At the moment, we are still very much in the era of software lifecycle automation. Artificial intelligence (AI) has very little impact on the way software is currently developed – at least, not in the true sense of the word. However, AI has future applications.
The present: software lifecycle automation
The rapid development of new software applications, as well as their easy and efficient use once deployed, is a critical business process, but traditional software development practices have proven to be inefficient and disconnected.
Consequently, practitioners of Agile and DevOps are advocating automation at all stages of the software lifecycle; from the initial development phase to continuous integration, testing, staging, release and infrastructure management.
So, while it can’t be compared with true artificial intelligence, the increasing adoption of automation is indicative of an industry that is embracing new tools and practices to improve agility, efficiency and cost-effectiveness.
The near future: AI-inspired automation and machine learning
In the near future, however, automation may not be enough – especially as the needs of development teams evolve to become more complex. A select number of companies are already starting to experiment with new applications of what might be referred to as ‘AI or machine learning-inspired automation’. This trend has by no means experienced widespread adoption yet, but here are three examples of potential applications.
- Code quality review: software testers could use intelligent software to analyse code and automatically identify flaws. Manually testing software is a labour-intensive and time-consuming process; bots could get it done much quicker and with greater accuracy. Early signs of this in the cyber security world have already been seen.
- Bug diagnosis: machine learning is beginning to be put to work to troubleshoot and diagnose bugs in software that may otherwise go undetected, thereby helping to avoid delays and problems further down the line.
- Assessing choice of agile methodology: we could soon see machine learning applied to historical datasets to predict the possible failure rate for a sprint. It could even determine which agile development methodology may be best suited to a specific project, based on data from previous projects.
The far future: true artificial intelligence
Trying to work out exactly how artificial intelligence will affect software development in the future is impossible. All we have right now is pure speculation.
Perhaps the most widely discussed future development is ‘self-writing software’. In this scenario, an artificially intelligent machine would be able to understand the full requirements of a specific project and create a design based on these requirements. It would then write the code for the application and carry out the entire software lifecycle without human input.
No doubt this will cause some concern among developers – fearing that they may one day be replaced entirely. However, ‘self-writing software’ and other very advanced forms of artificial intelligence, are still a long way off from becoming a reality.