SlideShare a Scribd company logo
Code Reviews
What, why and how.
-Code review is systematic examination of
computer source code.
!
It is intended to find and fix mistakes overlooked
in the initial development phase, improving both the
overall quality of software and the developers'
skills.
!
Reviews are done in various forms such as pair
programming, informal walkthroughs, and formal
inspections.
Kolawa, Adam; Huizinga, Dorota (2007).
Automated Defect Prevention: Best Practices in Software Management.
Wiley-IEEE Computer Society Press. p. 260.
W H AT
-
The most pessimistic empirical studies show that
code reviews improve error detection on 60%.
[Boehm and Basili 2001] citation from Glass, Robert
Facts and Fallacies of Software Engineering
!
McConnell, Steve
Code Complete
W H Y
-The same studies show that the cost of
inspections is less than the cost of the testing
that would be necessary to find the same errors.
!
Jason Cohen, Steven Teleki & Eric Brown The Case for Peer Review
W H Y
100
200
300
400
500
after dev after CR after QA customer
32
113
180
463
194
321
463463
no CR $368k w/ CR $152k
.
..
-Code Reviews also…
!
enforce accountability
make people write better code in the first time
spread knowledge on product, code…
make developers grow by having feedback
make developers desidentify with the code
enhance team spirit
are fun
W H Y
..
.
.
-
1 push your feature branch with your ninja code
2 send the review
3 add all relevant info to help the reviewers
4 don’t expect immediate feedback, do something else
5 reply to the comments; fix the todos

6 never ever push without having the minimum “shipits” agreed
7 close the review
L I F E C Y C L E
Code reviews
-
Must

can’t go to production without


Question

doubts about the logic, the story…
!
Suggestion
may be implemented on this feature on in another story,
add to the backlog and reference the review
C O M M E N T S
.
.
.
-
1
Time
Take time to review
H O W
-H O W
2
Understand
Try to read everything before commenting
Start by unit tests if there are any
Is it simple? Is it readable?
-H O W
3
Basics
Coding Standards
Indentation
Naming
Simple algorithm improvements
…
We’ll automate most of it once we know it
Code reviews
-H O W
4
Requirement
Does the code do what is in the
requirements?
-H O W
5
Bigger picture
Think about things the developer may not be
taking into consideration
Question the value
Code reviews
-H O W
6
NIH
Is the code reinventing the wheel?
Are there gems/solutions out there?
PFE™
-H O W
7
Errors
Both on logic and business
Code reviews
-H O W
8
Security
XSS
SQL Injection
Encryption
…
Code reviews
-H O W
9
Performance
SQL Overkill
DB Indexes
Slow processes not in background
…
Code reviews
-H O W
10
Architecture
Hardest part IMO, we’ll
focus on learning that later
Code reviews
-H O W
11
Teach
Not only point, try to be didactic
Share things that may not even
be related to the code itself
Code reviews
-H O W
12
Learn
About software, about the project,
about the people
-H O W
13
Be constructive
Code reviews are team work
Code reviews
-H O W
14
Review again
If you sent comments check that they were
fixed or replied
-H O W
Basics
Security
Performance
Errors
Bigger Picture
Requirements
NIH
Architecture
Avoid mistakes
that may be damaging
Get things right
Complex
Simple
Long term maintainability
& productivity boosts
_‫ף‬‫הסו‬
Ad

Recommended

How to successfully grow a code review culture
How to successfully grow a code review culture
Nina Zakharenko
 
Peer Code Review An Agile Process
Peer Code Review An Agile Process
gsporar
 
Tdd 4 everyone full version
Tdd 4 everyone full version
Lior Israel
 
Code review guidelines
Code review guidelines
Lalit Kale
 
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Joseph Yoder
 
To document or not to document? An exploratory study on developers' motivatio...
To document or not to document? An exploratory study on developers' motivatio...
Hayim Makabee
 
Code Review Best Practices
Code Review Best Practices
Trisha Gee
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
Lemi Orhan Ergin
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
Lemi Orhan Ergin
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
Lemi Orhan Ergin
 
Dude, I just stepped into your code
Dude, I just stepped into your code
Josh Gillespie
 
Clean Code and Common Engineering Practices
Clean Code and Common Engineering Practices
Ruth Sperer
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
Lemi Orhan Ergin
 
A Pragmatic Introduction to Unit Testing
A Pragmatic Introduction to Unit Testing
Josh Gillespie
 
Portrait of professional developer 2.0
Portrait of professional developer 2.0
Mikalai Alimenkou
 
Code reviews: a short introduction
Code reviews: a short introduction
FreekDB
 
How to review a pull request
How to review a pull request
rouanw
 
Documenting code yapceu2016
Documenting code yapceu2016
Søren Lund
 
Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the Keynotes
TechWell
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
Lemi Orhan Ergin
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer Useful
Maaret Pyhäjärvi
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
Symptoms of Bad Quality Software
Symptoms of Bad Quality Software
ashokguduru
 
Clean code and Coding Standards
Clean code and Coding Standards
Mahesh Salaria
 
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Atlassian
 
Programming the Programmer
Programming the Programmer
vipinkumar_n
 
Scaling your code review
Scaling your code review
Sander Bol
 
WordCamp US 2016 - Ryan Markel: Code Review
WordCamp US 2016 - Ryan Markel: Code Review
themarkel
 
Why you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software company
Matts Devriendt
 
Would Static Analysis Tools Help Developers with Code Reviews?
Would Static Analysis Tools Help Developers with Code Reviews?
Sebastiano Panichella
 

More Related Content

What's hot (18)

Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
Lemi Orhan Ergin
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
Lemi Orhan Ergin
 
Dude, I just stepped into your code
Dude, I just stepped into your code
Josh Gillespie
 
Clean Code and Common Engineering Practices
Clean Code and Common Engineering Practices
Ruth Sperer
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
Lemi Orhan Ergin
 
A Pragmatic Introduction to Unit Testing
A Pragmatic Introduction to Unit Testing
Josh Gillespie
 
Portrait of professional developer 2.0
Portrait of professional developer 2.0
Mikalai Alimenkou
 
Code reviews: a short introduction
Code reviews: a short introduction
FreekDB
 
How to review a pull request
How to review a pull request
rouanw
 
Documenting code yapceu2016
Documenting code yapceu2016
Søren Lund
 
Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the Keynotes
TechWell
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
Lemi Orhan Ergin
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer Useful
Maaret Pyhäjärvi
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
Symptoms of Bad Quality Software
Symptoms of Bad Quality Software
ashokguduru
 
Clean code and Coding Standards
Clean code and Coding Standards
Mahesh Salaria
 
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Atlassian
 
Programming the Programmer
Programming the Programmer
vipinkumar_n
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
Lemi Orhan Ergin
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
Lemi Orhan Ergin
 
Dude, I just stepped into your code
Dude, I just stepped into your code
Josh Gillespie
 
Clean Code and Common Engineering Practices
Clean Code and Common Engineering Practices
Ruth Sperer
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
Lemi Orhan Ergin
 
A Pragmatic Introduction to Unit Testing
A Pragmatic Introduction to Unit Testing
Josh Gillespie
 
Portrait of professional developer 2.0
Portrait of professional developer 2.0
Mikalai Alimenkou
 
Code reviews: a short introduction
Code reviews: a short introduction
FreekDB
 
How to review a pull request
How to review a pull request
rouanw
 
Documenting code yapceu2016
Documenting code yapceu2016
Søren Lund
 
Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the Keynotes
TechWell
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
Lemi Orhan Ergin
 
I Don't Code, Am I No Longer Useful
I Don't Code, Am I No Longer Useful
Maaret Pyhäjärvi
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
Gonzalo Rodríguez
 
Symptoms of Bad Quality Software
Symptoms of Bad Quality Software
ashokguduru
 
Clean code and Coding Standards
Clean code and Coding Standards
Mahesh Salaria
 
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Code Review for Teams Too Busy to Review Code - Atlassian Summit 2010
Atlassian
 
Programming the Programmer
Programming the Programmer
vipinkumar_n
 

Viewers also liked (13)

Scaling your code review
Scaling your code review
Sander Bol
 
WordCamp US 2016 - Ryan Markel: Code Review
WordCamp US 2016 - Ryan Markel: Code Review
themarkel
 
Why you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software company
Matts Devriendt
 
Would Static Analysis Tools Help Developers with Code Reviews?
Would Static Analysis Tools Help Developers with Code Reviews?
Sebastiano Panichella
 
Code review
Code review
Raquel Pau
 
Fix Your Broken Windows With Code Reviews - phpist14
Fix Your Broken Windows With Code Reviews - phpist14
Lemi Orhan Ergin
 
Code Review
Code Review
Mikalai Alimenkou
 
Effective code reviews
Effective code reviews
Sebastian Marek
 
Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective Review Process
Dr. Syed Hassan Amin
 
Code Review Tool Evaluation
Code Review Tool Evaluation
Kate Semizhon
 
How to build a great coding culture
How to build a great coding culture
Mark Halvorson
 
Code reviews - Leave your ego at the door
Code reviews - Leave your ego at the door
Frank Sons
 
Sass Code Reviews - How one code review changed my life #SassConf2015
Sass Code Reviews - How one code review changed my life #SassConf2015
Stacy Kvernmo
 
Scaling your code review
Scaling your code review
Sander Bol
 
WordCamp US 2016 - Ryan Markel: Code Review
WordCamp US 2016 - Ryan Markel: Code Review
themarkel
 
Why you should integrate peer code reviews in your software company
Why you should integrate peer code reviews in your software company
Matts Devriendt
 
Would Static Analysis Tools Help Developers with Code Reviews?
Would Static Analysis Tools Help Developers with Code Reviews?
Sebastiano Panichella
 
Fix Your Broken Windows With Code Reviews - phpist14
Fix Your Broken Windows With Code Reviews - phpist14
Lemi Orhan Ergin
 
Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective Review Process
Dr. Syed Hassan Amin
 
Code Review Tool Evaluation
Code Review Tool Evaluation
Kate Semizhon
 
How to build a great coding culture
How to build a great coding culture
Mark Halvorson
 
Code reviews - Leave your ego at the door
Code reviews - Leave your ego at the door
Frank Sons
 
Sass Code Reviews - How one code review changed my life #SassConf2015
Sass Code Reviews - How one code review changed my life #SassConf2015
Stacy Kvernmo
 
Ad

Similar to Code reviews (20)

Code reviews
Code reviews
Raúl Araya Tauler
 
Expert Code Review best practices
Expert Code Review best practices
jeetendra mandal
 
Code Reviews
Code Reviews
phildenoncourt
 
Code-Review-Principles-Process-and-Tools (1)
Code-Review-Principles-Process-and-Tools (1)
Aditya Bhuyan
 
Voxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereview
Hakan Saglam
 
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.pdf
sarah david
 
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.pptx
sarah david
 
Code Review
Code Review
Ravi Raj
 
How to successfully grow a code review culture
How to successfully grow a code review culture
Danylenko Max
 
Code review best practice
Code review best practice
Oren Digmi
 
Effective Code Review
Effective Code Review
Eyal Kenig
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
Maven Logix
 
Code Review
Code Review
Lukas Rypl
 
Code Review to the Rescue
Code Review to the Rescue
Andrei Sviridov
 
Increasing code quality with code reviews (poetry version)
Increasing code quality with code reviews (poetry version)
David Stockton
 
Code Review for iOS
Code Review for iOS
KLabCyscorpions-TechBlog
 
Effective Peer Review
Effective Peer Review
Joel Hooks
 
Code review in practice
Code review in practice
Edorian
 
Code Reviews Inside Out
Code Reviews Inside Out
Ines Jelovac
 
Code Reviews @ Quatico
Code Reviews @ Quatico
Jan Wloka
 
Expert Code Review best practices
Expert Code Review best practices
jeetendra mandal
 
Code-Review-Principles-Process-and-Tools (1)
Code-Review-Principles-Process-and-Tools (1)
Aditya Bhuyan
 
Voxxed days 2015-hakansaglam-codereview
Voxxed days 2015-hakansaglam-codereview
Hakan Saglam
 
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.pdf
sarah david
 
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.pptx
sarah david
 
Code Review
Code Review
Ravi Raj
 
How to successfully grow a code review culture
How to successfully grow a code review culture
Danylenko Max
 
Code review best practice
Code review best practice
Oren Digmi
 
Effective Code Review
Effective Code Review
Eyal Kenig
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
Maven Logix
 
Code Review to the Rescue
Code Review to the Rescue
Andrei Sviridov
 
Increasing code quality with code reviews (poetry version)
Increasing code quality with code reviews (poetry version)
David Stockton
 
Effective Peer Review
Effective Peer Review
Joel Hooks
 
Code review in practice
Code review in practice
Edorian
 
Code Reviews Inside Out
Code Reviews Inside Out
Ines Jelovac
 
Code Reviews @ Quatico
Code Reviews @ Quatico
Jan Wloka
 
Ad

More from Juan Maiz (10)

Reasoning about Code with React
Reasoning about Code with React
Juan Maiz
 
Ruby para-programadores-php
Ruby para-programadores-php
Juan Maiz
 
Ruby para-programadores-php
Ruby para-programadores-php
Juan Maiz
 
Ruby para programadores PHP
Ruby para programadores PHP
Juan Maiz
 
SaaS - RubyMastersConf.com.br
SaaS - RubyMastersConf.com.br
Juan Maiz
 
Background Jobs - Com BackgrounDRb
Background Jobs - Com BackgrounDRb
Juan Maiz
 
Introdução ao Ruby on Rails
Introdução ao Ruby on Rails
Juan Maiz
 
rails_and_agile
rails_and_agile
Juan Maiz
 
Reasoning about Code with React
Reasoning about Code with React
Juan Maiz
 
Ruby para-programadores-php
Ruby para-programadores-php
Juan Maiz
 
Ruby para-programadores-php
Ruby para-programadores-php
Juan Maiz
 
Ruby para programadores PHP
Ruby para programadores PHP
Juan Maiz
 
SaaS - RubyMastersConf.com.br
SaaS - RubyMastersConf.com.br
Juan Maiz
 
Background Jobs - Com BackgrounDRb
Background Jobs - Com BackgrounDRb
Juan Maiz
 
Introdução ao Ruby on Rails
Introdução ao Ruby on Rails
Juan Maiz
 
rails_and_agile
rails_and_agile
Juan Maiz
 

Recently uploaded (20)

Best Practice for LLM Serving in the Cloud
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
 
Microsoft-365-Administrator-s-Guide1.pdf
Microsoft-365-Administrator-s-Guide1.pdf
mazharatknl
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
mary rojas
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Why Edge Computing Matters in Mobile Application Tech.pdf
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
 
A Guide to Telemedicine Software Development.pdf
A Guide to Telemedicine Software Development.pdf
Olivero Bozzelli
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Philip Schwarz
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Digital Transformation: Automating the Placement of Medical Interns
Digital Transformation: Automating the Placement of Medical Interns
Safe Software
 
declaration of Variables and constants.pptx
declaration of Variables and constants.pptx
meemee7378
 
Humans vs AI Call Agents - Qcall.ai's Special Report
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 
Best Practice for LLM Serving in the Cloud
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
 
Microsoft-365-Administrator-s-Guide1.pdf
Microsoft-365-Administrator-s-Guide1.pdf
mazharatknl
 
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
 
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
Why Every Growing Business Needs a Staff Augmentation Company IN USA.pdf
mary rojas
 
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
 
Why Edge Computing Matters in Mobile Application Tech.pdf
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
 
A Guide to Telemedicine Software Development.pdf
A Guide to Telemedicine Software Development.pdf
Olivero Bozzelli
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Folding Cheat Sheet # 9 - List Unfolding 𝑢𝑛𝑓𝑜𝑙𝑑 as the Computational Dual of ...
Philip Schwarz
 
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
 
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
 
Digital Transformation: Automating the Placement of Medical Interns
Digital Transformation: Automating the Placement of Medical Interns
Safe Software
 
declaration of Variables and constants.pptx
declaration of Variables and constants.pptx
meemee7378
 
Humans vs AI Call Agents - Qcall.ai's Special Report
Humans vs AI Call Agents - Qcall.ai's Special Report
Udit Goenka
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
 

Code reviews

  • 2. -Code review is systematic examination of computer source code. ! It is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills. ! Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections. Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. p. 260. W H AT
  • 3. - The most pessimistic empirical studies show that code reviews improve error detection on 60%. [Boehm and Basili 2001] citation from Glass, Robert Facts and Fallacies of Software Engineering ! McConnell, Steve Code Complete W H Y
  • 4. -The same studies show that the cost of inspections is less than the cost of the testing that would be necessary to find the same errors. ! Jason Cohen, Steven Teleki & Eric Brown The Case for Peer Review W H Y 100 200 300 400 500 after dev after CR after QA customer 32 113 180 463 194 321 463463 no CR $368k w/ CR $152k
  • 5. . .. -Code Reviews also… ! enforce accountability make people write better code in the first time spread knowledge on product, code… make developers grow by having feedback make developers desidentify with the code enhance team spirit are fun W H Y .. . .
  • 6. - 1 push your feature branch with your ninja code 2 send the review 3 add all relevant info to help the reviewers 4 don’t expect immediate feedback, do something else 5 reply to the comments; fix the todos
 6 never ever push without having the minimum “shipits” agreed 7 close the review L I F E C Y C L E
  • 8. - Must
 can’t go to production without 
 Question
 doubts about the logic, the story… ! Suggestion may be implemented on this feature on in another story, add to the backlog and reference the review C O M M E N T S . . .
  • 9. - 1 Time Take time to review H O W
  • 10. -H O W 2 Understand Try to read everything before commenting Start by unit tests if there are any Is it simple? Is it readable?
  • 11. -H O W 3 Basics Coding Standards Indentation Naming Simple algorithm improvements … We’ll automate most of it once we know it
  • 13. -H O W 4 Requirement Does the code do what is in the requirements?
  • 14. -H O W 5 Bigger picture Think about things the developer may not be taking into consideration Question the value
  • 16. -H O W 6 NIH Is the code reinventing the wheel? Are there gems/solutions out there? PFE™
  • 17. -H O W 7 Errors Both on logic and business
  • 19. -H O W 8 Security XSS SQL Injection Encryption …
  • 21. -H O W 9 Performance SQL Overkill DB Indexes Slow processes not in background …
  • 23. -H O W 10 Architecture Hardest part IMO, we’ll focus on learning that later
  • 25. -H O W 11 Teach Not only point, try to be didactic Share things that may not even be related to the code itself
  • 27. -H O W 12 Learn About software, about the project, about the people
  • 28. -H O W 13 Be constructive Code reviews are team work
  • 30. -H O W 14 Review again If you sent comments check that they were fixed or replied
  • 31. -H O W Basics Security Performance Errors Bigger Picture Requirements NIH Architecture Avoid mistakes that may be damaging Get things right Complex Simple Long term maintainability & productivity boosts