SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
How And When To Code Review
Paul Gower

@paulmgower
I’m Paul Gower.
Principal Consultant at Lunamark

@paulmgower
AGENDA
What Is Code Review1
2
3
How and When
Why Code Review
What Is Code Review
1
Father of Code Review
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=5388086&filter%3DAND%28p_IS_Number%3A5388084%29
aka Fagan Inspections
Fagan Inspections
Good for Mission Critical Software
Code
Review
History
Over-the-shoulder
Email pass-around
Email pass-around
Please don’t do this!
Pair Programming
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
Tool-Assisted Code Review
How and When
2
How NOT to Code Review
Don’t
Be This
Guy
Reviewer: Focus on the code
Reviewer: Focus on the code
Don’t say: “You didn’t name these variables well!”
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?”
Reviewer: Be respectful
Reviewer: Find a positive point
Developer: Be humble
Developer: Prepare Before
Tips and Tricks
Less Than 200 Lines Of Code
Less Than 60 Minutes
Less Than 60 Minutes
http://www.news.illinois.edu/news/11/0208focus_AlejandroLleras.html
Daily Code Review
Daily Code Review
http://blog.fogcreek.com/effective-code-reviews-9-tips-from-a-converted-skeptic/
Always Use A Checklist
Always Use A Checklist
http://www.codeproject.com/Articles/593751/Code-Review-Checklist-and-Guidelines-for-Csharp-De
Don’t Review What Can Be
Automated
Static Code Analysis Tools
Static Code Analysis Tools
Static Code Analysis Tools
Static Code Analysis Tools
Static Code Analysis Tools
Static Code Analysis Tools
3
Why Code Review
“
“…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
Before
After 2%
55%
Code Review Case Studies
Code Review Case Studies
Without
With 0.82 errors / 100 loc
4.5 errors / 100 loc
Before Code Reviews
After Code Reviews
Reasons to Code Review
Save Money
Easier To Find
Other’s Mistakes
Use Peer Pressure
To Your Advantage
Alternative
Implementations
Knowledge
Sharing
“
“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
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
THANK YOU!
@paulmgower

http://bit.ly/cs2016-cr

Contenu connexe

Tendances

TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?
Dmitriy Nesteryuk
 
Predictive Analytics in Software Testing
Predictive Analytics in Software TestingPredictive Analytics in Software Testing
Predictive Analytics in Software Testing
Pavan Kumar Kodedela
 

Tendances (12)

TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?
 
Geek Sync | The Five Essential Scripts for Performance Tuning
Geek Sync | The Five Essential Scripts for Performance TuningGeek Sync | The Five Essential Scripts for Performance Tuning
Geek Sync | The Five Essential Scripts for Performance Tuning
 
Automated testing of software applications using machine learning edited
Automated testing of software applications using machine learning   editedAutomated testing of software applications using machine learning   edited
Automated testing of software applications using machine learning edited
 
The Whole Team Approach to Quality in Continuous Delivery
The Whole Team Approach to Quality in Continuous DeliveryThe Whole Team Approach to Quality in Continuous Delivery
The Whole Team Approach to Quality in Continuous Delivery
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Predictive Analytics in Software Testing
Predictive Analytics in Software TestingPredictive Analytics in Software Testing
Predictive Analytics in Software Testing
 
Get testing bottlenecks out of your pipelines
Get testing bottlenecks out of your pipelinesGet testing bottlenecks out of your pipelines
Get testing bottlenecks out of your pipelines
 
8 Blind Spots Often Overlooked When Testing on Mobile
8 Blind Spots Often Overlooked When Testing on Mobile8 Blind Spots Often Overlooked When Testing on Mobile
8 Blind Spots Often Overlooked When Testing on Mobile
 
Translating Tester-Speak Into Plain English: Simple Explanations for 8 Testin...
Translating Tester-Speak Into Plain English: Simple Explanations for 8 Testin...Translating Tester-Speak Into Plain English: Simple Explanations for 8 Testin...
Translating Tester-Speak Into Plain English: Simple Explanations for 8 Testin...
 
How pentesters and other infosec pros use Pentest tools.com
How pentesters and other infosec pros use Pentest tools.com How pentesters and other infosec pros use Pentest tools.com
How pentesters and other infosec pros use Pentest tools.com
 
One More Thing: Tweaking and Embellishing Access Queries
One More Thing: Tweaking and Embellishing Access QueriesOne More Thing: Tweaking and Embellishing Access Queries
One More Thing: Tweaking and Embellishing Access Queries
 
Decreasing false positives in automated testing
Decreasing false positives in automated testingDecreasing false positives in automated testing
Decreasing false positives in automated testing
 

Similaire à How and When To Code Review

Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1
Varun Sharma
 
Code review
Code reviewCode review
Code review
Aleksey Solntsev
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
nadeembtech
 

Similaire à How and When To Code Review (20)

Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And When
 
Code Review: How and When - Tulsa TechFest 2016
Code Review: How and When - Tulsa TechFest 2016Code Review: How and When - Tulsa TechFest 2016
Code Review: How and When - Tulsa TechFest 2016
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Let's review it: What designers can learn from (code) review
Let's review it: What designers can learn from (code) reviewLet's review it: What designers can learn from (code) review
Let's review it: What designers can learn from (code) review
 
Peer review
Peer reviewPeer review
Peer review
 
Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1
 
How to successfully grow a code review culture
How to successfully grow a code review cultureHow to successfully grow a code review culture
How to successfully grow a code review culture
 
Code Reviews
Code ReviewsCode Reviews
Code Reviews
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptxcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
 
Code review
Code reviewCode review
Code review
 
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdfcode_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
Code Review
Code ReviewCode Review
Code Review
 
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptxSOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
SOFTWARE TESTING TRAFUNDAMENTALS OF SOFTWARE TESTING.pptx
 
Why every dev team needs static analysis
Why every dev team needs static analysisWhy every dev team needs static analysis
Why every dev team needs static analysis
 
Software Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous InspectionSoftware Defect Prevention via Continuous Inspection
Software Defect Prevention via Continuous Inspection
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
Four myths about peer code reviews - 7. ebay tech talk
Four myths about peer code reviews - 7. ebay tech talkFour myths about peer code reviews - 7. ebay tech talk
Four myths about peer code reviews - 7. ebay tech talk
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
 

Plus de Paul Gower

Plus de Paul Gower (11)

Be a Better Remote Agile Team Member
Be a Better Remote Agile Team MemberBe a Better Remote Agile Team Member
Be a Better Remote Agile Team Member
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase Productivity
 
Codestock 2019 - Build a successful remote agile team in three easy steps!
Codestock 2019 - Build a successful remote agile team in three easy steps!Codestock 2019 - Build a successful remote agile team in three easy steps!
Codestock 2019 - Build a successful remote agile team in three easy steps!
 
WeRockIT 2019 - Build a successful remote agile team in three easy steps!
WeRockIT 2019 - Build a successful remote agile team in three easy steps!WeRockIT 2019 - Build a successful remote agile team in three easy steps!
WeRockIT 2019 - Build a successful remote agile team in three easy steps!
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase Productivity
 
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
 
Unit Testing in Umbraco
Unit Testing in UmbracoUnit Testing in Umbraco
Unit Testing in Umbraco
 
Write Code For The Future You - Tulsa TechFest 2016
Write Code For The Future You - Tulsa TechFest 2016Write Code For The Future You - Tulsa TechFest 2016
Write Code For The Future You - Tulsa TechFest 2016
 
Write Code For The Future You - LR Tech Fest
Write Code For The Future You - LR Tech FestWrite Code For The Future You - LR Tech Fest
Write Code For The Future You - LR Tech Fest
 
Windows 8 and Phone App Development
Windows 8 and Phone App DevelopmentWindows 8 and Phone App Development
Windows 8 and Phone App Development
 
Code Kata
Code KataCode Kata
Code Kata
 

Dernier

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
anilsa9823
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 

How and When To Code Review