Comment by techblueberry

25 days ago

To me the big thing I see in blog posts is this implication that “all software engineering best practices are out the window”

And to me, AI should best be used to add rocket fuel to existing practices. Better tests, better observability, more atomic changes instead of big changes, automatic rollback etc.

> And to me, AI should best be used to add rocket fuel to existing practices

The more your codebase follows best practices and consistent patterns, the better AI will do and the faster you can move.

Same as humans really, just even faster. I'm also excited that people are finally writing docs and without even any flogging! They're calling the docs "skills" but hey whatever works

  • My main grief with AI-generated docs is that they (unless the instructions were very clear on this) by default describe the path to the current code and how it is an improvement over what was before, instead of just explaining its purpose. I see this all the time when reviewing other people's code... Fortunately it is easy to add a generic instruction to project-wide CLAUDE.md to avoid this problem, but it would be nice if this skill came out of the box.

  • I have recently needed to read a skill document because it was more understandable and more through than the official document.

I think what has really happened is a re-weighting of the importance of a lot of software practices. I think basically all of scrum/agile is completely useless now, but tests, PR reviews, documentation, decision records, etc, are more important than ever.

> To me the big thing I see in blog posts is this implication that “all software engineering best practices are out the window”

Yes, this is indeed a pungent smell. AI code assistants allow whole projects to be refactored and even rewritten in entirely different programming languages and software stacks in a few minutes, sometimes even with one-shot prompts. Most assistants even support creating and maintaining test suites with first-class support. Whatever you prompt, they do it.

And here we are, expected to believe that these tools can't or don't follow best practices?

  • I’ve seen AI write a lot of buggy code. I’ve rarely seen AI wrote test cases that expose buggy code.

    • > I’ve rarely seen AI wrote test cases that expose buggy code.

      Switching to AI development on several of our projects exposed a lot of code that either never worked or didn't work the way that we thought it did.

    • > I’ve seen AI write a lot of buggy code. I’ve rarely seen AI wrote test cases that expose buggy code.

      That's an odd statement to make, particularly with today's models. They can easily pinpoint concurrency problems and memory management issues. But here you are, complaining they write buggy code. What kind of prompting are you throwing at it?

      2 replies →

    • I thought the same and it depends on which context you work. Below is an answer on slack from our CEO when I said talking about Claude code source leak : « Dirty, un-architected code is the new norm; it makes billions, who cares… »

      He answered:

      > Well, yeah, who cares?

      > This is where we need to differentiate between what truly needs to be clean (critical APIs) and where some random guy coding a product in a week will wipe the floor with a team of engineers with a clean architecture and no product after three months.

      > What's more, this "vibe coder" is on the right side of history… Who's to say AI won't be able to just rewrite the code cleanly while keeping the core idea within 6, 12, or 18 months?

      > This is also the question that drives business... and in business, "good enough" has almost always trumped "perfect." Except when you're making an ultra-luxury product like a Ferrari or something. Which software almost never is (if ever).

      So when head of companies don’t care about quality, they’ll push hard no matter what to have speed.

      2 replies →

    • Really? IME, if you use a different session to write tests and if you plan ahead (meaning: you are the driver) you can easily cover all the cases you can think of, and then let AI suggest and implement those you missed. It us easy to fall into trap that you do not need to think though.

  • > AI code assistants allow whole projects to be refactored and even rewritten in entirely different programming languages and software stacks in a few minutes, sometimes even with one-shot prompts. Most assistants even support creating and maintaining test suites with first-class support. Whatever you prompt, they do it.

    > And here we are, expected to believe that these tools can't or don't follow best practices?

    Uh they don't really. The contradiction you're seeing is actually fictional because that premise is wrong.

    • > Uh they don't really.

      That just goes to show how far your experience goes. I have projects in my workspace to support the idea, and your baseless assertion rejecting the whole idea? What's more credible?

      > The contradiction you're seeing is actually fictional because that premise is wrong.

      Doubling down on baseless assertions means nothing.

      3 replies →

It does change previously assumed cost benefit trade offs and you should at least question any previously held beliefs.

  • There’s a chance that it doesn’t change previously assumed cost benefit, or at least not in the aggregate. There has always been more code than could be safely integrated.

    I don’t think AI actually changes that we should always be questioning everything, including how much we question at a time.