Is AI really a game changer for developers?

Or just another tool

Cedric Ferry
6 min readJun 5, 2024

--

Large Language Models (LLMs) have come a long way, they are becoming a mainstream tool that we use every day to gain productivity. From writing emaisl faster, to helping to find new ideas, and organising content LLMs are now a daily companion to most professions.

On top of being proficient in English and many other languages, LLMs like ChatGPT, Google Gemini, and Meta Llama 3, can help software engineers write code faster. This idea was first executed by Microsoft with GitHub Copilot, and now more Code Editors (IDE) offer this feature, sometimes for free like Android Studio with Gemini or with a paid subscription.

These coding assistants are good. They are not perfect, but they can clearly help developers write code faster. But how much faster?

The evolution of documentation

To understand how AI Assistant helps, let’s start by reflecting on what task they are actually helping with. Generative AI cannot create an entire app, but can help with the sub-tasks that compose an app. Generative AI generates snippet of code based on a question. And these questions are really about how to use or build a certain function, in other words, a developer would need to read documentation to achieve the same outcome without an Assistant.

6502 Assembly Language Programming Book extract

There used to be a time when documentation was sitting in books or even datasheets. You’d think that back then, finding an answer was a lengthy process. However, the reality is that software and APIs were a lot less complex than they are today. it was taking a long time to find answers, the reality is that the software complexity and API were a lot lower than today. it was taking a long time to find answers, the reality is that the software complexity and API were a lot lower than today.

Left: RFC in pure text / Right: PHP array_keys documentation HTML page

As the Internet and HTML gained popularity, documentation became electronic. As a result, developers could find the information they needed a bit quicker. Have you ever used the man command? The problem with this kind of documentation though, is that it often lacks real-life examples.

StackOverflow how to add 2 number in assembly 8086

Later on, stack overflow gained popularity. Stack Overflow is a question-answer community where developers can help each other to find ready-to-use code snippets matching the problem they try to solve. Stack overflow is very different from traditional documentation because it offers a turn key solution instead of just explaining how an API works. This is very much necessary as the complexity and the wide range of use cases increases.

AI code completion in VS Code

Today, we have generative AI. Models are fed with Stack Overflow, traditional documentation and books. LLMs can spit snippets of code with English explanations. AI assistants integrated to the IDE (like Gemini in Android Studio and GitHub Copilot in VS Code), provide the snippet of code as an auto-completion on steroids, on the cursor, just a keystroke away.

Sure, answers are not always 100% accurate, but just like some documentation or stack overflow answers.

The developer workflow improvements

Before the rise of Generative AI, I would open my browser, ask my question on Google, click on the first result leading to stack overflow (99% of the time), have a quick read, think critically about the top answer, copy, paste, and adjust it a little bit to my need and test.

Today with an AI assistant, I don’t have to leave my IDE, the auto-completion comes through. This feature, saves me a few steps compared to my previous workflow. I’m not interupted and can focus and let my ideas flow.

Sometimes, the suggestions aren’t what I want, in those cases I need to explicitly type my question in the assistant, get the response, perform a critical analysis, copy, and paste. Usually I don’t have to modify much, as the AI is able to read my variables from my code, but hallucinations are common.

A better user experience, any gain in productivity?

There is no doubt that while not perfect yet, coding with an AI assistant is a better developer experience. Not having to leave the IDE helps to stay in the flow. The AI has context about the entire project so the suggestions are somewhat better designed for the needs. All this contributes to an overall improvement of the job, making the developer happier.

But how do a this translates in term of productivity. Multiple surveys (1, 2, 3) note that developers spend only between less the 50% of their time coding and designing, the rest of their time is spent in meetings and other non-technical tasks. A GitHub Copilot survey claims that productivity increases up to 55%. The reality is that this survey look at a single task: coding. There is no doubt, a single coding task will take less time with an AI Coding assistant, but do developer only code?

Coding is not (only) what we do

When listing the tasks a developer does weekly, we can start to understand the limit of AI.

- Designing the system, AI may be able to give some advices, but this is really specific
- Coding, this is where AI will be the most useful
- Building/compiling, AI can’t help for this task
- Testing, AI can help write unit tests, but won’t be able to do much more
- Debugging, AI can help find a solution faster from a stack trace or error code

Above we see how an AI Coding Assistant can only help in some of those tasks, therefore reducing the actual impact on productivity gain Generative AI can have. How long is your app compiling for?

As we see above, AI really shines for coding tasks and this is where LLMs have the biggest impact. Not only it helps developers find the solution faster, but it also prevents the developer from writing lengthy snippets of code. This allows the developer to be very focused and to iterate their chain of thoughts much faster than the traditional web browser and stackoverflow process.

Satisfaction is all you need

The productivity gain is not the most important. What matters is the developer satisfaction and their ability to significantly increase focus.

In my humble opinion, this is the most positive aspect of this technology. Improving and simplifying the developer experience.

Generative AI makes the Software Engineer role more pleasant, more natural, and a bit faster.

Many studies (1, 2, 3, 4) show that productivity increases when people are happy at work. And this is what we should focus on. AI assistants are tools and like any tool they are designed to make the work a bit easier.

Conclusion

In conclusion, beyond productivity, AI coding assistants improve the developer experience, enabling coders to be focused and be in the zone by offering the information exactly where they like to be, in their IDE. This results in overall increased satisfaction , raising happiness which is accompanied by some productivity gain.

That’s it for today, please let me know your thoughts and your experience with Ai coding assistants in the comment section.

As always if you enjoy this read, please hit the clap button, thanks!

--

--