Also me waiting for the junior dev to address review comments satisfactorily.
It’s a game where they try to make you impatient enough that you do it for them.
Maybe offer to pair with them?
The worst case is when someone requires changes, you address them, but then they disappear/go on a leave.
If the repository rules require all conversations to be resolved before merging and only the original reviewer can mark them as solved, the PR is stuck forever even if the rest of the team approves it.
That sounds like something you bring up in the retro
When the person came back from the leave I made some passive aggressive remark, hope this is enough 🤣
Have you tried ignoring their PRs for a few weeks?
At that point, you get your team lead to go in the repo settings and unblock it.
Plot twist: it’s the team lead who goes on a leave
I think my record is something like 6 years. I got a notification about it and thought my account had been hacked because I had no recollection of submitting a PR to some random public repo. Checked the PR description and it was definitely me.
A 15000 line PR landing on a Friday evening for the lucky random reviewer to open on Monday. “Please approve it fast so we avoid too many conflicts.”
I would review it and immediately tell them to break it into bite sized PRs.
My coworker kept doing that. We had several talks about it. Other members of our team had talks about it with them, and even our manager. Finally, I marked the PR as needs work, told them to break it into several PRs. They weren’t happy, but I was tired of dealing with PRs that were 30+ files, unrelated in change, and over 1500 lines of code changes. They were pretty mad at me for a while. But it stopped shortly afterwards.
It shouldn’t take more than an hour to review a PR.
There is no context here though?
If this is a breaking change to a major upgrade path, like a major base UI lib change, then it might not be possible to be broken down into pieces without tripping or quadrupling the work (which likely took a few folks all month to achieve already).
I remember in a previous job migrating from Vue 1 to Vue 2. And upgrading to an entirely new UI library. It required partial code freezes, and we figured it had to be done in 1 big push. It was only 3 of us doing it while the rest of the team kept up on maintenance & feature work.
The PR was something like 38k loc, of actual UI code, excluding package/lock files. It took the team an entire dedicated week and a half to review, piece by piece. We chewet through hundreds of comments during that time. It worked out really well, everyone was happy, the timelines where even met early.
The same thing happened when migrating an asp.net .Net Framework 4.x codebase to .Net Core 3.1. we figured that bundling in major refactors during the process to get the biggest bang for our buck was the best move. It was some light like 18k loc. Which also worked out similarly well in the end .
Things like this happen, not that infrequently depending on the org, and they work out just fine as long as you have a competent and well organized team who can maintain a course for more than a few weeks.
It was simply constant refactors, moving random stuff, etc. like, every week. It was unnecessary change.
The follow on. Lots and LOTS of unrelated changes can be a symptom of an immature codebase/product, simply a new endeavor.
If it’s a greenfield project, in order to move fast you don’t want to gold plate or over predictive future. This often means you run into misc design blockers constantly. Which often necessitate refactors & improvements along the way. Depending on the team this can be broken out into the refactor, then the feature, and reviewed back-to-back. This does have it’s downsides though, as the scope of the design may become obfuscated and may lead to ineffective code review.
Ofc mature codebases don’t often suffer from the same issues, and most of the foundational problems are solved. And patterns have been well established.
/ramble
Yeah I’ve been working a lot in my life in seed stage startups and it is quite common in the early stages… I try to make things change though.
I’d be pulled up at my job for any PR exceeding a few hundred lines. I don’t even know what they’d do if I just dropped a 15000 line stinker.
Just a few hundred?
That’s seems awfully short no? We’re talking a couple hours of good flow state, that may not even be a full feature at that point 🤔
We have folks who can push out 600-1k loc covering multiple features/PRs in a day if they’re having a great day and are working somewhere they are proficient.
Never mind important refactors that might touch a thousand or a few thousand lines that might be pushed out on a daily basis, and need relatively fast turnarounds.
Essentially half of the job of writing code is also reviewing code, it really should be thought of that way.
(No, loc is not a unit of performance measurement, but it can correlate)
To be honest, I agree they should be able to be larger at times.
I had a lot of disagreements when I was on a new codebase, knew what I was doing and I was able to push a lot of code out each day.
The idea is to have them small, easily readable with a tight feedback loop. I argued that bootstrapping a project will have a lot of new code at once to lay the foundations and my communication with the team was enough feedback. If I split it up, each PR would have been an incomplete idea and would have garnered a bunch of unnecessary questions.
That said, I think it’s generally pretty easy to put out multiple PRs in a day, keeping them small and specific. As you say, half of the job is reading code and it’s nicer to give my coworkers a set of PRs broken down into bite sized pieces.
Yeah, this is my colleagues waiting for me, poor bastards
This always happens to me when I’ve written some genius code. Takes so long to review it, because my caveman colleagues don’t understand it.
Are you sure your code isn’t just overly convoluted?
I’m pretty sure that’s what they just said.
Caveman no understand
If you wrote good code, even a caveman would understand it.
It is amazing how many cavemen didn’t understand the sarcasm of my comment, and in their rage had to downvote it to hell. 😂
I feel like we Lemmites are not great at humour and we are quick to downvote. 🤷
Were you referencing https://grugbrain.dev/ ? I only ran into that recently, and I got a real kick out of it.
Great read, certainly had more relatable things in there than I’d expected.
I read that recently as well, it is a great read. I can relate to a lot of the things. While it is meant as a humor piece, there is some solid advice in there.
I didn’t exactly have it in mind when I wrote my comment, but maybe subconsciously 😅
I’ve recently started dealing with architects. A lot of the comments hit close to home.
With this attitude, the problem is you actually. Sorry.