Coding with AI is on the rise. Developers are augmenting and adapting their development workflows with coding tools such as GitHub Copilot and Cursor to ship more code to production. Even general LLM interfaces such as ChatGPT and Claude can explain, debug and generate source code. In a recent GitHub survey, 97% of developers, engineers and programmers reported that they used AI coding tools at some point to support their work.
AI can increase productivity and developer output when wielded by experienced developers, which enables teams to focus on more complex tasks, such as which customer requests to prioritize and which technical architecture to use.
Like any new advancement, there are risks associated with AI coding. If a developer solely relies on AI coding assistants for output, it may result in a code that is missing important context or potentially causing an outage because of an unexpected buggy code. AI coding pushes more work into the code review process as well as the testing and deployment checks that prevent defects from causing customer issues. Tools and processes to stress test the code and reduce risk with software deployments are critical for achieving success in the AI coding workflow.
Establish Guardrails for How to Adopt AI Coding
The adoption of tools that progressively roll out new code, identify issues and automatically roll back problematic features can mitigate risks in the AI code generation paradigm. As the first step of creating this plan, you should gain a better understanding of how build teams are using AI to code and what are the key pain points that are addressed with the help of AI. You can have conversations with developers and engineers to understand their unique approaches. Once you understand this, it is easier to determine the necessary guardrails that increase safety without stifling innovation.
Depending on your organization’s needs, guardrails vary. For some teams that have complex coding needs and enhanced privacy or security concerns, it might make the most sense to only rely on AI code builders for validation and ideation, and then build the lines of code manually. For other teams, AI can be a great starting point to build code, but then you might require that after the first few lines are set. Teams can build the remaining code without assistance because their domain knowledge outweighs the quality of what LLMs can output. Other teams may choose to adopt AI coding to generate code that tests your existing code to gain experience with the tools while improving the quality of existing code.
Work with your team to understand what will make the most sense for your specific needs and be clear about expectations moving forward. Once clear guidelines are established, you should also communicate these plans back to your company’s leadership so that they can better understand how AI is being deployed in your department. This will create better visibility and trust across your organization.
Put Measures in Place to Decrease Disruption
Defects and disruptions are going to happen with or without AI coding tools. It is an inevitable part of the development process, especially while increasing the output of the code being released. But you can use a few tools to mitigate risks and ensure that each disruption is automatically mitigated so that developers have time to address the issues rather than constantly context-switching to fight fires.
One way to do this is to start thinking about releases differently. You can decouple the deployment of code from the actual release of a feature. For example, progressive rollouts and user targeting will control the number of users with access to a new feature to ensure it is working as intended. This allows a team to check that there are no unintended issues, particularly with scalability and production data, which are often impossible to fully test in a non-production environment. Once the code behind a new feature is released to a controlled set of users without issues, it can be released to a larger set of users with full confidence that it will work properly.
Defects do not have to mean major outages or disruptions for customers. If something goes awry after the release of an AI-generated code, developer and engineering teams can set up systems to immediately roll back or turn off erroneous code so that they can make adjustments. This can solve challenges in a matter of seconds, instead of creating massive global incidents.
Every part of software development comes with risks. AI-generated code is no different. Shifting to an AI tool to increase output or support productivity shouldn’t be cause for alarm for technology leaders. Developers and engineers can take advantage of the benefits of AI coding without fear of failure by agreeing on how AI-generated code should be used and then implementing tooling to decrease the impact of issues after the code is released.