SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Berlin Expert Days 2013
      Enjoy Code Review Again
      Marrying Gerrit with Jenkins in 20 Minutes



       Johannes Nicolai
       Development Manager, CollabNet
       Dharmesh Sheta
       Software Engineer, CollabNet
       CollabNet Engineering Office, Potsdam, Germany




ENTERPRISE CLOUD DEVELOPMENT
1                                   Copyright ©2012 CollabNet, Inc. All Rights Reserved.
CollabNet In One Slide




2                      Copyright ©2012 CollabNet, Inc. All Rights Reserved.
3   Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Agenda
    • What is Code Review?
    • The Joy in Code Review
    • The Pain in Code Review
    • Enjoy Code Review Again: Introducing Gerrit and Jenkins
    • Demo Workflow Explained
    • Live Demo
    • Resources
    • Q&A




4                        Copyright ©2012 CollabNet, Inc. All Rights Reserved.
What is Code Review?
    “Code review is systematic examination (often known as peer
    review) of computer source code. […] Reviews are done in
    various forms such as pair programming, informal
    walkthroughs, and formal inspections.” [1]
    We will not cover formal inspections methods and pair
    programming here but concentrate on informal walk
    throughs, typically referred as Informal Peer review
    “In software development, peer review is a type of software
    review in which a work product (document, code, or other) is
    examined by its author and one or more colleagues, in order to
    evaluate its technical content and quality.” [2]
    [1] Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. p. 260. ISBN 0-470-
    04212-5.

    [2] http://en.wikipedia.org/wiki/Software_peer_review




5                                                            Copyright ©2012 CollabNet, Inc. All Rights Reserved.
The Joy in Code Review
    • Code review can be used very early in the process
                         Phase                                       Recovery Prospects Success Factor
                         Early Planning                              Excellent                                 95 %
                         Requirements                                Excellent                                 90 %
                         Initial Design                              Very Good                                 80 %
                         Detail Design                               Good                                      65 %
                         Coding                                      Fair                                      45 %
                         Integration                                 Poor                                      30 %
                         Testing                                     Very Poor                                 15 %
                         Deployment                                  Non existent                              0%
                         Maintenance                                 Non existent                              0%
    [3] Caspers Jones, Patterns of Software Systems Failure and Success




6                                                             Copyright ©2012 CollabNet, Inc. All Rights Reserved.
The Joy in Code Review
    • Peer review does not only apply to executable source code
     – Design/requirement specifications
     – Documentation
     – XML schema
    • Some quality aspects can only be verified using code review
     – Readability/changeability of the code
     – Meaningful qualifiers / object names / functions
    • Great source for knowledge transfer and early
      design/architecture conflict detection




7                            Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Code Review Efficiency compared to other methods [5]




8                     Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Code Review Costs compared to other methods [5]




9                    Copyright ©2012 CollabNet, Inc. All Rights Reserved.
The Pain in Code Review
     • Less than 50 percent of software applications are developed using code review [5]
       [5] C. Jones, The Economics of Software Quality, Capers Jones, Olivier Bonsignour and Jitendra Subramanyam, Addison-Wesley Longman, 2011



     • Ego challenges – Welcome to the world of gamification (after talk)
     • Half baked review requests killing motivation – ‘The demo tape problem‘
       – Many code review requests do not meet basic quality gates
                 •    Compiles/builds
                 •    Passes unit / integration tests
                 •    Meets coding standards and metrics
                 •    No IP violations

     • Review Tool challenges – ‘Context switching par excellence‘
       –      Creating patches
       –      Uploading patches
       –      Inspecting patches
       –      Downloading patches
       –      Applying patches
       –      Building patches
       –      Providing feedback
       –      Reworking patches
       –      Merging patches




10                                                                                  Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Gerrit = Widely Used Git Server + Code Review Tool
     • 100% pure Java SSH and HTTP Git backend
      – Scalable and suitable for large Enterprises
     • Web-based and Command Line administration
      – Users and Groups
      – Project and branch security (read and write)
     • Collaboration and Code-review
      – B2B integration at code-level
      – Communicate and share code knowledge in the Team
      – Enforce workflow and code quality
     • The most successful open source code review
      – Android OS
      – Eclipse, OpenStack, Qt, CouchDB and many others


11                            Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Who’s Using Gerrit in Production Today?




                                                                          source: Wikipedia


12                 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Jenkins = Most popular Open Source CI
     • Has hundreds of plugins to
       –   Interact with various SCMs (Git, SVN, CVS, …)
       –   Build software (ant, maven, gradle, make)
       –   Run unit/integration tests (JUnit, Selenium, …)
       –   Perform static code analysis
           (findbugs, checkstyle, PMS, Sonar, …)


     • Works brilliantly together with Gerrit over
       Gerrit Trigger Plugin
       – Keeps ssh connection open to learn about new
         review requests immediatly
       – Builds and verifies all configures quality gates
         (tests, coding conventions, code KPIs, you name it)
       – Sets ‘verified’ flag in review request according to
         result of verification build (either +1 or -1)
       – If Jenkins sets -1, then further code review isn’t
         possible, developer has to either re-work or
         abandon change

13                                   Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Tackling half baked review requests:
 Marrying Gerrit and Jenkins
                  CI Build: OK                                                                            CI Build: OK


                                                                                                                    master
      A1                                                                                      C2*

                                 Verified: -1                        Verified: +1
                                 (build failed)                      (build OK)



                  C2                              C2*                                                        refs/for/master
                                                                                           Reviewed: +2




           push                        push




                                                                                                                      local
     A1           C2                              C2*                                                                master



14                                  Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Learn More

 CollabNet DVD for BED
 TeamForge + Gerrit Data Sheet




 Git Blogs
 http://blogs.collab.net/git




 Software Downloads (TeamForge, Git + clients)
 http://www.collab.net/git




15                               Copyright ©2012 CollabNet, Inc. All Rights Reserved.
Q&A




16    Copyright ©2012 CollabNet, Inc. All Rights Reserved.
TeamForge = Enterprise-Grade Git Mgmt. + ALM


                                           Gerrit
    Basic SCM features                                                               Protection
    jGit engine                                                                      Code Quality
                               Advanced Git security                                 Control
    Native engine
                               Git Projects organization                             IT standard compliance
    GitWeb
                               Code-review                                           ALM integration
                               Replication                                           Hybrid SCM




 With TeamForge and Gerrit, Git is now ready for the enterprise. Realize all the
 benefits of Git, without compromising governance, security and compliance.




17                          Copyright ©2012 CollabNet, Inc. All Rights Reserved.
The technical details we shield users from




18                  Copyright ©2012 CollabNet, Inc. All Rights Reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPCIntroducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPCDVClub
 
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsAdapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsIBM UrbanCode Products
 
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...RIF-Technology
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграцииSQALab
 
How we build quality software at uSwitch.com
How we build quality software at uSwitch.comHow we build quality software at uSwitch.com
How we build quality software at uSwitch.comhemalkuntawala
 
Relay health build system
Relay health build systemRelay health build system
Relay health build systemroncordell
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering Pranesh Vittal
 
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleManaging Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleChris Sterling
 
PL/SQL Development
PL/SQL DevelopmentPL/SQL Development
PL/SQL DevelopmentThanh Nguyen
 
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next
 
How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012_mr_me
 
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...Real-Time Innovations (RTI)
 
bryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STEbryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STEBryan Reinbolt
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)Stefan Koopmanschap
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileWee Witthawaskul
 
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectAgileSparks
 

Was ist angesagt? (20)

Introducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPCIntroducing Obsidian Software and RAVEN-GCS for PowerPC
Introducing Obsidian Software and RAVEN-GCS for PowerPC
 
Adapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex ApplicationsAdapting Deployment Pipelines for Complex Applications
Adapting Deployment Pipelines for Complex Applications
 
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
Антон Семенченко | (EPAM Systems, DPI.Solutions )Сравнительный анализ инстру...
 
Постоянное тестирование интеграции
Постоянное тестирование интеграцииПостоянное тестирование интеграции
Постоянное тестирование интеграции
 
Amit_Resume
Amit_ResumeAmit_Resume
Amit_Resume
 
How we build quality software at uSwitch.com
How we build quality software at uSwitch.comHow we build quality software at uSwitch.com
How we build quality software at uSwitch.com
 
Relay health build system
Relay health build systemRelay health build system
Relay health build system
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering
 
Managing Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG SeattleManaging Software Debt - Quality Debt Focus for QASIG Seattle
Managing Software Debt - Quality Debt Focus for QASIG Seattle
 
PL/SQL Development
PL/SQL DevelopmentPL/SQL Development
PL/SQL Development
 
Real World TDD
Real World TDDReal World TDD
Real World TDD
 
STX Next - Scrum Development Process Overview
STX Next - Scrum Development Process OverviewSTX Next - Scrum Development Process Overview
STX Next - Scrum Development Process Overview
 
How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012How to-catch-a-chameleon-steven seeley-ruxcon-2012
How to-catch-a-chameleon-steven seeley-ruxcon-2012
 
Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...Model Based Systems and Software Engineering an overview of the IBM Rational ...
Model Based Systems and Software Engineering an overview of the IBM Rational ...
 
bryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STEbryan-j.-reinbolt-resume_STE
bryan-j.-reinbolt-resume_STE
 
TDD anche su iOS
TDD anche su iOSTDD anche su iOS
TDD anche su iOS
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
 
Manual testing1
Manual testing1Manual testing1
Manual testing1
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
 
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
 

Ähnlich wie Marrying Jenkins and Gerrit-Berlin Expert Days 2013

xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012Justin Gordon
 
Continuous Integration for z using Test Data Management and Application D...
Continuous  Integration for z  using  Test Data Management  and Application D...Continuous  Integration for z  using  Test Data Management  and Application D...
Continuous Integration for z using Test Data Management and Application D...DevOps for Enterprise Systems
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcityMd Jawed
 
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Intland Software GmbH
 
Implementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software QualityImplementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software QualityRocket Software
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Intland Software GmbH
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Seng 123 1-concepts
Seng 123 1-conceptsSeng 123 1-concepts
Seng 123 1-conceptsAtilla Elçi
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategiesRaquel Pau
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Delta-N
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionajayrajaganeshkayala
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM toolsLarry Cai
 
Succesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery ProcessSuccesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery ProcessHuib Schoots
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous XBrent Pabst
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11julSantosh Ojha
 

Ähnlich wie Marrying Jenkins and Gerrit-Berlin Expert Days 2013 (20)

xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 
Continuous Integration for z using Test Data Management and Application D...
Continuous  Integration for z  using  Test Data Management  and Application D...Continuous  Integration for z  using  Test Data Management  and Application D...
Continuous Integration for z using Test Data Management and Application D...
 
Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
 
Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding Distributed Software Development with Scrum and Social Coding
Distributed Software Development with Scrum and Social Coding
 
Implementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software QualityImplementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software Quality
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Seng 123 1-concepts
Seng 123 1-conceptsSeng 123 1-concepts
Seng 123 1-concepts
 
Technical debt management strategies
Technical debt management strategiesTechnical debt management strategies
Technical debt management strategies
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Intsoc2
Intsoc2Intsoc2
Intsoc2
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
 
Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012Introductie Visual Studio ALM 2012
Introductie Visual Studio ALM 2012
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
Succesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery ProcessSuccesful Testing The Continuous Delivery Process
Succesful Testing The Continuous Delivery Process
 
Delivering the Dude: Continuous X
Delivering the Dude: Continuous XDelivering the Dude: Continuous X
Delivering the Dude: Continuous X
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Continuous testing
Continuous testingContinuous testing
Continuous testing
 
Hyd virtual meetupslides11jul
Hyd virtual meetupslides11julHyd virtual meetupslides11jul
Hyd virtual meetupslides11jul
 

Kürzlich hochgeladen

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 

Kürzlich hochgeladen (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
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
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
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
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
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
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 

Marrying Jenkins and Gerrit-Berlin Expert Days 2013

  • 1. Berlin Expert Days 2013 Enjoy Code Review Again Marrying Gerrit with Jenkins in 20 Minutes Johannes Nicolai Development Manager, CollabNet Dharmesh Sheta Software Engineer, CollabNet CollabNet Engineering Office, Potsdam, Germany ENTERPRISE CLOUD DEVELOPMENT 1 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 2. CollabNet In One Slide 2 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 3. 3 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 4. Agenda • What is Code Review? • The Joy in Code Review • The Pain in Code Review • Enjoy Code Review Again: Introducing Gerrit and Jenkins • Demo Workflow Explained • Live Demo • Resources • Q&A 4 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 5. What is Code Review? “Code review is systematic examination (often known as peer review) of computer source code. […] Reviews are done in various forms such as pair programming, informal walkthroughs, and formal inspections.” [1] We will not cover formal inspections methods and pair programming here but concentrate on informal walk throughs, typically referred as Informal Peer review “In software development, peer review is a type of software review in which a work product (document, code, or other) is examined by its author and one or more colleagues, in order to evaluate its technical content and quality.” [2] [1] Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. p. 260. ISBN 0-470- 04212-5. [2] http://en.wikipedia.org/wiki/Software_peer_review 5 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 6. The Joy in Code Review • Code review can be used very early in the process Phase Recovery Prospects Success Factor Early Planning Excellent 95 % Requirements Excellent 90 % Initial Design Very Good 80 % Detail Design Good 65 % Coding Fair 45 % Integration Poor 30 % Testing Very Poor 15 % Deployment Non existent 0% Maintenance Non existent 0% [3] Caspers Jones, Patterns of Software Systems Failure and Success 6 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 7. The Joy in Code Review • Peer review does not only apply to executable source code – Design/requirement specifications – Documentation – XML schema • Some quality aspects can only be verified using code review – Readability/changeability of the code – Meaningful qualifiers / object names / functions • Great source for knowledge transfer and early design/architecture conflict detection 7 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 8. Code Review Efficiency compared to other methods [5] 8 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 9. Code Review Costs compared to other methods [5] 9 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 10. The Pain in Code Review • Less than 50 percent of software applications are developed using code review [5] [5] C. Jones, The Economics of Software Quality, Capers Jones, Olivier Bonsignour and Jitendra Subramanyam, Addison-Wesley Longman, 2011 • Ego challenges – Welcome to the world of gamification (after talk) • Half baked review requests killing motivation – ‘The demo tape problem‘ – Many code review requests do not meet basic quality gates • Compiles/builds • Passes unit / integration tests • Meets coding standards and metrics • No IP violations • Review Tool challenges – ‘Context switching par excellence‘ – Creating patches – Uploading patches – Inspecting patches – Downloading patches – Applying patches – Building patches – Providing feedback – Reworking patches – Merging patches 10 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 11. Gerrit = Widely Used Git Server + Code Review Tool • 100% pure Java SSH and HTTP Git backend – Scalable and suitable for large Enterprises • Web-based and Command Line administration – Users and Groups – Project and branch security (read and write) • Collaboration and Code-review – B2B integration at code-level – Communicate and share code knowledge in the Team – Enforce workflow and code quality • The most successful open source code review – Android OS – Eclipse, OpenStack, Qt, CouchDB and many others 11 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 12. Who’s Using Gerrit in Production Today? source: Wikipedia 12 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 13. Jenkins = Most popular Open Source CI • Has hundreds of plugins to – Interact with various SCMs (Git, SVN, CVS, …) – Build software (ant, maven, gradle, make) – Run unit/integration tests (JUnit, Selenium, …) – Perform static code analysis (findbugs, checkstyle, PMS, Sonar, …) • Works brilliantly together with Gerrit over Gerrit Trigger Plugin – Keeps ssh connection open to learn about new review requests immediatly – Builds and verifies all configures quality gates (tests, coding conventions, code KPIs, you name it) – Sets ‘verified’ flag in review request according to result of verification build (either +1 or -1) – If Jenkins sets -1, then further code review isn’t possible, developer has to either re-work or abandon change 13 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 14. Tackling half baked review requests: Marrying Gerrit and Jenkins CI Build: OK CI Build: OK master A1 C2* Verified: -1 Verified: +1 (build failed) (build OK) C2 C2* refs/for/master Reviewed: +2 push push local A1 C2 C2* master 14 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 15. Learn More CollabNet DVD for BED TeamForge + Gerrit Data Sheet Git Blogs http://blogs.collab.net/git Software Downloads (TeamForge, Git + clients) http://www.collab.net/git 15 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 16. Q&A 16 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 17. TeamForge = Enterprise-Grade Git Mgmt. + ALM Gerrit  Basic SCM features  Protection  jGit engine  Code Quality  Advanced Git security  Control  Native engine  Git Projects organization  IT standard compliance  GitWeb  Code-review  ALM integration  Replication  Hybrid SCM With TeamForge and Gerrit, Git is now ready for the enterprise. Realize all the benefits of Git, without compromising governance, security and compliance. 17 Copyright ©2012 CollabNet, Inc. All Rights Reserved.
  • 18. The technical details we shield users from 18 Copyright ©2012 CollabNet, Inc. All Rights Reserved.