SlideShare a Scribd company logo
Code Reviews Inside Out
Zagreb, 21 November 2019
Ines Jelovac Mandarić
Photo by Agence Olloweb on Unsplash
Code review
Benefits
quality assurance
knowledge sharing
time saving & money saving
Benefits
1 hour
of code review prevents
~100 hours
of related work
Document Inspection as an Agent of Change, Holland, 1999
Benefits
Handbook of Walkthroughs, Inspections and Technical Reviews, Freedman and Weinberg, 1990
Benefits
Software Defect-Removal Efficiency, Jones, 1996
Why it works?
1. Psychology:
blind spots
2. Detecting different
kind of problems
Photo by Charles 🇵🇭 on Unsplash
Problems
time consuming
&
money wasting
Photo by Jp Valery on Unsplash
History
Photo by Federica Galli on Unsplash
Today
Photo by Jesus Kiteque on Unsplash
What to review?
● Design
● Functionality
● Complexity
● Tests
● Naming
What to look for in a code review, Google, 2019 Photo by Steven Wright on Unsplash
What to review?
● Comments
● Style
● Documentation
● Check every line
● Context
What to look for in a code review, Google, 2019 Photo by Steven Wright on Unsplash
How to review code?
intuition
&
experience
What is the goal?
Photo by Fab Lentz on Unsplash
How to give feedback?
● Writing comments
○ Change request
○ Informational comment
● Talking
When to review?
One
bussiness day
Speed of Code Reviews, Google, 2019 Photo by Nathan Dumlao on Unsplash
How NOT to review code?
● Looking for typos
● Checking format
● Detecting dead code
How NOT to review code?
● Checking if it compiles
● Checking if it runs
● Checking if tests run
How NOT to review code?
● Focusing on bugs 🐛
● Discussing alternatives
How to prepare code for review?
● Submitting small amount of changes
● Self-review first
● Not relying on reviewer too much
● Writing good description
How to choose a reviewer?
● expert in technology used
● expert in domain
Who should review your code?
senior ➔ junior
junior ➔ senior
peer ➔ peer
Photo by Icons8 Team on Unsplash
Who should
NOT review
code?
managers
How many people should review code?
max 3
The Jet Propulsion Laboratory’s Experience with Formal Inspections, Bush and Kelly, 1989.
An Experiment to Assess Different Defect Detection Methods for Software Requirements Inspections, Porter and
Votta, 1994.
Recap
Reviewers
● Focus on quality
● Remember to talk
● Respond quickly
Authors
● Prepare code
before review
● Choose reviewer(s)
wisely and not too
many
Human factor
Photo by Sebastian Herrmann on Unsplash
For reviewers
● Short and clear
comments
● Stay objective
● Don't criticize
● Focus on problems, not
solutions
● Modify feedback
● Positive feedback
Photo by Ben White on Unsplash
For authors
● Understand comment
● Ask for extra info
● Appreciate feedback
● Learn and improve!
Photo by Ben White on Unsplash
General approach
● Show respect
● Don't take it personally
● Don't make it personal
● Identify problems in processes/organization
● Code review is not performance review!
Variations
Work in progress
● Incomplete work
● Early feedback
● Discuss alternatives
Photo by Josue Isai Ramos Figueroa on Unsplash
Pair programming
● Type of in-person review
● Live session
Photo by Brooke Cagle on Unsplash
Summary
● Improve code quality
● Automate what possible
● Give good feedback
● Professional peer to peer approach
● Learn from mistakes
Image from http://thedataist.com/ten-good-coding-practices-for-data-scientists/
Conclusion
Resources
● Code Complete, Steve McConnell, 2004
● Design and Code Inspections to Reduce
Errors in Program Development by Michael
Fagan, 1976
● Code Review Developer Guide, Google, 2019

More Related Content

What's hot (19)

PPTX
Tester vs. Developer
Dilini Prasangika
 
PDF
Case study presentation at Forward on 21.11.13
Marc Abraham
 
PPTX
7 clients that you ever should not work with
Valerii Minenko
 
PDF
Numbers and Limits: Balancing Data and Design in Product Management
Jeremy Horn
 
ODP
Distributed drupal-team from A.Pazhyn
Oleksii Bogush
 
PPTX
5 myths and realities
Hoa Le
 
PDF
159 - Strategic UX Research
ProductCamp Boston
 
PPTX
NUX Leeds: Enemies of UX
WhatUsersDo
 
PPTX
Software Testing
Jyothi Rangaiah
 
PPTX
Design cycle (modified)
Wenczar Sy
 
PPTX
Prototyping: Making Questions More Tangible
4.0 Schools
 
PPTX
How to get stakeholder buy in for ux research
Alicia Zhong
 
PPTX
The design cycle
Wenczar Sy
 
PDF
Usability Testing Practicaly
Tomáš Muchka
 
PDF
Agile2012 klingon
drewz lin
 
PDF
AAM 2014 Tech Tutorial: User Testing on a Shoestring
Dana Mitroff Silvers
 
PPT
Interviews FAQ
Damian T. Gordon
 
PPTX
Presentation2
Adameo90
 
PDF
Design talk
Kate Hanson
 
Tester vs. Developer
Dilini Prasangika
 
Case study presentation at Forward on 21.11.13
Marc Abraham
 
7 clients that you ever should not work with
Valerii Minenko
 
Numbers and Limits: Balancing Data and Design in Product Management
Jeremy Horn
 
Distributed drupal-team from A.Pazhyn
Oleksii Bogush
 
5 myths and realities
Hoa Le
 
159 - Strategic UX Research
ProductCamp Boston
 
NUX Leeds: Enemies of UX
WhatUsersDo
 
Software Testing
Jyothi Rangaiah
 
Design cycle (modified)
Wenczar Sy
 
Prototyping: Making Questions More Tangible
4.0 Schools
 
How to get stakeholder buy in for ux research
Alicia Zhong
 
The design cycle
Wenczar Sy
 
Usability Testing Practicaly
Tomáš Muchka
 
Agile2012 klingon
drewz lin
 
AAM 2014 Tech Tutorial: User Testing on a Shoestring
Dana Mitroff Silvers
 
Interviews FAQ
Damian T. Gordon
 
Presentation2
Adameo90
 
Design talk
Kate Hanson
 

Similar to Code Reviews Inside Out (20)

PPTX
Agile Testing Agile Ottawa April 2015
Dag Rowe
 
PDF
Building Efficient and Informative Research Programs for Product Design Teams
Tom Satwicz
 
PDF
[CXL Live 16] Opening Keynote by Peep Laja
CXL
 
PDF
How to deliver the right software (Specification by example)
Asier Barrenetxea
 
PDF
Usability Testing for Survey Research:How to and Best Practices
egeisen
 
PDF
Audience Research on a Dime - NTC
Courtney Clark
 
PPTX
Milestone 6 pptx-- usability testing & final prototype
Matt Craig
 
PDF
Lean UX NYC: Getting Buy-in For UX Research
Perfetti Media
 
PDF
Benchmarking Usability Performance
Jennifer Romano Bergstrom
 
PDF
How Do You Know if Your Project Is Any Good?
All Things Open
 
PPTX
Rethink Drupal Support. Stop the Bleeding!
Anne Stefanyk
 
PPTX
Take Note of Note Taking
Karoline Stoltzenburg
 
PDF
UX class presentation
Theo V
 
PDF
We Do WHAT?: A Higher Ed Customer Experience Audit | iFactory at Illinois Web...
Ashley McQuaid
 
PDF
Usability Techniques for Startups
Perfetti Media
 
PDF
Workshop Stanford University - 28th July 2018 on Website Optimization
Raj Lal
 
PPTX
Three Ways Fast Human Insight is Revolutionizing Marketing
UserTesting
 
PDF
Building Efficient and Informative Research Programs for Product Design Teams
Tom Satwicz
 
PDF
Standing out as a new grad candidate
Sashko Stubailo
 
PDF
Practical DevSecOps: Fundamentals of Successful Programs
Matt Tesauro
 
Agile Testing Agile Ottawa April 2015
Dag Rowe
 
Building Efficient and Informative Research Programs for Product Design Teams
Tom Satwicz
 
[CXL Live 16] Opening Keynote by Peep Laja
CXL
 
How to deliver the right software (Specification by example)
Asier Barrenetxea
 
Usability Testing for Survey Research:How to and Best Practices
egeisen
 
Audience Research on a Dime - NTC
Courtney Clark
 
Milestone 6 pptx-- usability testing & final prototype
Matt Craig
 
Lean UX NYC: Getting Buy-in For UX Research
Perfetti Media
 
Benchmarking Usability Performance
Jennifer Romano Bergstrom
 
How Do You Know if Your Project Is Any Good?
All Things Open
 
Rethink Drupal Support. Stop the Bleeding!
Anne Stefanyk
 
Take Note of Note Taking
Karoline Stoltzenburg
 
UX class presentation
Theo V
 
We Do WHAT?: A Higher Ed Customer Experience Audit | iFactory at Illinois Web...
Ashley McQuaid
 
Usability Techniques for Startups
Perfetti Media
 
Workshop Stanford University - 28th July 2018 on Website Optimization
Raj Lal
 
Three Ways Fast Human Insight is Revolutionizing Marketing
UserTesting
 
Building Efficient and Informative Research Programs for Product Design Teams
Tom Satwicz
 
Standing out as a new grad candidate
Sashko Stubailo
 
Practical DevSecOps: Fundamentals of Successful Programs
Matt Tesauro
 
Ad

Recently uploaded (20)

PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PDF
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
NSF Converter Simplified: From Complexity to Clarity
Johnsena Crook
 
PPTX
Build a Custom Agent for Agentic Testing.pptx
klpathrudu
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Everything you need to know about pricing & licensing Microsoft 365 Copilot f...
Q-Advise
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
IObit Driver Booster Pro 12.4.0.585 Crack Free Download
henryc1122g
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
NSF Converter Simplified: From Complexity to Clarity
Johnsena Crook
 
Build a Custom Agent for Agentic Testing.pptx
klpathrudu
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Ad

Code Reviews Inside Out