Exploring the Power of AI in Software Development - Part 2: More Processes
October 29, 2024

Pete Goldin
DEVOPSdigest

DEVOPSdigest invited experts across the industry — consultants, analysts and vendors — to comment on how AI can support the software development life cycle (SDLC). Part 2 of this series covers more processes that can be supported or improved by AI.

Start with: Exploring the Power of AI in Software Development - Part 1: Processes

SECURITY

From a security standpoint, AI can analyze code and runtime data to identify potential causes of errors and, in some cases, automatically apply patches, making debugging more efficient and less time-consuming.
Dotan Nahum
Head of Developer-First Security, Check Point Software Technologies

VULNERABILITY SCANNING

AI has an essential role in securing software. We can now use AI to shift left in the software development process and eliminate vulnerabilities at the start, prioritizing automated fixing.
Chris Wysopal
Co-Founder and Chief Security Evangelist, Veracode

AI is successfully making software more secure by scanning codebases for vulnerabilities. Security vulnerabilities, like leaked API keys, are quickly caught in source control and automated processes can fix the problem directly. Developers may be alerted or the respective API service provider is notified directly so the key can be disabled before unexpected use occurs.
Ed Charbeneau
Developer Advocate, Principal, Progress

Vulnerability scans and identification to remediation have been a large area of support as of late since the onset of AI being used in the development process. We have seen a higher number of teams utilizing corrective measures that are often suggested from AI analyzing codebases. Teams with little to no secure coding practices are able to leverage these tools during the development process in order to meet certain security criteria.
Sean Heide
Research Technical Director, Cloud Security Alliance

Some software development assistants have built-in security scanners which run automatically and can propose remediation. That's a huge gain for developers and for companies who are investing so much in security tools. A security scanning capability makes it easy for developers to get security into their code from the get-go, at the source. Neha Goswami
Director of Engineering for Amazon Q Developer, AWS

TESTING

I'm particularly keen on how AI can support software testing. This is still an emerging area but assuring test coverage, creating test environments, writing and executing efficient tests, all are ways to reduce cost and risk in a previously inaccessible way.
Jon Collins
Analyst, Gigaom

Generative AI is showing a lot of promise in areas like testing where it can be used to generate tests, improve tests, triage test outcomes, self-heal tests, and more.
Arthur Hicken
Chief Evangelist, Parasoft

AI can play a significant part in testing, thanks to its ability to create test cases, generate test data, and even execute tests automatically to identify bugs and potential issues earlier in the development life cycle.
Dotan Nahum
Head of Developer-First Security, Check Point Software Technologies

Automated testing frameworks powered by AI can create and run test cases, identify edge cases, and even predict potential bugs based on historical data. AI-driven tools can perform continuous testing, regression testing, and performance monitoring, ensuring that the software remains stable and meets quality standards throughout its lifecycle.
Rahul Pradhan
VP of Product and Strategy, Couchbase

In the Test phase, AI can generate functional tests based on the intention of the user story before the code is written. It can translate tests from Selenium to other languages. It can take a recording of a manual test and augment it to include negative test cases. Additionally, AI can help with test selection by examining the changes made to code and components to determine the tests from the library.
David Brooks
SVP of Evangelism, Copado

AI really impacts the testing phase, which single-handedly consumes 40-50% of developers' time. If you think about the time a video game developer would spend creating bespoke testing scenarios, you could be looking at weeks or months. It's a very manual process, and everyone plays differently — have you ever been that player who stands on the edge of a building and falls off the map? To prevent this, developers need to test for many possibilities, and AI can help randomize this testing to uncover unexpected bugs or issues that might be missed in scripted testing.
Maryam Ahmed Hassani
Co-Founder and CEO, Zealous

COUNTERPOINT: The industry is bullish on the promise of AI for automating software testing, but we are not there yet. While AI will start excelling at producing unit tests for small and contained software components, it will struggle in other forms of testing like functional and integration. These require testing across nuanced components working together to deliver an end product. As we train smarter and more focused language models, we might be able to solve for these problems.
Shub Jain
Co-Founder and CTO, Auquan

TESTING: WRITING TEST CASES

One of the best use cases for using AI to support the software development process is writing test cases. Writing tests is one of those things everyone should be doing more of, and it's a lot of copy-and-paste and repeated patterns, since it's usually not worth the time and effort to build robust testing abstractions. A lot of engineers are not happy with the state of their test cases. AI tools are very good at recognizing patterns in code and outputting variations of data or code you'd like to test for, making it a great tool to generate a large amount and variety of things to test. This can be a big time saver in the long run.
Phillip Carter
Principal Product Manager, Honeycomb

Writing test suites is trickier for an AI than it seems, but I've had some success getting it to do this. It's very simple programming with a clearly defined goal, and frankly, tests are boring to write.
Mike Loukides
VP of Emerging Tech Content, O'Reilly Media

TESTING: GENERATING UNIT TESTS

Generating unit tests is a great use-case for LLMs. A unit test is written to exercise the behavior of some isolated piece of source code. This existing source code (e.g. a class, method, or function) can easily fit into the context window of existing LLMs and is generally the only input that's required outside the LLMs training data for generating accurate unit tests.
Todd McNeal
Director of Product Management, SmartBear

DEPLOYMENT

AI supports deployment processes by automating configurations and monitoring tasks, making deployment more efficient.
Tom Hodgson
Innovation Tech Lead, Redgate

AI can assist in creating deployment scripts, automating the deployment process, and monitoring applications in production for potential issues, enabling faster and more reliable releases.
Dotan Nahum
Head of Developer-First Security, Check Point Software Technologies

In the Release phase, AI can automate conflict resolution. On business application platforms that have static sandbox environments, merge conflicts must be resolved for every deployment, not just in the initial integration.
David Brooks
SVP of Evangelism, Copado

COUNTERPOINT: I think this is more for the future. But as applications get more complex, so does deployment — we now think in terms of hundreds of microservices deployed to the cloud, running on an unknown number of virtual machines. Currently, Kubernetes is our best tool, but I've thought (for years) that it's too complex. Can systems build on AI to replace Kubernetes? Or at least generate configuration files for Kubernetes and all its friends? That would be a big step forward.
Mike Loukides
VP of Emerging Tech Content, O'Reilly Media

CI/CD

CI/CD pipelines can be enhanced using AI, which can predict the most efficient build paths, identify faulty tests, and prioritize tasks based on their importance to the project.
Camden Swita
Head of AI & ML Innovation, New Relic

Smart Automation of the CI/CD pipeline: Similarly to how AI tools can expedite testing, AI can also enhance the output of CI/CD pipelines by intelligently identifying the specific tests within a suite that should be run based on the code that was checked in. AI can also predict a risk profile based on submitted code, test pass/fail, and past production release forensics, and determine if a release is "good enough" for final deployment. In short, AI can progress organizations from continuous delivery speed to continuous deployment nirvana.
Scott Willson
Head of Product Marketing, xtype

UPDATES

AI can assist with "what-if" planning, allowing teams to explore different scenarios and make informed decisions about software updates. This results in more efficient maintenance, minimized risk, and enhanced overall security.
Javed Hasan
CEO and Co-Founder, Lineaje

CODE MODERNIZATION

Code modernization capabilities can help to facilitate and accelerate the transformation of code, such as COBOL to Java.
Keri Olson
VP of Product Management, AI for Code, IBM

MIGRATIONS

Our belief is that the usage of AI can be much more meaningful for large-scale and transformative projects like migrations. Moving codebase from one language or framework or architecture to the other for better maintainability, better quality, or to improve security postures. Often such transformative projects are delayed or get stuck because they seem too daunting and laborious. AI is able to automate away a lot of grunt work especially if the AI understands your existing codebase.
Raman Sharma
CMO, Sourcegraph

CODE TRANSFORMATION

We have seen AI come into modernization where developers can use agents to do upgrades for Java versions. For example, using agents for code transformation, I’ve seen developers upgrade more than 30,000 production pipelines from Java 8 and 11 to Java 17, saving 4,500 years of development work and $260 million dollars annually from performance improvements. What typically would take 50 developer-days to upgrade an application, can now be done in just a few hours with agents.
Neha Goswami
Director of Engineering for Amazon Q Developer, AWS

PRODUCTION MONITORING AND SUPPORT

Once a software product is released, AI can help guide customers through issue resolution to help speed and improve user satisfaction. AI tools can be used by DevOps to easily debug and fix issues by analyzing error logs and stack traces as well leverage historical case resolution databases to mine potential solutions for similar customer issues.
Shourabh Rawat
Senior Director, Machine Learning, SymphonyAI

AI tools can monitor applications in real-time, making recommendations on how to improve the software as well as identify potential issues before they happen, eliminating costly downtime.
David Brault
Product Marketing Manager, Mendix

In the Operate phase, AI can assist with monitoring. AI can wade through reams of logs to determine trends, such as which features are actually being used.
David Brooks
SVP of Evangelism, Copado

AI is increasingly used to triage issues, diagnose support problems, and provide solutions. What used to be handled through platforms like Slack or Jira can now be managed by AI, which can recommend fixes or direct developers to the right resources and documentation, thereby improving the efficiency of support operations.
Michael Webster
Principal Software Engineer, CircleCI

DOCUMENTATION

AI can automatically generate documentation from code comments, natural language descriptions, and code structures, keeping documentation up-to-date and reducing the manual effort required (after all, automation is a big plus for developers).
Dotan Nahum
Head of Developer-First Security, Check Point Software Technologies

Codebases can grow extremely large over time, and generating and maintaining documentation and knowledge bases for new releases or related products has traditionally required a lot of manual review/generation. AI can greatly assist teams here thereby enabling the long-term maintainability of the project.
Shourabh Rawat
Senior Director, Machine Learning, SymphonyAI

Most enterprises skimp on providing documentation to their users. AI can generate this automatically, including how to videos. Chatbots will be trained on this documentation, so users will be able to simply ask the AI for help, which is especially helpful as users typically don't read the manuals. David Brooks
SVP of Evangelism, Copado

Writing documentation is now a breeze: few developers enjoy writing documentation, often because it comes after the fact (you write the code, then you come back to document it when the job's done). It's tedious and boring. AI fixes that.
Rodric Rabbah
Principal Scientist, Flows & AI, Postman

Developers can create documentation with generative AI in a fraction of the time that they would manually, ensuring that all codebases are documented accurately and in real-time for future code maintenance and knowledge transfer.
Marco Santos
Co-CEO, GFT Technologies

DOCUMENTATION: API

There are certain areas of software development where AI can really take over. For example, soon, no human will be writing API documentation. It's just not a good use of our time, and AI is perfectly capable of getting it 90% of the way there.
Shub Jain
Co-Founder and CTO, Auquan

DOCUMENTATION: GIT COMMENTS

AI can help speed up many processes. A good example would be writing git commits, a necessary chore every developer has to do, which is summarizing what their changes do or fix.
Mathieu Bellon
Senior Product Manager, GitGuardian

PRODUCT MANAGEMENT

The most exciting, rising application of generative AI across the SDLC is in enterprise transformation and product management. Generative AI does an amazing job at synthesizing massive amounts of data into concise, aggregated insights. This is where we will start to see the rise of AI-driven discovery and planning assistants for product managers. With GenAI, product managers will be able to quickly sift through historical processes, process mining data, customer interviews, best practices, and more to identify opportunities, elaborate backlogs, prioritize, and create overall designs.
Matt Healy
Director of Product Marketing, Intelligent Automation, Pega

TRAINING AND COACHING

We're seeing AI positively impact learning and training. Before, learning a new language, library, or system required sifting through thousands of pages of documentation, help, and more. Now, with the rise of AI-driven search, and even personalized AI tutors, developers of all levels get fast, easy access to knowledge needed to get their jobs done. I'd expect this to continue — and am especially excited about the opportunity this presents to quickly enable new developers to become more productive.
Matt Healy
Director of Product Marketing, Intelligent Automation, Pega

For junior developers, AI provides access to a wealth of knowledge and real-time code review and conversation about syntax, functions, classes, and code structure.
Austin Vance
Co-Founder and CEO, Focused Labs

AI code assistants can serve as pair programmers that allow developers to focus on the more complex and creative aspects of their work, helping to improve overall productivity. For example, legacy coding languages like COBOL are essential to some of our most critical infrastructure globally in industries like banking and retail, yet COBOL programming skills have become increasingly difficult to find. Through capabilities like code generation and explanation, AI code assistants can offer a form of coaching that helps facilitate learning for developers unfamiliar with legacy applications, bridging generational knowledge gaps and accelerating development and modernization efforts.
Keri Olson
VP of Product Management, AI for Code, IBM

In terms of learning to write code, AI is an amazingly strong tool in the software engineer's toolkit. Many people see it as simply a question and answer type of tool, however, given the right prompting, an LLM can be a teacher/tutor. "You are a computer science tutor. I am struggling to understand and use RegExp, please use your knowledge to teach me. Ask me follow up questions to get a grasp on my current understanding and then teach me."
Sterling Chin
Senior Developer Advocate, Postman

I'm hearing from my teams that developers who are coming out of college, who are already familiar with and using AI assistants, are faster than junior developers were in the past. Today, they the ramp up quicker overall because they have an AI assistant, which means they can write code faster, code reviews happen faster, and the check ins happen faster. The overall velocity has gone up especially for the more junior developers coming in. AI is tremendously helping them ramp up.
Neha Goswami
Director of Engineering for Amazon Q Developer, AWS

Got to: Exploring the Power of AI in Software Development - Part 3: Advantages

Pete Goldin is Editor and Publisher of DEVOPSdigest
Share this

Industry News

November 20, 2024

Spectro Cloud completed a $75 million Series C funding round led by Growth Equity at Goldman Sachs Alternatives with participation from existing Spectro Cloud investors.

November 20, 2024

The Cloud Native Computing Foundation® (CNCF®), which builds sustainable ecosystems for cloud native software, has announced significant momentum around cloud native training and certifications with the addition of three new project-centric certifications and a series of new Platform Engineering-specific certifications:

November 20, 2024

Red Hat announced the latest version of Red Hat OpenShift AI, its artificial intelligence (AI) and machine learning (ML) platform built on Red Hat OpenShift that enables enterprises to create and deliver AI-enabled applications at scale across the hybrid cloud.

November 20, 2024

Salesforce announced agentic lifecycle management tools to automate Agentforce testing, prototype agents in secure Sandbox environments, and transparently manage usage at scale.

November 19, 2024

OpenText™ unveiled Cloud Editions (CE) 24.4, presenting a suite of transformative advancements in Business Cloud, AI, and Technology to empower the future of AI-driven knowledge work.

November 19, 2024

Red Hat announced new capabilities and enhancements for Red Hat Developer Hub, Red Hat’s enterprise-grade developer portal based on the Backstage project.

November 19, 2024

Pegasystems announced the availability of new AI-driven legacy discovery capabilities in Pega GenAI Blueprint™ to accelerate the daunting task of modernizing legacy systems that hold organizations back.

November 19, 2024

Tricentis launched enhanced cloud capabilities for its flagship solution, Tricentis Tosca, bringing enterprise-ready end-to-end test automation to the cloud.

November 19, 2024

Rafay Systems announced new platform advancements that help enterprises and GPU cloud providers deliver developer-friendly consumption workflows for GPU infrastructure.

November 19, 2024

Apiiro introduced Code-to-Runtime, a new capability using Apiiro’s deep code analysis (DCA) technology to map software architecture and trace all types of software components including APIs, open source software (OSS), and containers to code owners while enriching it with business impact.

November 19, 2024

Zesty announced the launch of Kompass, its automated Kubernetes optimization platform.

November 18, 2024

MacStadium announced the launch of Orka Engine, the latest addition to its Orka product line.

November 18, 2024

Elastic announced its AI ecosystem to help enterprise developers accelerate building and deploying their Retrieval Augmented Generation (RAG) applications.

Read the full news on APMdigest

November 18, 2024

Red Hat introduced new capabilities and enhancements for Red Hat OpenShift, a hybrid cloud application platform powered by Kubernetes, as well as the technology preview of Red Hat OpenShift Lightspeed.

November 18, 2024

Traefik Labs announced API Sandbox as a Service to streamline and accelerate mock API development, and Traefik Proxy v3.2.