There is this PR which tries to do a super-tiny thing, and that now has been adjusted 14 times since it was first created. It was rebased twice. More than 60 (!) comments were made back-and-forth, over the course of four whole weeks. I was the person submiting it, and I did everything everybody wanted, yet it’s still not merged.
This branch now contains not only its original purpose (exposing the properties
that come from WebFinger, in itself a very easy thing), but also:
- a change in function signature of 5 or 6 different functions,
- new tests for code paths we weren’t testing before,
- new documentation,
- a switch from callbacks to promises in some parts of the library,
- all the “whitespace wishes” of four different reviewers.
Yet so far it has only been +1’ed by one of them.
Looking at how super-tiny the original commit was, and the scope of just “expose WebFinger link properies as remoteStorage.remote.properties”, am I the only one who finds that maybe we’re going too far with this?
I’m not saying refactoring is a bad thing, and I understand how the piggybacking/blackmailing works, so we force ourselves to “clean as we go”. Sure.
And I don’t think this is anybody’s fault, I just think our work process has slowly slided into a bit of a paper-shifting culture, while everybody is trying to make it better. This is a classic thing to happen as any project progresses and grows, I guess.
But let’s force ourselves to stay a bit more agile. In the future, I think we should separate out month-long refactoring discussions like this from just getting stuff done. Whenever there is something wrong with the actual change, as a reviewer, you should say so. If not, you should +1 it, or just say “+1 if you fix X, and add a comment explaining Y, since that was not clear to me at first sight”.
If reviewing the PR makes you look at code that was written 2 years ago and which you normally never look at, then chances are you’ll find stuff that can be improved. That’s good, but just open a new ticket about it then. Otherwise we can never get stuff done.
Even if we just start giving more “+1 if …” reviews, it would already be a big win in speed, because a coder who gets two “+1 if …” reviews can apply the suggestions during merge, and it means a PR only goes back and forth once.
Also, it would help to shine the spotlight more on “we, the people who write the actual code”, and a bit less on “we, the reviewers”. Even though I consider myself part of both groups, I feel we have to fight for a bit of telecommunism here. Wer baut hat Recht!