SlideShare a Scribd company logo
1 of 58
THAMARA HESSEL
I’m a coder
CODE REVIEW
Effective
Code review is...
A formal assessment of code with the intention to check the changes …
Why do I need to do it?
What exactly am I looking for?
Why do I need to do it?
Why do I need to do it?
Do I enjoy getting feedback?
What exactly am I looking for?
5 Stages about code review
Disillusioned
Do not see the value or real importance and is totally or partially unhappy with codebase
Afraid
Criticizes or dislikes but understands the importance
Observer
Not criticize or dislike, understands the importance but isn’t totally satisfied.
Optimist
Understands the importance, is partially satisfied but doesn’t feel it’s learning
Satisfied
Understands the importance, is partially or totally satisfied and feel it’s learning
How to find this happiness?
How to find this happiness?
Effective code review
How to find this happiness?
Effective code review
What does that mean?
Effective code review
Discipline to follow the steps
Effective code review
1. Fully understand the 'why', 'when' and 'what' of receiving or doing a
code review.
Why when what
Why when what
Why when what
Why do I need to do it?
Because …
❏I care
❏I want to be satisfied
❏I like my colleagues
❏I am a professional
Why when what
Why when what
Why when what
When do I need to do it?
Early as possible because …
❏ I want to help
❏ I know that code rots
❏ I don’t like to do repeated work
❏ I have knowledge to pass
❏ I have a strong opinion about how it should be done
❏ I am new in the project
❏ I want to learn
Why when what
Why when what
Why when what
Why when what
Why when what
Why when what
Why when what
What exactly am I looking for?
As machine ...
❏ code standards/style
❏ tests (units, functional, end2end)
❏ acceptance criteria
❏ etc ...
As human ...
❏ readable code
❏ design & architecture
❏ solution achieved
Why when what
Why when what
OMG!!!
Why when what
Style
Find Bugs
Design Discussion
Correct Solution
Mental Alignment
Why when what
Why...
Style
Find Bugs
Design Discussion
Correct Solution
Mental Alignment
Why when what
Why...
...What
Style
Find Bugs
Design Discussion
Correct Solution
Mental Alignment
Why when what
Why...
...What
When…
automated tools - FAST
Style
Find Bugs
Design Discussion
Correct Solution
Mental Alignment
Why when what
Why...
...What
When…
automated tools - FAST
...When
peer review - SLOW
Style
Find Bugs
Design Discussion
Correct Solution
Mental Alignment
Effective code review
1. Fully understand the 'why', 'when' and 'what' of receiving or doing a
code review.
1. 10 commandments of Egoless Programming
10 commandments of
Egoless Programming
Egoless programming is a style of computer programming in which personal factors are minimized so that quality
may be improved. The cooperative methods suggested.
10 commandments of
Egoless Programming
1. Understand and accept that you will make mistakes.
2. You are not your code.
10 commandments of
Egoless Programming
10 commandments of
Egoless Programming
3. No matter how much “karate” you know, someone else will always know
more.
4. Don’t rewrite code without consultation.
10 commandments of
Egoless Programming
5. Treat people who know less than you with respect and patience.
10 commandments of
Egoless Programming
6. The only constant in the world is change.
10 commandments of
Egoless Programming
7. The only true authority comes from knowledge, not from position.
10 commandments of
Egoless Programming
8. Fight for what you believe, but gracefully accept defeat.
10 commandments of
Egoless Programming
9. Don’t be “the guy in the room.”
10 commandments of
Egoless Programming
10 commandments of
Egoless Programming
10. Critique code instead of people — be kind to the coder, not to the code.
Effective code review
1. Fully understand the 'why', 'when' and 'what' of receiving or doing a
code review.
1. 10 commandments of Egoless Programming
1. Remember “You only live with the problems you have ‘accepted’ ”
Code review is...
and a great way to learn collaboratively
A formal assessment of code with the intention to check the changes ...
54
Books
Q&A
Send me an email
thamara.hessel@gmail.com
57
58
Links
https://atlas.mindmup.com/thamarahessel/code_review/index.html
https://atlas.mindmup.com/thamarahessel/code_review/archive.zip
https://www.youtube.com/watch?v=sSm2dRarhPo
https://www.youtube.com/watch?v=EyL7mqwpZhk
https://www.youtube.com/watch?v=fatTnX8_ZRk
https://www.processimpact.com/articles/humanizing_reviews.pdf
https://medium.com/programming-philosophy/the-10-commandments-of-egoless-programming-89d79b9d73eb
http://webcache.googleusercontent.com/search?q=cache:FkywG-
DRqAsJ:assets.en.oreilly.com/1/event/80/Effective%2520Code%2520Review%2520Presentation.ppt+&cd=3&hl=en&ct=clnk&gl=pt
http://blakesmith.me/2015/02/09/code-review-essentials-for-software-teams.html
https://blog.submain.com/dont-need-code-review-template/
https://hackernoon.com/effective-code-reviews-e8ac466b9a2e
https://nyu-cds.github.io/effective-code-reviews/02-best-practices/
https://medium.com/palantir/code-review-best-practices-19e02780015f
https://blog.digitalocean.com/how-to-conduct-effective-code-reviews/
https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/

More Related Content

Similar to Code review Effective - kwan

Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelinesLalit Kale
 
Increasing code quality with code reviews (poetry version)
Increasing code quality with code reviews (poetry version)Increasing code quality with code reviews (poetry version)
Increasing code quality with code reviews (poetry version)David Stockton
 
How to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical InterviewHow to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical InterviewPerl Careers
 
Creating your own sales steps
Creating your own sales stepsCreating your own sales steps
Creating your own sales stepsThom Finn
 
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 cultureNina Zakharenko
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)Peter Gfader
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014michaelag1971
 
Code review process
Code review processCode review process
Code review processYuki Wajima
 
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011Aaron Irizarry
 
Scaling your code review
Scaling your code reviewScaling your code review
Scaling your code reviewSander Bol
 
How to increase your conversions by using the principles of consultative selling
How to increase your conversions by using the principles of consultative sellingHow to increase your conversions by using the principles of consultative selling
How to increase your conversions by using the principles of consultative sellingAntoine Dupont
 
Blogging Tips - A guide to why you should blog
Blogging Tips - A guide to why you should blogBlogging Tips - A guide to why you should blog
Blogging Tips - A guide to why you should blogRomin Irani
 
Hiring a developer: step by step debugging
Hiring a developer: step by step debuggingHiring a developer: step by step debugging
Hiring a developer: step by step debuggingLaurent Cerveau
 
Top Five Netiquette Refresher Points
Top Five Netiquette Refresher PointsTop Five Netiquette Refresher Points
Top Five Netiquette Refresher Pointsskeewee
 
Consultative Selling: How to Sell your Services
Consultative Selling: How to Sell your ServicesConsultative Selling: How to Sell your Services
Consultative Selling: How to Sell your ServicesAntoine Dupont
 

Similar to Code review Effective - kwan (20)

Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 
Increasing code quality with code reviews (poetry version)
Increasing code quality with code reviews (poetry version)Increasing code quality with code reviews (poetry version)
Increasing code quality with code reviews (poetry version)
 
How to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical InterviewHow to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical Interview
 
Creating your own sales steps
Creating your own sales stepsCreating your own sales steps
Creating your own sales steps
 
Lecture 24
Lecture 24Lecture 24
Lecture 24
 
Interviews
InterviewsInterviews
Interviews
 
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
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
Scottish Ruby Conference 2014
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
 
Code review process
Code review processCode review process
Code review process
 
vesion 1.1
vesion 1.1vesion 1.1
vesion 1.1
 
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011
 
Scaling your code review
Scaling your code reviewScaling your code review
Scaling your code review
 
How to increase your conversions by using the principles of consultative selling
How to increase your conversions by using the principles of consultative sellingHow to increase your conversions by using the principles of consultative selling
How to increase your conversions by using the principles of consultative selling
 
Blogging Tips - A guide to why you should blog
Blogging Tips - A guide to why you should blogBlogging Tips - A guide to why you should blog
Blogging Tips - A guide to why you should blog
 
Make a better with clean code
Make a better with clean codeMake a better with clean code
Make a better with clean code
 
Reboot Camp Session 5: Interview Successfully
Reboot Camp Session 5: Interview SuccessfullyReboot Camp Session 5: Interview Successfully
Reboot Camp Session 5: Interview Successfully
 
Hiring a developer: step by step debugging
Hiring a developer: step by step debuggingHiring a developer: step by step debugging
Hiring a developer: step by step debugging
 
Top Five Netiquette Refresher Points
Top Five Netiquette Refresher PointsTop Five Netiquette Refresher Points
Top Five Netiquette Refresher Points
 
Consultative Selling: How to Sell your Services
Consultative Selling: How to Sell your ServicesConsultative Selling: How to Sell your Services
Consultative Selling: How to Sell your Services
 

More from Thamara Hessel

Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnica
Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnicaLiderar e ser liderado(a) - o que você precisa saber sobre liderança técnica
Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnicaThamara Hessel
 
What do software engineers do
What do software engineers do What do software engineers do
What do software engineers do Thamara Hessel
 
Arquitetura e qualidade de codigo
Arquitetura e qualidade de codigoArquitetura e qualidade de codigo
Arquitetura e qualidade de codigoThamara Hessel
 
Composer - tricks and tips
Composer - tricks and tipsComposer - tricks and tips
Composer - tricks and tipsThamara Hessel
 
Git style best practices - OLX
Git style best practices - OLXGit style best practices - OLX
Git style best practices - OLXThamara Hessel
 
Git - Saia do Básico!
Git - Saia do Básico!Git - Saia do Básico!
Git - Saia do Básico!Thamara Hessel
 
Refactoring sem complicação!
Refactoring sem complicação!Refactoring sem complicação!
Refactoring sem complicação!Thamara Hessel
 

More from Thamara Hessel (9)

Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnica
Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnicaLiderar e ser liderado(a) - o que você precisa saber sobre liderança técnica
Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnica
 
What do software engineers do
What do software engineers do What do software engineers do
What do software engineers do
 
Arquitetura e qualidade de codigo
Arquitetura e qualidade de codigoArquitetura e qualidade de codigo
Arquitetura e qualidade de codigo
 
Composer - tricks and tips
Composer - tricks and tipsComposer - tricks and tips
Composer - tricks and tips
 
Git style best practices - OLX
Git style best practices - OLXGit style best practices - OLX
Git style best practices - OLX
 
Object calisthenics
Object calisthenics  Object calisthenics
Object calisthenics
 
Git - Saia do Básico!
Git - Saia do Básico!Git - Saia do Básico!
Git - Saia do Básico!
 
Qualidade de código
Qualidade de códigoQualidade de código
Qualidade de código
 
Refactoring sem complicação!
Refactoring sem complicação!Refactoring sem complicação!
Refactoring sem complicação!
 

Recently uploaded

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Code review Effective - kwan