480 likes | 668 Views
A Survey of Collaborative Tools in Software Development. Anita Sarma Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine asarma@ics.uci.edu Advancement to Candidacy March 17, 2005. Software Development.
E N D
A Survey of Collaborative Tools in Software Development Anita Sarma Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine asarma@ics.uci.edu Advancement to Candidacy March 17, 2005
Software Development • “Is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs.” [Schach] • “Multi-person construction of multi-version software” [Parnas] • “Deals with the building of software systems which are so large that they are built by a team or teams of engineers.” [Ghezzi, Jazayeri, Mandrioli]
Challenges in Coordination • Large team size • Duplication in task assignment • Distributed development • Different kinds of artifacts • Cognitive overload • Lack of technology support • …
Coordination Tools • Software configuration management • Process modeling • Decision support systems • Workflow • Synchronous editors • Event notification • …
Software Engineering versus CSCW Strengths Weaknesses Group centric, controlled, scalable, insulation from other activities, specific synchronization points Insulation becomes isolation, resynchronization problems Software Engineering User centric, flexible, small group support, promotes synergy, raises awareness Extensive human intermediation, not scalable CSCW
Current Trend in Tool Development • Researchers have recognized the need to combine approaches from the two areas • Borrow bits and pieces from the other area • Primarily ad hoc in nature • Process & groupware [Di Nitto, Ben-Shaul, Barthelmess] • IDE & awareness [Jazz, Palantír, GroupDesk] To build coordination tools of the future, research needs to be cross disciplinary in nature
Existing Frameworks Author(s) Framework Focus Grudin (94) Space / Time Matrix Temporality and location of teams Nutt (96) Model domain space Characteristics of a work- flow model Malone & Crowston (94) Interdisciplinary theory of coordination Managing interdependencies between activities van der Hoek, et al. (04) Formal versus informal approach High-level approach to collaboration (process-based or awareness-based)
My Framework Author(s) Framework Focus Grudin (94) Space / Time Matrix Temporality and location of teams Nutt (96) Model domain space Characteristics of a work- flow model Malone & Crowston (94) Interdisciplinary theory of coordination Managing interdependencies between activities van der Hoek, et al. (04) Formal versus informal approach High-level approach to collaboration (process-based or awareness-based) Sarma (05) Pyramid User effort required in using the tools
Continuous coordination, collaborative architecture, seamless development environments Seamless Low user effort Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Passive Instant Messaging, monitoring changes to artifacts Proactive Fine grained versioning, conflict resolution , Organizational memory, social navigation Defined Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Functional High user effort Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management My Classification Framework
Continuous coordination, collaborative architecture, seamless development environments Seamless Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Passive Instant Messaging, monitoring changes to artifacts Proactive Fine grained versioning, conflict resolution , Organizational memory, social navigation Defined Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Functional Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management Layers
Continuous coordination, collaborative architecture, seamless development environments Seamless Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Passive Instant Messaging, monitoring changes to artifacts Proactive Fine grained versioning, conflict resolution , Organizational memory, social navigation Defined Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Functional Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management Strands
Seamless Passive Proactive Defined Functional Layer 1 – Functional Tools Continuous coordination, collaborative architecture, seamless development environments Email Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection SCM, repository based systems Instant Messaging, monitoring changes to artifacts Fine grained versioning, conflict resolution , Organizational memory, social navigation Email, project management tools, bug trackers Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management
Continuous coordination, collaborative architecture, seamless development environments Seamless Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Passive Instant Messaging, monitoring changes to artifacts Proactive Fine grained versioning, conflict resolution , Organizational memory, social navigation Defined Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Functional Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management Layer 2 – Defined Tools Bug trackers, SCM check-in comments Asynchronous parallel development, synchronous editors Workflow, process modeling
Continuous coordination, collaborative architecture, seamless development environments Seamless Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Passive Instant Messaging, monitoring changes to artifacts Proactive Fine grained versioning, conflict resolution , Organizational memory, social navigation Defined Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Functional Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management Layer 3 – Proactive Tools Instant Messaging, notification of changes (monitors, visualizations) Fine grained versioning, conflict resolution tools Information visualization recommendation systems, social Navigation, GDSS
Seamless Passive Proactive Defined Functional Layer 4 – Passive Tools Continuous coordination, collaborative architecture, seamless development environments Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Instant Messaging, monitoring changes to artifacts Fine grained versioning, conflict resolution , Organizational memory, social navigation Awareness (social, task-oriented, room-based), event notification services Privacy concerns, interruption management, modes of collaboration Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Change analysis methods, social callgraphs, task-based SCM systems Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management
Seamless Passive Proactive Defined Functional Layer 5 – Seamless Layer Continuous coordination, collaborative architecture, seamless development environments Collocation benefits to distributed development Passive awareness, manage information overload Advanced conflict detection Instant Messaging, monitoring changes to artifacts Organizational memory, social navigation Fine grained versioning, conflict resolution , Communication archival along with artifacts Prescribed and defined coordination support Parallel development, roles and access rights Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Asynchronous communication Artifact Management Communication Task Management
Seamless Passive Proactive Defined Functional ? ? ? ? ? ? Collocation benefits to distributed development Collocation benefits to distributed development Passive awareness, manage information overload Passive awareness, manage information overload Advanced conflict detection Advanced conflict detection Instant Messaging, monitoring changes to artifacts Instant Messaging, monitoring changes to artifacts Organizational memory, social navigation Fine grained versioning, conflict resolution Fine grained versioning, conflict resolution , , Organizational memory, social navigation Communication archival along with artifacts Communication archival along with artifacts Prescribed and defined coordination support Prescribed and defined coordination support Parallel development, roles and access rights Parallel development, roles and access rights Access to common set of artifacts, isolated workspaces and version control Access to common set of artifacts, isolated workspaces and version control Task allocation and assignment Task allocation and assignment Asynchronous communication Asynchronous communication Artifact Management Artifact Management Communication Communication Task Management Task Management
Seamless Passive Proactive Defined Functional My Classification Framework Ubiquitous and pervasive coordination Unobtrusive coordination information reducing distraction Enhanced information allowing proactive coordination , Structured processes to achieve smooth coordination in complex systems Basic coordination support needed to achieve rudimentary collaboration Artifact Management Communication Task Management
Usage of the Framework • Evolution of technology • Software Configuration Management • Groupware • Classification of tools • Palantír • Augur • Highlighting potential future directions • Palantír • Augur
Software Configuration Management Passive awareness, Advanced conflict manage information detection overload Instant Messaging, Fine grained versioning, monitoring changes conflict resolution to artifacts Communication archival Parallel development, Prescribed and defined along with artifacts roles and access rights coordination support Access to common set of artifacts, isolated workspaces and version control
Groupware Passive awareness, Collocation benefits to manage information distributed development overload Organizational memor y , knowledge acquisition and dissemination, social navigation Parallel development, roles and access rights
Palantír Communication: Passive layer
Augur Task management: Proactive layer
Future Direction: Palantír Continuous coordination, collaborative architecture, seamless development environments Passive awareness, manage information overload Collocation benefits to distributed development Advanced conflict detection
Future Direction: Augur Collocation benefits to distributed development Advanced conflict detection Organizational memory, social navigation
Observations – Framework • A different but critical perspective – user effort • The layers do not strictly represent historical evolution • As we move up the pyramid • User effort reduces • Strands of the pyramid intermingle • The top of the pyramid has been left open to signify further research • More layers may be needed before reaching the Seamless layer
Observations – Tools • Natural ordering among the tools • A tool can exist in different strands in different layers • Tools often build on the underlying infrastructure and experiences learned • Trends among tools • Try to move up the pyramid • Employ more than one strand
My Recommendations • Understand both software engineering principles and CSCW experiences • Automated support for detecting conflicting situations • Integrated support for the strands of the pyramid • Cross-artifact explorations • Intelligent systems – self adaptive systems • Peripheral visualizations
Palantír • Problem: isolation created by SCM workspaces leads to conflicting changes • Approach: break the isolation of workspaces by providing awareness of parallel activities • Visualizations to show: • Which artifact is being changed by which developer • The size of the changes • The impact of others’ changes on current work
Another Influencing Factor Technology Needs Activities
Expertise Browser Task management: Proactive layer
Social Call Graphs Task management: Proactive layer Artifact Management: Passive Layer
Why a Pyramid? • Framework has 5 layers and 3 strands • Layers - distinct ordering of the tools based on the user effort required • Strands - the inherent activities involved in collaboration • The strands slowly intermingle to depict the change in the approach of the tools
Applicable to Other Fields • No • The framework has been created based on the available tools for software development • The idea of using layers and strands in the framework is universal • Strands – different fields may have different activities inherent for collaboration • Layers • Identify the difference in user effort required • The different collaboration needs that prompted the tools
Characteristics of Tools at a layer • Functionality of tools can be split into different layers • Tools at a higher layer does not signify that they are better • Tools at a layer inherently build on the underlying layer. If not directly by using the underlying infrastructure, then from the experience gained from tool usage
Time vs. Place Matrix – Grudin(1994) TIME Different and Un-predictable Different but predictable same Meeting facilitation Work shifts Team rooms same Tele/ Video/ Desktop/ conferencing Electronic mail Collaborative writing Different but predictable PLACE Interactive multicast seminar Computer boards Work flow Different and Un-predictable
Model for Workflow Systems – Nutt, 1996 Amount of Detail 1.0 = Fully implemented Required Conformance 1.0 = No deviation 1.0 = Fully implemented Operational Abstraction
Interdisciplinary Coordination – Malone & Crowston, 1994 Process Example Systems Managing shared resources (task assignment and prioritization) Coordinator, Information Lens Managing producer / consumer relationships (sequencing pre-requisites) Polymer Managing simultaneity constraints (Synchronizing) Meeting scheduling tools [14] Managing task/ subtask relation- ship (goal decomposition) Polymer Group decision making gIBIS, Sibyl, electronic meeting rooms Electronic mail, computer conferencing electronic meeting rooms, Information lens, collaborative authoring tools Communication
Formal vs. Informal - van der Hoek, et al., 2004 Conceptual visualization Formal process based coordination Informal awareness based coordination Continuous coordination