upvote
AI is great because my job is a lot easier, but it produces some extremely crappy code that would've NEVER passed a code review 1 year ago.

You could argue that it speeds up development by 5X or more, but then it slows down testing/verifying, code review, and in many cases it makes it impossible to review/rework by hand.

I just do what I'm told at work but even though I'm sure I'm in the minority I'm extremely skeptical that LLMs can produce any good-quality code.

Looks to me like we've just lowered the bar--by a lot--and stopped looking at the code that goes out. Every time I look into how Claude implemented something it's completely insane, with no way to refactor it or maintain it in the future.

reply
> it produces some extremely crappy code that would've NEVER passed a code review 1 year ago

The 10x speed up comes from the fact that we have all given up on properly reviewing each others code and we just say “meh, it will be fine, lgtm”

reply
This. The bar has never been lower.
reply
> So maybe there's 2x speedup in coding. But that's only a small speedup in the totality of everything software engineers do.

Amdahl's Law should be familiar to anyone with a 4y computer science/engineering degree. Why aren't they applying it to their own throughput?

reply
Let's apply it:

- 25% planning & aligning with other teams

- 25% coding

- 25% testing/verifying

- 25% code review/rework

I'd say that thanks to LLM assistance I'm 10x faster at coding, code review/rework, and testing/verifying. (LLMs can partially automate testing/verifying too, and the code is higher quality now as well so less testing/verifying is necessary).

So that leaves us with:

- 92.5% planning & aligning with other teams

- 2.5% coding

- 2.5% testing/verifying

- 2.5% code review/rework

Obviously, that makes zero sense as a split. If you saw any organization doing that, you'd suggest having fewer teams, more silos, etc. Maybe you have designers produce code, instead of showing the designs to coders and having the coders implement it. Maybe you force all your engineers to dogfood the product that way they can identify issues themselves rather than needing QA teams to do it. And so on. so the last category, "planning & aligning with other teams", falls too.

reply
Well, there’s probably several reasons:

  1) because they’re not doing those others spheres of work
  2) because they don’t think about the work
     nor how tired they are afterwards
  3) they’re proselytizing AI work as the future and
     that conflicts with that vision
  4) the other shoe hasn’t dropped
  5) they really don’t see it
  6) some people genuinely hate programming and this
     helps them skip that.
I’m sure others as well.
reply
The other hard to measure part is that I see/hear a lot of LLM usage going towards dev work that was never prioritized before.

Suddenly devs who were cranking out features with no interest in infrastructure are attacking giant refactors to make the code more understandable to the LLM.

Other devs are using LLMs to build themselves quality of life SDLC tools completely separate from the core code base.

Plenty of other examples of this.

reply
The quality of my bash scripts is 100x what they used to be. Proper help messages, flag parsing, functions, internal variables, using sed all the time (I could never wrap my head around that).

Of course, the main issue is that they’re completely undebbugable now. My bash scripts used to be a sequential list of commands, now they’re 500 lines of variable laden functions.

Is my life any better? Dunno. But it’s satisfying (until there’s a bug)

reply
> the main issue is that they’re completely undebbugable now

Well, that means the quality actually dropped then :). Looking impressive isn't equal to quality, understandability and reliability is

reply
Not necessarily…. As with all engineering choices there are tradeoffs involved. There can be both advantages and disadvantages to using AI to build scripts. And more likely than not you’ll need AI to help debug the scripts when they have issues. Real tradeoffs to consider.
reply
I switched to js for dev related scripting after seeing how much python scripting is used for portable c++ projects like chromium.

A node glob() or a regexp string.replace call is probably easier to read than spaghetti shell.

And your llm might do a much better job of creating clean, readable and testable code.

reply
Just one more data point but this is what I’m seeing too. The extreme ‘ruthless’ prioritization has stopped and devs (who want it) have breathing room to make the enhancements they’ve been wanting all along. Turns out what is good for AI is also good for regular old school SDLC. All you have to do is say it will make AI more effective.
reply
I use CC to do the testing and verifying in multiple deployment environments. It’s faster at things like coming up a plausible test payload or ten, querying a bunch of metrics from datadog, querying and verifying state from a db before and after testing, scanning all the deployed logs for relevant errors. For me that has been more of an uplift than the coding. I still feel like communication it’s worst at. So writing tickets, getting a decision out of a group, documenting only the important things, etc. it’s still not that good at
reply
Agentic tools changed the workflow in our org, we were very tense before with a simple yet careful team process.. Since last winter we're now pushing a lot more but the teamwork (which was brittle before) is now mostly gone, everybody can roll on its own, but the review process didn't scale and now monthly deliveries are full of "seems to work". nobody checks properly, nobody reviews, nobody tighten any bolts.. and nobody cares much anyway, the system allows it.
reply