Code review: process, tools and approaches

We had a really great developer call today (ODK 1 Developer Call - 2018-10-03) on the subject of code review. Thank you @ggalmazor, @Kigamba, @Matthew_White, @Mickys0918, @Akshay_Patel, @joeldean, @Shobhit_Agarwal and @yanokwa for participating and @zestyping for sharing some notes ahead of the call. I learned a lot and I think we've identified lots of great improvements to put in place.

The full notes are in the dev call Google doc.

My major takeaways:

  • Information needs to be just-in-time. The existing review guides and descriptions are helpful but everyone forgets about them. Ideas: link from PR templates, have bot describe the process for first-time contributors
  • Being consistent about enforcing full PR template information is important (and maybe consider modifications for very small changes or larger changes as @zestyping recommends)
  • Quickly closing PRs that have obvious problems or don't follow the process is helpful overall (I personally find this very hard and will work on it)

@Mickys0918 shared which I just read and really like, especially the "be curious" principle. What's described there closely matches how I try to approach review, in particular with starting with the highest impact questions (does it solve a real problem; is the approach the best one, etc).

I'd love to keep the discussion going if anyone else has thoughts on this general theme. What do you think can be improved about our existing review processes and what would it take for you to start reviewing code and/or answering questions on open PRs?