AI and Software Development

Published on

Connections

If you spend any time around developer discussions lately, it’s impossible to avoid the topic of AI-assisted development. From code generation tools to full AI copilots that promise to build entire applications, the narrative often goes something like this:

“People will just describe the system and the AI will build everything. No need to learn how to code”

As usual, reality is a bit more nuanced. I’ve been using these tools quite a lot lately, and my overall opinion is simple:

They are incredibly useful, but they don’t solve software engineering.

The Shining Part: Turning ideas into working prototypes

In the early stages of a project, it is outstanding. If you have an idea and want to turn it into something usable quickly, AI basically solves your problem. You can describe the feature set, refine what the tool throws back at you, and in a surprisingly short time you have something that actually works.

This is extremely valuable. It actually makes the whole Lean Startup idea much more feasible for technical experiments.

We had some tools and frameworks that helped in that regard, such as Rails and it’s scaffolding, or JHipster and it’s CRUD output, but AI is in a whole different level and it is not even close.

Search is another topic where it helps a lot. Being able to exchange ideas and look for answers where you are not even sure what is the correct question to ask is great. You can even ask things like “My problem is X and Y, is there something that helps me?” and it can answer “you are looking for Z”, and now you can delve deeper and learn Z. Awesome.

Where things become harder

Things change when the problem moves away from scaffolding and toward real-world complexity. Once a system grows large enough, the hardest parts are rarely about writing new code. Instead, they tend to involve things like debugging unexpected production behavior, or understanding legacy logic in an older system. AI helps with semantic search, but a lot of the nitty-gritty details must still be dealt with.

In some scenarios, you can debug to find the issue, build an interfacing layer and ask AI to help write the solution separated. That’s all nice. In this kind of workflow you can use your knowledge to define the boundaries of the solution, and then use AI to generate the code faster.

However, I don’t feel that “writing code” was the bottleneck before.

Complex problems require context and system understanding, which are difficult to compress into a prompt. Sometimes you would take longer on a really detailed prompt than solving the problem directly. Sometimes overusing AI actually slows things down.

A New (Old?) Equilibrium

All that said, AI does change the day-to-day job of developers. Some tasks become faster, validating ideas become cheaper and showing something working is easier now than before, and that is a really good thing.

However, I don’t understand this whole “you need to study AI or you will be left behind”. If you already know how to code, using tools like OpenCode, Claude, and a bunch of plugins is not really hard.

AI helps a ton, but software engineering still remains. I don’t see it going away anytime soon, and I feel that, when such times comes (if it does), basically all other “white collar job” will already be gone.

Or maybe not. I don’t know. I’m not a futurologist.

Comments

I feel that comments on specific blogs have been dying down as the times goes. If you have any questions or want to talk about the post, contact me through the below links.