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

PDF
Create foolproof research plans with risk vs. effort mapping
PDF
Staying research led with almost no resources (UXcamp 2019)
PPTX
Before the project
PDF
A Career in Software Engineering
PPTX
Project management wisdom from the trenches
PPTX
The Problem with Process
PDF
Turning humans into developers with Perl - London Perl Workshop 2017
PPT
MDes Wk3
Create foolproof research plans with risk vs. effort mapping
Staying research led with almost no resources (UXcamp 2019)
Before the project
A Career in Software Engineering
Project management wisdom from the trenches
The Problem with Process
Turning humans into developers with Perl - London Perl Workshop 2017
MDes Wk3

What's hot (19)

PPTX
Tester vs. Developer
PDF
Case study presentation at Forward on 21.11.13
PPTX
7 clients that you ever should not work with
PDF
Numbers and Limits: Balancing Data and Design in Product Management
ODP
Distributed drupal-team from A.Pazhyn
PPTX
5 myths and realities
PDF
159 - Strategic UX Research
PPTX
NUX Leeds: Enemies of UX
PPTX
Software Testing
PPTX
Design cycle (modified)
PPTX
Prototyping: Making Questions More Tangible
PPTX
How to get stakeholder buy in for ux research
PPTX
The design cycle
PDF
Usability Testing Practicaly
PDF
Agile2012 klingon
PDF
AAM 2014 Tech Tutorial: User Testing on a Shoestring
PPT
Interviews FAQ
PPTX
Presentation2
PDF
Design talk
Tester vs. Developer
Case study presentation at Forward on 21.11.13
7 clients that you ever should not work with
Numbers and Limits: Balancing Data and Design in Product Management
Distributed drupal-team from A.Pazhyn
5 myths and realities
159 - Strategic UX Research
NUX Leeds: Enemies of UX
Software Testing
Design cycle (modified)
Prototyping: Making Questions More Tangible
How to get stakeholder buy in for ux research
The design cycle
Usability Testing Practicaly
Agile2012 klingon
AAM 2014 Tech Tutorial: User Testing on a Shoestring
Interviews FAQ
Presentation2
Design talk
Ad

Similar to Code Reviews Inside Out (20)

PPTX
Agile Testing Agile Ottawa April 2015
PDF
Building Efficient and Informative Research Programs for Product Design Teams
PDF
[CXL Live 16] Opening Keynote by Peep Laja
 
PDF
How to deliver the right software (Specification by example)
PDF
Usability Testing for Survey Research:How to and Best Practices
PDF
Audience Research on a Dime - NTC
PPTX
Milestone 6 pptx-- usability testing & final prototype
PDF
Lean UX NYC: Getting Buy-in For UX Research
PDF
Benchmarking Usability Performance
PDF
How Do You Know if Your Project Is Any Good?
PPTX
Rethink Drupal Support. Stop the Bleeding!
PPTX
Take Note of Note Taking
PDF
UX class presentation
PDF
We Do WHAT?: A Higher Ed Customer Experience Audit | iFactory at Illinois Web...
PDF
Usability Techniques for Startups
PDF
Workshop Stanford University - 28th July 2018 on Website Optimization
PPTX
Three Ways Fast Human Insight is Revolutionizing Marketing
PDF
Building Efficient and Informative Research Programs for Product Design Teams
PDF
Standing out as a new grad candidate
PDF
Practical DevSecOps: Fundamentals of Successful Programs
Agile Testing Agile Ottawa April 2015
Building Efficient and Informative Research Programs for Product Design Teams
[CXL Live 16] Opening Keynote by Peep Laja
 
How to deliver the right software (Specification by example)
Usability Testing for Survey Research:How to and Best Practices
Audience Research on a Dime - NTC
Milestone 6 pptx-- usability testing & final prototype
Lean UX NYC: Getting Buy-in For UX Research
Benchmarking Usability Performance
How Do You Know if Your Project Is Any Good?
Rethink Drupal Support. Stop the Bleeding!
Take Note of Note Taking
UX class presentation
We Do WHAT?: A Higher Ed Customer Experience Audit | iFactory at Illinois Web...
Usability Techniques for Startups
Workshop Stanford University - 28th July 2018 on Website Optimization
Three Ways Fast Human Insight is Revolutionizing Marketing
Building Efficient and Informative Research Programs for Product Design Teams
Standing out as a new grad candidate
Practical DevSecOps: Fundamentals of Successful Programs
Ad

Recently uploaded (20)

PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Essential Infomation Tech presentation.pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
System and Network Administration Chapter 2
CHAPTER 2 - PM Management and IT Context
Odoo Companies in India – Driving Business Transformation.pdf
Odoo POS Development Services by CandidRoot Solutions
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Which alternative to Crystal Reports is best for small or large businesses.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Introduction to Artificial Intelligence
Design an Analysis of Algorithms II-SECS-1021-03
Essential Infomation Tech presentation.pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Design an Analysis of Algorithms I-SECS-1021-03
Wondershare Filmora 15 Crack With Activation Key [2025
How to Migrate SBCGlobal Email to Yahoo Easily
System and Network Administration Chapter 2

Code Reviews Inside Out