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.

285e2691517b3ecd122e587c65e9d9ad?s=128

Paul Adams

April 23, 2018
Tweet

More Decks by Paul Adams

Other Decks in Technology

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