12 Comments
User's avatar
Maximiliano Contieri's avatar

The right direction for modern software developers

Expand full comment
Alex Sullivan's avatar

I feel like that assumes that the AI is expansive enough to detect and work around masses of spaghettish code. Is it? I fear the AI will end up hitting the same issues we do but it'll be obfuscated from us.

Expand full comment
Alex Bunardzic's avatar

While you may be correct in your fears, the question is, what does it really matter? If the system operates within expected parameters, why would anyone care how the system is structured? The only reason we might care about that is if we were to be called in to put on a diving suit and go down into the sewer to fix things. But the premise here is that won't ever happen, because we have machines to do that, to go down into the sewer of their own making.

Expand full comment
Alex Sullivan's avatar

I guess I'm saying I don't think it will get to the point (at least in the next couple of years) where it'll be able to handle the sewage - it'll create a mess and we'll still have to plumb the depths.

Expand full comment
Alex Bunardzic's avatar

How do you know that? Do you have a specific example you could share? I am curious to learn.

Expand full comment
Alex Sullivan's avatar

I don't know it, I'm saying that's what I think will happen. Do you mean am example of it not being able to handle complexity _now_? If so I think it's just like...any sufficiently complex application. I know I can't just say "Add x feature" to our codebase and have it nail it.

Expand full comment
Alex Bunardzic's avatar

Experience has repeatedly shown that if teams are building software by making changes to it in large batches, the resulting system is a bloated mess of entangled spaghetti code. Switching to making changes in tiny batches results in a lean, maintainable system.

The exact same principles apply to building software by using AI agents. If we instruct AI agents to make changes in large batches, we will get bloated, entangled systems. The trick is to instruct AI agents to make changes in tiny steps and to immediately verify each tiny change the moment it is being made.

That approach will guarantee the absence of unnecessary complexity.

Expand full comment
Alex Sullivan's avatar

But don't you feel like what you've gained is now much smaller? Like if I have to say "AI, add this class with these parameters and reference it in this file" well...maybe that's slightly faster then me typing it myself but like....only maybe and only slightly.

Anyways my original point is just that I fear that we'll end up with a lot of spaghetti code and that AI will struggle with it just as much as we do.

Expand full comment