if it takes you the same amount of time to review 10k lines versus write 10k lines? Either you are bad at your job or you aren’t working on a meaningful problem. One of the most valuable things an engineer can learn is to ask questions. If this MR is hard to parse? Leave a comment and make the developer improve the documentation or restructure a function or two. And you can do that with LLMs.
And, again, there is no difference between assigning “Implement Feature X” ticket to Stan versus StanAI. If StanAI is writing 500x the amount of code that Stan would? StanAI sucks and needs to be retrained.
And, as it stands? Using tools like CoPilot or even ChatGPT, “StanAI” tends to write more concise AND more readable code. In large part because its training data is weighted by the code that has already gone through code review, was accepted, and may even be part of the production stack on half the planet.
You really don’t get the issue. Give real developers pull requests with 10, 100, 1000 and 10000 lines of changed code. I promise you, 100% that the quality on the latter two pull requests will be abysmal. No matter how good you are as a developer, you can be the best of the best, after a few hundred lines of code you’re unfamiliar with you’ll overlook obvious issues.
And let’s be honest, most developers will try to quickly get it done, read over it, hit the approve button and go back to their own work. This is how it works in the real world.
A small pull request with 10 or at most 100 lines will get a lot more scrutiny where developers actually have the mental capacity to think and reason about the code and its context.
If you let AI write a full system, or even a full module at once, spitting that code out, you’ll get large pull requests. Too large to do a meaningful review. It’s like if I threw you a pull request right now for a software you’re not familiar with and it’s 2000 lines of code. How well do you think you’ll do?
And you know what you say if someone is submitting 10k SLOC in a pull request?
“Hey Fred, document the hell out of this and split it into multiple MRs”.
And if there is no way to accomplish that ticket without it being a 10k SLOC MR? Then it was a bad ticket and whoever made it failed.
Nothing you have described doesn’t apply to humans too. If anything, StanAI is less likely to throw a temper tantrum if I leave a comment on his MR.
A small pull request with 10 or at most 100 lines will get a lot more scrutiny where developers actually have the mental capacity to think and reason about the code and its context.
Hmm. If only there was a way to conserve that “mental capacity” by offloading the more banal tasks. Hmmm
It’s like if I threw you a pull request right now for a software you’re not familiar with and it’s 2000 lines of code. How well do you think you’ll do?
Horribly. I would also make it a point to never use any software you are responsible for again if you think asking someone who doesn’t understand a code base to review the MR.
Either you have no idea what you are talking about or you are a genuinely horrible manager who has been entirely dependent on having a few “rock star developers” to do your job for you. So… yeah.
You can’t have your cake and eat it too. The entire point of AI would be to off-load the development work. You write a specification, throw it into the magic AI box, then get a working code base out.
Why the hell would you invest ten times the amount of organization work to break every feature down into small human sized parts? The AI doesn’t need bite sized tickets like humans do, you can throw a complex 100 page specification at it and get out working code an hour later. But you’ll get out 100k lines of code at once in that case.
You’re treating the AI like a junior developer, give it tiny tickets it can work on, then let a human review the work. The human will do badly because they have no context (they’d have to read the entire specification first, then read the pull request, then try to reason about code that a machine wrote). Reviewing code is always more difficult than writing it, the writing part is easy.
Again. If you are not already breaking down every feature into human sized parts, you are a horrible manager. And you seem hellbent on using a specific use case that you would never use in reality because… Frankenstein Complex?
And you continue to assume that the only people who can review a pull request are outside hires with no knowledge of the codebase or problem at all. Which… again, please never work on anything useful.
I’ll say this: If you actively sabotage your employees, they will fail. It doesn’t matter if that is Stan on the third floor or StanAI in the server room.
Again: No
if it takes you the same amount of time to review 10k lines versus write 10k lines? Either you are bad at your job or you aren’t working on a meaningful problem. One of the most valuable things an engineer can learn is to ask questions. If this MR is hard to parse? Leave a comment and make the developer improve the documentation or restructure a function or two. And you can do that with LLMs.
And, again, there is no difference between assigning “Implement Feature X” ticket to Stan versus StanAI. If StanAI is writing 500x the amount of code that Stan would? StanAI sucks and needs to be retrained.
And, as it stands? Using tools like CoPilot or even ChatGPT, “StanAI” tends to write more concise AND more readable code. In large part because its training data is weighted by the code that has already gone through code review, was accepted, and may even be part of the production stack on half the planet.
You really don’t get the issue. Give real developers pull requests with 10, 100, 1000 and 10000 lines of changed code. I promise you, 100% that the quality on the latter two pull requests will be abysmal. No matter how good you are as a developer, you can be the best of the best, after a few hundred lines of code you’re unfamiliar with you’ll overlook obvious issues.
And let’s be honest, most developers will try to quickly get it done, read over it, hit the approve button and go back to their own work. This is how it works in the real world.
A small pull request with 10 or at most 100 lines will get a lot more scrutiny where developers actually have the mental capacity to think and reason about the code and its context.
If you let AI write a full system, or even a full module at once, spitting that code out, you’ll get large pull requests. Too large to do a meaningful review. It’s like if I threw you a pull request right now for a software you’re not familiar with and it’s 2000 lines of code. How well do you think you’ll do?
And you know what you say if someone is submitting 10k SLOC in a pull request?
“Hey Fred, document the hell out of this and split it into multiple MRs”.
And if there is no way to accomplish that ticket without it being a 10k SLOC MR? Then it was a bad ticket and whoever made it failed.
Nothing you have described doesn’t apply to humans too. If anything, StanAI is less likely to throw a temper tantrum if I leave a comment on his MR.
Hmm. If only there was a way to conserve that “mental capacity” by offloading the more banal tasks. Hmmm
Horribly. I would also make it a point to never use any software you are responsible for again if you think asking someone who doesn’t understand a code base to review the MR.
Either you have no idea what you are talking about or you are a genuinely horrible manager who has been entirely dependent on having a few “rock star developers” to do your job for you. So… yeah.
You can’t have your cake and eat it too. The entire point of AI would be to off-load the development work. You write a specification, throw it into the magic AI box, then get a working code base out.
Why the hell would you invest ten times the amount of organization work to break every feature down into small human sized parts? The AI doesn’t need bite sized tickets like humans do, you can throw a complex 100 page specification at it and get out working code an hour later. But you’ll get out 100k lines of code at once in that case.
You’re treating the AI like a junior developer, give it tiny tickets it can work on, then let a human review the work. The human will do badly because they have no context (they’d have to read the entire specification first, then read the pull request, then try to reason about code that a machine wrote). Reviewing code is always more difficult than writing it, the writing part is easy.
Again. If you are not already breaking down every feature into human sized parts, you are a horrible manager. And you seem hellbent on using a specific use case that you would never use in reality because… Frankenstein Complex?
And you continue to assume that the only people who can review a pull request are outside hires with no knowledge of the codebase or problem at all. Which… again, please never work on anything useful.
I’ll say this: If you actively sabotage your employees, they will fail. It doesn’t matter if that is Stan on the third floor or StanAI in the server room.