Hot take: in-house development has been influenced too much by the GitHub open source PR driven development process. A process driven by zero trust doesn’t fit well in a team with trust.
The cost is real though and the flow isn’t necessarily optimal for in-house teams, other things might work better: post-push review, pair programming with no review or mob with no review, or just straight up no review.
Hmmm the thing is I feel that review makes it easier to pass on knowledge. Granted pair programming does that as well.
But I may just have been lucky with people I have worked with 😅
Moving review to the “end” makes feedback come late, sometimes even too late. Having feedback early is extremely valuable, or even after. But that is very hard to do in this process. Also having early feedback be private can also be a feature.
4
17
85
This Tweet was deleted by the Tweet author. Learn more
PR isn’t really the right format for early rough ideas or experiments or “thinking out loud”, they are more a delivery mechanism. So having a review tool that is distinct from “push to main” that allows a more collaborative process would be better imo.
I really like Gerrit because it makes everyone feel as if they have commit access, even if they don't, because everyone just does `git push origin HEAD:refs/for/master` from their feature branch and has a branch in the main repository and a nice way to review / approve it.
You have people with approval access, and your choice of system for it, which could just be 1 approval including by the person who submitted it. Then, ideally, you have a nice CI bot that quickly tests + merges it within a couple minutes. Encourages linear history + always green.
So, for example, if you want to contribute to AOSP, you can literally push to the AOSP repositories thanks to Gerrit. Gerrit also stores all review stuff in the Git repository as notes:
https://gerrit-review.googlesource.com/Documentation/note-db.html…
I don't understand how we all ended up with the GitHub workflow.