In the last few decades, it’s arguable that no field has evolved more radically or dynamically than software development. Relevant technologies and techniques are emerging at breakneck speed, and the advent of generative A.I. promises to further supercharge these advancements.
While some speculate that generative A.I. products will spell the end for professional software development as a human vocation, I strongly believe nothing could be further from the truth. Developers who embrace A.I. into their workflows can put themselves at a significant advantage in the talent marketplace. Instead of a developer having a conversation with a pair programmer or colleague or searching on Stack Overflow or Google (which is not very efficient 80-90 percent of the time), the developer can be in conversation with their A.I. assistant. With that, developers will become 10-100X more productive than they are today.
Developers who do that will see immediate and long-term benefits in all sorts of ways—not just in increased productivity but in real-time responsiveness to feedback, improved accuracy, and better-quality code overall.
Real-Time Review and Feedback
A major way software developers can benefit from integrating technologies such as ChatGPT into their work is through leveraging A.I. to develop comprehensive processes for code review. By using ChatGPT to review code, developers can get automated feedback on quality and style. Coders can drop code into the ChatGPT interface and, by asking the right questions, get near-instantaneous analysis on potential issues, suggested improvements, as well as explanations for all recommendations.
Developers can also use ChatGPT to review offline documentation, including API references, user guides, and technical specifications. As with code, they can drop documentation into the A.I. interface for review, and ChatGPT can respond with feedback on clarity of language, completeness, and organization. This helps to ensure that all documentation is comprehensive and in alignment with the codebase’s standards.
ChatGPT is a great resource for bug tracking, too. By analyzing bug reports, ChatGPT can help developers triage and prioritize issues, identify potential duplicates, and assign appropriate labels or categories. It can even suggest solutions or workarounds based on historical data and existing institutional knowledge.
Auditing codebases is a time-consuming and sometimes boring process—but an absolutely critical one. Developers can free up this time for other activities by feeding portions of the codebase into ChatGPT. The A.I. can then analyze code for performance bottlenecks, security vulnerabilities, and adherence to coding standards. With ChatGPT’s help, a coder can quickly identify specific areas for improvement, as well as overall alignment with industry standards and organizational best practices.
Finally, ChatGPT can assist in guiding and managing project review meetings, acting as a virtual facilitator, collecting and documenting feedback from participating developers, and aggregating and summarizing it all into reports.
These ChatGPT-generated reports provide two main takeaways: First, they identify overarching themes or topics that emerge from developers’ feedback. This helps identify areas of concern or improvement that are relevant to the coding team as a whole. Second, they suggest specific action items: individual tasks, process improvements, areas of focus for better alignment, and new collaborative opportunities, for example.
Implementing CI/CD
One of the more extensive applications of ChatGPT in software development is enhancing what’s called the continuous integration/continuous delivery (CI/CD) pipeline. It’s an arduous and time-consuming process, but ChatGPT can help.
Within the continuous integration (CI) segment of the pipeline, developers input code changes regularly into a shared code repository, automate build processes to compile new code, run unit tests, and perform static code analysis. At the continuous delivery (CD) stage, developers prepare code for deployment, which involves tasks like packaging the application, configuring infrastructure, and preparing deployment artifacts.
Developers can integrate ChatGPT into their existing CI/CD pipeline as a built-in step or by connecting it to the system’s APIs. Then developers can quickly perform a variety of what were once time-consuming tasks. For example, ChatGPT can analyze code changes, conduct static analysis, and provide feedback on overall code quality, security vulnerabilities, or performance problems.
Likewise, when a developer submits a pull request, ChatGPT can automatically analyze the code changes, review coding standards, and issue suggestions for improvements. This is essential to catching problems early in the development cycle.
ChatGPT can also help identify errors, suggest troubleshooting steps, and provide necessary documentation to help third parties understand and resolve code issues promptly. Developers can leverage ChatGPT to make end-stage tasks more efficient, as well, including generating deployment configurations, validating deployment scripts, and providing recommendations for optimizing the overall delivery process.
Perhaps most crucially, developers can use ChatGPT to assess the overall performance of a CI/CD pipeline. ChatGPT can analyze performance metrics, identify potential bottlenecks, and provide recommendations for enhancing code and configuration for better performance.
Actively Involving Developers
The success of a ChatGPT integration policy will ultimately rest on actively involving developers in the process. It’s essential that before you get into the technical practicalities of implementation, all members of your development team are thoroughly educated on ChatGPT’s capabilities, as well as its ethical considerations.
For example, ChatGPT user inputs may contain sensitive information. Developers must handle user data responsibly, following best practices for data privacy and security. Implementing measures like data encryption, anonymization, and data access controls can effectively protect user data in this capacity. Tech companies should establish transparent guidelines, policies, even codes of ethics for proper use of ChatGPT within the organization.
After you’ve implemented ChatGPT into your development processes, you should actively solicit feedback from team members for continuous improvement. They should be involved in choosing the datasets you use for training the A.I., as well as reviewing and evaluating the quality, bias, and fairness of inputs and outputs.
Developers should feel empowered to contribute their expertise and insights during the training of ChatGPT. Their active involvement will not only help align it with the organization's values but also shape how those values should evolve to accommodate rapid changes in platform capabilities.
Don’t buy into the gloom and doom—ChatGPT and other generative A.I. platforms aren’t coming for developers’ jobs. As we’ve seen, generative A.I. systems are powerful tools for enhancing productivity, optimizing overall code quality, and improving upon best practices in the wider industry.
In short, A.I. can do what you tell it to if you know how to talk to it effectively. But it can’t on its own decide what it needs to do. It’s likely that a human will continue to be necessary to do the actual thinking before A.I. can work its magic, taking care of time-consuming, laborious, and sometimes monotonous tasks, freeing up time for skilled professionals to focus on higher-value functions.
Jonathan Siddharth is CEO and co-founder of Turing.