Artificial Intelligence (AI) is a quickly-advancing computational field that affects every sector of the economy. AI applications can be seen everywhere; from transport and logistics to healthcare, and even finance.
One industry that seems to be participating in a self-fulfilling prophecy is the software development industry. Considered the foundation of Artificial In, software development is poised to undergo massive disruption from its own invention.
How can software development companies, and the companies that rely on them, prepare for this coming disruption? How can organizations take advantage of AI while sidestepping the threats that come with it? Before addressing these issues, it’s important to first set the stage by defining exactly what AI is.
AI is any machine that displays human-like intelligence. AI is also sometimes referred to as machine intelligence. Other subsets of machine intelligence fall under this broad definition, including:
- Machine Learning (ML)
- Natural Language Processing (NLP)
- Vision Processing (VP)
- Speech Processing (SP)
- Expert Systems (ES)
- Robotics
Historically, scientists and universities have driven the growth and development of AI. Companies like Google and Microsoft are at the forefront of the AI revolution today.
With this basic understanding of AI, let’s now focus on how it will impact the future of software development starting with the software development lifecycle.
AI Will Fundamentally Disrupt the Software Development Life Cycle (SDLC)
In the last decade or so, software development has undergone a paradigm shift from the rigid Waterfall method to more flexible implementations of the Agile methodology like Scrum and Kanban.
In addition to this shift, there are new hybrid roles in IT like DevOps and SecDevOps that are a unique combination of security, development and operational tasks. These transcend just technical knowhow and encompass tools, practices and overarching cultural and corporate philosophies that allow an organization to increase their output of applications and services.
Even with these changes SDLC still follows six distinct steps:
- Planning
- Analysis
- Design
- Implementation/ Development
- Testing
- Maintenance
At every step, project managers, designers, developers and other technical employees must deal with high levels of uncertainty and unpredictable outcomes. Mistakes made at any one step can have a domino effect on subsequent steps.
How does AI affect these steps?
- Planning/ Requirements Gathering
At the planning phase, issues surrounding estimates, requirements, project timelines, and user stories abound. When applied at the planning phase, AI will be capable of identifying key business objectives and aligning software development objectives. Using deep learning, AI will be able to analyze features and other requirements at a granular level to eliminate any software bloating.
- Analysis
In the analysis phase, the old methods struggle to gain a macro image of how a software development project will affect current dependencies. In such a scenario AI will be able to pull in data from past projects (possibly projects from around the world) and process this data to create predictive models. Adding user stories and similar factors will give unprecedented insight into how a project will affect business.
- Design
How do you quickly turn an idea into a working prototype? Nowadays techniques like rapid prototyping and Agile are frequently employed but tend to be time consuming. AI, on the other hand, will be able to assimilate natural language requirements and deliver a working prototype within days or even minutes. It’s clear how such a capability would completely disrupt this lengthy and inefficient phase.
- Development
In an AI future, will developers still have a place in the SDLC? This is an extremely controversial question. It points to the potential ability of self-learning AI to write code; both to update itself and to write independent programs.
- Testing
Finding and eliminating bugs is a major challenge for software developers today. Major companies like Google and Apple publish bug bounties and reward bug finders. AI would make such bounties obsolete. Self-learning AI could use near-infinite computation power to not only track and fix bugs, but to also predict the likelihood of bugs occurring in the future.
- Maintenance
Many companies today need maintenance contracts to support post-production software projects. Consider a future where AI does this by constantly scanning and fixing a company’s software infrastructure while offering 100% uptime, at a fraction of the cost.
AI will radically transform, improve and accelerate the SDLC. Although this disruption may seem daunting, massive opportunities will be created for those who anticipate and ride this wave.
AI Will Introduce Self-Learning Applications
Google made history when its voice AI Googleplex made a voice call to a business and booked an appointment. This demonstration was historical because the AI passed the Turing Test, a test that differentiates what is recognisable as a machine and what isn’t. In this case, the business receiving the voice call from Googleplex did not know a machine just called and booked an appointment.
As AI nears this threshold some of the self-learning applications in software development that will emerge are:
Natural Interactions
Most applications today employ dozens of User Interface and User Experience techniques to bridge the gap between human and machine communication. Nevertheless, this interaction remains mostly unnatural. AI applications like Googleplex provide a glimpse of how humans and machines will communicate in the future – through natural interactions like speech, vision, and even emotion.
Expert Systems
Buying an insurance policy or applying for a mortgage requires a large amount of paperwork filled with ample legalese. This acts as a major bottleneck for both applicants and companies offering these services. By incorporating expert data into learning algorithms, AI can quickly expedite this process by analyzing applicant details and cross-referencing against requirements. Processes that would usually take days could theoretically be completed in mere seconds.
Spontaneous Applications
Most of today’s AI is specialized, trained to operate within a narrow range of tasks. As AI evolves, more general AI will emerge – an AI capable of learning and exercising free will. As general AI gains momentum it will herald the emergence of software applications with no human origin. For instance, a general AI may invent a mobile app and design, build and publish it to an app store.
Although some of these applications of AI are still in the realm of science fiction, the current pace of technological advancements may soon turn them into reality. What is noteworthy, however, is the unrivaled potential AI possesses to produce completely novel software applications.
Merging the New SDLC with the Old SDLC
The disruption of the SDLC by AI promises to introduce massive benefits for software developers and software consumers. However, challenges and risks will emerge as the new AI enabled SDLC replaces current efforts to make SDLC more efficient and effective. Organizations will need to carefully manage their intersystem dependencies to accomplish this revolutionary change while mitigating risks and challenges. They will also have to manage this transition by recruiting a new skill set while accounting for existing skills. Ultimately, AI will radically influence and impact conventional SDLC, but the distinction of what is practically possible and what is currently in the realm of science fiction should remain clear in the near future.