avoiding groundhog day
play

Avoiding Groundhog Day A practitioner's daily mentoring through - PowerPoint PPT Presentation

Avoiding Groundhog Day A practitioner's daily mentoring through code reviews Michael Tautschnig Caveats 1. This is my area of practice, not research. 2. My academic background is formal verification. What I thought: Code review is a


  1. Avoiding Groundhog Day A practitioner's daily mentoring through code reviews Michael Tautschnig

  2. Caveats 1. This is my area of practice, not research. 2. My academic background is formal verification.

  3. What I thought: Code review is a quality-assurance step. (And I thought: it's a poor quality-assurance step.)

  4. https://en.wikipedia.org/wiki/Code_review

  5. Over the last 28 months I have ... • Submitted > 260 + 324 pull requests for review. • Received > 1600 + 1090 pull requests for review. • Commented on 500? + 549 pull requests. • Learnt that code review is 1) more useful than I thought and 2) useful in a very different way.

  6. What I learned: Code review is a communication tool.

  7. https://medium.com/@Andela/whats-the-real-essence-of-code-review-a5867109a1e1

  8. Why Pull Requests? • Synchronisation point • What changes? • Why does it change? • How does the code change? • Enables review with limited context

  9. The ideal PR+CR Process • React quickly, both with reviews and replies / refinements: Preserve momentum, minimise human context switches • Involve stake-holders and domain experts, spread load • Ping people if necessary • Help reviewers decide whether your change is good • Clean code • Good description • Demonstrate soundness (simple is better, testing) • Be respectful of reviewers' time → make it easy

  10. Good PR Patterns • Small, incremental changes: One PR per feature • Break up long PRs • Clean-ups (whitespace, typos, coding style) • Refactoring changes • Functional changes https://dev.to/bosepchuk/optimal-pull-request-size-600 • (Almost) no too small CR • Preserve bisectability: each commit should compile and run • Sensible testing → context-free judgment of correctness • Early idea → Mark PR as RFC • Good commit messages

  11. Good Commit Messages • Good description 
 http://chris.beams.io/posts/git-commit/ • Meant for eternity, read-mostly (optimise for that) • Expression, grammar, spelling, capitalisation • Why & what in message, how in diff • Linux-style git workflow, chain-of-custody tags 
 https://www.kernel.org/doc/Documentation/ SubmittingPatches

  12. Why code review? https://medium.com/@Andela/whats-the-real-essence-of-code-review-a5867109a1e1 • To facilitate knowledge sharing across the code base and across the team. • To ensure maintainability of code — hence the project, especially when a team member has to leave the project. • To learn new technologies and techniques , as we’re never always on the same level of knowledge with all of our teammates. • To reduce code smells .

  13. ... and to avoid Groundhog Day

  14. Code review is educating

  15. http://softwareandotherthings.blogspot.ie/2015/08/make-your-code-reviews-agile.html

  16. Code review is architecting

  17. Code review is learning

  18. http://dilbert.com/strip/2013-02-24

  19. • Code review is communication • Opportunity for learning, education, knowledge sharing • I still think code review alone is an insufficient quality-assurance mechanism. • Could someone please fix the Wikipedia page?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend