|
I've posed this in a couple comments, but want to get a bigger thread going. There are some opinions that using LLMs to write code is just a new high level language we are dealing in as engineers. However, this leads to a disconnect come code-review time, in that the reviewed code is an artifact of the process that created it. If we are now expressing ourselves via natural language, (prompting, planning, writing, as the new "programming language"), but only putting the generated artifact (the actual code) up for review, how do we review it completely? I struggle with what feels like a missing piece these days of lacking the context around how the change was produced, the plans, the prompting, to understand how an engineer came to this specific code change as a result. Did they one-shot this? did they still spend hours prompting/iterating/etc.? something in-between? The summary in the PR often says what the change is, but doesn't contain the full dialog or how we arrived at this specific change (tradeoffs, alternatives, etc.) How do you review PRs in your organization given this? Any rules/automation/etc. you institute? |
In traditional workflows, a lot of the reasoning is visible through commit history, comments, or intermediate refactors. With LLMs, the reasoning step can be hidden because the model collapses that exploration into a single output.
What we've started doing internally is asking for two artifacts instead of just the code:
1. the prompt or task description that produced the code 2. the generated code itself
Reviewing both together gives you much better context about the intent, constraints, and tradeoffs that led to the implementation.