As any software programmer knows, productivity is king when it comes to measuring success. Yes, quality is important, but there’s nothing quite like quantifying efforts through the number of new features deployed. This is where Gen AI–a subset of the overall domain of artificial intelligence–hits a sweet spot with regard to a “multiplier effect” in terms of productivity. In a reality where there is access to a never-tiring, always-available, and widely skilled assistant, it is not difficult to imagine how the output of an individual programmer, and therefore success, can grow exponentially.
So, let’s explore the day in the life of a software programmer and how she may use Gen AI to more rapidly develop new code. Even without AI, any programmer worth their weight knows that programming never begins with any empty prompt in the IDE (integrated development environment)–it always begins with a code snippet or existing program. Now with Gen AI, the programmer is not just limited to finding existing code samples in a repository but rather a solution such as Github Copilot can be prompted to generate very specific code. By having the AI perform tedious time-consuming tasks, the programmer is freed up to think more deeply, get immersed in the experiences/features being developed, and focus on more complex activities.
Most software programs will have interactions with other programs and/or data sources. Creating APIs to connect systems is a very typical programmer activity that is often repetitive and highly structured – an AI astute developer will offload all this ‘busy’ work by instructing the Gen AI to consider API documentation and creating very prescriptive prompts that will generate working API code.
Having observed how programmers work with Gen AI tools such as Github Copilot, I noticed that the interactions are more like a conversation rather than just one-off ‘commands.’ With each successive prompt and response, the programmer is able to assess the relevancy and quality of the code generated and create subsequent prompts to either do things like correct defects, optimize the code for performance/speed, or ask for alternative methods for tackling a particular problem.
Another time-consuming task for our programmer is unit testing (and more broadly for the QA team, creating test plans, writing test cases, executing integration tests, etc.). Tools such as Testim Copilot leverage AI to develop front-end code test scripts from requirements, help find unused test cases/duplicates to streamline testing and provide insights into test steps/results/failures. Offloading these time-consuming activities from the programmer again frees her up to worry about higher-order concerns and the more complex technical aspects of the solution being developed.
Virtually all development teams leverage Continuous Integration/Continuous Deployment (CI/CD) disciplines in managing the software funnel from programming through deployment. In this “pipeline,” a series of tests and validation are performed to safeguard the PROD environment from defects, performance issues, regulatory requirements (e.g., ADA, W2C, etc.), and CyberSecurity risks. Generative AI capabilities can also be brought to bear here within CI/CD to assist humans in continuously generating and updating test conditions as new features are developed – this guarantees that the test coverage is comprehensive and up to data; thus, helping to mitigate risks associated with low-quality code.
In this era of all things digital, businesses want to “fail rapidly” or do a series of “test & learn” activities to validate an idea before committing significant resources to scale a solution. This is another area of IT development where Gen AI can add tremendous speed and capacity to already strained development teams. One can envision scenarios where AI-savvy developers, leverage Gen AI to build working prototypes in real-time to truly enable co-development and near-immediate feedback from business stakeholders. Not only can one prototype be developed at breakneck speed, but iterative versions can be put forth almost as fast as someone can write a prompt for the Gen AI!
With more and more code being written and deployed every minute of every day, how can programmers keep up with code reviews, ensuring code quality, ever-changing security threats, and maintaining consistent coding standards? There are AI-based solutions such as Codacity, Deepcode, and Code Climate that can help automate code reviews and code maintainability. These solutions leverage vast amounts of training data to analyze code in real-time, provide instant feedback, and highlight potential problems (defects, security issues, performance issues, etc.) – they will even offer suggestions with enhance programmer learning over time.
There are obvious value, use cases, and already many viable Gen AI solutions to revolutionize how software developers work. Gen AI will impact software programming by automating repetitive tasks, augmenting humans with tools for problem-solving, and helping to improve code quality. As a result, software development teams will be faster, can increase their output, and drive higher code quality.
It is important to remember that the human is always at the helm in these examples. Gen AI works at the behest of the software developer and suggests content (code) based on prompts; it does not generate code from scratch but rather suggests what is suitable based on all the code and content it has access to.
Check back to learn more about how to get started with Gen AI tools and the change management aspects of successfully adopting Gen AI capabilities into your companies and IT delivery teams.
Peter Classon
Head of Advisory Services