Artificial Intelligence and the SDLC
In discussing how a modern software development life cycle currently operates, one would be remiss not to talk about one of the most fundamental new technologies changing many fields and industries.
This happens in many different ways, as innovators experiment with ways to optimize, automate and expedite the software development life cycle. However, the general idea is that with more automation, teams are going to be more hands-off.
This piece in SmallBizDaily gives us a hint of this idea:
“It is always vital to reduce time to market of a customer business app. For instance, with the Agile SDLC model chosen, the development team can prepare the MVP as early as possible,” writes Katrine Spirina. “Prompt market entry of a viable product can draw much attention of early adopters to the application. Meanwhile, the development team will be able to proceed with updating and adding functionalities … The software development life cycle also allows business analysts to foresee the market tendencies and embed a bunch of cutting-edge functionalities in a would-be app during the development process.”
A piece by Forbes from this past April also talks about how machine learning “fundamentally changes the software development paradigm” and how artificial intelligence programs will make many kinds of explicit coding obsolete.
“There are many tasks and decisions … that are far too complex to teach to computers in a rigid, rule-based way,” writes Mariya Yao. “Enter AI techniques such as machine learning and deep learning. In these approaches, an engineer does not give the computer rules for how to make decisions and take actions. Instead, she curates and prepares domain-specific data which is fed into learning algorithms which are iteratively trained and continuously improved. A machine learning model can deduce from data what features and patterns are important, without a human explicitly encoding this knowledge. The outputs of ML models can even surprise humans and highlight perspectives or details we haven't thought of ourselves.”
This type of innovation notwithstanding, experts caution against the “black box problem,” where, with excessive automation, it becomes hard to figure out how the AI/ML programs are doing their work – inhibiting troubleshooting.
As formative types of AI assistance in the SDLC, Yao cites rapid prototyping, intelligent programming assistance, automatic analytics and error handling, automatic code refactoring, and strategic decision-making tools.
The piece also ends with the intriguing concept of “Can AI create AI?” which conjures up nightmarish visions of robots building more robots, in order to build more robots.