-->

Enterprise AI World 2024 Is Nov. 20-21 in Washington, DC. Register now for $100 off!

AI for Software Development: Opportunities and Challenges

Preview

In addition to creating new content in the form of original text, images, audio, and video, a number of generative AI platforms, including OpenAI’s popular ChatGPT, can actually write computer code, causing consternation among human programmers and others engaged in software development. While enterprise executives see opportunity in reducing development costs and improving productivity, there are major risks related to program quality, security, and the potential for intellectual property violations.

Executive Summary

In addition to creating new content in the form of original text, images, audio, and video, a number of generative AI platforms, including OpenAI’s popular ChatGPT, can actually write computer code, causing consternation among human programmers and others engaged in software development about the future of their professions.

While enterprise executives see opportunity in reducing development costs and improving productivity, there are major risks related to program quality, security, and the potential for intellectual property violations.

As a simple example of AI code generation, this writer asked ChatGPT to write a FORTRAN program to compute and print 1 to 10 factorial (or, in mathematical notation, 1! to 10!). A factorial is the product of all positive integers less than or equal to a given positive integer, and is denoted by that integer and an exclamation point. Thus, 3! is 1 × 2 × 3 or 6.

ChatGPT responded, with its characteristic speed and nonchalance, as follows:

Sure, here's a FORTRAN program to compute and print the factorials of numbers from 1 to 10:

PROGRAM Factorials

IMPLICIT NONE

INTEGER :: i

INTEGER :: n

INTEGER :: factorial

DO i = 1, 10

n = i

factorial = 1

DO WHILE (n > 0)

factorial = factorial * n

n = n - 1

END DO

WRITE(*, '(A, I2, A, I10)') 'Factorial of ', i, ' is ', factorial

END DO

END PROGRAM Factorials

Save this code in a file with a .f90 or .f extension, for example, "factorials.f" and then compile and run it using a FORTRAN compiler. The program will calculate and print the factorials of numbers from 1 to 10.

In addition to writing code, AI can be instrumental in testing code. According to analyst Ilya Gandzeichuk, this capability includes:

Unit testing – “For example, [Amazon] CodeWhisperer does an excellent job at automating unit tests;” and

Acceptance testing – “AI [can] assist humans in rapidly accepting all aspects of the IT product, minimizing business risks and ensuring full transparency … for stakeholders.”1

AI Opportunities

A multi-function tool kit, artificial intelligence – and, more specifically, machine learning – can contribute throughout the software development life cycle (SDLC). As itemized by analyst Tanvir Faisal, these opportunities include:

Routine Code Generation – “Particularly … repetitive tasks, such as creating user interfaces, data models, and boilerplate code.”

Bug Detection – “Machine learning algorithms can analyze code and identify potential issues before they cause problems. This technique is effective for large software projects where manual code review can be time-consuming and error-prone.”

Project Management – “AI comes in handy to optimize project management processes, such as scheduling, resource allocation, and task assignment. By analyzing data on project progress, AI algorithms can identify areas where improvements can be made and help project managers make better decisions.”

Predictive Analytics – “For example, AI algorithms can analyze user behavior and predict which features are likely to be popular, allowing developers to focus on those features first.” This increases the likelihood that frequently-used functions will be relatively free from program flaws, and produce a positive user experience.

Personalization – “Natural language processing (NLP), a branch of AI, can be used to analyze user feedback and improve the software based on user needs and preferences. Thus, AI can be used to personalize software for individual users.”

Accurate Estimations – For example, “on-time delivery is one of the most sought commitments by clients. So, determining the time required for development is a crucial factor. Artificial intelligence can analyze [software development] projects and their complexities, and provide … an almost accurate estimation of the development time and required resources.”2

Generative AI Meets Low Code/No Code

A relatively-recent innovation, low code/no code refers to software development tools that provide a visual language, complete with a drag-and-drop interface, to build applications. As distinguished by DynamicWeb, the biggest difference between low code and no code is the target audience, with low code appealing to developers and no code aimed at enterprise users.3

As a vehicle for software development automation, there’s a natural synergy between low code/no code and AI-powered programming. Analyst Anirban Ghoshal asserts that the use of low code/no code platforms “will reach a tipping point as generative AI is added to them, supercharging the use of low code and no code systems among business users who are not expert programmers, and possibly leading to an entirely new class of development tools, according to a wide range of industry insiders.”4

OpenAI ChatGPT and GitHub Copilot

While ChatGPT – with its ability to generate original text, including essays, reports, even legal briefs – has captured the public’s attention, the programming community is investigating a range of AI-enabled code generators, perhaps most prominently GitHub Copilot.

As surveyed by analyst George Lawton:

Copilot, developed by GitHub and OpenAI, focuses specifically on code completion, providing suggestions for code lines or entire functions directly within integrated development environments (IDEs). It is built on OpenAI’s language models.

ChatGPT, developed by OpenAI and launched in November 2022, is accessed as a separate tool and is better suited to summarizing complex code or for generating a starting template for a specific coding task.”

“The main difference [between the two] is the tight integration of Copilot with Visual Studio Code and the fact that Copilot is trained on vast amounts of code from GitHub and other places,” explains Guido Hoffmann, technical fellow at Tech Soft 3D.5

Compensating for Software Developer Shortage

While AI is unlikely to replace human software developers – at least on a wholesale basis – it can act as an add-on resource when the number of available programmers and analysts is insufficient to support present – and planned – enterprise projects.

Reflecting on the current shortage of skilled software developers, analyst Doug Bonderud reports that:

“Hiring developers took the top spot in both 2022 and 2023 as the biggest staffing challenge for companies.

“With 58 percent of companies looking to bolster IT investment and facilitate digital transformations, according to “The Gartner 2021-2023 Emerging Technology Roadmap,” the demand for skilled developers is outpacing supply.”

Fortunately, “The evolution of artificial intelligence … solutions makes it possible to automate repetitive tasks that are critical but don’t require skilled staff oversight.”6

AI Challenges

Despite the allure of computers programming computers, AI-based software development faces formidable obstacles. Major concerns include:

Quality of Training Data – AI systems are trained – at least in part – on data exfiltrated from the Internet. In most cases, the provenance and accuracy of such data is unknown or in question.7

Lack of Transparency – Any process, whether digital or physical, whether performed by a human or artificial intelligence, must be trusted. AI applications often rely on derived logic, which may be difficult for humans to discern and understand. To gain essential trust in AI operations, the operations must be explainable. To that end, the US National Institute of Standards and Technology (NIST) has developed four principles of “explainable” artificial intelligence – principles to which AI systems should adhere.

  • Principle 1. Explanation: Systems deliver accompanying evidence or reason(s) for all outputs.
  • Principle 2. Meaningful: Systems provide explanations that are understandable to individual users.
  • Principle 3. Explanation Accuracy: The explanation correctly reflects the system’s process for generating the output.
  • Principle 4. Knowledge Limits: The system only operates under conditions for which it was designed, or when the system reaches a sufficient confidence in its output.8

Integration and Interoperability – AI tools, platforms, and frameworks may not integrate – or interoperate – with an enterprise’s existing suite of software development tools, platforms, and frameworks.9

Security Exposures – Analyst Lev Craig reminds us that AI software development, while a useful adjunct to people-based programming, is not immune to security problems. “Code generation and recommendation tools reflect the security vulnerabilities and misconfigurations of the code used as training data. Likewise, security and privacy concerns have arisen around the sources and sensitivity of the data used to train and refine AI systems.

“To mitigate these risks, enterprises need to treat AI-generated code the same way they would – or should – treat its human-written counterpart. That means applying the same security and governance policies across the board, whether code comes from a human being or an AI model.”10

Intellectual Property Theft – It’s reasonable to conclude that AI, as presently practiced, does not respect copyright or other assertions of intellectual property ownership. As analyst Craig observes, “[The] models underlying ChatGPT, for example, were trained on a massive corpus of data scraped from the internet, including text from books and articles. If that data contains proprietary algorithms that are reproduced in ChatGPT’s output, it could raise intellectual property issues.”11

To that point, AI’s inclination to appropriate the work product of human creativity is being subjected to legal scrutiny. Bolstered by allegations from a high-profile litigant, comedian Sarah Silverman, OpenAI and Meta are defendants in two class-action lawsuits. As reported by The New York Times, “The lawsuits, in which she joined the authors Christopher Golden and Richard Kadrey, were filed … in the San Francisco Division of the US District Court of the Northern District of California. Each suit says that the company in question made copies of the authors’ works, including Silverman’s memoir, ‘The Bedwetter,’ without permission by scraping illegal online ‘shadow libraries’ that contain the texts of thousands of books.”12

Software Development Life Cycle

“I think programmers will be employed for a long time, but the efficiency will improve dramatically.”

– Alan Fern, professor of computer science and executive director of
AI research at Oregon State University’s College of Engineering13

The success of software development initiatives often depends on the strict adherence to SDLC protocols and procedures, with the effect that in recent years new development paradigms have been incorporated, in particular:

The foundation of modern software development – at least formal, enterprise-level development – is the software development life cycle (SDLC), which describes the process – usually enterprise-tailored – of planning, writing, modifying, and maintaining software.

DevOps, or the tight integration of software Development and Operations

DevSecOps, or the integration of Security into DevOps

Low Code/No Code, or the use of visual, model-driven programming techniques to replace traditional line-by-line coding

While still emerging, AI Software Development promises to provide a significant boost to software development productivity and, like DevOps, DevSecOps, and Low Code/No Code, should feature prominently in an enterprise’s implementation of the software development life cycle.

References

1 Ilya Gandzeichuk. “How AI Can Transform the Software Engineering Process.” Forbes.com. April 24, 2023.

2 Tanvir Faisal. “Artificial Intelligence in Software Development.” Appsero. March 6, 2023.

3 “Low Code/No Code: Definition, Comparison, & Use Cases.” Dynamicweb Inc. March 11, 2022.

4 Anirban Ghoshal. “Why Generative AI Will Turbocharge Low-Code and No-Code Eevelopment.” InfoWorld | IDG Communications, Inc. April 21, 2023.

5 George Lawton. “GitHub Copilot vs. ChatGPT: How Do They Compare?” TechTarget. April 10, 2023.

6 Doug Bonderud. “Good Help Is (Still) Hard to Find: Why Developer Shortage Has Been a Top Challenge Two Years in a Row.” Spiceworks Inc. May 3, 2023.

7 Tanvir Faisal. “Artificial Intelligence in Software Development.” Appsero. March 6, 2023.

8 P. Jonathon Phillips, Carina A. Hahn, Peter C. Fontana, David A. Broniatowski, and Mark A. Przybocki. Draft NISTIR 8312 “Four Principles of Explainable Artificial Intelligence.” US National Institute of Standards and Technology. August 2020:2-4.

9 Tanvir Faisal. “Artificial Intelligence in Software Development.” Appsero. March 6, 2023.

10 Lev Craig. “The Promises and Risks of AI in Software Development.” TechTarget. April 26, 2023.

11 Ibid.

12 Zachary Small. “Sarah Silverman Sues OpenAI and Meta Over Copyright Infringement.” The New York Times. July 10, 2023.

13 Ilya Gandzeichuk. “How AI Can Transform The Software Engineering Process.” Forbes.com. April 24, 2023.

EAIWorld Cover
Free
for qualified subscribers
Subscribe Now Current Issue Past Issues