by John Perianayagam, Vice President – Digital Engineering (North America)
With the recent rise in AI tools such as ChatGPT, there has been much debate over the use of these to automate or even replace key tasks in software development. There has even been talk of AI replacing software development jobs altogether.
Do any of the following statements sound familiar to you?
There has been talk lately about the power of AI engines and whether they can replace the need for human developers and testers, for example, the use of AI in telecom. People are wondering if we need developers when an AI engine can generate code in any technology or if Quality Engineers are even necessary when an AI engine can generate automation scripts when AI in software testing can do such a good job. Artificial intelligence in software testing is becoming much more mainstream, but this sci-fi movie scenario is not the reality.
Let’s take the music industry as an example. While manual music instruments have been upgraded to electric and electronic versions, music directors and composers still exist. Though there are apps that can generate different types of sounds and notes, they cannot create music. Creativity cannot be 100% replaced by any system, as a variety of moods, situations, and a person’s creative skills will decide on the direction a piece of music will take.
The same is true for software development. The bits and pieces of code given by an AI engine can reduce the time it takes to develop a big system, but they cannot develop entire systems with client-specific requirements. Developers and Architects cannot be replaced, and human logical thinking is a must to create any customized and useful output.
Every client’s request for any new systems has “scalable, configurable, and future-ready” as must-haves, and the response always starts with a Discovery phase to define and articulate the contextualized meaning with respect to business and technology. When any requirement is formula or data-driven, a system is enough to handle it. However, when the requirements are descriptive and multi-level complex human intervention is necessary, it may take a few more decades to design a system to handle it.
Testers are not only validating the code, but they are also validating whether the code resolves the client’s problem or needs. They are also validating the user experience. When it comes to complex systems, testing requires cautious decisions on complete testing and regression testing. The “cautious decision” is logical, but not statistical. End-to-End testing is another decision based on the understanding of entire granular systems and user behavior. There is no quantitative information available for the system to mimic it.
In conclusion, every system has a logical decision to take for the development and testing, and an AI engine can support, rather than replace it. Organizations can start including evaluation on how effectively the developers or testers are utilizing such AI engines for increasing productivity while building a large and complex system. If intake for computer studies drastically reduces due to the perspective that an AI engine can replace humans in software development and testing, the software industry will face a difficult time trying to meet the demands for talent.