effective code review effective code review who am i
play

EFFECTIVE CODE REVIEW EFFECTIVE CODE REVIEW Who am I? @d0ugal - PowerPoint PPT Presentation

EFFECTIVE CODE REVIEW EFFECTIVE CODE REVIEW Who am I? @d0ugal Raise your hand Not doing code review? the average defect detection rate is only 25 percent for unit testing, 35 percent for function testing, and 45 percent for


  1. EFFECTIVE CODE REVIEW

  2. EFFECTIVE CODE REVIEW

  3. Who am I?

  4. @d0ugal

  5. Raise your hand…

  6. Not doing code review?

  7. “the average defect detection rate is only 25 percent for unit testing, 35 percent for function testing, and 45 percent for integration testing. In contrast, the average e ff ectiveness of design and code inspections are 55 and 60 percent” Code Complete by Steve McConnell

  8. “The only hurdle to a code review is fi nding a developer you respect to do it, and making the time to perform the review. Once you get started, I think you'll quickly fi nd that every minute you spend in a code review is paid back tenfold .” Je ff Atwood (Coding Horror)

  9. “Formal design and code inspections […] often top 85 percent in defect removal e ffi ciency and average about 65 percent” Measuring Defect Potentials and Defect Removal E ffi ciency

  10. Code Review Goals Expectation vs Outcome

  11. “While fi nding defects remains the main motivation for review, reviews are less about defects than expected and instead provide additional bene fi ts such as knowledge transfer, increased team awareness, and creation of alternative solutions to problems.” Expectations, Outcomes, and Challenges Of Modern Code Review

  12. Comment Outcomes 1. Code Improvements (29%) 2. Understanding 3. Social Communications 4. Defects (14%) 5. External Impact 6. Testing 7. Review Tool 8. Knowledge Transfer 9. Misc

  13. Authors Reviewers

  14. Authors VS Reviewers

  15. Code Review Code Discussion Code Collaboration …

  16. Authors & Reviewers

  17. Authoring Changes

  18. Don’t start with code! https://flic.kr/p/cexrh1

  19. Adhere to Project Guidelines Write test. Write documentation. Test the relevant platforms. Follow the Style guide.

  20. Provide Context https://flic.kr/p/nZpgc6

  21. Small & Contained “code review: 10 LOC - 9 issues, 500 LOC - looks fi ne” Mikhail Garber (@mikhailgarber)

  22. “Its regression coe ffi cients are positive, indicating that larger patches lead to a higher likelihood of reviewers missing some bugs. Similarly, number of fi les has a good explanatory power in all four systems.” Investigating Code Review Quality: Do People and Participation Matter?

  23. Opening a Review is the start Start of the conversation Don’t ask for it to be merged, ask for it to be reviewed

  24. Relinquish Ownership “0% thankfully. Coders act like they've painted a masterpiece and tend to debate every piece of feedback.” Mark Litwintschik (@marklit82)

  25. </Authoring Changes> Code Review is hard.

  26. Reviewing Changes

  27. Shared Responsibility

  28. Contributions == Puppies

  29. Everyone Reviews Juniors. Seniors. Review to learn, verify and teach. Not necessarily in that order.

  30. Keep reviewers on the same page If they are all reviewing to di ff erent rules, it will never make sense

  31. Automation https://flic.kr/p/5Pnxus

  32. Remove the Bikeshed https://flic.kr/p/8qqMca

  33. Multiple Reviewers

  34. Frequent, Short Reviews https://flic.kr/p/atDNLR

  35. Constructive criticism and Praise It’s easy to just point out the bad things, but when somebody teaches you something - “I didn’t know you could do that!” moments - let them know.

  36. Be Polite and aware of tone Some things can come across overly negative. “Why didn’t you do …?” Sounds more negative written than in person. Replace with “Could we do this …?”

  37. Never harsh. Never Personal https://flic.kr/p/efcTcb

  38. </Reviewing Changes> Writing Code is hard.

  39. Collaboration Help each other. Automate what you can. Be kind to yourself.

  40. Tooling GitHub? Gerrit? Phabricator? GitLab? Review Board?

  41. Review Before The Merge

  42. GitHub Loose work fl ow. Labels are useful. Simple UI.

  43. Gerrit Very de fi ned. Multiple reviewers.

  44. Code Review Data

  45. Questions? twitter.com/d0ugal github.com/d0ugal dougal@dougalmatthews.com (Sort-of related; OpenStack Open Space tomorrow afternoon)

Recommend


More recommend