Artificial Intelligence has been gaining traction within corporate IT environments over the last 10-15 years in some form or another. The recent growth of large language models and Generative AI (Gen AI) capabilities has exponentially increased the potential business value of AI while concurrently lowering the cost of entry to leveraging these capabilities. Now, every company in every industry must formulate their AI strategy to unlock unprecedented value, drive innovation, and solidify their competitive edge in the marketplace.
The business of IT and development of custom software solutions is no different. Generative AI is having a significant impact on the full Software Development Lifecycle (SDLC), and that impact will only increase going forward. Emerging models are increasingly better trained for generating code while, at the same time, more tool vendors are integrating generative AI capabilities into their offerings.
At Forty8Fifty Labs, we are actively delivering AI solutions across a variety of client use cases and working to evolve new techniques and capabilities for driving SDLC efficiencies using Generative AI. Not only so that we can help guide our customers in leveraging these capabilities but to enhance our own software development practices and drive faster speed-to-market and lower costs in our development engagements.
In this article, we will review some of the key trends we see in how generative AI is and will be impacting the SDLC. For each, we’ll discuss what is ready now vs what will continue to emerge in this area of IT that is changing fast and furiously.
Impacts on Analysis
Gen AI is already having an impact on how business analysis and requirements discovery and documentation are done. Many tools in this space are having AI-assistants imbedded to aide in the generation, validation, and optimization of these requirements. These features are already becoming widely available for use. Microsoft’s embedding of Bing AI into its Office applications and Atlassian’s Intelligence service within both Jira and Confluence are key examples of the tooling available.
Figure 1 – Use of Atlassian Intelligence in Jira
Impacts on Design
These tools can also help during the design phase as well. For example, Gen AI services can assist architects and developers in researching specific design scenarios and helping to determine the best technical approach(es) for use. Every initiative comes with unique challenges that can be outside the expertise of the team working on them. Now those teams can tap into Gen AI tools to help close some of those specific gaps – allowing for them to focus on the aspects of the design that are driving business value.
Impacts on Implementation
Implementation is where some of the most exciting capabilities are emerging for Gen AI as part of software development. Some of it is just an evolution of existing capabilities, such as intelligent code completion built into an IDE. With Generative AI, such auto-completion can go beyond just recognition of object types and suggest methods, functions, or variables, but can begin to recommend larger blocks of code based on the context of the previous code.
Integrated code assistants such as GitHub Copilot, Microsoft Intellicode, and Tabnine can deliver increasingly larger impacts on developer productivity. These tools can also generate code from natural language descriptions of the objects or functions and can help pull in the best 3rd party libraries for the job.
Figure 2 – Github Copilot and Tabnine in action
Once the code is complete, these AI models can also aid in performing code review – looking for common issues around code structure, performance, security, etc. Tabnine has also introduced the capability to use Retrieval Augmented Generation (RAG) that would enable having these models compare against your internal coding standards. Having an automated review of each developer’s code can lift the overall quality of the team’s software and make review sessions within the team focus on higher-value discussions around the business-specific aspects of the solution.
Figure 3 – Code review for performance issues
Additionally, as each subsequent release of models like ChatGPT and Code Llama are refined for the purpose of software development, there is a promise of significant efficiency gains in the future. For example, to be able to take a drawing of a user interface from a design session, upload an image of that drawing to the model, and then have it generate the code for that interface is not far out of reach. The current models can already do it, albeit imperfectly. One does not need to look far into the future where each developer will have a AI coding assistant (or set of them) that will act almost like junior programmers that the developer is guiding rather than having to perform all those tasks themselves.
We would be remiss not to include many of the ongoing concerns and issues around AI model-generated software code. There are important concerns regarding the overall quality and security of generated code today. These tools cannot be used without significant oversight from human developers. Also, the impact of copyright and open-source licensing on the code bases that are used to train the models is still being assessed. If a model is trained using open-source code, do the GPL terms extend to that newly generated code? These kinds of questions will continue to be explored as we move forward into this new future of AI software development.
Impacts on Testing
These Gen AI services can also be of significant value as part of the testing activities. They can aid developers by generating unit test scripts for the written code. Often, creation of these test harnesses can be time consuming at best or cut from the effort altogether. But by providing the source code to the model, along with some basic info such as a description of the purpose, the methods you want to test, and any dependencies the code has, the AI model can generate the unit test code for a fraction of the effort.
These tools can also help during QA testing as well. They can help generate functional test cases and even create automated test case scripts for tools such as Selenium. Additionally, they can be used to generate test data quickly and easily in the structure (JSON, etc.) needed by the project team.
Figure 4 – Generation of test data
Impacts on Deployment and Maintenance
Just like generating application code, Gen AI models can be used to create DevOps artifacts, streamlining maintenance for infrastructure as code scripts. Other configurations within the CI/CD pipelines can also be created and optimized.
For maintenance, these tools can also be an aid for support teams, especially if they are taking on application code they are unfamiliar with. Existing source code can be analyzed by the AI model and described to the developer in natural language. It can also take error logs and analyze code for the most likely issue(s).
Figure 5 – Analysis of source code
AI models will continue to evolve quickly and drive these efficiencies in the SDLC, either directly or through integration with the tool we are already using. The efficiencies gained will help increase speed to market, drive down costs, and transform how software projects are planned, staffed, and delivered. The impact will be as significant as the globalized outsourcing models over the past couple of decades. Every company doing software development needs to determine how to best leverage these tools and/or demand so from any partners they use for software development.
Forthy8Fifty Labs is already guiding our clients on how to leverage AI to transform all aspects of their business. Contact us today to learn how we can help you.
Related Posts: