skip to main content
10.1145/2047196.2047215acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
research-article

Real-time collaborative coding in a web IDE

Published: 16 October 2011 Publication History

Abstract

This paper describes Collabode, a web-based Java integrated development environment designed to support close, synchronous collaboration between programmers. We examine the problem of collaborative coding in the face of program compilation errors introduced by other users which make collaboration more difficult, and describe an algorithm for error-mediated integration of program code. Concurrent editors see the text of changes made by collaborators, but the errors reported in their view are based only on their own changes. Editors may run the program at any time, using only error-free edits supplied so far, and ignoring incomplete or otherwise error-generating changes. We evaluate this algorithm and interface on recorded data from previous pilot experiments with Collabode, and via a user study with student and professional programmers. We conclude that it offers appreciable benefits over naive continuous synchronization without regard to errors and over manual version control.

References

[1]
M. Bayne, R. Cook, and M. D. Ernst. Always-available static and dynamic feedback. In ICSE, page 521, 2011.
[2]
K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
[3]
K. Beck. Test-Driven Development: By Example. Addison-Wesley, 2003.
[4]
J. Bo, B. Jiajun, C. Chun, and W. Bo. Semantic consistency maintenance in collaborative graphics design systems. In Proc. Computer Supported Cooperative Work in Design, pages 35--40. IEEE, Apr. 2008.
[5]
L.-T. Cheng, S. Hupfer, S. Ross, and J. Patterson. Jazzing up Eclipse with collaborative tools. In OOPSLA workshop on eclipse technology eXchange, 2003.
[6]
A. Cockburn. Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley, 2004.
[7]
P. Dewan, P. Agarwal, G. Shroff, and R. Hegde. Distributed side-by-side programming. In CHASE, page 7, 2009.
[8]
P. Dewan and J. Riedl. Toward Computer-Supported Concurrent Software Engineering. IEEE Computer, 26:17--27, 1993.
[9]
M. Goldman, G. Little, and R. C. Miller. Collabode: Collaborative Coding in the Browser. In CHASE, page 65, May 2011.
[10]
M. Goldman and R. C. Miller. Test-Driven Roles for Pair Programmming. In CHASE, pages 515--516, 2010.
[11]
L. Hattori and M. Lanza. Syde: a tool for collaborative software development. In ICSE, pages 235--238, 2010.
[12]
R. Hegde and P. Dewan. Connecting Programming Environments to Support Ad-Hoc Collaboration. In ASE, pages 178--187. IEEE, Sept. 2008.
[13]
C.-W. Ho, S. Raha, E. Gehringer, and L. Williams. Sangam: a distributed pair programming plug-in for Eclipse. In OOPSLA workshop on Eclipse Technology eXchange, page 73, 2004.
[14]
R. Holmes and R. J. Walker. Customized awareness: recommending relevant external change events. In ICSE, pages 465--474, 2010.
[15]
C.-L. Ignat and M. C. Norrie. Handling Conflicts through Multi-level Editing in Peer-to-peer Environments. In Proc. CSCW Workshop on Collaborative Editing Systems, 2006.
[16]
A. J. Ko, H. H. Aung, and B. A. Myers. Design requirements for more flexible structured editors from a study of programmers' text editing. In CHI Extended Abstracts, CHI EA '05, page 1557, 2005.
[17]
S. Minor. Interacting with structure-oriented editors. International Journal of Man-Machine Studies, 37(4):399--418, Oct. 1992.
[18]
X. Ren, F. Shah, F. Tip, B. G. Ryder, and O. Chesley. Chianti: a tool for change impact analysis of java programs. In Proc. OOPSLA, volume 39, 2004.
[19]
B. G. Ryder and F. Tip. Change impact analysis for object-oriented programs. In Workshop on Program Analysis for Software Tools and Engineering, 2001.
[20]
D. Saff and M. D. Ernst. Reducing wasted development time via continuous testing. In International Symposium on Software Reliability Engineering, pages 281--292. IEEE, 2003.
[21]
S. Salinger, C. Oezbek, K. Beecher, and J. Schenk. Saros: an Eclipse plug-in for distributed party programming. In CHASE, pages 48--55, 2010.
[22]
A. Sarma, Z. Noroozi, and A. van Der Hoek. Palantír: raising awareness among configuration management workspaces. In ICSE, pages 444--454, 2003.
[23]
F. Servant, J. A. Jones, and A. V. D. Hoek. CASI: preventing indirect conflicts through a live visualization. In CHASE, pages 39--46, 2010.
[24]
D. Shao, S. Khurshid, and D. E. Perry. Evaluation of Semantic Interference Detection in Parallel Changes: an Exploratory Experiment. In International Conference on Software Maintenance, pages 74--83. IEEE, Oct. 2007.
[25]
C. Sun and C. Ellis. Operational transformation in real-time group editors. In Proc. Computer Supported Cooperative Work, pages 59--68, 1998.
[26]
C. Treude and M.-A. Storey. Awareness 2.0: staying aware of projects, developers and tasks using dashboards and feeds. In ICSE, pages 365--374, 2010.
[27]
A. van Deursen, A. Mesbah, B. Cornelissen, A. Zaidman, M. Pinzger, and A. Guzzi. Adinda: a knowledgeable, browser-based IDE. In ICSE, pages 203--206, 2010.
[28]
R. C. Waters. Program editors should not abandon text oriented commands. ACM SIGPLAN Notices, 17(7):39, July 1982.
[29]
J. Wloka, B. Ryder, F. Tip, and X. Ren. Safe-commit analysis to facilitate team software development. In International Conference on Software Engineering, pages 507--517, 2009.
[30]
J. Wloka, B. G. Ryder, and F. Tip. JUnitMX - A change-aware unit testing tool. In International Conference on Software Engineering, pages 567--570, 2009.

Cited By

View all
  • (2024)An Implementation of Web-Based Answer Platform in the Flutter Programming Learning Assistant System Using Docker ComposeElectronics10.3390/electronics1324487813:24(4878)Online publication date: 11-Dec-2024
  • (2024)Don't Step on My Toes: Resolving Editing Conflicts in Real-Time Collaboration in Computational NotebooksProceedings of the 1st ACM/IEEE Workshop on Integrated Development Environments10.1145/3643796.3648453(47-52)Online publication date: 20-Apr-2024
  • (2024)Understanding Real-Time Collaborative Programming: A Study of Visual Studio Live ShareACM Transactions on Software Engineering and Methodology10.1145/364367233:4(1-28)Online publication date: 27-Jan-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
UIST '11: Proceedings of the 24th annual ACM symposium on User interface software and technology
October 2011
654 pages
ISBN:9781450307161
DOI:10.1145/2047196
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 October 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. collaboration
  2. collaborative editing
  3. pair programming

Qualifiers

  • Research-article

Conference

UIST '11

Acceptance Rates

UIST '11 Paper Acceptance Rate 67 of 262 submissions, 26%;
Overall Acceptance Rate 561 of 2,567 submissions, 22%

Upcoming Conference

UIST '25
The 38th Annual ACM Symposium on User Interface Software and Technology
September 28 - October 1, 2025
Busan , Republic of Korea

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)101
  • Downloads (Last 6 weeks)11
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)An Implementation of Web-Based Answer Platform in the Flutter Programming Learning Assistant System Using Docker ComposeElectronics10.3390/electronics1324487813:24(4878)Online publication date: 11-Dec-2024
  • (2024)Don't Step on My Toes: Resolving Editing Conflicts in Real-Time Collaboration in Computational NotebooksProceedings of the 1st ACM/IEEE Workshop on Integrated Development Environments10.1145/3643796.3648453(47-52)Online publication date: 20-Apr-2024
  • (2024)Understanding Real-Time Collaborative Programming: A Study of Visual Studio Live ShareACM Transactions on Software Engineering and Methodology10.1145/364367233:4(1-28)Online publication date: 27-Jan-2024
  • (2024)CoPrompt: Supporting Prompt Sharing and Referring in Collaborative Natural Language ProgrammingProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642212(1-21)Online publication date: 11-May-2024
  • (2024)Error-Tolerant Code Segmentation for Supporting Semantic Conflict Prevention in Real-Time Collaborative Programming2024 IEEE International Conference on Systems, Man, and Cybernetics (SMC)10.1109/SMC54092.2024.10832108(4588-4593)Online publication date: 6-Oct-2024
  • (2024)CodeFlow: Real-Time Collaborative Code Editor2024 International Conference on Knowledge Engineering and Communication Systems (ICKECS)10.1109/ICKECS61492.2024.10617308(1-5)Online publication date: 18-Apr-2024
  • (2024)CollabCodeX: An Effective Platform for Enhancing the Teaching-Learning Experience2024 IEEE International Conference on Blockchain and Distributed Systems Security (ICBDS)10.1109/ICBDS61829.2024.10837151(1-5)Online publication date: 17-Oct-2024
  • (2024)An Empirical Study on Collaborative Uses of Communication Channels for Software Development and Management2024 34th International Conference on Collaborative Advances in Software and COmputiNg (CASCON)10.1109/CASCON62161.2024.10838181(1-10)Online publication date: 11-Nov-2024
  • (2023)CoAIcoder: Examining the Effectiveness of AI-assisted Human-to-Human Collaboration in Qualitative AnalysisACM Transactions on Computer-Human Interaction10.1145/361736231:1(1-38)Online publication date: 29-Nov-2023
  • (2023)Can Synchronous Code Editing and Awareness Tools Support Remote Tutoring? Effects on Learning and TeachingProceedings of the ACM on Human-Computer Interaction10.1145/36101777:CSCW2(1-30)Online publication date: 4-Oct-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media