Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Art of the Pull Request

The Art of the Pull Request

Take a moment to ask yourself, "what are Pull Requests for?"

Typically PRs are used as a means to communicate that some body of work has been done and is ready to be merged. But is this an optimal use of PRs? If we submit a PR after the work has been completed, have we missed a golden opportunity to collaborate?

PRs should be treated like the basic unit of collaboration within GitHub-based projects. By using PRs as communication medium and not simply as a review mechanism, we can create opportunities to communicate better within our projects, enhance the on-boarding of new contributors and help catch potential problems early.

In this short talk, I show off the good, the bad and the ugly of PRs and provide a template for best practice which encourages communication and collaboration within your community.

Paul Finlayson Adams

April 23, 2018
Tweet

More Decks by Paul Finlayson Adams

Other Decks in Technology

Transcript

  1. THE ART OF THE
    PULL REQUEST
    ACHIEVING ASYNCHRONOUS
    COLLABORATION SUCCESS
    PAUL ADAMS
    23-04-2018

    View Slide

  2. 2
    Is Your Team A Community?
    What Is A PR, Really?
    The Good, The Bad, The Ugly
    Solid PR Templating
    THE ART OF THE PULL
    REQUEST
    “Tug of War” by toffehoff (https://flic.kr/p/nD2nk)
    No Time Like The Present!

    View Slide

  3. IS YOUR TEAM A COMMUNITY?

    View Slide

  4. 4
    ZALANDO AT A GLANCE
    as at March 2018
    ~ 4.5
    billion EUR
    revenue 2017
    > 200
    million
    visits
    per
    month
    > 15,000
    employees in
    Europe
    > 70%
    of visits via
    mobile devices
    > 23
    million
    active customers
    > 300,000
    product choices
    ~ 2,000
    brands
    15
    countries

    View Slide

  5. 5
    WE ARE CONSTANTLY INNOVATING TECHNOLOGY
    HOME-BREWED,
    CUTTING-EDGE
    & SCALABLE
    technology solutions
    ~ 2,000
    employees from
    tech locations
    (HQs in Berlin)
    7
    77
    nations
    help our brand to
    WIN ONLINE

    View Slide

  6. 6
    THE PILLARS OF RADICAL AGILITY

    View Slide

  7. WHAT IS A PR, REALLY?

    View Slide

  8. 8
    LOOK WHAT I DID!
    In GitHub’s own words: “Pull requests let you tell
    others about changes you've pushed to a GitHub
    repository.”
    - After the fact
    - “Let” is weak
    - “others”?
    “Acupuncture” by Petras Gagllas (https://flic.kr/p/iJoBE8)

    View Slide

  9. 9
    HOW ABOUT THIS DESCRIPTION?
    “AN ASYNCHRONOUS FORM OF COMMUNICATION DESIGNED TO COLLECT ALL
    INFORMATION RELATED TO THE DEVELOPMENT OF A SPECIFIC FEATURE”

    View Slide

  10. THE GOOD, THE BAD, THE UGLY

    View Slide

  11. 11
    THE “ERR… I GUESS I KNOW WHAT HAPPENED HERE” PR

    View Slide

  12. 12
    THE “NOT TOO BAD AT ALL” PR

    View Slide

  13. View Slide

  14. SOLID PR TEMPLATING

    View Slide

  15. 15
    OK, SO WHAT COULD A PR LOOK LIKE?
    • Related Issue
    • Motivation
    • Description
    • Type Of Change
    • Sanitary Considerations
    “Fabric Design” by yaskil (https://flic.kr/p/cib95w)

    View Slide

  16. NO TIME LIKE THE PRESENT!

    View Slide

  17. 17
    A SCRUM-BASED EXAMPLE
    “Scrum” by Charlie (https://flic.kr/p/gB9tsA)

    View Slide

  18. 18
    PRs IN SCRUM CEREMONIES
    “postits” by Peer 2 Peer University (https://flic.kr/p/bt51RX)
    Ceremony Description
    Daily Scrum Probably no role here.
    Planning 1 Open PR.
    Planning 2 Complete the PR template.
    Review Merge the PR.
    Retro Perhaps process/template review.
    Backlog
    Refinement
    Probably no role here.

    View Slide

  19. ICYMI

    View Slide

  20. 20
    • Mastery, Purpose and Autonomy Need Alignment to Succeed
    • Conway’s Law dictates asynchronous
    • Documentation, folks!
    • Document the feature in PRs
    • For now
    • Forever
    THIS IS THE END

    View Slide

  21. PAUL ADAMS
    [email protected]
    @therealpadams
    baggerspion.net
    23-04-2018
    OPEN SOURCE LEAD

    View Slide