Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • I'd say step 0 is know your audience.

    I'm happily vibing my own toy projects, but would prefer if the tech in hospitals is not vibe coded.

    And I don't think it's plausible that the gap between those two is "well you just need to use it right".

  • I think it’s much more simple than that. It comes down to caring.

    I’ve had a long discussion with a coworker on a long drive.

    What we came to realize is the difference in our attitude towards writing code.

    I approach it as craft. Even when I’m doing 100% of my coding with an agent these days. I still care about the result to be of high quality and maintainability. I still use my system design knowledge to guide the agent to produce scalable systems.

    He treats it like just a job. If it’s good enough he ships. The edge cases and bugs don’t matter. Can be fixed later.

    But in my mind that’s a fallacy. We all know things don’t get fixed later unless they are obvious defects and users complain.

    Instead we get slow degradation of overall quality. All those small issues compound overtime to create a brittle systems that is difficult to debug and maintain.

    My mental model of software engineering is like this. Each commit/PR is a small LEGO block. If you make them well they’ll snap well and create a stable structure that can withstand forces. If every LEGO block you make is just slightly off here and there. Your structure becomes unstable and will always have faults and will always have failures under unpredictable environmental pressures.

  • I am getting really good results from claude. We have a 22-year old legacy system. The system is stable, but had issues as all legacy systems do. Claude has been great for modernizing the codebase, updating dependencies, auditing security, and rapidly adding new features. It has worked well with existing code style and patterns. Sometimes it is a little off-track, but overall it is pretty amazing.

    When implementing new features or making large refactoring changes; I use the superpowers:brainstorming skill. That has consistent process which has worked really well. I alway review the code before merging, but most of the time there are few issues to correct.

    I don't do 95% coverage, but I have increased it from 65% to about +80% and that is sufficient.

  • I think there's a lot of setup and context required for an AI agent to consistently write good code. Once the agent has these guard rails in place I usually get great quality- far better than what I would write in most cases.

    I think where things get dicey is being able to write in any language. I write and review code in many languages and frameworks I'm not fluent in, so it's hard for me to distinguish between working code and great code. I can spot when the fundamental logic is wrong, but when it comes to "best fit" choices I'm clueless.

  • Ah, the "skill issue" argument again. Same crap aswhen everyonewas worshiping Musk 5-6 years ago, this time it's dario and altman with a claude/chatgpt mask. Crash can't come soon enough.
  • > So the best planning and implementation skills I’ve seen usually follow this pattern:

    > Instruct the agent to think through the test scenarios and test cases based on the requirements, Write the test cases, Write the implementation, Test the implementation against the test cases and fix any issues that come up, Maybe backfill any remaining coverage gaps—but again, keeping the requirements in mind.

    It's too easy, in general, to write tests that simply mirror the implementation. I wonder if it would be better to spin up two sub-agents to attempt test cases and implementation in parallel, so that neither poisons the other's context.

  • I agree that agents can produce decent code. In general, I don’t find agentic code beautiful but neither is most of the code I write. The code for ingesting CSV files into my ETL pipeline doesn’t have to be beautiful, it just has to work.

    I think the bigger issue (like many things in software engineering) is a management issue. Once upon a time, I could take a look at the final output of a project and if it looked like a Ferrari on the outside, I could have some confidence that there was a good engine under the hood. OF COURSE THIS WASNT ALWAYS TRUE, but something that looked good, or was performant, or whatever, was a decent proxy for the code underneath being good. And with a smart human, there were ancillary things. Having spent 20 hours coding something, they probably thought through the edge cases that their manager, or product team hadn’t considered.

    With AI, everyone’s output looks like a Ferrari, so it is hard to know what the internals are like.

    A lot of people will probably look at this and say “well you need better management”, but better management has always been elusive in software engineering. Furthermore, reviewing AI generated code is soul crushing work and I don’t know who wants to do it.

    In my guesstimate the number of good engineering managers out there is actually very very small and in practice, the best managers that I’ve seen are the ones who don’t think they are good managers, so they just set a very high hiring bar and hire people who don’t need much management.

  • I think this is a bit of a simplistic mental approach. I've certainly seen a lot of "The engineer owns the outcome, AI is just a tool, don't release anything you don't vouch for."

    However, I just don't think that's realistic. It's asking an author to suddenly become an editor. It's asking somebody who writes code to now read and debug others code.

    It can actually be harder to find the the bug in a tricky piece of code than it can be to write your own correct code from scratch. I see AI introduce all sorts of bugs all the time in my personal projects that I would never introduce, and would never think to test for, especially around anything graphical.

Explore Birbla archives

If AI coding is lowering your code quality, you're not managing quality right · Birbla