Code reviewing was never the most interesting thing to do. But it had one important element. That, if done right, it was knowledge exchange between the reviewer and the coder. That can be quite motivating. Helping a fellow coder to become better. Reviewing "AI" written code does NOT come with that potential reward. The machine doesn't learn the way a human does. This turns code review into a menial, fruitless task that leads to frustration instead. That's my observation and opinion.
1/2
This entry was edited (1 day ago)
reshared this
Tom
in reply to Jan Wildeboer 😷 • • •Furbland's Very Value = 71 Account™ reshared this.
Jan Wildeboer 😷
in reply to Tom • • •Furbland's Very Value = 71 Account™ reshared this.
Evelyn Estelle
in reply to Jan Wildeboer 😷 • • •Furbland's Very Value = 71 Account™ reshared this.
Furbland's Very Value = 71 Account™
in reply to Evelyn Estelle • • •Plan-A̵̛͈̬̥̿͋̓͛̕
in reply to Furbland's Very Value = 71 Account™ • •like this
Evelyn Estelle and Wulfy—Speaker to the machines like this.
Wulfy—Speaker to the machines reshared this.
Random Host 🐕
in reply to Furbland's Very Value = 71 Account™ • • •@GroupNebula563 @dragonfi @Tom We are being mandated to use AI by our corporate overlords at IONOS which is "transforming to become an AI first company" and they are forcing that onto all companies under their corporate umbrella.
I've seen co-workers who used to be decent coders give in to the pressure from above and produce low quality slop as this is what the company mandates.
I commonly end up being the one who has to review that shit and it takes me multiple days to write down my remarks on code which took minutes to prompt into existence, only for my feedback to be fed back into the LLM which then generates new commits containing a whole new set of issues.
I've been doing that for a while now and my burnout symptoms are getting worse every day.
Next week, I will have to report on how I'm using AI and I'll have to tell them that I'm not using AI at all as I'm too busy reviewing the endless stream of low quality garbage produced by my co-workers.
reshared this
Certhgeredir reshared this.
Roy
in reply to Random Host 🐕 • • •Solidarity with you on not using AI tooling at all despite it being mandated at my company where I've been for 21+ years.
I've been very open with my direct manager and peers from the outset that I won't use it for a multitude of reasons.
I'm not the only reviewer of everyone else's AI assisted changes, but it is wearing me down and making me sad to see experienced, smart folks start to accept the output and not carefully review it.
1/
@GroupNebula563 @dragonfi @jwildeboer @Tom
Roy
in reply to Roy • • •@RandomHost
Our ticketing system has a field for "AI Usage Percent" that is always zero for me.
I expect that field is tracked and in the near future my manager will start getting pressure.
I've let him know they will have to fire me because I'm not going to use it.
All that to say:
Condolences (as well as the solidarity). I hope you can find ways to improve your situation. You might be alone at your job but there are others standing with you.
2/2
@GroupNebula563 @dragonfi @jwildeboer @Tom
Jeff Grigg
in reply to Random Host 🐕 • • •@RandomHost @GroupNebula563 @dragonfi @Tom
What some places, like ours, have done is to respond to the code review being overwhelmed by the volume of AI slop by having AI do the code review.
Well that turns out to be a heck of a way to expand scope largely without bound, and add loops to software delivery pipelines, making it difficult to impossible to ever deliver anything.
Evelyn Estelle
in reply to Jeff Grigg • • •slotos
in reply to Tom • • •@Tom Even from experienced ones.
The moment I see an AI generated PR description, I’m losing motivation. It rarely provides useful information, but always floods you with words
nest
in reply to Jan Wildeboer 😷 • • •yasun
in reply to nest • • •And it's not only about learning but helping, I think. Thinking, explaining, talking together with someone is itself rewarding to me.
@jwildeboer
Wulfy—Speaker to the machines
in reply to nest • • •@nest
Coding by hand = Digging ditches with a shovel.
#Vibcoding = Drawing blueprints where your autonomous diggers go.
(20+ years programming XP, 10, Commercial)
Jan Wildeboer 😷
in reply to Jan Wildeboer 😷 • • •The second element I have heard a few times now: "AI" written code is not seen as "my" code by coders. They don't feel attached to it in the way they do with code they have written themselves. Hence they are not really "feeling" for it, so they are also not really interested in making it better or defending it in the review cycle. Just tweak the prompt and move on. This is having a real impact on motivation, discussion and results. It is hard to put in metrics, though.
2/2
reshared this
Furbland's Very Value = 71 Account™ and Manni reshared this.
Benjamin
in reply to Jan Wildeboer 😷 • • •𝔅icyclet𝓽𝓲𝓷𝓰
in reply to Jan Wildeboer 😷 • • •First point, I disagree: I'm a modest programmer and I learn from AI code when I review it. Quite a good bit in fact.
Second point is spot on: coding was never very "humanizing" to begin with, but this is a step further along the dehumanization process. The sense of ownership, of caring, is defining of humanity.
Ember is so tired of people.
in reply to 𝔅icyclet𝓽𝓲𝓷𝓰 • • •Jan Wildeboer 😷
in reply to Ember is so tired of people. • • •Ember is so tired of people.
in reply to Jan Wildeboer 😷 • • •Jan Wildeboer 😷
in reply to Ember is so tired of people. • • •𝔅icyclet𝓽𝓲𝓷𝓰
in reply to Jan Wildeboer 😷 • • •@Ember
that's another aspect I don't fully understand : weights and data are not 'new' (although they are new to me), but the seed (aka the prompt) can be.
So the prompt answer can be new too?
Jan Wildeboer 😷
in reply to 𝔅icyclet𝓽𝓲𝓷𝓰 • • •Hilko Bengen
in reply to 𝔅icyclet𝓽𝓲𝓷𝓰 • • •Jan Wildeboer 😷
in reply to Hilko Bengen • • •Toni Aittoniemi
in reply to Jan Wildeboer 😷 • • •”Outsourcing your thinking is a fascist idea, because our power comes from thinking together.”
-Naomi Klein
youtube.com/watch?v=iEf-MNsyUi…
Naomi Klein: AI is a fascist idea
The Maybe (YouTube)Furbland's Very Value = 71 Account™ reshared this.
Jan Wildeboer 😷
in reply to Toni Aittoniemi • • •Clinton Anderson SwordForHire
in reply to Toni Aittoniemi • • •Hear hear!
Dr. h.c.* Grober Unfug
in reply to Jan Wildeboer 😷 • • •interesting observation.
I've seen similar detachment in the early 2000s when companies didn't employ people but used lot's of external staff. That was not a good time...
Overall mood was evil, quality got shittier, don't ask about loyalty...
P.s. I was a mechanic and machine operator back then
Aedius Filmania ⚙️🎮🖊️
in reply to Jan Wildeboer 😷 • • •Exactly.
I'm forced to vibe code at work and I said "ok, I will vibe code you a new app, but I won't touch the code even with a stick", I'm only reviewing for security issues and the tests.
Once in a week, I ran some prompt like "the users says it's slow", "a coworker looked at the code and find it ugly", and the LLM give improvement.
I can't care less about the code quality, because it's crap, once I ask a patch for a person all project, it give me 200 loc ... My fix was 12.
Daniel
in reply to Jan Wildeboer 😷 • • •Furbland's Very Value = 71 Account™ reshared this.
Lord Bowlich
in reply to Jan Wildeboer 😷 • • •A pattern with team members who are using "AI" to write their code. I would point out a few items that needed fixing. I would get back a new commit, that sure, fixed those items, but introduced a slew of new entirely unrelated items.
Turns out, they just went back to Claude and asked it to address the code review, which threw away the old commit and generated a new one. They didn't really even think about my feedback or how to incorporate it.
Lord Bowlich
in reply to Lord Bowlich • • •Jan Wildeboer 😷
in reply to Lord Bowlich • • •Snorri
in reply to Jan Wildeboer 😷 • • •Mateusz 🏳️🌈
in reply to Snorri • • •@SnorriSturluson This is actually a very valid approach if you work on a product that your employer owns, not on your own.
@jwildeboer
🇵🇸 Álvaro González
in reply to Snorri • • •Andy Wood
in reply to Jan Wildeboer 😷 • • •one of the things I enjoy about writing code is the flow state you get when deeply exploring your understanding of a problem & solution. That makes all the other bits of the job worthwhile - even the tedious tracking down of the last few lines of code test coverage. Writing the PR is a concise reflection of that journey.
I can understand how losing those moments of productive flow to a machine would be highly demotivating. (Along with the mentioned lack of ownership/pride/care...)
Shred reshared this.
Oliver Schafeld
in reply to Jan Wildeboer 😷 • • •Alternatively: 'Own' the app (rather than the code) and let AI deal with javascript (/typescript) fatigue? We work less for the other developers, but more for users?
When the crucial stuff is buried within framework internals or 2 GB of node modules, how much of the code is mine anyway?
Maybe the way web development has taken in recent years, agency was on the way out before AI already. <Humming "Bootstrap killed the CSS-star…"> 🤷♂️
⁂Paraben Aparaten⁂ 🇪🇺
in reply to Jan Wildeboer 😷 • • •Just a remark: I tend to think that the "I am NOT my code" is the way to go
Code identification/possession (taking critics of code as critics to the coder/self), has much less merits than one may think
I like the Egoless code approach: it allows improvement to occur seamlessly
#egoless #softwarecraft #softwarecraftsmanship
Glyph
in reply to Jan Wildeboer 😷 • • •Deciphering Glyph :: What Is Code Review For?
blog.glyph.imJan Wildeboer 😷
in reply to Glyph • • •Glyph
in reply to Jan Wildeboer 😷 • • •Whatisgoingon
in reply to Jan Wildeboer 😷 • • •💯. The process of thinking about the problem, the architecture, the solution and finally writing the code creates a strong emotional bond for me. I care about the result.
As you said. For me this does not happen with generated code. I simply do not care for it. It does not motivate me the slightest.
Koen Hufkens, PhD
in reply to Jan Wildeboer 😷 • • •Martin Rundkvist
in reply to Koen Hufkens, PhD • • •@koen_hufkens
C. Doctorow wrote recently that the *kind* of bugs slop code contains are the ones that look the most like correct code, because LLMs exist to give you the most conventional next token. A nightmare to review.
#llm #coding
TagNachtLampe
in reply to Jan Wildeboer 😷 • • •Interesting thoughts and i think you are right.
acidicX
in reply to Jan Wildeboer 😷 • • •acidicX
in reply to acidicX • • •Chris Ford
in reply to Jan Wildeboer 😷 • • •Jan Wildeboer 😷
in reply to Jan Wildeboer 😷 • • •Katja
in reply to Jan Wildeboer 😷 • • •ERD
in reply to Jan Wildeboer 😷 • • •I would guess that this is especially true when people work in a so-called "feature factory" and can't really identify with the software as a whole.
If people can identify with the software as a whole, at least this aspect might look different.
jlapoutre
in reply to Jan Wildeboer 😷 • • •Totally agree.
Another anecdote: a few weeks back I used the plan / code feature of Claude Opus to create a component which called a rather complex 3rd party API. Code looked great, but I realised I didn't even know how to invoke it for a test run.
Reverted back to reading the 3rd party API docs (which were good), then found lots of small loose ends in the generated code.
Mixed blessing, lots of boilerplate were done w/o any issue, but fixing & "making it my own" still much effort
Isu 🐲
in reply to Jan Wildeboer 😷 • • •Clinton Anderson SwordForHire
in reply to Jan Wildeboer 😷 • • •There have already been more than enough studies that demonstrate, the more someone uses "AI" in their job, the worse and worse they become at their job.
We're SUPPOSED to grind over menial tasks, especially mental ones. That's what builds new and better pathways in our brains.
"AI" literally makes us dumber
wortwart
in reply to Jan Wildeboer 😷 • • •I think there are two ways to work with coding agents and not hate everything about it:
1) Vibe code, don't touch the code unless absolutely necessary. That's okay if you build prototypes or simply don't understand the technology you're using.
2) Go through every line, make small amendments, try alternatives. You make the code your own and are mostly still faster than without AI.
IMO passive reviewing doesn't work because the cognitive load is similar to doing it yourself but it's much more demotivating and you'll tend to just approve.
Raul Portales
in reply to Jan Wildeboer 😷 • • •That still happens.
Ian Littman
in reply to Jan Wildeboer 😷 • • •If it's not an option to kick bots out entirely, one thing that's doable is to take PR feedback and shove it into AGENTS.md and docs linked from there. You *can* actually get the machine to "learn" repo conventions to reduce future PR load, even if the person piloting the machine stubbornly refuses to internalize any feedback.
(And you can throw tokens at this codification if you like).
I'm doing this on an internal project and it does seem to work a bit 1/2
Jörn Franke
in reply to Jan Wildeboer 😷 • • •Bonus: LLMs only like their own changes - different LLMs change each others code.
Jörn Franke
in reply to Jan Wildeboer 😷 • • •That means with LLMs a lot of things are reinvented in the most costly way and still less users would benefit from it (not everyone will fire up a LLM, but simply not integrate the device).
Konstantin Weddige
in reply to Jan Wildeboer 😷 • • •I absolutely feel the lack of motivation reviewing LLM code.
I usually do code reviews as part of security audits, and when I look at the commit history of projects that rely on LLMs, the code base changes so fast that I have to expect my work to become outdated and basically meaningless within weeks or days.
(roll m3tti)
in reply to Jan Wildeboer 😷 • • •muddle
in reply to Jan Wildeboer 😷 • • •Kjetil Kilhavn
in reply to Jan Wildeboer 😷 • • •Alex
in reply to Kjetil Kilhavn • • •We've been experimenting with AI reviews and they do catch stuff but there are enough false positives that I'm not sure it's the timesaver it could be. If I could tune then down to just reliably catch the common gotchas of new contributors then perhaps it could take some of the load of the reviewers and leave them to concentrate on the wider architectural stuff.
@jwildeboer
trusty falxter 🧠
in reply to Alex • • •@stsquad Yeah, when an experienced person reviews your code and finds something terrible, they'll report the terrible thing. If they don't find something they maybe start to complain about formatting or order of imports.
AI reviews flood you with such minor stuff and hide important findings among that noise. Like: Ah, look, there's dust on the doorframe, and you've left your socks lying around here again; there's a smoldering fire starting in the attic, and how many times have I told you that water droplets on the oiled kitchen countertop need to be wiped up right away?
@kjetil_kilhavn @jwildeboer
Bee O'Problem
in reply to trusty falxter 🧠 • • •Bee O'Problem
in reply to Kjetil Kilhavn • • •@kjetil_kilhavn that was my experience
The other devs apparently found my comments somewhat entertaining at least. Lately my responses are single words to each "point" the AI makes. It sucks at trying to interpret code but is okish at catching some basic lint errors and at noticing the occasional copy/paste error.
Drives me nuts at how padded out its comments are when most could be single sentences.
Felix Ungman
in reply to Jan Wildeboer 😷 • • •Daniel Schildt
in reply to Felix Ungman • • •@nikodil Problem is that when the only thing visible for the reviewer is the output of a 3rd party tool (without input parameters and specs), it becomes really difficult to debug even with time and energy.
Code generation itself can be useful, but only if the model itself is generating consistent & predetermined output structure. LLMs mostly fail at both.
The Polish Dispatch
in reply to Jan Wildeboer 😷 • • •Rafael Garcia-Suarez
in reply to Jan Wildeboer 😷 • • •Jan Wildeboer 😷
in reply to Rafael Garcia-Suarez • • •Turre
in reply to Jan Wildeboer 😷 • • •That mutual learning (opportunity) really is a key point of code review. If the capability and willingness to learn isn't there, it's nothing but frustrating in the extreme. Especially when you know it won't be just a one time drive-by patch from somebody, but a regular occurence.
It can happen with humans too. Been there.
Dr. Victoria Grinberg
in reply to Jan Wildeboer 😷 • • •Elric
in reply to Jan Wildeboer 😷 • • •DataKnightmare
in reply to Jan Wildeboer 😷 • • •this holds outside of programming as well. Troughout all of "knowledge work", LLMs remove any motivation from the "producer" as well as from the reviewer. One is being judged by $NumberOfSuchAndSuchDocuments annyway, so there is an incentive to pump out more stuff rather than quibbling about its qualiti, also because the entire document development cycle is increasingly an LLMs producing slop that another LLMs reviews, then somebody signs off.
I'm sure this is fine
Sharlatan
in reply to Jan Wildeboer 😷 • • •I have exactly the same feeling, it is even worse when: code is generated, commit messages are generated, merge request is generated, even review nowadays is generated and addressing it generated as well
0 knowledge sharing opportunities for humans left
Time to change the profession to handyman or carpenter
Ivo Bathke
in reply to Jan Wildeboer 😷 • • •Anthony Brian Mallgren
in reply to Jan Wildeboer 😷 • • •We need more rainbow pastels!
Jamie Clark
in reply to Jan Wildeboer 😷 • • •It's almost as if they've abdicated any responsibility for the deal's efficacy or quality, because they've used a tool. Even a bad tool.
Dawn Ahukanna
in reply to Jan Wildeboer 😷 • • •- Code review went from clearly defined, human-centered, learning & tacit knowledge-transfer, expert-based process like pilots as a union:
- flying planes
- focus on safety (checklist, pilot equipment veto, etc
- training pilots
to
- code delivered in black bags, like refuse & sorting through the detritus & dross.
blackkite
in reply to Jan Wildeboer 😷 • • •D:\side\>
in reply to Jan Wildeboer 😷 • • •saw a very similar take in @godotengine's blog recently:
> If your feedback on PRs is just being absorbed by a machine and not going towards mentoring a potential future maintainer, it becomes much harder to justify spending your free time on PR review.
godotengine.org/article/contri…
And… yeah, 100%. After many years of benefitting from what used to be unavoidable "side products" we finally "optimized them away", only to realize we might actually need them.
We'll probably experience a lot of problems of this kind in the coming years.
Changes to our Contribution Policies – Godot Engine
Godot EngineK~
in reply to D:\side\> • • •Jan Wildeboer 😷
in reply to K~ • • •Amandine
in reply to Jan Wildeboer 😷 • • •lj·rk
in reply to Jan Wildeboer 😷 • • •Jens Bannmann ⁂
in reply to Jan Wildeboer 😷 • • •I don't (yet) have much to add in terms of practical experience here, but I found the following bit quite interesting.
The other day, I read the new contributor guidelines of @godotengine, and they contain an idea which I haven't seen elsewhere yet:
> » No AI-generated text in human-to-human communication
>
> When our maintainers volunteer their time to review your issue, PR, or proposal, they do not want to talk to a machine. This is a basic principle of respect.«
I imagine that if a human PR author always writes the PR description and replies to comments themselves, i.e. *without* using an LLM, it could perhaps reduce the frustration felt by the reviewer. In the best case, this "I will have to explain or defend the code generated using the LLM" approach might even create a sense of "ownership" on that code.
But for now all this is speculation. Still, as soon as I have to review LLM-generated code, I would like to try out this rule!
AnneH
in reply to Jan Wildeboer 😷 • • •Whereas post-editing machine translation tends to be painful & frustrating.
Mike Anderson
in reply to Jan Wildeboer 😷 • • •it doesn't learn the way a human does - it doesn't learn *at all*.
In the use cases you're talking about the model doesn't update. Context is at best equivalent to short term memory: start a new session and it's gone. If a junior always forgot what you said yesterday, your evaluation of them would drop rapidly.
Anton Gerasimov
in reply to Jan Wildeboer 😷 • • •ruffin
in reply to Jan Wildeboer 😷 • • •It will. One b/c learning what you like adds value and you’ll pay more for it.
Two b/c that’s how different AI vendors will provide value.
That is, now that all the StackOverflow-like low hanging (and unprotected) sources have been ingested, a key source for food will be interactions with users. Those knowledge basises will become siloed, sold to other vendors only at a high cost, and will encourage differentiation and respective specialization.
So believe me, building your AI context (“learning”) is THE most important feature going forward. My copilot instructions file is already worth a ton to me, and that’s the tip of the tip of the tip of the iceberg.
Jeffrey Haas
in reply to Jan Wildeboer 😷 • • •poorly written code is a denial of service on the reviewer at the best of the time. When the original author is only passively in the loop, they abrogate responsibility for their own product and force ownership unwillingly on the reviewer. This easily leads to technical debt because you eventually exhaust the reviewer.
Adding machines into this behavior simply creates technical debt as a service.
Paul_IPv6
in reply to Jan Wildeboer 😷 • • •yes!!!
the improvement of individual coders and the overall improvement of the team and project are the wins in code reviews. AI will not get "smarter" and it won't get its morale or pride improved. code reviews of AI code are a vain attempt to catch crap code in the same way that bailing a sinking boat with a thimble is an attempt to not sink.
Wulfy—Speaker to the machines
in reply to Jan Wildeboer 😷 • • •Tell me you haven't reviewed #Vibecode without telling me you've not reviewed AiGen code.
You don't review code, you review function.
And if you're building mission critical code with Ai...
...then you probably also BASE jump and freeclimb.