ABSTRACT
Real-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 engineering, collaboration is still generally achieved either via shared use of a single computer (e.g. pair programming) or with version control (and manual pushing and pulling of changes). By examining and designing for the different roles collaborating programmers play when working synchronously together, we can build real-time collaborative programming systems that make their collaboration more effective. And beyond simple shared editing, we can provide asymmetric, role-specific interfaces on their shared task. Collabode is a web-based IDE for collaborative programming with simultaneous editors that, along with several novel models for closely-collaborative software development, explores the potential of real-time cooperative programming.
- Kent Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999. Google ScholarDigital Library
- Kent Beck. Test-Driven Development: By Example. Addison-Wesley, 2003. Google ScholarDigital Library
- Sallyann Bryant. Rating Expertise in Collaborative Software Development. In Proc. PPIG, pages 19--29, 2005.Google Scholar
- Sallyann Bryant, Pablo Romero, and Benedict du Boulay. Pair programming and the mysterious role of the navigator. International Journal of Human-Computer Studies, 66(7):10, 2008. Google ScholarDigital Library
- Li-Te Cheng, Susanne Hupfer, Steven Ross, and John Patterson. Jazzing up Eclipse with collaborative tools. In OOPSLA workshop on eclipse technology eXchange, 2003. Google ScholarDigital Library
- Jan Chong and T Hurlbutt. The Social Dynamics of Pair Programming. In International Conference on Software Engineering, pages 354--363. Ieee, May 2007. Google ScholarDigital Library
- Alistair Cockburn. Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley, 2004. Google ScholarDigital Library
- P. Dewan and J. Riedl. Toward Computer-Supported Concurrent Software Engineering. IEEE Computer, 26:17--27, 1993. Google ScholarDigital Library
- Prasun Dewan, Puneet Agarwal, Gautam Shroff, and Rajesh Hegde. Distributed side-by-side programming. In CHASE, page 7, 2009. Google ScholarDigital Library
- Max Goldman, Greg Little, and Robert C. Miller. Collabode: Collaborative Coding in the Browser. In CHASE, page 65, May 2011. Google ScholarDigital Library
- Max Goldman, Greg Little, and Robert C. Miller. Real-Time Collaborative Coding in a Web IDE. In UIST (to appear), 2011. Google ScholarDigital Library
- Max Goldman and Robert C. Miller. Test-Driven Roles for Pair Programmming. In CHASE, pages 515--516, 2010. Google ScholarDigital Library
- Lile Hattori and Michele Lanza. Syde: a tool for collaborative software development. In ICSE, pages 235--238, 2010. Google ScholarDigital Library
- Rajesh Hegde and Prasun Dewan. Connecting Programming Environments to Support Ad-Hoc Collaboration. In ASE, pages 178--187. IEEE, September 2008. Google ScholarDigital Library
- Chih-Wei Ho, Somik Raha, Edward Gehringer, and Laurie Williams. Sangam: a distributed pair programming plug-in for Eclipse. In OOPSLA workshop on Eclipse Technology eXchange, page 73, 2004. Google ScholarDigital Library
- Reid Holmes and Robert J. Walker. Customized awareness: recommending relevant external change events. In ICSE, pages 465--474, 2010. Google ScholarDigital Library
- David Saff and Michael D. Ernst. Reducing wasted development time via continuous testing. In International Symposium on Software Reliability Engineering, pages 281--292. IEEE, 2003. Google ScholarDigital Library
- Stephan Salinger, Christopher Oezbek, Karl Beecher, and Julia 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
- Francisco Servant, James A. Jones, and André Van Der Hoek. CASI: preventing indirect conflicts through a live visualization. In CHASE, pages 39--46, 2010. Google ScholarDigital Library
- Christoph Treude and Margaret-Anne Storey. Awareness 2.0: staying aware of projects, developers and tasks using dashboards and feeds. In ICSE, pages 365--374, 2010. Google ScholarDigital Library
- Arie van Deursen, Ali Mesbah, Bas Cornelissen, Andy Zaidman, Martin Pinzger, and Anja Guzzi. Adinda: a knowledgeable, browser-based IDE. In ICSE, pages 203--206, 2010. Google ScholarDigital Library
Index Terms
- Role-based interfaces for collaborative software development
Recommendations
Collaborative Software Development: A Discussion of Problem Solving Models and Groupware Technologies
HICSS '02: Proceedings of the 35th Annual Hawaii International Conference on System Sciences (HICSS'02)-Volume 1 - Volume 1Teamwork is always challenging. Adding the complication of problem solving and software design only amplifies this challenge. The challenges of developing software as a team can be reduced by using groupware to coordinate and communicate the intricate ...
5th Workshop on Wikis for Software Engineering
WikiSym '11: Proceedings of the 7th International Symposium on Wikis and Open CollaborationUsing a wiki in software engineering settings dates back to its first usage in 1995. In fact, that was the motivation for Ward Cunningham to create the first wiki. Due to its simplicity, attractiveness and effectiveness for collaborative authoring and ...
Role-based collaboration and its kernel mechanisms
Computer-supported cooperative work (CSCW) systems are computer-based tools that support the collaborative activities of human users. They should not only support virtual face-to-face collaborative environments but also improve face-to-face ...
Comments