SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Jenkins
ReviewBuddy
Jenkins assisted Peer Code Reviews
Knud.Poulsen@switch-gears.dk
Inspiration for this talk
+ = JRB
Competitive advantage today can only be achieved through
better man/machine cooperation.
No huge surprise to Jenkins users.
Race *with* the machine.
What we’ll cover
➢ Benefits of peer code review
➢ Our experiences
➢ Others’ experiences
➢ Real-world code review
➢ Causes of noise
➢ Jenkins to the rescue!
➢ Demo/ Screenshots
➢ Further development
➢ Call for sponsors & test pilots
Key Benefits of Peer Code Review
➢ 90% reduction in shipped defects often
reported in industry studies
➢ 25% net productivity increase often reported
in industry studies
➢ Knowledge sharing
➢ Silo reduction
➢ Training new employees
➢ Best practice propagation
Our experiences - Low Gain Example
[Anonymized and obscured]
Our experiences - High Gain Example
[Anonymized and obscured]
Others’ experiences
Many excellent studies out there
So, what do we know ?
➢ Average defect detection rate is only 25
percent for unit testing, 35 percent for
function testing, and 45 percent for
integration testing. In contrast, the average
effectiveness of design and code inspections
are 55 and 60 percent. [McConnell93]
So, what do we know ?
➢ Basic code reading is ~96% as effective at
finding defects as holding a formal
heavyweight inspection meeting [Votta1993]
➢ Technical code review checklists are a
powerful help (especially against omissions)
[Dunsmore2000]
➢ Defect detection drops dramatically after ~60
minutes, to zero after ~90 minutes [Dunsmore2000]
So, what do we know ?
➢ The longer a reviewer spends on the initial
read-through, the more defects will ultimately
be found [Uwano2006]
➢ Long methods are very time consuming to
understand [Uwano2006]
➢ Loops are very time consuming to
understand [Uwano2006]
➢ Reading time has ~3x higher correlation with
defects found than number of lines under
review [Laitenberger1999]
So, what do we know ?
➢ Maximum effective review rate ~400 lines
per hour [Cohen2006]
➢ Disproportionately more defects are found
when code changes are under 200 lines
[Cohen2006]
➢ Beneficial for “quality of review” if the author
pre-reviews and leaves comments for
subsequent reviewers [Cohen2006]
So, what do we know ?
➢ Review 100 to 300 LOC at a time, in 30-60
minutes chunks, with a break between each
sitting [Cohen2006]
➢ Spend at least 5 minutes reviewing a single
line of code [Cohen2006]
➢ Limit reviewing to 1 hour per day [Ganssle2009]
Real world
➢ Is messy...
➢ No clear pattern between time spent in the
review state, total number of reworks
required, or total number of lines changed
➢ Some studies compensate by dropping
unreasonable data points and assuming
informal out-of-tool review
Real world
Why no clear pattern?
➢ “Production pressure”
➢ “Lack of review guidance”
➢ Hard to justify time
➢ Just give up on large reviews
➢ Hard to delay 1000 lines of new code the 3
days (300 lines/h, 3x1h, 1h/day) it should
take to review effectively
What outcome would we like?
➢ Smaller reviews should merge faster
➢ Larger reviews should merge slower
Race *with* the machine
➢ Guidance on time to use doing review
➢ Remind author to do pre-review
➢ Up-front determination of reviewers
➢ Links to review checklists
➢ Load balance reviewers
➢ Help developers justify time investment
➢ Automatically add reviewers
➢ Automatically add developer as pre-reviewer
Let’s try it out
Let’s try it out
Let’s try it out
Let’s try it out
Further work
➢ Also consider previous reviewers, not only
previous developers
➢ Make language and domain specific review
checklists easily accessible
➢ Weight and score commit message size
against nr files/ lines changed
➢ Inline comments from warnings, static
checkers
➢ OO review expansion, ie. “you also need to
look at these 3 unchanged files”
Call for Sponsors and Test Pilots
➢ Try it out in your own Gerrit Review/ Jenkins
environment
➢ Sponsor development into a full-blow,
feature rich, configurable “Jenkins
ReviewBuddy” plugin
➢ Catch me in the break

Contenu connexe

Tendances

Continuous integration
Continuous integrationContinuous integration
Continuous integrationamscanne
 
Jenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopJenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopYoram Michaeli
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudsonShreeniwas Iyer
 
Pipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingPipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingSwapnil Jadhav
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryJohn Ferguson Smart Limited
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonVladLica
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineSlawa Giterman
 
Building an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache GroovyBuilding an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache Groovyjgcloudbees
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsTomohide Kakeya
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Dennys Hsieh
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking JenkinsMiro Cupak
 
Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home builtJenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home builtMark Waite
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkMichael Peacock
 
Hudson: Your robotic butler
Hudson: Your robotic butlerHudson: Your robotic butler
Hudson: Your robotic butlerSteven Merrill
 

Tendances (20)

Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Jenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshopJenkins Pipeline 101 and TCI - presentation and workshop
Jenkins Pipeline 101 and TCI - presentation and workshop
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
 
Pipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingPipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of Testing
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
Building an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache GroovyBuilding an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache Groovy
 
Let’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkinsLet’s start Continuous Integration with jenkins
Let’s start Continuous Integration with jenkins
 
Jenkins CI presentation
Jenkins CI presentationJenkins CI presentation
Jenkins CI presentation
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Hacking Jenkins
Hacking JenkinsHacking Jenkins
Hacking Jenkins
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home builtJenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
Supermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talkSupermondays: Jenkins CI lightning talk
Supermondays: Jenkins CI lightning talk
 
Hudson: Your robotic butler
Hudson: Your robotic butlerHudson: Your robotic butler
Hudson: Your robotic butler
 

En vedette

Microsoft Next 2014, Device Workshop v. Louise Harders
Microsoft Next 2014, Device Workshop v. Louise HardersMicrosoft Next 2014, Device Workshop v. Louise Harders
Microsoft Next 2014, Device Workshop v. Louise HardersMicrosoft
 
Kundeservice for vindere
Kundeservice for vindereKundeservice for vindere
Kundeservice for vindereMicrosoft
 
Microsoft CRM2013
Microsoft CRM2013Microsoft CRM2013
Microsoft CRM2013Microsoft
 
Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...
Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...
Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...Microsoft
 
Grib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederne
Grib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederneGrib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederne
Grib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederneMicrosoft
 
Samspillet mellem mennesker, processer og teknologi
Samspillet mellem mennesker, processer og teknologiSamspillet mellem mennesker, processer og teknologi
Samspillet mellem mennesker, processer og teknologiMicrosoft
 
Starter unikke kundeoplevelser i Marketing eller IT?
Starter unikke kundeoplevelser i Marketing eller IT?Starter unikke kundeoplevelser i Marketing eller IT?
Starter unikke kundeoplevelser i Marketing eller IT?Microsoft
 
Transformér dine produkter med teknologi
Transformér dine produkter med teknologiTransformér dine produkter med teknologi
Transformér dine produkter med teknologiMicrosoft
 
Sådan understøtt er Mærsk sin strategi med sociale medier
Sådan understøtt er Mærsk sin strategi med sociale medierSådan understøtt er Mærsk sin strategi med sociale medier
Sådan understøtt er Mærsk sin strategi med sociale medierMicrosoft
 
Территория: Порождение, свойства, фиксация
Территория: Порождение, свойства, фиксацияТерритория: Порождение, свойства, фиксация
Территория: Порождение, свойства, фиксацияВиктор Крысов (Viktor Krysov)
 
Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...
Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...
Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...Microsoft
 
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...Microsoft
 
Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...
Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...
Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...Microsoft
 
Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...
Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...
Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...Microsoft
 

En vedette (20)

Microsoft Next 2014, Device Workshop v. Louise Harders
Microsoft Next 2014, Device Workshop v. Louise HardersMicrosoft Next 2014, Device Workshop v. Louise Harders
Microsoft Next 2014, Device Workshop v. Louise Harders
 
Kundeservice for vindere
Kundeservice for vindereKundeservice for vindere
Kundeservice for vindere
 
оргмомент
оргмоменторгмомент
оргмомент
 
Microsoft CRM2013
Microsoft CRM2013Microsoft CRM2013
Microsoft CRM2013
 
Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...
Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...
Cyber Security Conference - Informationssikkerhed og tryghed i digitalisering...
 
Трейвиш А.И. Страноведение. Лекция 7
Трейвиш А.И. Страноведение. Лекция 7Трейвиш А.И. Страноведение. Лекция 7
Трейвиш А.И. Страноведение. Лекция 7
 
Grib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederne
Grib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederneGrib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederne
Grib mulighederne med seneste IT trends- få Microsoft overblikket og nyhederne
 
Трейвиш А.И. Страноведение Лекция 1
Трейвиш А.И. Страноведение Лекция 1Трейвиш А.И. Страноведение Лекция 1
Трейвиш А.И. Страноведение Лекция 1
 
Samspillet mellem mennesker, processer og teknologi
Samspillet mellem mennesker, processer og teknologiSamspillet mellem mennesker, processer og teknologi
Samspillet mellem mennesker, processer og teknologi
 
Starter unikke kundeoplevelser i Marketing eller IT?
Starter unikke kundeoplevelser i Marketing eller IT?Starter unikke kundeoplevelser i Marketing eller IT?
Starter unikke kundeoplevelser i Marketing eller IT?
 
Transformér dine produkter med teknologi
Transformér dine produkter med teknologiTransformér dine produkter med teknologi
Transformér dine produkter med teknologi
 
Sådan understøtt er Mærsk sin strategi med sociale medier
Sådan understøtt er Mærsk sin strategi med sociale medierSådan understøtt er Mærsk sin strategi med sociale medier
Sådan understøtt er Mærsk sin strategi med sociale medier
 
Территория: Порождение, свойства, фиксация
Территория: Порождение, свойства, фиксацияТерритория: Порождение, свойства, фиксация
Территория: Порождение, свойства, фиксация
 
Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...
Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...
Business insight 2014 - Social Media Analytics, Thomas Normann-Ekegren, Micro...
 
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
Business Insight 2014 - Microsofts nye BI og database platform - Erling Skaal...
 
Трейвиш А.И. Страноведение. Лекция 4
Трейвиш А.И. Страноведение. Лекция 4Трейвиш А.И. Страноведение. Лекция 4
Трейвиш А.И. Страноведение. Лекция 4
 
Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...
Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...
Microsoft Next 2014 - Productivity session 5 - Projektoverblik, effektivt sam...
 
Трейвиш А.И. Страноведение. Лекция 3
Трейвиш А.И. Страноведение. Лекция 3Трейвиш А.И. Страноведение. Лекция 3
Трейвиш А.И. Страноведение. Лекция 3
 
Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...
Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...
Microsoft Next 2014 - Cloud Platform session 2 - Lolland kommune får styr på ...
 
Неизвестное об известном. Выпуск 2
Неизвестное об известном. Выпуск 2Неизвестное об известном. Выпуск 2
Неизвестное об известном. Выпуск 2
 

Similaire à Jenkins review buddy

Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingPerfecto by Perforce
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015Kim Herzig
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testinggaoliang641
 
Measuring DevOps Performance
Measuring DevOps PerformanceMeasuring DevOps Performance
Measuring DevOps PerformanceBen Kohl
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingCameron Presley
 
The Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineThe Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineDevOps.com
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingC4Media
 
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Suzie Prince
 
The size of the pull request is more important than you think
The size of the pull request is more important than you thinkThe size of the pull request is more important than you think
The size of the pull request is more important than you thinkRodrigo Miguel
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingIBM UrbanCode Products
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013SmartBear
 
Soft quality & standards
Soft quality & standardsSoft quality & standards
Soft quality & standardsPrince Bhanwra
 
Soft quality & standards
Soft quality & standardsSoft quality & standards
Soft quality & standardsPrince Bhanwra
 
Why Software Test Performance Matters
Why Software Test Performance MattersWhy Software Test Performance Matters
Why Software Test Performance MattersSolano Labs
 
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 Tips for Writing Better Charters for Exploratory Testing Sessions by Michael... Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...TEST Huddle
 

Similaire à Jenkins review buddy (20)

Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015The Art of Testing Less without Sacrificing Quality @ ICSE 2015
The Art of Testing Less without Sacrificing Quality @ ICSE 2015
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testing
 
Unit Testing talk
Unit Testing talkUnit Testing talk
Unit Testing talk
 
Measuring DevOps Performance
Measuring DevOps PerformanceMeasuring DevOps Performance
Measuring DevOps Performance
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
 
The Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineThe Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the Pipeline
 
Software testing
Software testingSoftware testing
Software testing
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018 Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
Actionable Continuous Delivery Metrics - QCon San Francisco November 2018
 
Agile
AgileAgile
Agile
 
Tdd
TddTdd
Tdd
 
The size of the pull request is more important than you think
The size of the pull request is more important than you thinkThe size of the pull request is more important than you think
The size of the pull request is more important than you think
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
 
Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013Cross functional peer review preso 10-01-2013
Cross functional peer review preso 10-01-2013
 
Soft quality & standards
Soft quality & standardsSoft quality & standards
Soft quality & standards
 
Soft quality & standards
Soft quality & standardsSoft quality & standards
Soft quality & standards
 
Why Software Test Performance Matters
Why Software Test Performance MattersWhy Software Test Performance Matters
Why Software Test Performance Matters
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 Tips for Writing Better Charters for Exploratory Testing Sessions by Michael... Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
Tips for Writing Better Charters for Exploratory Testing Sessions by Michael...
 

Dernier

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
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
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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
 
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
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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.
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

Jenkins review buddy

  • 1. Jenkins ReviewBuddy Jenkins assisted Peer Code Reviews Knud.Poulsen@switch-gears.dk
  • 2. Inspiration for this talk + = JRB Competitive advantage today can only be achieved through better man/machine cooperation. No huge surprise to Jenkins users. Race *with* the machine.
  • 3. What we’ll cover ➢ Benefits of peer code review ➢ Our experiences ➢ Others’ experiences ➢ Real-world code review ➢ Causes of noise ➢ Jenkins to the rescue! ➢ Demo/ Screenshots ➢ Further development ➢ Call for sponsors & test pilots
  • 4. Key Benefits of Peer Code Review ➢ 90% reduction in shipped defects often reported in industry studies ➢ 25% net productivity increase often reported in industry studies ➢ Knowledge sharing ➢ Silo reduction ➢ Training new employees ➢ Best practice propagation
  • 5. Our experiences - Low Gain Example [Anonymized and obscured]
  • 6. Our experiences - High Gain Example [Anonymized and obscured]
  • 8. So, what do we know ? ➢ Average defect detection rate is only 25 percent for unit testing, 35 percent for function testing, and 45 percent for integration testing. In contrast, the average effectiveness of design and code inspections are 55 and 60 percent. [McConnell93]
  • 9. So, what do we know ? ➢ Basic code reading is ~96% as effective at finding defects as holding a formal heavyweight inspection meeting [Votta1993] ➢ Technical code review checklists are a powerful help (especially against omissions) [Dunsmore2000] ➢ Defect detection drops dramatically after ~60 minutes, to zero after ~90 minutes [Dunsmore2000]
  • 10. So, what do we know ? ➢ The longer a reviewer spends on the initial read-through, the more defects will ultimately be found [Uwano2006] ➢ Long methods are very time consuming to understand [Uwano2006] ➢ Loops are very time consuming to understand [Uwano2006] ➢ Reading time has ~3x higher correlation with defects found than number of lines under review [Laitenberger1999]
  • 11. So, what do we know ? ➢ Maximum effective review rate ~400 lines per hour [Cohen2006] ➢ Disproportionately more defects are found when code changes are under 200 lines [Cohen2006] ➢ Beneficial for “quality of review” if the author pre-reviews and leaves comments for subsequent reviewers [Cohen2006]
  • 12. So, what do we know ? ➢ Review 100 to 300 LOC at a time, in 30-60 minutes chunks, with a break between each sitting [Cohen2006] ➢ Spend at least 5 minutes reviewing a single line of code [Cohen2006] ➢ Limit reviewing to 1 hour per day [Ganssle2009]
  • 13. Real world ➢ Is messy... ➢ No clear pattern between time spent in the review state, total number of reworks required, or total number of lines changed ➢ Some studies compensate by dropping unreasonable data points and assuming informal out-of-tool review
  • 15. Why no clear pattern? ➢ “Production pressure” ➢ “Lack of review guidance” ➢ Hard to justify time ➢ Just give up on large reviews ➢ Hard to delay 1000 lines of new code the 3 days (300 lines/h, 3x1h, 1h/day) it should take to review effectively
  • 16. What outcome would we like? ➢ Smaller reviews should merge faster ➢ Larger reviews should merge slower
  • 17. Race *with* the machine ➢ Guidance on time to use doing review ➢ Remind author to do pre-review ➢ Up-front determination of reviewers ➢ Links to review checklists ➢ Load balance reviewers ➢ Help developers justify time investment ➢ Automatically add reviewers ➢ Automatically add developer as pre-reviewer
  • 22. Further work ➢ Also consider previous reviewers, not only previous developers ➢ Make language and domain specific review checklists easily accessible ➢ Weight and score commit message size against nr files/ lines changed ➢ Inline comments from warnings, static checkers ➢ OO review expansion, ie. “you also need to look at these 3 unchanged files”
  • 23. Call for Sponsors and Test Pilots ➢ Try it out in your own Gerrit Review/ Jenkins environment ➢ Sponsor development into a full-blow, feature rich, configurable “Jenkins ReviewBuddy” plugin ➢ Catch me in the break