Over the past 4 months we, like many others, have been experimenting with AI in our day-to-day work. In previous articles, we talked about the technology behind chatGPT. Now we are starting to see what direct implications it has on our work and daily lives. In this post, we take a look at our recent experience working with large language models.
Over the past four months, our team has been using ChatGPT to assist in the programming process by generating boilerplate code and creating test cases and documentation. This has then been edited and refined by experienced human programmers. In a remarkably short period of time, this has completely changed the way we create code, leading us to ponder the future of programming and our interaction with computers.
A New Era in Programming?
The integration of ChatGPT into our programming workflow has been a game changer. Instead of starting from scratch, we have been able to rely on chatGPT to provide a solid foundation for our projects. Given instructions by an experienced developer/architect chatGPT generates good (although not error-free) boilerplate code, unit tests and technical documentation. You can treat chatGPT like a junior dev working with you and as long as the person reviewing, refining and integrating the code is experienced it saves a large amount of time. chatGPT will make mistakes, misinterpret the aim of instruction and create code with bugs in it, but so do developers. At present, these are frequent enough that you need someone who is used to reviewing code to check the output but this may not be the case in future versions.
Whilst chatGPTis great at creating code when given specific requirements it is not yet capable of creating complete projects. It will not, for instance, take a requirement, break it down into smaller tasks, search the internet for the appropriate libraries and techniques, review the proposed solution for security flaws, work around the technical debt in a specific part of the application, communicate with the product owner and the myriad of other non-programming tasks that actually take the majority of a programmers time.
The Productivity Boost
By leveraging ChatGPT in our day-to-day work, we have noticed a significant increase in productivity. Not only has it reduced the time spent on mundane tasks, it has changed the way we approach projects. Parts of the development process that were previously avoided by the team are now handled by chatGPT with almost 100% automation and this is directly increasing the quality of our products.
Pondering the Future
Our experience with ChatGPT has left us wondering about the future of programming and human-computer interaction. As artificial intelligence continues to evolve, we can anticipate even more sophisticated language models with greater coding capabilities. In one or two years from now, we will see AI-driven tools that can understand and write code with a level of proficiency that surpasses human capabilities. We can’t help but think that we will look back on the era when humans programmed as a painful intermediary step, like harvesting wheat by hand.
The productivity boost we have experienced has been invaluable, and we can’t help but feel excited about the advancements on the horizon and what that means for our products and humanity. However, that excitement is tempered by the realisation that software development will never be the same type of skill again. The satisfaction derived from solving complex programming problems attracts many to the field. With large language models handling these problems for us, the feeling changes – still positive, but less impactful. As we watch the future of this technology unfold, we experience a blend of excitement and concern.
The text for this article was (mostly) written by a human the image was created by Dall-e