SlideShare a Scribd company logo
1 of 13
Download to read offline
Lightning Talk:
Pair Code
Review
Dan Levenson
Who’s Speaking?
● dlevenson.com
● dleve123 on twitter, github, etc.
● CTO @ healthify.us
The Problem
The Problem
Development Workflow
1. Start story in Pivotal Tracker
2. Implement story
3. Open pull request
4. Participate in code review (CR)
5. Merge PR
6. QA on staging and manually deploy to
production
Stepwise Code Review Protocol
1. Developer assigns a reviewer using Github’s
pull request (PR) assignee functionality
2. Developer explicitly requests CR via Github
comment
3. Reviewer reviews via Github comments,
developer performs revisions, and repeat
4. Reviewer merges PR
Stepwise CR: Takeaways
● Not “Agile”: No face to face conversation
● “This is so simple. I’ll review it later”
○ later → much too late.
● Dead time due to lack of CR scheduling
○ Large PRs are daunting → even longer dead time
Pair Code Review: Motivation
● Old process intuitively inefficient
● Scrum → Kanban
○ minimize cycle time
Pair Code Review: Protocol
1. Developer and reviewer agree on a 1 hour
time period ASAP
2. Reviewer leads review and asks developer
questions
3. Reviewer comments on PR to document
action items generated from CR
4. Developer revises (usually only 1 time)
Some Progress
Some Progress
Pair CR: Takeaways
● Pros
○ Scheduling → less dead time
○ Long comments replaced by quick conversations
○ Breeds pairing culture
● Cons
○ Bias of the developer can affect reviewer

More Related Content

What's hot

icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
Manohar Kumar
 
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для MagentoИгорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
meet_magento
 

What's hot (20)

Lightweight continuous delivery for small schools
Lightweight continuous delivery for small schoolsLightweight continuous delivery for small schools
Lightweight continuous delivery for small schools
 
icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для MagentoИгорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
 
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud ReadinessGitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
GitLab CI Packer - TIAD Camp Microsoft Cloud Readiness
 
Develop 4 Developers
Develop 4 DevelopersDevelop 4 Developers
Develop 4 Developers
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance Testing
 
Project4 schedule engl317_ada-fall2020
Project4 schedule engl317_ada-fall2020Project4 schedule engl317_ada-fall2020
Project4 schedule engl317_ada-fall2020
 
Project 4 Schedule
Project 4 ScheduleProject 4 Schedule
Project 4 Schedule
 
TuleapCon 2019. DevOps in Tuleap
TuleapCon 2019. DevOps in TuleapTuleapCon 2019. DevOps in Tuleap
TuleapCon 2019. DevOps in Tuleap
 
SPC Denver/Boulder - Jan 2020
SPC Denver/Boulder - Jan 2020SPC Denver/Boulder - Jan 2020
SPC Denver/Boulder - Jan 2020
 
Automating The New York Times Crossword by Phil Wells
Automating The New York Times Crossword by Phil WellsAutomating The New York Times Crossword by Phil Wells
Automating The New York Times Crossword by Phil Wells
 
OpenNTF Essentials
OpenNTF EssentialsOpenNTF Essentials
OpenNTF Essentials
 
Using Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development TeamUsing Crowdsourced Testing to Turbocharge your Development Team
Using Crowdsourced Testing to Turbocharge your Development Team
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web Apps
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014
 
Dot all 2019 | Testing with Craft | Giel Tettelar
Dot all 2019 | Testing with Craft | Giel TettelarDot all 2019 | Testing with Craft | Giel Tettelar
Dot all 2019 | Testing with Craft | Giel Tettelar
 
Project management frameworks for software developing
Project management frameworks for software developingProject management frameworks for software developing
Project management frameworks for software developing
 
Docs or it didn’t happen
Docs or it didn’t happenDocs or it didn’t happen
Docs or it didn’t happen
 
Pull requests do's and don'ts
Pull requests do's and don'tsPull requests do's and don'ts
Pull requests do's and don'ts
 

Similar to Pair Code Review Lightning Talk

HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
DevOpsDays Tel Aviv
 
Iterative Development Process
Iterative Development ProcessIterative Development Process
Iterative Development Process
Ajay Shrivastava
 

Similar to Pair Code Review Lightning Talk (20)

HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearBHOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
HOW TO OPTIMIZE NON-CODING TIME, ORI KEREN, LinearB
 
Requirements the Last Bottleneck
Requirements the Last BottleneckRequirements the Last Bottleneck
Requirements the Last Bottleneck
 
Practical pointers for better code review
Practical pointers for better code reviewPractical pointers for better code review
Practical pointers for better code review
 
It Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair ProgrammingIt Takes Two - A Case Study in Pair Programming
It Takes Two - A Case Study in Pair Programming
 
Content Last: A Strategy for Success or Failure?
Content Last: A Strategy for Success or Failure?Content Last: A Strategy for Success or Failure?
Content Last: A Strategy for Success or Failure?
 
Designing in the open
Designing in the openDesigning in the open
Designing in the open
 
Iterative Development Process
Iterative Development ProcessIterative Development Process
Iterative Development Process
 
Agile Development with Plone
Agile Development with PloneAgile Development with Plone
Agile Development with Plone
 
Agile Development with Plone
Agile Development with PloneAgile Development with Plone
Agile Development with Plone
 
Scrum, A Brief Introduction
Scrum, A Brief IntroductionScrum, A Brief Introduction
Scrum, A Brief Introduction
 
Scrum and-xp-from-the-trenches 05 release planning & scrum with xp
Scrum and-xp-from-the-trenches 05 release planning & scrum with xpScrum and-xp-from-the-trenches 05 release planning & scrum with xp
Scrum and-xp-from-the-trenches 05 release planning & scrum with xp
 
Agile.pptx
Agile.pptxAgile.pptx
Agile.pptx
 
Focus on Flow: Lean Principles in Action
Focus on Flow: Lean Principles in ActionFocus on Flow: Lean Principles in Action
Focus on Flow: Lean Principles in Action
 
Adamson "Blueprint for Managing Your Project"
Adamson "Blueprint for Managing Your Project"Adamson "Blueprint for Managing Your Project"
Adamson "Blueprint for Managing Your Project"
 
Scrum agile process
Scrum agile processScrum agile process
Scrum agile process
 
Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy Test Driven Development Methodology and Philosophy
Test Driven Development Methodology and Philosophy
 
DockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operationsDockerCon US 2016 - Scaling Open Source operations
DockerCon US 2016 - Scaling Open Source operations
 
Methodology - Design Sprint
Methodology - Design SprintMethodology - Design Sprint
Methodology - Design Sprint
 
How to hire top software engineers
How to hire top software engineersHow to hire top software engineers
How to hire top software engineers
 
Best Practices in Software Development
Best Practices in Software DevelopmentBest Practices in Software Development
Best Practices in Software Development
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Pair Code Review Lightning Talk

  • 2. Who’s Speaking? ● dlevenson.com ● dleve123 on twitter, github, etc. ● CTO @ healthify.us
  • 3.
  • 6. Development Workflow 1. Start story in Pivotal Tracker 2. Implement story 3. Open pull request 4. Participate in code review (CR) 5. Merge PR 6. QA on staging and manually deploy to production
  • 7. Stepwise Code Review Protocol 1. Developer assigns a reviewer using Github’s pull request (PR) assignee functionality 2. Developer explicitly requests CR via Github comment 3. Reviewer reviews via Github comments, developer performs revisions, and repeat 4. Reviewer merges PR
  • 8. Stepwise CR: Takeaways ● Not “Agile”: No face to face conversation ● “This is so simple. I’ll review it later” ○ later → much too late. ● Dead time due to lack of CR scheduling ○ Large PRs are daunting → even longer dead time
  • 9. Pair Code Review: Motivation ● Old process intuitively inefficient ● Scrum → Kanban ○ minimize cycle time
  • 10. Pair Code Review: Protocol 1. Developer and reviewer agree on a 1 hour time period ASAP 2. Reviewer leads review and asks developer questions 3. Reviewer comments on PR to document action items generated from CR 4. Developer revises (usually only 1 time)
  • 13. Pair CR: Takeaways ● Pros ○ Scheduling → less dead time ○ Long comments replaced by quick conversations ○ Breeds pairing culture ● Cons ○ Bias of the developer can affect reviewer