I am definitely guilt for that, but I find this approach really productive. We use small bug fixes as an opportunity to improve the code quality. Bigger PRs often introduce new features and take a lot of time, you know the other person is tired and needs to move on, so we focus on the bigger picture, requesting changes only if there is a bug or an important structural issue.
I always try to review the code anyway. There’s no guarantee that what they wrote is doing what you want it to do. Sometimes I find the person was told to do something and didn’t realize it actually needs to do Y and not just X, or visa versa.
I like to shoot for the middle ground: skim for key functions and check those, run code locally to see if it does roughly what I think it should do and if it does merge it into dev and see what breaks.
Small PRs get nitpicked to death since they’re almost certainly around more important code
Especially when you see a change in code, but not in tests ☠️
Yes, I always review the code, just avoid nitpicking the hell out of it.
Yeah, sorry, totally misread your comment.
So you’re always behind, patching up small bits of code that don’t comply with your guidelines, while letting big changes with, by deduction, worse code quality through?
Not really, we are a small team and we generally trust each other. Sure there are things that could have been better, but it’s not bad either.
This and bike shedding.
Reviewing large PR’s is hard. Breaking apart large PR’s that are all related changes into smaller PR’s is also hard.
If I submit a big one, I usually leave notes in the description explaining where the “core” changes are and what they are trying to accomplish. The goal being to give the reviewers a good starting point.
I also like to unit test the shit out of my code which helps a lot. The main issue there is getting management to embrace unit tests. Unit tests often double the effort up front but save tons of time in the long run. We’re going to spend the time one way or the other. Better to do it up front when it’s “cheaper” because charging it to the tech debt credit card racks up lots of expensive interest.
I can’t believe we still have to justify writing unit tests to management in the year 2024
Yeah, if you don’t want the next dev (or your future self) to accidentally undo that corner case you fixed, better put a unit test on it.
In my first programming job, I would actually do code reviews by pausing my own work, pulling their branch and building it locally, then using debug mode to step through every changed or added line of code looking for bugs, unaccounted for edge cases, and code quality issues.
…I dont do that anymore, I now go “looks good to me” even on 10 line reviews.
Yeah but I bet you do it sometimes on your own pull requests even after you’ve opened them don’t you?
This is why I always rename all the variables in the project on each PR.
I know this is a joke, but it you did that I would reject the pr with the reason of too many things at once. Reopen separate PR to refactor variable names. I actually constaly get people doing this and it’s dangerous exactly for the reason you’re joking about. Makes it easier for errors to slip in.
I know you’re playing the straight man to a joke, but actually you can apply a linter, then tell GitHub to ignore the implied ownership history for the purposes of blame from that reclining pr. All such prs are massive and yet by virtue of the replayability of the linter it’s also very easy to ensure errors didn’t slip in when reviewing.
I know the original comment was about renaming all the variables, but that’s obviously deliberately absurd, so I’m using here a completely realistic example instead.
This will lead to change fatigue. People will rather not cleanup as they go anymore and just get the work done, with worse and worse code quality as a result.
I prefer that than to sneak defects in huge PRs.
Ask him to do 500 lines and he will never look at it, making you wait forever
Meanwhile, ask a c-suite to do 500 lines, and they party until they overdose.
Just give them 10 lines at a time from the 500 lines one. Is this how micromanagement was born?
It’s how elephants are eaten
Perhaps unknowingly, this is a rehash of an age old comic, where a boss needs to get his secretary to type up a massive report.
Pycharms warns me about cognitive complexity of functions. Other IDEs too i assume?
The trick is that 10 lines of code usually pull in thousands as they are likely function calls.
I’m the opposite. If there’s 500 lines I will look closer for issues. If there’s only 10 lines it’s LGTM. I’m not going to reward such behavior.