Fact: Microsoft has already signed up over one million paying users for Github Copilot. Using Generative AI for code is not only the most significant development in DevOps for the past few years, it points the way for where DevOps is going in the future as well. All of the other developments in DevOps over the past few years have been incremental at best, but the use of a copilot for writing code is a major industry shift.
Increasing developer productivity is key to meeting the demands of digital transformation in the enterprise. Not only will automated code generation make experienced developers more efficient, but it will open the door for low coders to create applications that include code snippets as well. In the past, low coders were restricted to creating solutions with the point and click tools provided by their platform of choice. Flow builders can only go so far before you need to interface with an API to complete the job. With a generative AI, if admins need automation as part of their solution, they will just have to ask their copilot.
This will have two downstream impacts. First, testing will become much more important. This includes unit tests and functional tests, but also security and compliance tests. Today, teams use pull requests to have senior engineers manually review code generated by junior programmers or peers. In the transition period, pull requests will be generated by bots so that humans can review their code.
The unit tests and functional tests will be written by the AI as well. This sets up a “fox guarding the hen house” scenario, but the result of the functional test can be presented in a video of the test run that demonstrates the proper behavior, so it will be easy for a human in the loop to verify.
Automated compliance and security scanning will be even more critical than today, especially open source software compliance. We should be able to provide the AI with our approved open source library list, but we will still need to scan the code to ensure only approved open source has actually been used. Trust, but verify because the current generation of tools are known to hallucinate now and then.
The second impact will be that agile planning will take on a much bigger role. Generative AI relies on prompts to create code. You have to tell it what you want the code to do. That information is normally written in the user story. so the user story must be complete and well written to ensure that the code generated does what is supposed to do. Garbage in, garbage out.
In the past, a Business Analyst or Product Manager could write a basic user story and the developer would interpret what they meant. Good developers would push back to get clarity, especially during the sprint planning phase where story points are assigned. That human to human interaction is not possible when a bot is writing the code. The best code generation tools will first help refine the user story to create clear acceptance criteria. They will do this interactively, asking the Business Analyst for more information when needed.
Another key part of the planning process is impact and dependency analysis. Enterprise applications are so large today, and so tightly integrated with other applications, that no one human can understand all of the dependencies. This is exacerbated by the rapid turnover of staff. Nobody working in the company today may know why something was implemented five years ago or if it is still needed. The Generative AI will not only write the code for you, but it will also be able to tell you when you are asking for something that will break other functionality. Well written user stories will provide the AI with what they need to write the code, but also enough documentation so that future changes will be aware of the “why” as well.
Enterprise DevOps is complex and many teams struggle with their ability to use the tools that are available today. DevOps is a combination of people, process, and tools. AI is an accelerant. It will not replace the need for a well-designed process and well-trained teams. That’s why balance is so important. You want to go fast, but you want to make sure you are producing code that is clean and safe.
The future of DevOps builds on the strong foundations we are laying down today. AI has the potential to accomplish more with the same number of people, but only if the foundation is solid.