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.

285e2691517b3ecd122e587c65e9d9ad?s=128

Paul Adams

April 23, 2018
Tweet

Transcript

  1. THE ART OF THE PULL REQUEST ACHIEVING ASYNCHRONOUS COLLABORATION SUCCESS

    PAUL ADAMS 23-04-2018
  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!
  3. IS YOUR TEAM A COMMUNITY?

  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
  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
  6. 6 THE PILLARS OF RADICAL AGILITY

  7. WHAT IS A PR, REALLY?

  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)
  9. 9 HOW ABOUT THIS DESCRIPTION? “AN ASYNCHRONOUS FORM OF COMMUNICATION

    DESIGNED TO COLLECT ALL INFORMATION RELATED TO THE DEVELOPMENT OF A SPECIFIC FEATURE”
  10. THE GOOD, THE BAD, THE UGLY

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

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

  13. None
  14. SOLID PR TEMPLATING

  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)
  16. NO TIME LIKE THE PRESENT!

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

  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.
  19. ICYMI

  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
  21. PAUL ADAMS paul.adams@zalando.de @therealpadams baggerspion.net 23-04-2018 OPEN SOURCE LEAD