There is not a day that goes by without being bombarded with funny, useful, or unexpected applications of the hottest thing in town since blockchain: ChatGPT. As a software engineer, this development is both exciting and daunting. Exciting because we are witnessing the bleeding edge of what AI can do. Daunting because change is hard, and if it delivers on the promise, it will seriously disrupt the software industry.
What will the impact be for software engineers?
Before we get to that, let’s quickly describe ChatGPT for those who have scrolled on because it seems too technical. Also, I know my mom reads these and appreciates the simplification.
ChatGPT is basically a very expensive chatbot. In total, 12 Billion USD has been set aside by the “great powers that be” to train a computer to be the best online virtual assistant it can be. As with anything, ChatGPT has some limitations and some unexpected benefits. Even though the focus is on natural language processing (NLP), there seem to be a variety of other uses where ChatGPT can be of value.
Think of it as your older sibling who has returned from college and is showing an enormous increase in knowledge on all sorts of subjects. Of course, they have insights and opinions based on their academic studies and other unexpected subjects. Just like your brother or sister, however, ChatGPT is bound by the information it is trained on, and that is why it is NOT all-knowing, only well-informed (perhaps).
So, back to the question; what will the impact be for Software Engineers?
Some exciting examples have made their way into the media that show ChatGPT making the work of developing software easier or faster. One fascinating capability is that it could help reduce technical debt, ChatGPT can understand a piece of code, identify bugs and return a refactored alternative. This is huge and could massively reduce the volume of technical debt rampant in the world of software engineering very shortly.
Another compelling use case is requesting ChatGPT to write a microservice or a function in a specific programming language. Although not every request led to a satisfactory result, many of the outcomes were runnable and working code. The dream scenario for the citizen developer and low-code/no-code enthusiasts, seemingly removing the need to be able to program.
As newer versions of ChatGPT are released the power of what is possible will only increase. And this new technology might be equally if not more disruptive than the robotization of many production processes.
Should we be worried as programmers and software engineers?
I think not.
The promises of technology have often been overstated and misinterpreted. As a big fan of the movie franchise ‘Back to the Future’ I am yet to see the promised future of flying cars and hoverboards. Specifically, a colleague of mine was spot on in his reasoning why ChatGPT will not remove the need for software engineers.
Knowing how to program in a certain language is merely a tool for a software engineer. The real skill is that of specification: turning a business objective into a specification that can be interpreted by a computer to do some stuff. Even if ChatGPT allows you to generate code, it is merely the next step in abstracting away from the binary ones and zeros’ that a computer really runs on. In essence, ChatGPT will (for the time being) be entirely dependent on the specifications it is fed. This may create a new abstracted manner of programming that we need to get used to. But is it really that much removed from searching for the right library to incorporate and amend in your current project as we do now? I think not.
So, yes, ChatGPT offers us the promise of many opportunities. Will it change our work, and our industry for good? Possibly and probably. It seems to be a mixed bag if we are really honest about it, and as we can indicate with the following 3 examples:
- Understanding the requirements for code is as important as actually writing it, and that cannot currently be done by ChatGPT.
- Writing boilerplate code will become much easier, so software engineers can focus on high-level requirements.
- ChatGTP will not have to maintain the code it produces. Software Engineers will. It does not shift the responsibility to produce maintainable code.
It means that we will see benefits but no obsoletion of software engineering practices and work. We will evolve, which is a good thing. It has the opportunity to help us solve the Tech Shortage that we currently see. But no, it will not replace our skillset completely.