SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Effective peer review.
an ongoing conversation.
Why code review?
There are lots of good reasons.
Programming is hard.
We work with smart people.
Discussing our work can be positive.
Increases overall quality.
Helps solve difficult problems.
Spreads knowledge.
Helps develop strong shared standards.
Who are reviews for?
Developers.
So that we can learn from one another.
10 Commandments
of egoless programming.

Understand and accept that you will make mistake.
You are not your code.
No matter how much “karate” you know, someone else will always know more.
Don’t rewrite code without consultation.
Treat people who know less than you with respect, deference and patience
The only constant in the world is change.
The only true authority stems from knowledge, not from position.
Fight for what you believe, but gracefully accept defeat.
Don’t be “the guy in the room.”
Critique code instead of people. Be kind to the coder, not the code.
We all make mistakes.
The important thing is to catch them as early as
possible.
Luckily our mistakes aren’t life threatening. We can fix them, move on
and laugh about it.
You are not your code.
The point of reviews is to find problems early,
educate and learn.
Don’t take it personally.
Always room to learn.
We are all smart capable developers.
Let’s learn from one another.
Ask why.
Don’t just assume that something is wrong.
Ask questions. Inquire about why something was done in a particular
way. It might be the way it is for a valid reason.
Respect your peers.
Even those that have been “in the game” for a
shorter time then you have.
We all have different levels of experience. Patience and respect goes a
long way.
Change is constant.
Standards are a living thing.
We need to work as a team to develop a culture of quality.
Knowledge over position.
Everybody has valuable insight.
Let’s cultivate that and build a knowledge based development
environment.
Don’t dig in too deep.
Fight for what you believe.
Be willing to accept ideas that are different then the ones you have now.
Don’t hide.
Building a positive development environment
takes participation.
Share what you know. Ask questions. Participate.
Critique Code.
Not people.
Be kind to the coder, not the code.
What is a “good” review?
Good reviews spread knowledge and provide a
learning experience for everybody involved.
a conversation...
Reviews should be a two way conversation
between the author of the code and the
participants of the review.
Reviewers should ask questions of the author. The author should offer
explanations and frame the context of the code being reviewed.
includes a summary...
When a review is over it should be summarized.
This will let all the participants know what action is being taken as a
result of the review.
includes praise...
If you see something you like, let the author
know.
It can be difficult to remember to do this, but it is important.
references standards...
Have a solid set of standard practices to
reference.
Remember that standards are a living thing. They are still open for
discussion.
focus on the code...
Not the person that wrote it.
Ego is something we all have, but should be kept out of reviews as much
as possible.
not always actionable...
Comments in a code review don’t necessarily
require immediate action.
Be clear about that. Is a comment a suggestion? A question?
is time-boxed...
Code reviews work best on code that is fresh in
the author’s mind.
Respond to review requests promptly. Participate as much as possible
and mark the review complete when you are done.
Being reviewed.
It can be tough to be in the hot seat and have
your code examined.
Add initial comments.
As the author adding an initial pass of
comments is extremely helpful to explain the
code under review.
Scope and context can be defined this way.
Decouple yourself...
Take a step back and release your attachments
to the work being reviewed.
This is challenging. The initial instinct is to “bunker in” and defend the
work.
Understand the standards.
Work as closely to the defined standards as
possible.
When you need to deviate explain why in the initial comment pass.
Maintain the standards.
Standards are living things.
If you deviate and need to do something a different way open the
discussion for improving the standards.
When to start a review?
During active development while the code is
fresh in your head is the best time to start a
review.
Peer review is not a task to save as until the end of development. Starting
the conversation early helps ensure that it isn’t an afterthought. Problems
are caught before they spin out of control.
Who starts a review?
Generally the author.
But sometimes it might be started by somebody else if a problem is
noticed or if a commit isn’t under review and is on the large side.

Contenu connexe

Tendances

Tips for Successful Job Interviewing: Preparation
Tips for Successful Job Interviewing: PreparationTips for Successful Job Interviewing: Preparation
Tips for Successful Job Interviewing: PreparationRalph Hatem
 
Code review process
Code review processCode review process
Code review processYuki Wajima
 
Interviewing Library Shelvers
Interviewing Library ShelversInterviewing Library Shelvers
Interviewing Library ShelversALATechSource
 
Tips for Successful Job Interviewing: Interview Questions
Tips for Successful Job Interviewing: Interview QuestionsTips for Successful Job Interviewing: Interview Questions
Tips for Successful Job Interviewing: Interview QuestionsRalph Hatem
 
Justifying suitable methods
Justifying suitable methodsJustifying suitable methods
Justifying suitable methodsgmatebele
 
Tips for Successful Job Interviews - Lunch and Learn 2014
Tips for Successful Job Interviews - Lunch and Learn 2014Tips for Successful Job Interviews - Lunch and Learn 2014
Tips for Successful Job Interviews - Lunch and Learn 2014Ralph Hatem
 
Conduct effective interview
Conduct effective interviewConduct effective interview
Conduct effective interviewMotohiko Suzuki
 
Reflective writingforinterns 001
Reflective writingforinterns 001Reflective writingforinterns 001
Reflective writingforinterns 001Magdy Aly
 
Selection in AIESEC
Selection in AIESEC Selection in AIESEC
Selection in AIESEC Meda Corovei
 
Interview Basics And Skills
Interview Basics And SkillsInterview Basics And Skills
Interview Basics And Skillspalaciok001
 
Top 10 common mistakes made in exams
Top 10 common mistakes made in examsTop 10 common mistakes made in exams
Top 10 common mistakes made in examsRicha Sharma
 
Instruments of data collection
Instruments of data collectionInstruments of data collection
Instruments of data collectiongmatebele
 
Communication skillsformanager m_pw
Communication skillsformanager m_pwCommunication skillsformanager m_pw
Communication skillsformanager m_pwAjay Walia
 

Tendances (20)

Tips for Successful Job Interviewing: Preparation
Tips for Successful Job Interviewing: PreparationTips for Successful Job Interviewing: Preparation
Tips for Successful Job Interviewing: Preparation
 
Code review process
Code review processCode review process
Code review process
 
Interviewing Library Shelvers
Interviewing Library ShelversInterviewing Library Shelvers
Interviewing Library Shelvers
 
Tips for Successful Job Interviewing: Interview Questions
Tips for Successful Job Interviewing: Interview QuestionsTips for Successful Job Interviewing: Interview Questions
Tips for Successful Job Interviewing: Interview Questions
 
Justifying suitable methods
Justifying suitable methodsJustifying suitable methods
Justifying suitable methods
 
Essaywriting
EssaywritingEssaywriting
Essaywriting
 
Tips for Successful Job Interviews - Lunch and Learn 2014
Tips for Successful Job Interviews - Lunch and Learn 2014Tips for Successful Job Interviews - Lunch and Learn 2014
Tips for Successful Job Interviews - Lunch and Learn 2014
 
Conduct effective interview
Conduct effective interviewConduct effective interview
Conduct effective interview
 
Reflective writingforinterns 001
Reflective writingforinterns 001Reflective writingforinterns 001
Reflective writingforinterns 001
 
Teacher Resource Guidebook - Peer Assessment
Teacher Resource Guidebook - Peer Assessment Teacher Resource Guidebook - Peer Assessment
Teacher Resource Guidebook - Peer Assessment
 
Moderate This!
Moderate This! Moderate This!
Moderate This!
 
Comments by students
Comments by studentsComments by students
Comments by students
 
Selection in AIESEC
Selection in AIESEC Selection in AIESEC
Selection in AIESEC
 
Interview Basics And Skills
Interview Basics And SkillsInterview Basics And Skills
Interview Basics And Skills
 
Top 10 common mistakes made in exams
Top 10 common mistakes made in examsTop 10 common mistakes made in exams
Top 10 common mistakes made in exams
 
12 ge crit
12 ge crit12 ge crit
12 ge crit
 
Instruments of data collection
Instruments of data collectionInstruments of data collection
Instruments of data collection
 
Aow
AowAow
Aow
 
Communication skillsformanager m_pw
Communication skillsformanager m_pwCommunication skillsformanager m_pw
Communication skillsformanager m_pw
 
Unit topic challenges G8
Unit topic challenges G8Unit topic challenges G8
Unit topic challenges G8
 

Similaire à Effective Peer Review

10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
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
 
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
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelinesLalit Kale
 
How to successfully grow a code review culture
How to successfullygrow a code review cultureHow to successfullygrow a code review culture
How to successfully grow a code review cultureDanylenko Max
 
I don't like your design
I don't like your designI don't like your design
I don't like your designPetr Stedry
 
Letters from the editor (TCUK12)
Letters from the editor (TCUK12)Letters from the editor (TCUK12)
Letters from the editor (TCUK12)David Farbey
 
Pairing w developers_stpconpics
Pairing w developers_stpconpicsPairing w developers_stpconpics
Pairing w developers_stpconpicsLanette Creamer
 
What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...
What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...
What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...The Difference Engine
 
Discussing Design: The Art of Critique
Discussing Design: The Art of CritiqueDiscussing Design: The Art of Critique
Discussing Design: The Art of CritiqueAdam Connor
 
Discussing Design: The Art of Critique
 Discussing Design: The Art of Critique Discussing Design: The Art of Critique
Discussing Design: The Art of CritiqueAaron Irizarry
 
T.R.U.E. Diagnostics - Simple ways to judge the goodness of code
T.R.U.E. Diagnostics  - Simple ways to judge the goodness of codeT.R.U.E. Diagnostics  - Simple ways to judge the goodness of code
T.R.U.E. Diagnostics - Simple ways to judge the goodness of codePhilip Schwarz
 
Discussing Design Without Losing your Mind [Code and Creativity 10/7]
Discussing Design Without Losing your Mind [Code and Creativity 10/7]Discussing Design Without Losing your Mind [Code and Creativity 10/7]
Discussing Design Without Losing your Mind [Code and Creativity 10/7]Aaron Irizarry
 
Code review Effective - kwan
Code review  Effective - kwanCode review  Effective - kwan
Code review Effective - kwanThamara Hessel
 
How to Crack a GROUP DISCUSSION: DOs and DONTs of GD
How to Crack a GROUP DISCUSSION: DOs and DONTs of GDHow to Crack a GROUP DISCUSSION: DOs and DONTs of GD
How to Crack a GROUP DISCUSSION: DOs and DONTs of GDDr. Aashish Mehra
 
Project Management in the Real World
Project Management in the Real WorldProject Management in the Real World
Project Management in the Real WorldKate Daly
 
Group Discussion
Group Discussion Group Discussion
Group Discussion AtifRaza46
 
Critique and The Design Process: Facilitating Better Feedback
Critique and The Design Process: Facilitating Better FeedbackCritique and The Design Process: Facilitating Better Feedback
Critique and The Design Process: Facilitating Better FeedbackAaron Irizarry
 
Discussing Design: The Art of Critique - ixdaNYC
Discussing Design: The Art of Critique - ixdaNYCDiscussing Design: The Art of Critique - ixdaNYC
Discussing Design: The Art of Critique - ixdaNYCAaron Irizarry
 
Achieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary TeamAchieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary TeamLeah Henrickson
 

Similaire à Effective Peer Review (20)

10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
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 2018
 
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
 
Code review guidelines
Code review guidelinesCode review guidelines
Code review guidelines
 
How to successfully grow a code review culture
How to successfullygrow a code review cultureHow to successfullygrow a code review culture
How to successfully grow a code review culture
 
I don't like your design
I don't like your designI don't like your design
I don't like your design
 
Letters from the editor (TCUK12)
Letters from the editor (TCUK12)Letters from the editor (TCUK12)
Letters from the editor (TCUK12)
 
Pairing w developers_stpconpics
Pairing w developers_stpconpicsPairing w developers_stpconpics
Pairing w developers_stpconpics
 
What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...
What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...
What Happens to Everyone, When Everyone Learns to Code - by Farrah Bostic at ...
 
Discussing Design: The Art of Critique
Discussing Design: The Art of CritiqueDiscussing Design: The Art of Critique
Discussing Design: The Art of Critique
 
Discussing Design: The Art of Critique
 Discussing Design: The Art of Critique Discussing Design: The Art of Critique
Discussing Design: The Art of Critique
 
T.R.U.E. Diagnostics - Simple ways to judge the goodness of code
T.R.U.E. Diagnostics  - Simple ways to judge the goodness of codeT.R.U.E. Diagnostics  - Simple ways to judge the goodness of code
T.R.U.E. Diagnostics - Simple ways to judge the goodness of code
 
Discussing Design Without Losing your Mind [Code and Creativity 10/7]
Discussing Design Without Losing your Mind [Code and Creativity 10/7]Discussing Design Without Losing your Mind [Code and Creativity 10/7]
Discussing Design Without Losing your Mind [Code and Creativity 10/7]
 
Code review Effective - kwan
Code review  Effective - kwanCode review  Effective - kwan
Code review Effective - kwan
 
Booklet
BookletBooklet
Booklet
 
How to Crack a GROUP DISCUSSION: DOs and DONTs of GD
How to Crack a GROUP DISCUSSION: DOs and DONTs of GDHow to Crack a GROUP DISCUSSION: DOs and DONTs of GD
How to Crack a GROUP DISCUSSION: DOs and DONTs of GD
 
Project Management in the Real World
Project Management in the Real WorldProject Management in the Real World
Project Management in the Real World
 
Group Discussion
Group Discussion Group Discussion
Group Discussion
 
Critique and The Design Process: Facilitating Better Feedback
Critique and The Design Process: Facilitating Better FeedbackCritique and The Design Process: Facilitating Better Feedback
Critique and The Design Process: Facilitating Better Feedback
 
Discussing Design: The Art of Critique - ixdaNYC
Discussing Design: The Art of Critique - ixdaNYCDiscussing Design: The Art of Critique - ixdaNYC
Discussing Design: The Art of Critique - ixdaNYC
 
Achieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary TeamAchieving Success in an Interdisciplinary Team
Achieving Success in an Interdisciplinary Team
 

Dernier

Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoUXDXConf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfEasyPrinterHelp
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsUXDXConf
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 

Dernier (20)

Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdf
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 

Effective Peer Review

  • 1. Effective peer review. an ongoing conversation.
  • 2. Why code review? There are lots of good reasons. Programming is hard. We work with smart people. Discussing our work can be positive. Increases overall quality. Helps solve difficult problems. Spreads knowledge. Helps develop strong shared standards.
  • 3. Who are reviews for? Developers. So that we can learn from one another.
  • 4. 10 Commandments of egoless programming. Understand and accept that you will make mistake. You are not your code. No matter how much “karate” you know, someone else will always know more. Don’t rewrite code without consultation. Treat people who know less than you with respect, deference and patience The only constant in the world is change. The only true authority stems from knowledge, not from position. Fight for what you believe, but gracefully accept defeat. Don’t be “the guy in the room.” Critique code instead of people. Be kind to the coder, not the code.
  • 5. We all make mistakes. The important thing is to catch them as early as possible. Luckily our mistakes aren’t life threatening. We can fix them, move on and laugh about it.
  • 6. You are not your code. The point of reviews is to find problems early, educate and learn. Don’t take it personally.
  • 7. Always room to learn. We are all smart capable developers. Let’s learn from one another.
  • 8. Ask why. Don’t just assume that something is wrong. Ask questions. Inquire about why something was done in a particular way. It might be the way it is for a valid reason.
  • 9. Respect your peers. Even those that have been “in the game” for a shorter time then you have. We all have different levels of experience. Patience and respect goes a long way.
  • 10. Change is constant. Standards are a living thing. We need to work as a team to develop a culture of quality.
  • 11. Knowledge over position. Everybody has valuable insight. Let’s cultivate that and build a knowledge based development environment.
  • 12. Don’t dig in too deep. Fight for what you believe. Be willing to accept ideas that are different then the ones you have now.
  • 13. Don’t hide. Building a positive development environment takes participation. Share what you know. Ask questions. Participate.
  • 14. Critique Code. Not people. Be kind to the coder, not the code.
  • 15. What is a “good” review? Good reviews spread knowledge and provide a learning experience for everybody involved.
  • 16. a conversation... Reviews should be a two way conversation between the author of the code and the participants of the review. Reviewers should ask questions of the author. The author should offer explanations and frame the context of the code being reviewed.
  • 17. includes a summary... When a review is over it should be summarized. This will let all the participants know what action is being taken as a result of the review.
  • 18. includes praise... If you see something you like, let the author know. It can be difficult to remember to do this, but it is important.
  • 19. references standards... Have a solid set of standard practices to reference. Remember that standards are a living thing. They are still open for discussion.
  • 20. focus on the code... Not the person that wrote it. Ego is something we all have, but should be kept out of reviews as much as possible.
  • 21. not always actionable... Comments in a code review don’t necessarily require immediate action. Be clear about that. Is a comment a suggestion? A question?
  • 22. is time-boxed... Code reviews work best on code that is fresh in the author’s mind. Respond to review requests promptly. Participate as much as possible and mark the review complete when you are done.
  • 23. Being reviewed. It can be tough to be in the hot seat and have your code examined.
  • 24. Add initial comments. As the author adding an initial pass of comments is extremely helpful to explain the code under review. Scope and context can be defined this way.
  • 25. Decouple yourself... Take a step back and release your attachments to the work being reviewed. This is challenging. The initial instinct is to “bunker in” and defend the work.
  • 26. Understand the standards. Work as closely to the defined standards as possible. When you need to deviate explain why in the initial comment pass.
  • 27. Maintain the standards. Standards are living things. If you deviate and need to do something a different way open the discussion for improving the standards.
  • 28. When to start a review? During active development while the code is fresh in your head is the best time to start a review. Peer review is not a task to save as until the end of development. Starting the conversation early helps ensure that it isn’t an afterthought. Problems are caught before they spin out of control.
  • 29. Who starts a review? Generally the author. But sometimes it might be started by somebody else if a problem is noticed or if a commit isn’t under review and is on the large side.