Will GPT replace your developers?
October 16, 2023
Recently, from all over the place, I have heard that the developer job will disappear in a few years. Big language models will dominate. Many people believe in that, and it becomes an actual topic in negotiations as people see less value in developers than before. I appreciate technology and look forward to every new thing that comes; I don’t think we will soon run out of work developers. Statistic from big companies like Alphabet or the government shows that the number of developers that need to cover will remain the same but increase by the end of the decade. (source) But why do people believe that this time is different? Despite that, ChatGPT, Copilot and the rest are showing impressive results, and more than 70 per cent of developers are using or plan to use them on everyday jobs. (source) it is still just a tool requiring a competent and experienced operator.
For a long time, I have believed that new technology like frameworks, language or tools like today are just instruments that help us to build what we want. The biggest question remains - what we want to develop and how we want to build it. All architectural decisions, all UI elements, how all should interact together - all of this is done by people and effective communication, not by machines. It does not matter how fast the model can generate code, but if this code is separate from the bigger picture, not integrated into the rest of the system - it is still just a code. Developers added the meaning of this code. They ask what to write, how to write, and how to integrate. We might change how we develop, focusing more on an abstract level, but I don’t believe it will come soon. There are a few reasons:
- Models don’t understand the full picture before you do not prompt them. There are limits to what model can have as input. So it is excellent in small examples and showcases to show it works, but in a real production system where so many things are involved, today’s model can’t handle it ( at least the models that are available for most of us)
- It is tough to debug code from the model. Sometimes, models generate code that looks legit but needs to be fixed. But because there is no statement that it is a sample or something, many people take the code and put it in a project without checking. After some time, they find that the code works only in one case and does not work in 5 different ones.
- Models are usually outdated. Language frameworks are moving fast. If you ask today’s model to generate Github Action for building the nodejs app and deploying it to the Azure AKS, for example, it will most probably use an outdated library version.
- Model response to what you ask for. Experience developers can ask the right question, but inexperienced operators don’t know that they need to consider 100 other things before choosing AKS instead of a more simple solution. Or choose the GitOps approach instead of a simple pipeline that pushes your container to AKS. All of this comes with experience, and today’s models are not there yet.
- Building infrastructure and using some specific technologies are harder than others. For sure, you can eliminate and use what works best. But tools were made for use cases that they solve best. In the end, you need someone with experience who will figure it out and make a decision.
- Code ownership. It is very uncharted territory. And not only code. How about images that are generated in the style of a famous artist? There are debates now about what to do and how to handle these questions. As usual, it will take time to adopt and build new laws.
- Security. As copilots and others become more and more part of the working tools for developers, it is possible to use not insecure code from the model as a point of attack on any system. Let’s say the model generates the code that has potential security issues. Then, the developer copies it and adds it to the production website. On the other side, hackers will research and find that for some specific use cases, the model always generates insecure code. This might be enough to start the attack. Another use case - a 3rd party developer tool that uses GPT to generate code. They might include a backdoor to the code on purpose. As more people will trust tools, more issues will come.
But I can’t say that it will not change the industry. No, it will. We will need to reevaluate how we use such tools, what productivity is and the definition of done. How can we let developers use the tools to be more productive but keep best security practices and not push the boundaries and request a 200% increase in productivity?
It will be more challenging for Juniors and newcomers in IT. As models are good in most simple tasks as Juniors, this is where the market will change. Getting into the industry with deep knowledge and understanding of many things will be easier. The time of people who can work with one framework will soon be gone. Today, requirements for people are much broader. You need to understand product development, different frameworks, and sometimes different languages.
The IT industry has always been famous for its constant requirement to learn; the pressure will be much higher now.
To summarise - I think we are now experiencing a big change in the way we work, but not in a way that developers will be replaced. You can magically ask the model to create a code for your idea, but in a way that we become much more productive, and the requirement for the job will be higher. So keep learning something new every day and develop yourself. Let’s hope our future is closer to transhumanism rather than Skynet.