{"title":"了解实时协作编程:Visual Studio Live Share 研究","authors":"Xin Tan, Xinyue Lv, Jing Jiang, Li Zhang","doi":"10.1145/3643672","DOIUrl":null,"url":null,"abstract":"<p>Real-time collaborative programming (RCP) entails developers working simultaneously, regardless of their geographic locations. RCP differs from traditional asynchronous online programming methods, such as Git or SVN, where developers work independently and update the codebase at separate times. Although various real-time code collaboration tools (e.g., <i>Visual Studio Live Share</i>, <i>Code with Me</i>, and <i>Replit</i>) have kept emerging in recent years, none of the existing studies explicitly focus on a deep understanding of the processes or experiences associated with RCP. To this end, we combine interviews and an email survey with the users of <i>Visual Studio Live Share</i>, aiming to understand (i) the scenarios, (ii) the requirements, (ii) and the challenges when developers participate in RCP. We find that developers participate in RCP in 18 different scenarios belonging to six categories, e.g., <i>pair programming</i>, <i>group debugging</i>, and <i>code review</i>. However, existing users’ attitudes toward the usefulness of the current RCP tools in these scenarios were significantly more negative than the expectations of potential users. As for the requirements, the most critical category is <i>live editing</i>, followed by the need for <i>sharing terminals</i> to enable hosts and guests to run commands and see the results, as well as <i>focusing and following</i>, which involves “following” the host’s edit location and “focusing” the guests’ attention on the host with a notification. Under these categories, we identify 17 requirements, but most of them are not well supported by current tools. In terms of challenges, we identify 19 challenges belonging to seven categories. The most severe category of challenges is <i>lagging</i> followed by <i>permissions and conflicts</i>. The above findings indicate that the current RCP tools and even collaborative environment need to be improved greatly and urgently. Based on these findings, we discuss the recommendations for different stakeholders, including practitioners, tool designers, and researchers.</p>","PeriodicalId":50933,"journal":{"name":"ACM Transactions on Software Engineering and Methodology","volume":"330 1","pages":""},"PeriodicalIF":6.6000,"publicationDate":"2024-01-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Understanding Real-time Collaborative Programming: a Study of Visual Studio Live Share\",\"authors\":\"Xin Tan, Xinyue Lv, Jing Jiang, Li Zhang\",\"doi\":\"10.1145/3643672\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<p>Real-time collaborative programming (RCP) entails developers working simultaneously, regardless of their geographic locations. RCP differs from traditional asynchronous online programming methods, such as Git or SVN, where developers work independently and update the codebase at separate times. Although various real-time code collaboration tools (e.g., <i>Visual Studio Live Share</i>, <i>Code with Me</i>, and <i>Replit</i>) have kept emerging in recent years, none of the existing studies explicitly focus on a deep understanding of the processes or experiences associated with RCP. To this end, we combine interviews and an email survey with the users of <i>Visual Studio Live Share</i>, aiming to understand (i) the scenarios, (ii) the requirements, (ii) and the challenges when developers participate in RCP. We find that developers participate in RCP in 18 different scenarios belonging to six categories, e.g., <i>pair programming</i>, <i>group debugging</i>, and <i>code review</i>. However, existing users’ attitudes toward the usefulness of the current RCP tools in these scenarios were significantly more negative than the expectations of potential users. As for the requirements, the most critical category is <i>live editing</i>, followed by the need for <i>sharing terminals</i> to enable hosts and guests to run commands and see the results, as well as <i>focusing and following</i>, which involves “following” the host’s edit location and “focusing” the guests’ attention on the host with a notification. Under these categories, we identify 17 requirements, but most of them are not well supported by current tools. In terms of challenges, we identify 19 challenges belonging to seven categories. The most severe category of challenges is <i>lagging</i> followed by <i>permissions and conflicts</i>. The above findings indicate that the current RCP tools and even collaborative environment need to be improved greatly and urgently. Based on these findings, we discuss the recommendations for different stakeholders, including practitioners, tool designers, and researchers.</p>\",\"PeriodicalId\":50933,\"journal\":{\"name\":\"ACM Transactions on Software Engineering and Methodology\",\"volume\":\"330 1\",\"pages\":\"\"},\"PeriodicalIF\":6.6000,\"publicationDate\":\"2024-01-27\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM Transactions on Software Engineering and Methodology\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://doi.org/10.1145/3643672\",\"RegionNum\":2,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"COMPUTER SCIENCE, SOFTWARE ENGINEERING\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Software Engineering and Methodology","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1145/3643672","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0
摘要
实时协作编程(RCP)要求开发人员不分地理位置同时工作。实时协作编程不同于传统的异步在线编程方法,如 Git 或 SVN,在这些方法中,开发人员各自独立工作,并在不同的时间更新代码库。虽然近年来不断出现各种实时代码协作工具(如 Visual Studio Live Share、Code with Me 和 Replit),但现有的研究都没有明确侧重于深入了解与 RCP 相关的流程或体验。为此,我们结合对 Visual Studio Live Share 用户的访谈和电子邮件调查,旨在了解 (i) 开发人员参与 RCP 的情景、(ii) 需求、(ii) 挑战。我们发现,开发人员参与 RCP 的场景有 18 种,分属六个类别,如结对编程、小组调试和代码审查。然而,与潜在用户的期望相比,现有用户对当前 RCP 工具在这些场景中的实用性的态度明显更为消极。至于需求,最关键的类别是实时编辑,其次是共享终端的需求,以便主机和访客都能运行命令并查看结果,以及聚焦和跟随,这涉及到 "跟随 "主机的编辑位置,并通过通知将访客的注意力 "聚焦 "到主机上。在这些类别下,我们确定了 17 项要求,但其中大部分都没有得到现有工具的很好支持。在挑战方面,我们确定了属于 7 个类别的 19 项挑战。最严重的挑战类别是滞后,其次是权限和冲突。上述发现表明,当前的 RCP 工具甚至协作环境都急需大力改进。基于这些发现,我们讨论了针对不同利益相关者(包括从业人员、工具设计者和研究人员)的建议。
Understanding Real-time Collaborative Programming: a Study of Visual Studio Live Share
Real-time collaborative programming (RCP) entails developers working simultaneously, regardless of their geographic locations. RCP differs from traditional asynchronous online programming methods, such as Git or SVN, where developers work independently and update the codebase at separate times. Although various real-time code collaboration tools (e.g., Visual Studio Live Share, Code with Me, and Replit) have kept emerging in recent years, none of the existing studies explicitly focus on a deep understanding of the processes or experiences associated with RCP. To this end, we combine interviews and an email survey with the users of Visual Studio Live Share, aiming to understand (i) the scenarios, (ii) the requirements, (ii) and the challenges when developers participate in RCP. We find that developers participate in RCP in 18 different scenarios belonging to six categories, e.g., pair programming, group debugging, and code review. However, existing users’ attitudes toward the usefulness of the current RCP tools in these scenarios were significantly more negative than the expectations of potential users. As for the requirements, the most critical category is live editing, followed by the need for sharing terminals to enable hosts and guests to run commands and see the results, as well as focusing and following, which involves “following” the host’s edit location and “focusing” the guests’ attention on the host with a notification. Under these categories, we identify 17 requirements, but most of them are not well supported by current tools. In terms of challenges, we identify 19 challenges belonging to seven categories. The most severe category of challenges is lagging followed by permissions and conflicts. The above findings indicate that the current RCP tools and even collaborative environment need to be improved greatly and urgently. Based on these findings, we discuss the recommendations for different stakeholders, including practitioners, tool designers, and researchers.
期刊介绍:
Designing and building a large, complex software system is a tremendous challenge. ACM Transactions on Software Engineering and Methodology (TOSEM) publishes papers on all aspects of that challenge: specification, design, development and maintenance. It covers tools and methodologies, languages, data structures, and algorithms. TOSEM also reports on successful efforts, noting practical lessons that can be scaled and transferred to other projects, and often looks at applications of innovative technologies. The tone is scholarly but readable; the content is worthy of study; the presentation is effective.