SlideShare a Scribd company logo
1 of 48
How to improve quality of the product using “code review” Mikalai  alimenkou Aleksey  solntsev
Alimenkou Mikalai Java Technical Lead/Scrum Master at Zoral Labs 6+ years in software development 4+ years of working by Agile methodologies Expert in Agile engineering practices Agile coach at XP Injection Solntsev Aleksey ,[object Object]
Agile volunteer
Certified Scrum Practitioner
Initiator and coordinator of translation of the cult book "Scrum and XP from the Trenches" into Russian
Agile coach at XP Injection,[object Object]
Where is quality better?
Goals of code review ,[object Object]
Share knowledge
Improve collective code ownership
Check conformance
Verify completeness
Educate
Reach a consensus
Try other approaches,[object Object]
Common principles: roles Third persons A reviewer An author
3 main reasons why code review works
Two pair of eyes are better then one
«Teddy bear» effect
Common denominator
reasons why code review couldn’t work 3
Interpersonal conflict
“Ego” effect
Too bored procedure
7 strategies how to choose a reviewer
1. «Daddy at home»
2. «Help yourself»
3. «Review contract»
4. «Control center»
5. «SWAT»
6. «Everybody dance»
7. «Adulterous relationship»
2 ways to drivecode review
1. ATR (Author driver review) Yep, yep I’ve added a couple of new interfaces. There are the implementation. A reviewer An author
2. RTR (Reviewer driven review) Hmm… I don’t understand what you try to verify using  this test. Actually, I’m also a little bit confused … A reviewer An author
7 answers you shouldknow
What should we start with? A reviewer
What to review? Look at code changes/differences Review whole solution Identify methods/functions and classes
How to organize code review? Use changes package (email, patch, etc.) Use separate branch in VCS Use distributed VCS Code exchange tools built in IDE Specialized instruments
How to organize code review?
Should we use metrics?
How long? 60
Fast or slow? 500
Big or small commits? 400
How to start? 1. Make common decision 2. Start slowly 3. Select only the most     problematic modules 4. Inspect and adapt
8 tipsand tricks
Before or after check-in?
Track reviewers ,[object Object]

More Related Content

What's hot

Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
gaoliang641
 

What's hot (20)

Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
Coding standards
Coding standardsCoding standards
Coding standards
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
Jenkins
JenkinsJenkins
Jenkins
 
Open Closed Principle kata
Open Closed Principle kataOpen Closed Principle kata
Open Closed Principle kata
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | EdurekaWhat is Jenkins | Jenkins Tutorial for Beginners | Edureka
What is Jenkins | Jenkins Tutorial for Beginners | Edureka
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Incremental model
Incremental model Incremental model
Incremental model
 
Single Responsibility Principle
Single Responsibility PrincipleSingle Responsibility Principle
Single Responsibility Principle
 
Incremental and iterative stratergy
Incremental and iterative stratergyIncremental and iterative stratergy
Incremental and iterative stratergy
 
Software process model
Software process modelSoftware process model
Software process model
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 

Viewers also liked

How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
Aleksey Solntsev
 

Viewers also liked (6)

XP Injection
XP InjectionXP Injection
XP Injection
 
Agile вид из окна тренажёрного зала
Agile   вид из окна тренажёрного залаAgile   вид из окна тренажёрного зала
Agile вид из окна тренажёрного зала
 
Post Agile
Post AgilePost Agile
Post Agile
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
 
Code Review to the Rescue
Code Review to the RescueCode Review to the Rescue
Code Review to the Rescue
 
Lesson 09
Lesson 09Lesson 09
Lesson 09
 

Similar to Code review

Code Review
Code ReviewCode Review
Code Review
Ravi Raj
 

Similar to Code review (20)

Code Review
Code ReviewCode Review
Code Review
 
A Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven DevelopmentA Brief Introduction to Test-Driven Development
A Brief Introduction to Test-Driven Development
 
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.pdfcode_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
 
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.pptxcode_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
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
Agile testingandautomation
Agile testingandautomationAgile testingandautomation
Agile testingandautomation
 
Dare to Explore: Discover ET!
Dare to Explore: Discover ET!Dare to Explore: Discover ET!
Dare to Explore: Discover ET!
 
"Challenges Faced by Testers Working on Agile Teams" by Aldo Rall
"Challenges Faced by Testers Working on Agile Teams" by Aldo Rall"Challenges Faced by Testers Working on Agile Teams" by Aldo Rall
"Challenges Faced by Testers Working on Agile Teams" by Aldo Rall
 
Agile testing
Agile testingAgile testing
Agile testing
 
Continuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software WestContinuous Deployment and Testing Workshop from Better Software West
Continuous Deployment and Testing Workshop from Better Software West
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
 
Working with Legacy Code
Working with Legacy CodeWorking with Legacy Code
Working with Legacy Code
 
Code review
Code reviewCode review
Code review
 
Automated Unit Testing and TDD
Automated Unit Testing and TDDAutomated Unit Testing and TDD
Automated Unit Testing and TDD
 
Code review at large scale
Code review at large scaleCode review at large scale
Code review at large scale
 
Peer review
Peer reviewPeer review
Peer review
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 

More from Aleksey Solntsev

NoSQL: what's under the hood?
NoSQL: what's under the hood? NoSQL: what's under the hood?
NoSQL: what's under the hood?
Aleksey Solntsev
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
Ретроспектива: вперёд в прошлое
Ретроспектива: вперёд в прошлоеРетроспектива: вперёд в прошлое
Ретроспектива: вперёд в прошлое
Aleksey Solntsev
 
Infopulse: How we do Scrum
Infopulse: How we do ScrumInfopulse: How we do Scrum
Infopulse: How we do Scrum
Aleksey Solntsev
 

More from Aleksey Solntsev (12)

Управление проектом в условии неопределённости
Управление проектом в условии неопределённостиУправление проектом в условии неопределённости
Управление проектом в условии неопределённости
 
Управление сложностью в проектах
Управление сложностью  в проектахУправление сложностью  в проектах
Управление сложностью в проектах
 
Бути IT-шніком та обирати життя в Україні – це реально
Бути IT-шніком та обирати життя в Україні – це реальноБути IT-шніком та обирати життя в Україні – це реально
Бути IT-шніком та обирати життя в Україні – це реально
 
Управление ожиданиями заказчика при построении R&D центра в Украине
Управление ожиданиями заказчика при построении R&D центра в УкраинеУправление ожиданиями заказчика при построении R&D центра в Украине
Управление ожиданиями заказчика при построении R&D центра в Украине
 
NoSQL - взрыв возможностей
NoSQL - взрыв возможностейNoSQL - взрыв возможностей
NoSQL - взрыв возможностей
 
NoSQL: what's under the hood?
NoSQL: what's under the hood? NoSQL: what's under the hood?
NoSQL: what's under the hood?
 
Облачные вычисления
Облачные вычисленияОблачные вычисления
Облачные вычисления
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 
Ретроспектива: вперёд в прошлое
Ретроспектива: вперёд в прошлоеРетроспектива: вперёд в прошлое
Ретроспектива: вперёд в прошлое
 
Первый украинский краудсорсинговый перевод
Первый украинский краудсорсинговый переводПервый украинский краудсорсинговый перевод
Первый украинский краудсорсинговый перевод
 
Infopulse: How we do Scrum
Infopulse: How we do ScrumInfopulse: How we do Scrum
Infopulse: How we do Scrum
 
Agile Team
Agile TeamAgile Team
Agile Team
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 

Code review

Editor's Notes

  1. Спецотряд
  2. Так, что-то я не понимаю, что ты проверяешь этим тестом.
  3. Строчки дока, количество найтденных ошибок, ....
  4. Aleksey: before in most cases because of trunk should contain only good code.
  5. Есликоднепроходитревьювторойраз, тоонсчитаетсяопасным и ревьювитсяещекем-тоЕслизамечанияпростые, тоониисправляются в паресразуприревьюЕслизамечанийоченьмного, тоониразбиваютсянаполноценныезадачичтобынезатягиватьЕсликоднепрошелревьювовторойраз и естьсерьезныезамечания, тоонобязательноделается в пареРевьюсчитаетсямаксимальнымприоритетом, нонепрерываеттекущейзадачи (ждемперерыва)Задачанеможетпровисетьнаревьюдольшечемдоследующегодэйлискрама