The future of software development

Collaborating with AI

During our monthly workshop, we share knowledge and practice applying new technologies. This time, the team immersed themselves in the world of artificial intelligence: how can AI help us in our work as developers, and where are the limits?

  • Remco

Written by Remco

Last Friday marked a new workshop at 10KB on the theme of Artificial Intelligence (AI). The goal? Not to take over the world with smart robots, but to use AI as an assistant while programming.

Our practice project

Creating a simpler variant of [Squaredle](https://squaredle.app/ ‘Link to Squaredle’) (a word search). To do this, we will use the [Cursor Editor](https://www.cursor.com/features/ ‘Link to the Cursor Editor functions’): a [fork](https://stackoverflow.com/questions/985051/what-is-the-purpose-of-fork/ ‘Explanation of exactly what a fork is’) of Visual Studio Code that integrates three Advanced language models: GPT-3.5, GPT-4o, and Claude 3.5 Sonnet. Three AIs in one editor with powerful features such as:

  • AI-driven Autocompletion: Cursor predicts not just words, but entire lines of code.
  • Code Generation: It can generate code snippets based on prompts, which is especially useful for quickly implementing repetitive- or routine-tasks.
  • AI Debugging: Cursor helps detect and quickly fix bugs by analysing the code and suggesting improvements and fixes.
  • Codebase-Aware Chat: The built-in AI assistant can search the entire codebase, making it possible to ask questions about specific features, files or bugs. You can also highlight code blocks for more targeted answers.

In other words, all features that seemingly make developing software easier, faster and better. Reason enough to see if it works for us!

AI and coding: how well does it work?

It doesn't take long to discover how powerful these AI tools really are. Cursor's ‘Composer’ feature lets you have code generated at lightning speed. ‘Move this variable for me’ - instantly done. ‘Fix this bug’ - fixed in no time. It almost seems that without looking at the code, you can just build a working app. And honestly: it actually works surprisingly well. AI does its thing and even gives you templates and examples that you can use as templates for the basics of a project. And all with a chronically polite: ‘Certainly!’

Too good to be true?

Now comes the funny (or frustrating, depending on your perspective): AI is too helpful and unaware of its own limits. For instance, your AI may ask for a small tweak, but change just a little too much. Then your app works, but behind the scenes, all sorts of things are suddenly different (and not always for the better). The point is: AI is trying so hard to help you that sometimes it changes things you would have preferred to leave alone.

As for limits: AI will NEVER tell you that it doesn't know something. ‘I don't know what you mean.’ or ‘I'm not capable of doing this’' are words that are simply not in its vocabulary. So you always get an answer, but that doesn't mean it's always the right answer. Unfortunately, the AI has never heard of clean code and will use the linter unless it is installed.

AI is your colleague, not your boss

After this workshop, one thing is clear: AI is not going to take over our jobs. It is perfectly capable of performing junior-level tasks, but you will still have to keep a close eye on it. Yes, it works efficiently and yes, it takes repetitive tasks off your hands. But in most professional projects, the developer remains indispensable. AI gives good tips, but you still need to understand what you are doing (and realise when the AI has reached the limit of their capacity).

What does this mean for the future?

The integration of AI into programmes like Cursor Editor has big implications for the future. AI provides excellent support for the basics, but human expertise remains indispensable for checking and refining the generated code. Moreover, you also need to know exactly what to ask the AI tools to do in order to get exactly the result you have in mind.

Potentially positive aspect:

Because you can complete tickets faster, you keep more time to improve the quality of your code. You simply have more time to write good tests and improve the overall stability of your codebase.

Potentially negative aspect:

Because AI is just so good at those junior-level tasks, it may well mean that future junior developers will have less opportunity to learn and gain experience. Indeed, companies are more likely to outsource these tasks to AI. This may pose a challenge for newcomers to the industry, who may now gain less ‘hands-on’ experience early in their careers. Moreover, it may then become even harder to find developers with experience in the future.

Key takeaways:

  • AI can write code for you, find bugs and set up entire projects, but you always have to pay attention to the details yourself.
  • Small projects? AI can do it (almost) on its own. Larger, complex apps? That's where it is (still) less suitable.
  • Never unleash AI on your project unattended, unless you like being surprised by mysterious bugs.
Want to know more about AI?

Ewout has created a mini-series of short videos on the role of AI in software development. Including tips and tricks on how to use or not use AI. You can find them on his LinkedIn page.