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.
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- Frederick P. Brooks, Jr. 1995. The Mythical Man-month (Anniversary Ed.) .Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Scott Chacon and Ben Straub. 2014. Pro Git 2nd ed.). Apress, Berkely, CA, USA.Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- PostgreSQL community. 2013. Submitting a Patch. https://wiki.postgresql.org/wiki/Submitting_a_Patch Retrieved January, 2019 fromGoogle Scholar
- 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 Scholar
- Alan Cox, Alexander Viro, and et al. 2015. The linux-kernel mailing list FAQ. http://vger.kernel.org/lkml/ Retrieved January, 2019 fromGoogle Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Adrian Furnham. 1982. The message, the context and the medium. Language & Communication, Vol. 2, 1 (1982), 33--47.Google ScholarCross Ref
- 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 ScholarDigital Library
- Barney G Glaser. 1965. The Constant Comparative Method of Qualitative Analysis. Social Problems, Vol. 12, 4 (1965), 436--445.Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Ben Linders. 2017. Making Distributed Development Work. https://www.infoq.com/news/2017/03/distributed-development Retrieved January, 2019 fromGoogle Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- R Rivest. 1992. The MD5 Message-Digest Algorithm. Rfc, Vol. 473, 10 (1992), 492--492.Google Scholar
- K. Schmidt. 1994. Cooperative work and its articulation: requirements for computer support. Le Travail Humain, Vol. 57, 4 (1994), 345--366.Google Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 Scholar
- Linus Torvalds and David Diamond. 2001. Just for Fun: The Story of an Accidental Revolutionary. Harperbusiness, Vol. 238, 6--7 (2001), S87.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- How to Communicate when Submitting Patches: An Empirical Study of the Linux Kernel
Recommendations
Tips for submitting and reviewing CCSC papers
Over the last 11 years, the CCSC Mid-South Conference has been fortunate to receive, accept, and publish many excellent papers. In this panel discussion, past and present paper authors and paper chairs will give their viewpoints as to what precisely ...
Culture and collaborative technologies
CHI EA '07: CHI '07 Extended Abstracts on Human Factors in Computing SystemsThis workshop will explore interactions among culture, features of collaborative technologies, and group processes and outcomes. The workshop will address several key challenges to this area of research, including identifying important dimensions of ...
PTracer: a linux kernel patch trace bot
ASE '19: Proceedings of the 34th IEEE/ACM International Conference on Automated Software EngineeringWe present PTracer, a Linux kernel patch trace bot based on an improved PatchNet. PTracer continuously monitors new patches in the git repository of the mainline Linux kernel, filters out unconcerned ones, classifies the rest as bug-fixing or non bug-...
Comments