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

Work Practices and Challenges in Pull-Based Dev...

Work Practices and Challenges in Pull-Based Development: The Contributor’s Perspective

Presentation given by Georgios Gousios and Alberto Bacchelli at the 38th International Conference on Software Engineering.

Georgios Gousios

May 18, 2016
Tweet

More Decks by Georgios Gousios

Other Decks in Technology

Transcript

  1. Work Practices and Challenges in Pull-Based Development: The Contributor’s Perspective

    Georgios Gousios @gousiosg Margaret-Anne Storey @margeretstorey Alberto Bacchelli @sback_ pull-based contributions
  2. projects with > 1 integrators 55% shared repository 45% use

    pull requests GitHub’s pull-based development model: A success story 0k 100k 200k 300k 400k 500k 600k 700k 2010 2011 2012 2013 2014 2015 # of pull requests 2016 135k repos/month 600k pull-requests/month
  3. Decide change Code/Check quality Submit Discuss intentions Feedback Code review

    Submit Proposed fixes Discuss fixes Code review Accept Code/Check quality contributors integrators
  4. Decide change Code/Check quality Submit Discuss intentions Feedback Code review

    Submit Proposed fixes Discuss fixes Code review Accept Code/Check quality contributors integrators
  5. Decide change Code/Check quality Submit Discuss intentions Feedback Code review

    Submit Proposed fixes Discuss fixes Code review Accept Code/Check quality The contributor’s perspective contributors integrators
  6. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? Research Questions
  7. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? Research Questions
  8. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? 3. How do they communicate the intended change? Research Questions
  9. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? 3. How do they communicate the intended change? RQ2: What are the key challenges they face? Research Questions
  10. GHTorrent Final Survey Analysis / filtering (15 closed questions) Performance

    Reports researchers Card sorting (7 open questions) 4,167 contributors (760 responses) The contributor’s perspective: Research method
  11. GHTorrent Final Survey Analysis / filtering (15 closed questions) Performance

    Reports researchers Card sorting (7 open questions) 4,167 contributors (760 responses) Results The contributor’s perspective: Research method
  12. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? 3. How do they communicate the intended change? RQ2: What are the key challenges they face? Research Questions
  13. % of responses The contributor’s perspective: Before coding a contribution

    Look up open issues Check for similar PRs Check rel. discussions Check guidelines Communicate changes Check other forks 0 50 100 150 20 Never or Occasionaly Often or Always 100 0 100
  14. Run tests Check against guidelines Check rel. discussions Check for

    similar PRs Check other branches 0 50 100 150 20 Never or Occasionaly Often or Always % of responses The contributor’s perspective: After coding a contribution 100 0 100
  15. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? 3. How do they communicate the intended change? RQ2: What are the key challenges they face? Research Questions
  16. Testing Self review Manual testing Compliance Static Analysis CI Self

    containment Documentation Building 0 15 30 45 60 % of responses The contributor’s perspective: Assessing their contribution’s quality What is evaluated How it is evaluated
  17. Testing Self review Manual testing Compliance Static Analysis CI Self

    containment Documentation Building 0 15 30 45 60 % of responses The contributor’s perspective: Assessing their contribution’s quality What is evaluated How it is evaluated
  18. Testing Self review Manual testing Compliance Static Analysis CI Self

    containment Documentation Building 0 15 30 45 60 % of responses The contributor’s perspective: Assessing their contribution’s quality What is evaluated How it is evaluated
  19. seeking information related to change The contributor’s perspective: What happens

    before submitting not communicating intent verifying quality using testing trying to adhere to project style
  20. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? 3. How do they communicate the intended change? RQ2: What are the key challenges they face? Research Questions
  21. Issue tracker Pull request Email IRC F2F Sync communication Twitter

    Other Do not communicate 0 20 40 60 80 % of responses The contributor’s perspective: Communicating the intended change
  22. RQ1: How do contributors prepare contributions? 1. What do they

    do before & after coding? 2. How do they assess their contribution’s quality? 3. How do they communicate the intended change? RQ2: What are the key challenges they face? Research Questions
  23. The contributor’s perspective: Key challenges they face Implications for researchers

    Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges
  24. The contributor’s perspective: Key challenges they face Implications for researchers

    Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Understanding the code Evaluate the impact Ensure project compliance Dealing with git and conflicts “Missing knowledge about inner workings of a project [...] sometimes caused by missing documentation”
  25. “Ensuring that my PR doesn’t have unintended side effects due

    to not being intimately familiar with the entire code base.” The contributor’s perspective: Key challenges they face Implications for researchers Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Understanding the code Evaluate the impact Ensure project compliance Dealing with git and conflicts
  26. “Unsure of code style, pull requests format, commit message formats,

    etc.” The contributor’s perspective: Key challenges they face Implications for researchers Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Understanding the code Evaluate the impact Ensure project compliance Dealing with git and conflicts
  27. “Usage of git is not intuitive. Especially for me as

    [one] who does not contribute regularly, it is every time a challenge to [use it]” The contributor’s perspective: Key challenges they face Implications for researchers Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Understanding the code Evaluate the impact Ensure project compliance Dealing with git and conflicts
  28. The contributor’s perspective: Key challenges they face Implications for researchers

    Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Implications for researchers Dealing with unresponsiveness
 Explaining the rationale
 Fearing rejection
 Social challenges Dealing with unresponsiveness Explaining the rationale Fearing rejection
  29. The contributor’s perspective: Key challenges they face Implications for researchers

    Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Implications for researchers Dealing with unresponsiveness
 Explaining the rationale
 Fearing rejection
 Social challenges Dealing with unresponsiveness Explaining the rationale Fearing rejection “The owner of the repo doesn’t ever respond to the PR and leaves it hanging open forever”
  30. Sometimes it’s hard to explain the need for some changes.

    Some teams will immediately reject them without analyzing them properly The contributor’s perspective: Key challenges they face Implications for researchers Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Implications for researchers Dealing with unresponsiveness
 Explaining the rationale
 Fearing rejection
 Social challenges Dealing with unresponsiveness Explaining the rationale Fearing rejection
  31. The contributor’s perspective: Key challenges they face Implications for researchers

    Understanding the code
 Evaluate the impact
 Ensure project compliance
 Dealing with git and conflicts Technical challenges Implications for researchers Dealing with unresponsiveness
 Explaining the rationale
 Fearing rejection
 Social challenges Dealing with unresponsiveness Explaining the rationale Fearing rejection “Fear of looking stupid.” “Fear of rude response.”
  32. quality The contributor’s and integrator’s perspective: It takes two to

    tango lack of process workload and responsiveness
  33. quality The contributor’s and integrator’s perspective: It takes two to

    tango lack of process workload and responsiveness communication
  34. Actionable points Implications for researchers Prioritize work automatically
 Estimate time

    for merging
 Untangle code changes
 Analyze impact of changes
 Improve awareness & communication Implications for researchers
  35. Actionable points Implications for researchers Prioritize work automatically
 Estimate time

    for merging
 Untangle code changes
 Analyze impact of changes
 Improve awareness & communication Implications for researchers Recommendations for contributors Minimize friction
 Maximize awareness
 Build a solid profile Recommendations for contributors