You want to improve your software skills. That’s a given. You may be a mentor or a manager who needs to improve the knowledge sharing among your software developers across different projects. Code Reviews can do just that while improving code quality in your projects. Code Review not only builds developer team spirit but also offers new ways to improve a software solution. You’ll walk away from this session with in-depth understanding of Code Review to strengthen your team.
5. Father of Code Review
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5388086&filter%3DAND%28p_IS_Number%3A5388084%29
aka Fagan Inspections
32. Reviewer: Focus on the code
Don’t say: “You didn’t name these variables well!”
33. Reviewer: Focus on the code
Don’t say: “You didn’t name these variables well!”
Instead: “I don’t understand these variable
names, can you help me understand them?”
39. “
“The objective is for everyone to find
defects, including the author, not to
prove the work product has no defects.
People exchange work products to
review, with the expectation that as
authors, they will produce errors, and as
reviewers, they will find errors.
Everyone ends up learning from their
own mistakes and other people’s
mistakes.”
– Jerry Weinberg, “The Psychology of
Computer Programming”, 1971
47. Always Use A Checklist
http://www.codeproject.com/Articles/593751/Code-Review-Checklist-and-Guidelines-for-Csharp-De
48. Developer Checklist
• Does my code compile without errors and run without exceptions in
“happy path” conditions?
• Have I checked this code to see if it triggers compiler or static analysis
warnings?
• Have I covered this code with appropriate tests, and are those test
currently green?
• Have I run our performance/load/smoke tests to make sure nothing I’ve
introduced is a performance killer?
http://blog.smartbear.com/code-review/creating-your-code-review-checklist/
49. Reviewer Checklist
• Does this code read like prose?
• Do the methods do what the name of the method claims that they’ll do?
Same for classes?
• Can I get an understanding of the desired behavior just by doing quick
scans through unit and acceptance tests?
• Is anything here a re-implementation of existing functionality the developer
may not be aware of?
http://blog.smartbear.com/code-review/creating-your-code-review-checklist/
61. “
“…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
effectiveness of design and code
inspections are 55 and 60 percent.”
- Steve McConnell, Code
Complete, 2004
74. “
“The aim is to catch
what mistakes you can
and to get better – not
to attempt perfection.”
- Erik Dietrich,
“Creating Your Code
Review Checklist”, 2015
75. Review
• No more than 60 mins
• No more than 200 lines of code
• Use Static Code Analysis
• Use Check Lists
• Use A Code Review Tool