Skip to content

How software developers can survive in a Brave New AI World?

Posted on:January 29, 2024 at 11:20 AM

As many other people, I’m excited with the current state of art of Large Language Models. However, I feel that they could change the rules of the game.

I used to live in the best possible time. Of course, I mean the best possible time for software developers. The rise of technology within last 20-25 years was amazing. Actually, not only the rise of technology, but also the rise of salaries and profits gained by all of us. These were the good times.

However, every good story has its end.

I’m pretty sure that you are aware of multiple use cases of how can one use LLMs to boost the development process. Actually, let me start with a real-life example.

Developers in AI World

A Story

A few months ago, I decided to create a small open-source pet project that was aimed to automate some of my routine. As always for such a project, the real challenge is time. Everyone has one’s own responsibilities and it’s hard to allocate enough capacity to do it. However, with LLMs it is not the case anymore. Let me just provide a few insights.

Firstly, I have to confess that I’m a perfectionist. Thus, even when I create a pet project, I need the name, the logo, the brand colours, and so on. Luckily, with AI service Looka I was able to create all these things within 20 minutes (and minus 80 euros).

While I was playing with different colours and designs, I explained to ChatGPT through text2speech what was the project I was trying to do, added some requirements like a framework and tools recommended, and asked to generate the architecture of it, diagrams, all models and their properties and types and generate the relevant code for that, as well as the bash commands I had to run to bootstrap a new projects. Of course, I could do all these things by myself, but I was busy with the designs.

To be honest, I had to make some adjustments to the structure created by ChatGPT and even provide some examples from the previous projects I had developed (to fit my personal style). However, these adjustments took about five minutes. That’s it. I got the skeleton of the project.

What could be the next step? For me, it’s usually creating some fixtures and very basic controllers or pages. Guess what? Why should I spend any time on creating fixtures if I have both the database structure and ChatGPT that could use it?

You might argue that there are many tools that could speed up this process like faker or anything similar that generate random fixtures. However, all my experience says that the worst thing you could do for a product is to use fake data instead of the data very close to the real. And yeah, ChatGPT can do here a very good job because it was actually trained for such a task — create something pretty general.

I have some time limits. Therefore, I will skip some steps and just outline what I was able to obtain in the background, whilst working on other tasks: fixtures, page layouts, texts for the landing page, html code with tailwind components adjusted for the brand book, unit tests for the business logic, integration tests, all the texts for the internal pages, and a few recommendations for the functionality that I missed when I was brainstorming. As a very final step, I had to import some content directly into the database — that’s also a very good task for ChatGPT.

What is the bottom line of this story?

The bottom line is that current LLMs could perform many tasks that we often assign to junior or even middle developers.

You might argue that yeah, it could resolve simple stories, whilst there is a room for really complex tasks. However, let’s be honest:

  1. Firstly, how often do you have such tasks?
  2. Secondly, while it is true for the current state of art, do you really think that it will be the case for the next years? Who will win this run: an LLM that has almost unlimited capacity and 100% time spent for training or a human who has multiple duties besides learning? For me, it’s just a matter of time when AI will be able to deal with any task.

Thus, we come to the real question of this talk: what to do? How to stay competitive on the market with all these inputs?

What to do?

I’m optimistic here. During the last 20 years, many things have been automated. However, it leaded us to new positions and occupations. The same could happen with software development industry.

Engage in AI development

The very first answer to the question of what to do lies in the industry itself: even if AI could resolve OUR tasks, somebody has to develop and improve the AI itself. Therefore, it’s worth to dive into this area, even if you are far from it at your current job.

Moreover, I argue that this is exactly the case for the backend developers. Because who else? Data scientists who are familiar with python by default are not exactly the developers. Frontend developers are focused on UX, UI, and human interactions. This is exactly the task for backend developers to dive into the area and lead it. And I believe that there will be many more opportunities in this field.

Problem solving

It is true (or will be true) that AI could write pieces of code and resolve tasks. However, it does not imply that AI could resolve problems. There is a huge difference between a problem and a task. To resolve a task, usually, all you need is to write a piece of code. To resolve a problem, you have to find a solution, which could (or could not!) require coding. Reframing, simplifying, or even rejecting are really good solutions in some cases.

Could AI perform this? I don’t think so. In simple cases, for sure, but if we face a real challenge… This leads me to the third statement.

Context

Context. I think that the real answer to the question of what to do is exactly about this word — context. Let me clarify: I’m talking right now to you something. We all are in multiple contexts: social (it’s a conference, an event), cultural (for example, you understand my metaphors, examples, etc.), professional (I’m talking about software development, which you are aware of). Currently, we could supply an LLM with some context, but it’s impossible to give all the contexts. Moreover, a lot of data could be sometimes worse than the lack of it.

When we deal with a problem, we have to resolve it in the right context. To be in the right context requires social, cultural, professional, and even personal experiences that AI could not get (or I believe will not get within the next years). Therefore, that’s the advantage we, humans, have.

What does it mean in the context of software development? It means that if we want to beat the current and near-future versions of LLMs, we have to be very experienced in terms of the work with different contexts. Practically, it simply means that we have to know and experience a lot of different things. For me, the era of narrow specialisation will be gone away very soon. It’s not enough to be just a backend developer anymore. Moreover, I could even argue that it is not enough to be just a developer. This is just one context that LLM could learn. However, if we add product expertise, industry expertise (i.e., if you work in FinTech, you have to know FinTech), problem solving, out-of-the-box thinking — having all this knowledge, expertise, an ability to see connections between different areas, and flexibility in switching the contexts, this will lead us to the uniqueness that AI could not repeat at the moment. And I hope it won’t be able to repeat it soon. At least, that’s what ChatGPT said to me when I had asked the corresponding question.

Again, welcome to A New Brave AI world.

The Keynote