Code review Effective - kwan

Thamara Hessel
Thamara HesselSoftware engineer
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
Code review  Effective - kwan
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
Code review  Effective - kwan
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/
1 of 58

Recommended

Love your pull_requests by
Love your pull_requestsLove your pull_requests
Love your pull_requestsnasirj
346 views20 slides
NoVA UX User Testing Workshop July 2015 - Will King by
NoVA UX User Testing Workshop July 2015 - Will KingNoVA UX User Testing Workshop July 2015 - Will King
NoVA UX User Testing Workshop July 2015 - Will KingJim Lane
1.5K views31 slides
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018 by
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018Lemi Orhan Ergin
2.5K views30 slides
Coderetreat - Practice to Master Your Crafts by
Coderetreat - Practice to Master Your CraftsCoderetreat - Practice to Master Your Crafts
Coderetreat - Practice to Master Your CraftsLemi Orhan Ergin
9.2K views43 slides
11 rules for programmer should live by by
11 rules for programmer should live by11 rules for programmer should live by
11 rules for programmer should live byYe Win
1.3K views19 slides
The Ten Commandments of Egoless Programming by
The Ten Commandments of Egoless ProgrammingThe Ten Commandments of Egoless Programming
The Ten Commandments of Egoless ProgrammingBetclic Everest Group Tech Team
3.2K views29 slides

More Related Content

Similar to Code review Effective - kwan

Code review guidelines by
Code review guidelinesCode review guidelines
Code review guidelinesLalit Kale
10.6K views5 slides
Increasing code quality with code reviews (poetry version) by
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
2.6K views136 slides
How to Prepare for and Survive a Technical Interview by
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
4.4K views55 slides
Creating your own sales steps by
Creating your own sales stepsCreating your own sales steps
Creating your own sales stepsThom Finn
926 views32 slides
Lecture 24 by
Lecture 24Lecture 24
Lecture 24Skillspire LLC
72 views30 slides
Interviews by
InterviewsInterviews
InterviewsKaushik Raghupathi
458 views17 slides

Similar to Code review Effective - kwan(20)

Code review guidelines by Lalit Kale
Code review guidelinesCode review guidelines
Code review guidelines
Lalit Kale10.6K views
Increasing code quality with code reviews (poetry version) by David Stockton
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 Stockton2.6K views
How to Prepare for and Survive a Technical Interview by Perl Careers
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
Perl Careers4.4K views
Creating your own sales steps by Thom Finn
Creating your own sales stepsCreating your own sales steps
Creating your own sales steps
Thom Finn926 views
How to successfully grow a code review culture by Nina Zakharenko
How to successfully grow a code review cultureHow to successfully grow a code review culture
How to successfully grow a code review culture
Nina Zakharenko9.9K views
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams) by Peter Gfader
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 Gfader964 views
Scottish Ruby Conference 2014 by michaelag1971
Scottish Ruby Conference  2014Scottish Ruby Conference  2014
Scottish Ruby Conference 2014
michaelag1971354 views
Code review process by Yuki Wajima
Code review processCode review process
Code review process
Yuki Wajima200 views
Discussing Design: The Art of Critique - Web 2.0 Expo NY 2011 by Aaron Irizarry
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
Aaron Irizarry2.1K views
Scaling your code review by Sander Bol
Scaling your code reviewScaling your code review
Scaling your code review
Sander Bol569 views
How to increase your conversions by using the principles of consultative selling by Antoine Dupont
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
Antoine Dupont901 views
Blogging Tips - A guide to why you should blog by Romin Irani
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
Romin Irani230 views
Hiring a developer: step by step debugging by Laurent Cerveau
Hiring a developer: step by step debuggingHiring a developer: step by step debugging
Hiring a developer: step by step debugging
Laurent Cerveau2K views
Top Five Netiquette Refresher Points by skeewee
Top Five Netiquette Refresher PointsTop Five Netiquette Refresher Points
Top Five Netiquette Refresher Points
skeewee801 views
Consultative Selling: How to Sell your Services by Antoine Dupont
Consultative Selling: How to Sell your ServicesConsultative Selling: How to Sell your Services
Consultative Selling: How to Sell your Services
Antoine Dupont886 views

More from Thamara Hessel

Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnica by
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
287 views71 slides
What do software engineers do by
What do software engineers do What do software engineers do
What do software engineers do Thamara Hessel
52 views8 slides
Arquitetura e qualidade de codigo by
Arquitetura e qualidade de codigoArquitetura e qualidade de codigo
Arquitetura e qualidade de codigoThamara Hessel
42 views56 slides
Composer - tricks and tips by
Composer - tricks and tipsComposer - tricks and tips
Composer - tricks and tipsThamara Hessel
58 views18 slides
Git style best practices - OLX by
Git style best practices - OLXGit style best practices - OLX
Git style best practices - OLXThamara Hessel
55 views22 slides
Object calisthenics by
Object calisthenics  Object calisthenics
Object calisthenics Thamara Hessel
63 views41 slides

More from Thamara Hessel(9)

Liderar e ser liderado(a) - o que você precisa saber sobre liderança técnica by Thamara Hessel
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
Thamara Hessel287 views
What do software engineers do by Thamara Hessel
What do software engineers do What do software engineers do
What do software engineers do
Thamara Hessel52 views
Arquitetura e qualidade de codigo by Thamara Hessel
Arquitetura e qualidade de codigoArquitetura e qualidade de codigo
Arquitetura e qualidade de codigo
Thamara Hessel42 views
Refactoring sem complicação! by Thamara Hessel
Refactoring sem complicação!Refactoring sem complicação!
Refactoring sem complicação!
Thamara Hessel791 views

Recently uploaded

Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...NUS-ISS
37 views54 slides
handbook for web 3 adoption.pdf by
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdfLiveplex
19 views16 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
23 views37 slides
SAP Automation Using Bar Code and FIORI.pdf by
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdfVirendra Rai, PMP
19 views38 slides
Spesifikasi Lengkap ASUS Vivobook Go 14 by
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14Dot Semarang
35 views1 slide
20231123_Camunda Meetup Vienna.pdf by
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
28 views73 slides

Recently uploaded(20)

Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS37 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex19 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang35 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS33 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst470 views
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze by NUS-ISS
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng TszeDigital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze
NUS-ISS19 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 views
Combining Orchestration and Choreography for a Clean Architecture by ThomasHeinrichs1
Combining Orchestration and Choreography for a Clean ArchitectureCombining Orchestration and Choreography for a Clean Architecture
Combining Orchestration and Choreography for a Clean Architecture
ThomasHeinrichs169 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin75 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb12 views
RADIUS-Omnichannel Interaction System by RADIUS
RADIUS-Omnichannel Interaction SystemRADIUS-Omnichannel Interaction System
RADIUS-Omnichannel Interaction System
RADIUS15 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada121 views
Understanding GenAI/LLM and What is Google Offering - Felix Goh by NUS-ISS
Understanding GenAI/LLM and What is Google Offering - Felix GohUnderstanding GenAI/LLM and What is Google Offering - Felix Goh
Understanding GenAI/LLM and What is Google Offering - Felix Goh
NUS-ISS41 views
AI: mind, matter, meaning, metaphors, being, becoming, life values by Twain Liu 刘秋艳
AI: mind, matter, meaning, metaphors, being, becoming, life valuesAI: mind, matter, meaning, metaphors, being, becoming, life values
AI: mind, matter, meaning, metaphors, being, becoming, life values
.conf Go 2023 - Data analysis as a routine by Splunk
.conf Go 2023 - Data analysis as a routine.conf Go 2023 - Data analysis as a routine
.conf Go 2023 - Data analysis as a routine
Splunk93 views

Code review Effective - kwan