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.
- M. Bayne, R. Cook, and M. D. Ernst. Always-available static and dynamic feedback. In ICSE, page 521, 2011. Google ScholarDigital Library
- K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999. Google ScholarDigital Library
- K. Beck. Test-Driven Development: By Example. Addison-Wesley, 2003. Google ScholarDigital Library
- 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.Google Scholar
- L.-T. Cheng, S. Hupfer, S. Ross, and J. Patterson. Jazzing up Eclipse with collaborative tools. In OOPSLA workshop on eclipse technology eXchange, 2003. Google ScholarDigital Library
- A. Cockburn. Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley, 2004. Google ScholarDigital Library
- P. Dewan, P. Agarwal, G. Shroff, and R. Hegde. Distributed side-by-side programming. In CHASE, page 7, 2009. Google ScholarDigital Library
- P. Dewan and J. Riedl. Toward Computer-Supported Concurrent Software Engineering. IEEE Computer, 26:17--27, 1993. Google ScholarDigital Library
- M. Goldman, G. Little, and R. C. Miller. Collabode: Collaborative Coding in the Browser. In CHASE, page 65, May 2011. Google ScholarDigital Library
- M. Goldman and R. C. Miller. Test-Driven Roles for Pair Programmming. In CHASE, pages 515--516, 2010. Google ScholarDigital Library
- L. Hattori and M. Lanza. Syde: a tool for collaborative software development. In ICSE, pages 235--238, 2010. Google ScholarDigital Library
- R. Hegde and P. Dewan. Connecting Programming Environments to Support Ad-Hoc Collaboration. In ASE, pages 178--187. IEEE, Sept. 2008. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- R. Holmes and R. J. Walker. Customized awareness: recommending relevant external change events. In ICSE, pages 465--474, 2010. Google ScholarDigital Library
- 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.Google Scholar
- 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. Google ScholarDigital Library
- S. Minor. Interacting with structure-oriented editors. International Journal of Man-Machine Studies, 37(4):399--418, Oct. 1992. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- B. G. Ryder and F. Tip. Change impact analysis for object-oriented programs. In Workshop on Program Analysis for Software Tools and Engineering, 2001. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- S. Salinger, C. Oezbek, K. Beecher, and J. Schenk. Saros: an Eclipse plug-in for distributed party programming. In CHASE, pages 48--55, 2010. Google ScholarDigital Library
- A. Sarma, Z. Noroozi, and A. van Der Hoek. Palantír: raising awareness among configuration management workspaces. In ICSE, pages 444--454, 2003. Google ScholarDigital Library
- F. Servant, J. A. Jones, and A. V. D. Hoek. CASI: preventing indirect conflicts through a live visualization. In CHASE, pages 39--46, 2010. Google ScholarDigital Library
- 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.Google ScholarCross Ref
- C. Sun and C. Ellis. Operational transformation in real-time group editors. In Proc. Computer Supported Cooperative Work, pages 59--68, 1998. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- R. C. Waters. Program editors should not abandon text oriented commands. ACM SIGPLAN Notices, 17(7):39, July 1982. Google ScholarDigital Library
- 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. Google ScholarDigital Library
- 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. Google ScholarDigital Library
Index Terms
- Real-time collaborative coding in a web IDE
Recommendations
Role-based interfaces for collaborative software development
UIST '11 Adjunct: Proceedings of the 24th annual ACM symposium adjunct on User interface software and technologyReal-time collaboration between multiple simultaneous contributors to a shared document is full of both opportunities and pitfalls, as evidenced by decades of research and industry work in computer-supported cooperative work. In the domain of software ...
Gender Effects on Collaborative Online Brainstorming Teamwork
CHI EA '19: Extended Abstracts of the 2019 CHI Conference on Human Factors in Computing SystemsIt is common for individuals with diverse demographic backgrounds to collaborate through computer-mediated communication (CMC) technologies. Groups with internal diversity are typically considered to be advantageous to group performance due to the ...
Collaborative Writing Is Hard to Support: A Field Study of Collaborative Writing
This paper documents the results of a field test of Instant Update, a collaborative writing tool by a geographically dispersed department at the MITRE Corporation. Thirty-six participants were given Instant Update software and free training and support ...
Comments