ChatGPT, and before it, DALL-E and other generative artificial intelligence tools, are certainly “generating” a lot of attention, and they’re changing the way we think about AI, what it can do and how it can help us. For many people, the focus is on what these tools can do well and how they can accelerate certain tasks. We’d argue that we should also consider what these tools can’t yet do well and how they can help us perform certain tasks better, if not faster.
Paired programming is one such example. In its simplest form, paired programming involves pairing two programmers, one of whom codes and one of whom observes, reviewing each line of code as it’s written. The two programmers switch roles at prescribed intervals. The idea was that this method would reduce errors, promote creative problem solving and generally result in better end products. In reality, paired programming was labor-intensive and not how most developers preferred to work.
However, Open AI’s Code Ex, one generative AI tool, makes paired programming both possible and more palatable. It generates code just as a developer would, but it’s a collaboration tool. With correct prompts from a person, it can perform certain parts of the software development process faster and with a bottomless knowledge of existing datasets, libraries, and methodologies that no human can match. It overcomes any learning curve or research time that a human would require.
Say, for example, you’re working on a migration project that needs lots of data. Code Ex can generate the entire mock data generator program. It couldn’t do any of it without instructions from a developer who knows how to write migration software, who can manage the development process and who can recognize errors in the code. But in the hands of great developers, Code Ex can be that paired programming partner who makes applications better.
Just as with ChatGPT, Code Ex will generate a lot of errors. And also just like ChatGPT, when it is wrong, it is confidently wrong. But with the right prompts, it can generate code that can be instructive about how to write better prompts, feed into the generate-refine-iterate-refine process and, ultimately, deliver a better product.
For some mundane development tasks, Code Ex can accelerate development. If prompted well, it saves a lot of typing (and typos). But perhaps its real value is that it helps developers to choose the best tool for a problem, and it helps them to use unfamiliar tools that perhaps they didn’t even know existed. This is a far more important benefit than work acceleration. It helps developers build better solutions and it helps make application code better. It compresses learning curves. It brings deep knowledge to development teams. And, because it is so reliant on well-crafted prompts, it drives specificity and intention into the development process.
Generative AI as a technology is not mature enough to generate production code by itself. It should only be thought of as a tool for human developers—not dissimilar from version control tools (e.g. Git), integrated development environments (IDEs), and code frameworks. In fact, Generative AI tools now combine seamlessly with IDEs and Git, and agencies should experiment with how these tools fit into their existing development processes and toolsets.
Just as DALL-E won’t replace artists and illustrators and ChatGPT won’t replace writers and communicators, Code Ex won’t replace developers. Quite the opposite, it will become a good partner with which – not with whom – to do paired programming. When used effectively, it can be an indispensable part of the development process.