logoalt Hacker News

spicyusernametoday at 11:37 AM2 repliesview on HN

One thing I keep discovering about the agentic era of programming is that all of the old lessons and bits of wisdom about programming are still valid. They're just 10 to 100x more important now that you can generate 10,000 lines in an hour.

e.g. Break your code up into loosely coupled modules, don't have leaky abstractions, don't have huge God files, have good black box end-to-end testing, do the design work before the implementation, do lots of automated testing, have good documentation, etc.

Here is another one that was always true, end users only care about the observable behavior of your program. Does it solve the problem in a performant way? Is it reliable?

And another one, it was common when you inherited a large code base that was mature and written before you to not have any clue how most of it worked.

We have to accept that the art of nudging the text around is just not part of producing code for money anymore.


Replies

user43928today at 1:12 PM

In my experience little of what you said is important is actually needed:

> Break your code up into loosely coupled modules

> don't have leaky abstractions

Not needed. The AI handles breaking up code and I mostly don't review abstractions.

> don't have huge God files

Less true than ever. The AI can read a 10k line file the same way it can read 20 files with 500 lines.

> have good black box end-to-end testing

The AI does the testing by default, and it is fine. I don't write the docs nor do I do design work.

Now what I said is certainly going to offend some users here, but that's how it is, and I know the quality of the product built with this workflow.

This workflow works well for software you develop alone, it is going to be trickier to adopt it in a team.

Still, in my opinion the writing is on the wall for our profession. No one can say with any certainty to what degree our expertise is still needed in the software development process in a year or two.

silent_sshtoday at 11:59 AM

Agree. Now that we're seeing the quality of software we use worsening (not improving!) with increased usage of LLMs to produce code, it's even more important than before to get the fundamentals solid. I don't mean "fundamentals" as in "easy things in CS", but the mechanisms behind the systems we build (on top of). And, not being fresh out of school and having experience _suffering_ with poorly designed systems / processes is also still an advantage, as that suffering will ultimately let one make more informed design choices.

show 1 reply