How and When To Code Review
-
Upload
paul-gower -
Category
Software
-
view
164 -
download
0
Transcript of How and When To Code Review
![Page 1: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/1.jpg)
How And When To Code Review
Paul Gower@paulmgower
![Page 2: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/2.jpg)
I’m Paul Gower.Principal Consultant at Lunamark@paulmgower
![Page 3: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/3.jpg)
AGENDAWhat Is Code Review1
2
3
How and When
Why Code Review
![Page 4: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/4.jpg)
What Is Code Review
1
![Page 5: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/5.jpg)
Father of Code Review
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5388086&filter%3DAND%28p_IS_Number%3A5388084%29
aka Fagan Inspections
![Page 6: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/6.jpg)
Fagan Inspections
Good for Mission Critical Software
![Page 7: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/7.jpg)
Code Review History
![Page 8: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/8.jpg)
![Page 9: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/9.jpg)
Over-the-shoulder
![Page 10: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/10.jpg)
Email pass-around
![Page 11: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/11.jpg)
Email pass-aroundPlease don’t do this!
![Page 12: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/12.jpg)
Pair Programming
![Page 13: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/13.jpg)
Tool-Assisted Code Review
![Page 14: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/14.jpg)
Tool-Assisted Code Review
![Page 15: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/15.jpg)
Tool-Assisted Code Review
![Page 16: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/16.jpg)
Tool-Assisted Code Review
![Page 17: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/17.jpg)
Tool-Assisted Code Review
![Page 18: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/18.jpg)
Tool-Assisted Code Review
![Page 19: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/19.jpg)
Tool-Assisted Code Review
![Page 20: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/20.jpg)
Tool-Assisted Code Review
![Page 21: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/21.jpg)
Tool-Assisted Code Review
![Page 22: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/22.jpg)
How and When
2
![Page 23: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/23.jpg)
How NOT to Code Review
![Page 24: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/24.jpg)
Don’t Be This
Guy
![Page 25: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/25.jpg)
![Page 26: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/26.jpg)
Reviewer: Focus on the code
![Page 27: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/27.jpg)
Reviewer: Focus on the code
Don’t say: “You didn’t name these variables well!”
![Page 28: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/28.jpg)
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?”
![Page 29: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/29.jpg)
Reviewer: Be respectful
![Page 30: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/30.jpg)
Reviewer: Find a positive point
![Page 31: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/31.jpg)
Developer: Be humble
![Page 32: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/32.jpg)
Developer: Prepare Before
![Page 33: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/33.jpg)
Tips and Tricks
![Page 34: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/34.jpg)
Less Than 200 Lines Of Code
![Page 35: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/35.jpg)
![Page 36: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/36.jpg)
Less Than 60 Minutes
![Page 37: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/37.jpg)
Less Than 60 Minutes
http://www.news.illinois.edu/news/11/0208focus_AlejandroLleras.html
![Page 38: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/38.jpg)
Daily Code Review
![Page 39: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/39.jpg)
Daily Code Review
http://blog.fogcreek.com/effective-code-reviews-9-tips-from-a-converted-skeptic/
![Page 40: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/40.jpg)
Always Use A Checklist
![Page 41: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/41.jpg)
Always Use A Checklist
http://www.codeproject.com/Articles/593751/Code-Review-Checklist-and-Guidelines-for-Csharp-De
![Page 42: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/42.jpg)
Don’t Review What Can Be Automated
![Page 43: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/43.jpg)
Static Code Analysis Tools
![Page 44: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/44.jpg)
Static Code Analysis Tools
![Page 45: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/45.jpg)
Static Code Analysis Tools
![Page 46: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/46.jpg)
Static Code Analysis Tools
![Page 47: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/47.jpg)
Static Code Analysis Tools
![Page 48: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/48.jpg)
Static Code Analysis Tools
![Page 49: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/49.jpg)
3
Why Code Review
![Page 50: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/50.jpg)
“ “…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
![Page 51: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/51.jpg)
![Page 52: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/52.jpg)
Before
After 2%
55%
Code Review Case Studies
![Page 53: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/53.jpg)
Code Review Case Studies
Without
With 0.82 errors / 100 loc
4.5 errors / 100 loc
![Page 54: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/54.jpg)
Before Code Reviews
![Page 55: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/55.jpg)
After Code Reviews
![Page 56: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/56.jpg)
Reasons to Code Review
![Page 57: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/57.jpg)
![Page 58: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/58.jpg)
Save Money
![Page 59: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/59.jpg)
Easier To Find Other’s Mistakes
![Page 60: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/60.jpg)
Use Peer Pressure To Your Advantage
![Page 61: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/61.jpg)
Alternative Implementations
![Page 62: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/62.jpg)
Knowledge Sharing
![Page 63: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/63.jpg)
![Page 64: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/64.jpg)
“ “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
![Page 65: How and When To Code Review](https://reader033.fdocuments.us/reader033/viewer/2022052318/58a7ba691a28ab70368b65b9/html5/thumbnails/65.jpg)
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