Never Miss a Beat: Get a snapshot of the issues affecting the IT industry straight to your inbox.
February 5, 2024
4 Min Read
Komsan Saiipan via Alamy Stock
AI-augmented software intelligence forms a partnership between human developers and AI. Working as a team, this powerful duo can make the software creation process faster, easier, and more reliable. “The traditional method of relying solely on humans throughout the entire development lifecycle is gradually becoming obsolete,” claims Anita Carleton, director of the software solutions division at the Carnegie Mellon University Software Engineering Institute. “The current notion of a software development pipeline will be replaced by one where AI and humans collaborate to continuously evolve the system based on programmer intent,” she predicts in an email interview.
The combination of humans and AI can not only accelerate software development by eliminating repetitive work, but also enhance code reliability and other benefits compared to conventional development processes, Carleton explains. “Recent advancements in generic AI tools like ChatGPT, and software-development-specific tools like Copilot, are rapidly changing how software engineers work.”
“AI, when supported by reliable data, allows the design, development, and deployment of reliable software by shifting the attention of humans to the conceptual tasks that computers aren’t good at and eliminating human error from tasks where computers can help,” Carleton says. The traditional code review process is entirely human based. With AI-augmented software engineering, code reviews are facilitated by AI-powered reviewing tools. “These tools can access many online repositories and provide suggestions for code improvement.”
Humans are excellent at creative problem-solving, yet generally poor at ensuring that essential tests and exception cases are handled safely, observes Adam Sandman, CEO of project management tools provider Inflectra via email. AI allows developers to write an 80% working piece of code that can made 100% ready by having AI supply enhanced input checking, error handling, and null checking. He notes that the process is similar to a writer using spelling and grammar checkers to catch obvious mistakes.
The first step toward deploying AI within the software deployment processes is ensuring that the source code is running up-to-date programming languages, advises Jeremy Rambarran, a professor at the Touro University Graduate School of Technology via email. “Be sure to give developers a framework to demonstrate when AI is necessary and applicable.”
Carleton recommends that newcomers to augmented software engineering become familiar with the field’s many tools and techniques, including:
ChatGPT and similar conversational general-purpose AI models
ChatGPT is a user-friendly tool that’s already being used for a variety of tasks, including code generation, code review, bug fixing, and documentation work. Microsoft Bing AI is another similar tool used by developers to get code examples and code suggestions. Google Bard, a new tool that is still in the experimental stage, can be used for code generation, intelligent code suggestions, and many more tasks similar to ChatGPT.
Autonomous testing tools
Automated testing tools are powerful applications for the software testing process. Appvance, Testim, testRigor, mabl, and Functionize are popular autonomous testing tools.
AI-based bug detection and debugging tools
There are many available AI-based bug-detection and debugging tools, including development and code generation offerings, such as Tabnine, Sourcegraph, aiXcoder, and Hugging Face. These are all popular tools developers can try out if they want to begin using AI development.
Prompt engineering can be used to interact with generative AI services to achieve specific software engineering coding, testing, or documentation activities. “Learning common prompt patterns can help users achieve impressive results more quickly and with higher repeatability,” Carleton says.
New AI augmented software development adopters face several major potential pitfalls, Rambarran cautions. At the top of the list is maintaining source code quality and reliability, which can be threatened by various bugs, errors, and inefficiencies. “There are also security vulnerabilities to be aware of as new systems and updates are implemented across various applications and devices.”
Developer inexperience poses yet another possible danger, Sandman warns. “A developer may, for example, prompt AI for a generic piece of code to sort data and not realize that it’s sorting by textual representation, not numerical value,” he explains. “Imagine that happened in an accounting product and it sorted 10 as less than nine.”
There’s significant angst right now in the developer community, Sandman observes. “Current and future computer science graduates are asking me if they will have a job in five years.” He believes they will, but it may be a significantly different job than they anticipated. “Instead of trying to understand what AI will do, versus what a human developer will do, they need to see AI as a tool and ask, ‘What will we do together that we cannot do now?’”
About the Author(s)
Technology Journalist & Author
John Edwards is a veteran business technology journalist. His work has appeared in The New York Times, The Washington Post, and numerous business and technology publications, including Computerworld, CFO Magazine, IBM Data Management Magazine, RFID Journal, and Electronic Design. He has also written columns for The Economist's Business Intelligence Unit and PricewaterhouseCoopers' Communications Direct. John has authored several books on business technology topics. His work began appearing online as early as 1983. Throughout the 1980s and 90s, he wrote daily news and feature articles for both the CompuServe and Prodigy online services. His "Behind the Screens" commentaries made him the world's first known professional blogger.
You May Also Like