I'm the type of reviewer that actually reads code and asks probing questions, and I've heard this from junior and senior devs alike. It's maddening how people say this with a straight face and expect to keep their jobs. If people are pushing code they don't understand, they're liability to their team, product, and employer.
The rank disrespect of somebody asking you to review something they haven't even looked at is eye watering.
I feel like AI-induced brain-rot of engineers is inevitable. Unless we see AI leapfrog into something close to AGI in the future (certainly not ruling this out), I think there will be very lucrative careers available to engineers who can maintain a balanced relationship with AI.
I'm glad I'm not the only one who gets viscerally irritated when I'm asked to review a PR that was obviously generated. You didn't take the time to write this code, but you expect me to take the time make sure it's correct, which will take far longer than a regular PR because there's no reason to assume an LLM even understood the task. Next time just be honest and ask me to do your work for you.
> You didn't take the time to write this code, but you expect me to take the time make sure it's correct
So, I guess there are a couple parts here right? I might not take the time to write the code, but surely I am on the hook to demonstrate that I've tested the code or have very good reason to believe it's correct?
If people are pushing PRs [of any meaningful complexity] without knowing whether they work in the general case that sounds like a failure of process and/or training. For me PRs are about catching edges?
I just felt this recently. I was sent some code for me to put into prod, a long running service. And in one func, which returned an error (Go) but still called "os.Exit" in each error handler rather then returning.
Fixing the issue was a small matter. But the amount of disrespect I felt, that I looked at it closer then anyone else apparently (which wasn't really all that close at all), when they were ostensibly building this code, that disrespect was just immense.
Well no one actually asked you for a review, it's just a stupid checkbox item some boomer added to the list of other useless checkbox items - like group calls where everyone is just reading list of closed tickets we can all read ourselves in jira. This self righteous bullshit makes the whole ordeal even more insufferable.
Code reviews are one of the few ordeals worth doing. They catch problems and transfer knowledge. In a reasonably well run org (it doesn't take much) code reviews are easily a huge net benefit.
As for "reading closed tickets", you are right. It is silly. Alas, in apathetic orgs it is a reliable way to get some people know what is going on some of the time. And that particular ordeal keeps the tickets somewhat in sync with reality.
Consider that your experience may not be universal. Just because your reviews are useless rubber stamps to satisfy "some boomer" does not mean that other shops also have no standards. I get explicitly asked for reviews at work all the time, and I'm expected to actually understand the code and provide useful feedback.
By the way, you don't have to give useless reviews even if your coworkers do. It sounds like your workplace is infected with complacency, but there's no law that says you can't do better.
If you saw the nonsense some of my teammates try to commit, you would have a completely different view on code review. Just off the top of my head in the past 3 months, they have:
- Written a 1-line function that returns a literal, but they pointlessly made the function async and added a @cache decorator.
- Used try/catch to catch ALL exceptions, and then just ignored the exception causing code elsewhere to explode.
- Used try/catch to catch ALL exceptions, and then log that an authentication error happened. Did the request time out? Well the logs now lie to you and say it was an authentication error.
- Replace a log statement for a very serious error with a logging.warning() because that makes the error no longer show up on our reports.
If code reviews are that useless to you, that must mean either your team is completely homogeneous in terms of skill level and knowledge, or no one is taking the code reviews seriously.
100%. This has in general become a trend across my company. Less so developers, more so everyone else spitting LLM generated content, and asking real people to review and provide feedback. I mean , WTF.
In certain situations I'd argue it's a calculated risk worth taking. Let's say I'm tasked with adding a much-needed feature to an older legacy application that is built using frameworks and libraries I'm not familiar with, possibly also with with weak docs. If Claude is able to produce a self-contained piece of code that looks correct when you read through it and behaves correctly during (thorough) testing, then it sure has saved me (and my company) a lot of time and effort, even though we are deploying code we may not fully understand.
My interactions with Gemini tend to be fairly slow, but it's because I don't give it any extra permissions, make it research and plan an implementation first, and check each file update one at a time.
So far it has still been a bit more productive for me, though the margin is low. I get more product sork done on the order of 5-15%, I tend to have more test coverage as I focus more heavily on that, and I can focus more often on architecture. The last one is a win for me, I prefer that work and find that I can review code quickly enough to make it worth the tradeoff.
Pre AI I can understand why you might not know. There have been instances where I find a recipe, take what I need, but there’s some code I can’t understand or find an answer to. But time pressure, so I just add a comment and ask around for ideas.
"I don't know Claude did that" isn't a bad thing in and of itself... If someone is spending a bunch of time on code that Claude could have done and easily verified it was correct, they are going to move slower and produce less useful things of value than someone who cares about reading every line of code.
Any situation where you’re submitting under your signature code to production without knowing what it does should be at the very least cause for a talk.
The policeman says to the judge, on the stand "I don't know why my sworn affidavit says that, your honor. But I can write twice as many affidavits now so it's all for the best."
> If someone is spending a bunch of time on code that Claude could have done and easily verified it was correct, they are going to move slower and produce less useful things of value.
This is the future fellow greybeards. We will be shunned for being try-hards, and when it turns out we were right?... Well no one likes a know it all.
If it’s easily verified as correct, then you should have verified its correctness before bringing it to someone more senior and asking for their help, and so you should be able to explain why it is there when they ask.
If you don't understand you code how you can be sure it's correct? You actually are pushing it into your colleagues who will verify and fix the code later.
The only thing that changed with AI is that the narrative went from "you can't always know perfectly what every part of the program does" to "don't even try".
But the LLM writes the tests too. Probably even made some private methods public so it can test them, because you asked it to write a comprehensive test suite. It’s a beautiful self-jerk circle of shitty code based on wrong assumptions proven by correct tests testing shitty code based on wrong assumptions…
Or the wonderful loop of "These test steps are still failing, let's try something simpler and remove the failing tests. Great! The tests are passing now!"
Sad reality is test engineers headcount over last years was cut even more than developers. Most companies see testing as obstacle and unnecessary costs and has no will to invest into testing.
I'm the type of reviewer that actually reads code and asks probing questions, and I've heard this from junior and senior devs alike. It's maddening how people say this with a straight face and expect to keep their jobs. If people are pushing code they don't understand, they're liability to their team, product, and employer.