skip to main content
research-article

How to Communicate when Submitting Patches: An Empirical Study of the Linux Kernel

Published:07 November 2019Publication History
Skip Abstract Section

Abstract

Communication when submitting patches (CSP) is critical in software development, because ineffective communication wastes the time of developers and reviewers, and is even harmful to future product release and maintenance. In distributed software development, CSP is usually in the form of computer-mediated communication (CMC), which is a crucial topic concerned by the CSCW community. However, what to say and how to say in communication including CSP has been rarely studied. To bridge this knowledge gap and provide relevant guidance for developers to conduct CSP, in this study, we conducted an empirical study on the Linux kernel. We found four themes involving 17 expression elements that characterize what to express when submitting patches and three themes of contextual factors that determine how these elements are applied. Considering both expression elements and context, combined with an online survey, we obtained 17 practices for communication. Among them, four practices, such as "provide sufficient reasons" and "provide a trade-off" are the most important but difficult practices, for which we provide specific instructions. We also found that the "individual factors" plays a special role in communication, which may lead to potential problems even in accepted patches. Based on these findings, we discuss the recommendations for different practitioners, including patch submitters, reviewers, and tool designers, and the implications for open source software (OSS) communities and the CSCW researchers.

References

  1. Maria Antikainen, Timo Aaltonen, and Jaani Vaisanen. 2007. The role of trust in OSS communities-case Linux Kernel community. In IFIP International Conference on Open Source Systems. Springer, Germany, 223--228.Google ScholarGoogle ScholarCross RefCross Ref
  2. Jorge Aranda and Gina Venolia. 2009. The Secret Life of Bugs: Going Past the Errors and Omissions in Software Repositories. In Proceedings of the 31st International Conference on Software Engineering (ICSE '09). IEEE Computer Society, Washington, DC, USA, 298--308.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Saulius Astromskis, Gabriele Bavota, Andrea Janes, Barbara Russo, and Massimiliano Di Penta. 2017. Patterns of developers behaviour: A 1000-hour industrial study. Journal of Systems and Software, Vol. 132 (2017), 85--97.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Gabriela Avram, Liam Bannon, John Bowers, Anne Sheehan, and Daniel K. Sullivan. 2009. Bridging, Patching and Keeping the Work Flowing: Defect Resolution in Distributed Software Development. Computer Supported Cooperative Work (CSCW), Vol. 18, 5 (16 Sep 2009), 477.Google ScholarGoogle Scholar
  5. Dane Bertram, Amy Voida, Saul Greenberg, and Robert Walker. 2009. Communication, collaboration, and bugs: The social nature of issue tracking in software engineering. Technical Report. University of Calgary.Google ScholarGoogle Scholar
  6. Nicolas Bettenburg, Sascha Just, Adrian Schröter, Cathrin Weiss, Rahul Premraj, and Thomas Zimmermann. 2008. What Makes a Good Bug Report?. In Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT '08/FSE-16). ACM, New York, NY, USA, 308--318.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Nathan Bos, Judy Olson, Darren Gergle, Gary Olson, and Zach Wright. 2002. Effects of Four Computer-mediated Communications Channels on Trust Development. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '02). ACM, New York, NY, USA, 135--140. https://doi.org/10.1145/503376.503401Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. John Waite Bowers, Donald C. Bryant, Richard W. Budd, Robert K. Thorp, and Lewis Donohew. 1968. Content Analysis of Communications. College Composition & Communication, Vol. 19, 1 (1968), 53.Google ScholarGoogle ScholarCross RefCross Ref
  9. Silvia Breu, Rahul Premraj, Jonathan Sillito, and Thomas Zimmermann. 2010. Information Needs in Bug Reports: Improving Cooperation Between Developers and Users. In Proceedings of the 2010 ACM Conference on Computer Supported Cooperative Work (CSCW '10). ACM, New York, NY, USA, 301--310.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Frederick P. Brooks, Jr. 1995. The Mythical Man-month (Anniversary Ed.) .Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gerardo Canfora, Massimiliano Di Penta, Stefano Giannantonio, Rocco Oliveto, and Sebastiano Panichella. 2013. YODA: Young and Newcomer Developer Assistant. In Proceedings of the 2013 International Conference on Software Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 1331--1334.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Marcelo Cataldo, Patrick A. Wagstrom, James D. Herbsleb, and Kathleen M. Carley. 2006. Identification of Coordination Requirements: Implications for the Design of Collaboration and Awareness Tools. In Proceedings of the 2006 20th Anniversary Conference on Computer Supported Cooperative Work (CSCW '06). ACM, New York, NY, USA, 353--362.Google ScholarGoogle Scholar
  13. Scott Chacon and Ben Straub. 2014. Pro Git 2nd ed.). Apress, Berkely, CA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Oscar Chaparro, Jing Lu, Fiorella Zampetti, Laura Moreno, Massimiliano Di Penta, Andrian Marcus, Gabriele Bavota, and Vincent Ng. 2017. Detecting Missing Information in Bug Descriptions. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). ACM, New York, NY, USA, 396--407.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Henrik Munkebo Christiansen. 2007. Meeting the Challenge of Communication in Offshore Software Development. In Software Engineering Approaches for Offshore and Outsourced Development, , Bertrand Meyer and Mathai Joseph (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 19--26.Google ScholarGoogle Scholar
  16. PostgreSQL community. 2013. Submitting a Patch. https://wiki.postgresql.org/wiki/Submitting_a_Patch Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  17. J. Corbet, G. Kroah-Hartman, and A. McPherson. 2012. Linux Kernel development: How fast it is going, who is doing it, what they are doing, and who is sponsoring it. https://go.linuxfoundation.org/who-writes-linux-2012 Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  18. Alan Cox, Alexander Viro, and et al. 2015. The linux-kernel mailing list FAQ. http://vger.kernel.org/lkml/ Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  19. Daniela S Cruzes and Tore Dyba. 2011. Recommended Steps for Thematic Synthesis in Software Engineering. In 2011 International Symposium on Empirical Software Engineering and Measurement. IEEE, USA, 275--284. https://doi.org/10.1109/ESEM.2011.36Google ScholarGoogle Scholar
  20. Sarah D'Angelo and Andrew Begel. 2017. Improving Communication Between Pair Programmers Using Shared Gaze Awareness. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems (CHI '17). ACM, New York, NY, USA, 6245--6290.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Jason Davey, P. Gugiu, and Chris Coryn. 2010. Quantitative Methods for Estimating the Reliability of Qualitative Data. Journal of MultiDisciplinary Evaluation, Vol. 6, 13 (2010), 140--162. http://journals.sfu.ca/jmde/index.php/jmde_1/article/view/266Google ScholarGoogle Scholar
  22. Cleidson de Souza, Jon Froehlich, and Paul Dourish. 2005. Seeking the Source: Software Source Code As a Social and Technical Artifact. In Proceedings of the 2005 International ACM SIGGROUP Conference on Supporting Group Work (GROUP '05). ACM, New York, NY, USA, 197--206. https://doi.org/10.1145/1099203.1099239Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Center for Literacy Studies of the University of Tennessee. 2011. Communication Process. http://www.cls.utk.edu/pdf/ls/Week1_Lesson7.pdf Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  24. Adrian Furnham. 1982. The message, the context and the medium. Language & Communication, Vol. 2, 1 (1982), 33--47.Google ScholarGoogle ScholarCross RefCross Ref
  25. R. Stuart Geiger, Nelle Varoquaux, Charlotte Mazel-Cabasse, and Chris Holdgraf. 2018. The Types, Roles, and Practices of Documentation in Data Analytics Open Source Software Libraries. Computer Supported Cooperative Work (CSCW), Vol. 27, 3 (01 Dec 2018), 767--802.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Barney G Glaser. 1965. The Constant Comparative Method of Qualitative Analysis. Social Problems, Vol. 12, 4 (1965), 436--445.Google ScholarGoogle ScholarCross RefCross Ref
  27. Georgios Gousios, Margaret-Anne Storey, and Alberto Bacchelli. 2016. Work practices and challenges in pull-based development: the contributor's perspective. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). IEEE, IEEE, USA, 285--296.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Georgios Gousios, Andy Zaidman, Margaret-Anne Storey, and Arie Van Deursen. 2015. Work practices and challenges in pull-based development: the integrator's perspective. In Proceedings of the 37th International Conference on Software Engineering-Volume 1. IEEE Press, IEEE, USA, 358--368.Google ScholarGoogle ScholarCross RefCross Ref
  29. Carl Gutwin, Reagan Penner, and Kevin Schneider. 2004. Group Awareness in Distributed Software Development. In Proceedings of the 2004 ACM Conference on Computer Supported Cooperative Work (CSCW '04). ACM, New York, NY, USA, 72--81.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. James D Herbsleb. 2007. Global software engineering: The future of socio-technical coordination. In Future of Software Engineering (FOSE'07). IEEE, IEEE, Minneapolis, MN, USA, 188--198.Google ScholarGoogle Scholar
  31. James D. Herbsleb, David L. Atkins, David G. Boyer, Mark Handel, and Thomas A. Finholt. 2002. Introducing Instant Messaging and Chat in the Workplace. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '02). ACM, New York, NY, USA, 171--178. https://doi.org/10.1145/503376.503408Google ScholarGoogle Scholar
  32. A Hindle, D. M German, M. W Godfrey, and R. C Holt. 2012. Automatic classication of large changes into maintenance categories. In IEEE International Conference on Program Comprehension. IEEE, USA, 30--39.Google ScholarGoogle Scholar
  33. Y. Jiang, B. Adams, and D. M. German. 2013. Will my patch make it? And how fast? Case study on the Linux kernel. In 2013 10th Working Conference on Mining Software Repositories (MSR). IEEE, USA, 101--110. https://doi.org/10.1109/MSR.2013.6624016Google ScholarGoogle ScholarCross RefCross Ref
  34. The kernel development community. 2017a. How the development process works. https://www.kernel.org/doc/html/v4.11/_sources/process/2.Process.rst.txt Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  35. The kernel development community. 2017b. Submitting patches: the essential guide to getting your code into the kernel. https://www.kernel.org/doc/html/v4.11/_sources/process/submitting-patches.rst.txt Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  36. Andrew J Ko, Brad A Myers, and Duen Horng Chau. 2006. A linguistic analysis of how people describe software problems. In Visual Languages and Human-Centric Computing (VL/HCC'06). IEEE, IEEE, USA, 127--134.Google ScholarGoogle Scholar
  37. Ben Linders. 2017. Making Distributed Development Work. https://www.infoq.com/news/2017/03/distributed-development Retrieved January, 2019 fromGoogle ScholarGoogle Scholar
  38. Bjö rn Lundell, Brian Lings, P"a r J. Ågerfalk, and Brian Fitzgerald. 2006. The distributed open source software development model: observations on communication, coordination and control. In Proceedings of the Fourteenth European Conference on Information Systems, ECIS 2006, Gö teborg, Sweden, 2006. IEEE, USA, 683--694. http://aisel.aisnet.org/ecis2006/41Google ScholarGoogle Scholar
  39. Ray Madachy. 2007. Distributed Global Development Parametric Cost Modeling. In Software Process Dynamics and Agility, Qing Wang, Dietmar Pfahl, and David M. Raffo (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 159--168.Google ScholarGoogle Scholar
  40. Mark Mason. 2010. Sample Size and Saturation in PhD Studies Using Qualitative Interviews. Forum Qualitative Sozialforschung / Forum: Qualitative Social Research, Vol. 11 (08 2010).Google ScholarGoogle Scholar
  41. David W. McDonald and Mark S. Ackerman. 2000. Expertise Recommender: A Flexible Recommendation System and Architecture. In Proceedings of the 2000 ACM Conference on Computer Supported Cooperative Work (CSCW '00). ACM, New York, NY, USA, 231--240. https://doi.org/10.1145/358916.358994Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Tom Mens, Maálick Claes, Philippe Grosjean, and Alexander Serebrenik. 2014. Studying Evolving Software Ecosystems based on Ecological Models .Springer Berlin Heidelberg, Berlin, Heidelberg, 297--326. https://doi.org/10.1007/978--3--642--45398--4_10Google ScholarGoogle Scholar
  43. A. Mockus and J. Herbsleb. 2001. Challenges of Global Software Development. In Proceedings of the 7th International Symposium on Software Metrics (METRICS '01). IEEE Computer Society, Washington, DC, USA, 182--. http://dl.acm.org/citation.cfm?id=823456.824019Google ScholarGoogle ScholarCross RefCross Ref
  44. Audris Mockus and James D. Herbsleb. 2002. Expertise Browser: A Quantitative Approach to Identifying Expertise. In International Conference on Software Engineering. IEEE, USA, 503--512.Google ScholarGoogle Scholar
  45. Kumiyo Nakakoji, Yunwen Ye, and Yasuhiro Yamamoto. 2010. Supporting Expertise Communication in Developer-Centered Collaborative Software Development Environments .Springer Berlin Heidelberg, Berlin, Heidelberg, 219--236. https://doi.org/10.1007/978--3--642--10294--3_11Google ScholarGoogle Scholar
  46. Tuomas Niinimaki. 2011. Face-to-Face, Email and Instant Messaging in Distributed Agile Software Development Project. In Sixth IEEE International Conference on Global Software Engineering Workshop. IEEE, USA, 78--84.Google ScholarGoogle Scholar
  47. Peter C. Rigby and Margaret Anne Storey. 2011. Understanding broadcast based peer review on open source software projects. In International Conference on Software Engineering. IEEE, USA, 541--550.Google ScholarGoogle Scholar
  48. R Rivest. 1992. The MD5 Message-Digest Algorithm. Rfc, Vol. 473, 10 (1992), 492--492.Google ScholarGoogle Scholar
  49. K. Schmidt. 1994. Cooperative work and its articulation: requirements for computer support. Le Travail Humain, Vol. 57, 4 (1994), 345--366.Google ScholarGoogle Scholar
  50. Kjeld Schmidt and Carla Simone. 1999. Coordination mechanisms: towards a conceptual foundation of CSCW systems design. Computer Support Coop Work. J Collaborative Comput 5(2/3):155--200. Computer Supported Cooperative Work, Vol. 5 (11 1999).Google ScholarGoogle Scholar
  51. Edward Smith, Robert Loftin, Emerson Murphyhill, Christian Bird, and Thomas Zimmermann. 2013. Improving developer participation rates in surveys. In International Workshop on Cooperative and Human Aspects of Software Engineering. IEEE, San Francisco, CA, USA, 89--92.Google ScholarGoogle ScholarCross RefCross Ref
  52. Igor Steinmacher, Tayana Conte, Marco Aurélio Gerosa, and David Redmiles. 2015. Social barriers faced by newcomers placing their first contribution in open source software projects. In Proceedings of the 18th ACM conference on Computer supported cooperative work (CSCW) & social computing. ACM, ACM, New York, NY, USA, 1379--1392.Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Igor Steinmacher, Marco Gerosa, Tayana U Conte, and David F Redmiles. 2019. Overcoming Social Barriers When Contributing to Open Source Software Projects. Computer Supported Cooperative Work (CSCW), Vol. 28, 1--2 (2019), 247--290.Google ScholarGoogle ScholarCross RefCross Ref
  54. Margaret-Anne Storey, Alexey Zagalsky, Fernando Figueira Filho, Leif Singer, and Daniel M German. 2016. How social and communication channels shape and challenge a participatory culture in software development. IEEE Transactions on Software Engineering, Vol. 43, 2 (2016), 185--204.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Margaret Anne Storey, Alexey Zagalsky, Fernando Figueira Filho, Leif Singer, and Daniel M. German. 2017. How Social and Communication Channels Shape and Challenge a Participatory Culture in Software Development. IEEE Transactions on Software Engineering, Vol. 43, 2 (2017), 185--204.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Gail M Sullivan and Anthony R Artino Jr. 2013. Analyzing and interpreting data from Likert-type scales. Journal of graduate medical education, Vol. 5, 4 (2013), 541--542.Google ScholarGoogle ScholarCross RefCross Ref
  57. Yida Tao, Donggyun Han, and Sunghun Kim. 2014. Writing Acceptable Patches: An Empirical Study of Open Source Project Patches. In Proceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME '14). IEEE Computer Society, Washington, DC, USA, 271--280.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Nelson Nunes Tenório Junior, Danieli Pinto, and Pernille Bjørn. 2018. Accountability in Brazilian Governmental Software Project: How Chat Technology Enables Social Translucence in Bug Report Activities. Computer Supported Cooperative Work (CSCW), Vol. 27 (06 2018), 715--740.Google ScholarGoogle Scholar
  59. Josh Terrell, Andrew Kofink, Justin Middleton, Clarissa Rainear, Emerson Murphy-Hill, Chris Parnin, and Jon Stallings. 2017. Gender differences and bias in open source: Pull request acceptance of women versus men. PeerJ Computer Science, Vol. 3 (2017), e111.Google ScholarGoogle ScholarCross RefCross Ref
  60. M. Rita Thissen, Jean M. Page, Madhavi C. Bharathi, and Toyia L. Austin. 2007. Communication Tools for Distributed Software Development Teams. In Proceedings of the 2007 ACM SIGMIS CPR Conference on Computer Personnel Research: The Global Information Technology Workforce (SIGMIS CPR '07). ACM, New York, NY, USA, 28--35. https://doi.org/10.1145/1235000.1235007Google ScholarGoogle Scholar
  61. Linus Torvalds and David Diamond. 2001. Just for Fun: The Story of an Accidental Revolutionary. Harperbusiness, Vol. 238, 6--7 (2001), S87.Google ScholarGoogle Scholar
  62. Jason Tsay, Laura Dabbish, and James Herbsleb. 2014. Let's Talk About It: Evaluating Contributions Through Discussion in GitHub. In Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 144--154. https://doi.org/10.1145/2635868.2635882Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Pei-Yun Tu, Chien Wen (Tina) Yuan, and Hao-Chuan Wang. 2018. Do You Think What I Think: Perceptions of Delayed Instant Messages in Computer-Mediated Communication of Romantic Relations. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems (CHI '18). ACM, New York, NY, USA, Article 101, bibinfonumpages11 pages. https://doi.org/10.1145/3173574.3173675Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Yulin Xu and Minghui Zhou. 2018. A Multi-level Dataset of Linux Kernel Patchwork. In Proceedings of the 15th International Conference on Mining Software Repositories (MSR '18). ACM, New York, NY, USA, 54--57. https://doi.org/10.1145/3196398.3196475Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Yue Yu, Huaimin Wang, Vladimir Filkov, Premkumar Devanbu, and Bogdan Vasilescu. 2015. Wait for it: determinants of pull request evaluation latency on GitHub. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. IEEE, IEEE, USA, 367--371.Google ScholarGoogle ScholarCross RefCross Ref
  66. Nabi Zamani. 2018. Generating release notes from git commit messages using basic shell commands (git/grep). https://blogs.sap.com/2018/06/22/generating-release-notes-from-git-commit-messages-using-basic-shell-commands-gitgrep/ Retrieved June, 2019 fromGoogle ScholarGoogle Scholar
  67. Minghui Zhou, Qingying Chen, Audris Mockus, and Fengguang Wu. 2017. On the Scalability of Linux Kernel Maintainers' Work. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2017). ACM, New York, NY, USA, 27--37.Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Minghui Zhou and Audris Mockus. 2012. What Make Long Term Contributors: Willingness and Opportunity in OSS Community. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). IEEE Press, Piscataway, NJ, USA, 518--528. http://dl.acm.org/citation.cfm?id=2337223.2337284Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Jiaxin Zhu, Minghui Zhou, and Audris Mockus. 2016. Effectiveness of Code Contribution: From Patch-based to Pull-request-based Tools. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2016). ACM, New York, NY, USA, 871--882.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. How to Communicate when Submitting Patches: An Empirical Study of the Linux Kernel

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image Proceedings of the ACM on Human-Computer Interaction
      Proceedings of the ACM on Human-Computer Interaction  Volume 3, Issue CSCW
      November 2019
      5026 pages
      EISSN:2573-0142
      DOI:10.1145/3371885
      Issue’s Table of Contents

      Copyright © 2019 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 7 November 2019
      Published in pacmhci Volume 3, Issue CSCW

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader