280 likes | 413 Views
This paper presents a comprehensive need-based classification framework designed for understanding and enhancing collaborative software development. The framework outlines five distinct layers of coordination needs, from fundamental communication to unobtrusive and ubiquitous support systems. By categorizing the tools and methodologies available, the framework aids in identifying gaps in current practices and guiding tool developers. Insights derived from this classification can improve collaboration efficiency, facilitating the management of multi-version software projects and enriching team dynamics.
E N D
A Need-Based Collaboration Classification Framework Anita Sarma, André van der HoekInstitute for Software Research University of California, Irvine{asarma, andre}@ics.uci.edu Li-Te ChengIBM ResearchCUE group, Cambridgeli-te_cheng@us.ibm.com
Collaborative Development • Software Engineering: “multi-person construction of multi-version software” [Parnas 1987] • Group of participants working in concert towards a common goal • Intrinsic need: coordination
Limitations in Coordination Ability • Team size • Location of group members • Technology support • Types of artifacts
Approaches to Coordination • Configuration management systems • Process modeling • Groupware • Situated work • Workflow • MUDS • Decision support systems • Event notification • …
Time vs. Place Matrix - Grudin, 1994 TIME Different and Un-predictable Different but predictable same same Different but predictable PLACE Different and Un-predictable
Model for workflow systems, Nutt, 1996 Amount of Detail 1.0 = Fully implement Required Conformance 1.0 = No deviation 1.0 = Fully implement Operational Abstraction
Conceptual visualization Formal process based coordination Informal awareness based coordination Formal vs. Informal - van der Hoek, et al., 2004 van der Hoek, et.al, Continuous Coordination: A New Paradigm for Collaborative Software Engineering Tools. in Proceedings of Workshop on WoDISEE. 2004. Scotland.
Current Perspective • Classification frameworks for tools following a particular approach • Frameworks that span areas are coarse grained • Lack of guideline for • Tool developers • Existing infrastructures • Functionalities that are not addressed yet • Tool users • Comparison of tools in different research area
Goal • Framework for comparison of tools in different areas • Investigate how different areas relate • Insight into current state of research • Create a framework for literature survey
Self Actualization Esteem Needs Love Needs Safety Needs Physiological Needs Inspired by Maslow…
Rationale Technology Needs Activities
Layer 1 (fundamental) • Basic communication • Ability to synchronously and asynchronously communicate • Artifact management • Ability to access and modify common set of artifacts • Task management • Ability to distribute and recompose tasks Basic coordination support needed to achieve rudimentary collaboration
Plugin examples • Email: Nirvana • Chat: Hopy, Eclipse instant messenger • Project management: Open Time/RC, Timer
Layer 2 (defined) • Artifacts for communication • Ability to use the artifact as a communication medium • Artifact management • Ability to allow parallel development • Task management • Ability to smoothly coordinate the activities of developers • provide access rights Structured processes to achieve smooth coordination in complex systems
Plugin examples • Bug trackers: CodeBeamer, Jagzilla • CM: CVS SSL, Visual source safe, Spectrum SCM, Subclipse
Layer 3 (proactive) • Communication • Ability to embed context in communication • Ability to visualize and be notified of changes • Artifact management • Ability to resolve conflicts • Task management • Ability to assist developers using organizational memory, knowledge acquisition and dissemination Enhanced information provided that allows proactive coordination
Plugin examples • Notifications: CVSUpdateCheck, Insectivore • Conflict management: Rational ClearCase • Knowledge base: Jreflex, Hipikat, Strathcona • History of artifacts: Branchview, Boneclipse, Shrimp
Layer 4 (unobtrusive) • Communication • Ability to provide passive awareness • Artifact management • Ability to calculate the impact of changes on people and artifacts • Task management • Ability to simulate collocation benefits to distributed development Unobtrusive coordination information that helps in preventing information overload
Plugin examples • Passive awareness: Jazz, Palantír, Composonent • Dependencies: Feat • Screen sharing: Sangam, Zipper, Collaboration development tool
Layer 5 (ubiquitous) • Continuous coordination • Ability to set the level of coordination needed • Ability to create frictionless applications • Ability to proactively detect and resolve conflicts Ubiquitous and pervasive coordination
Plugins Examples • ???
Observations • Identify plugins that aid in collaboration • Not too many plugins do that • Plugins in layers 2 and 3 offer mainly alternate strategies • Currently • Needs in layer 1 seems to be solved • Layers 2 and 3 have lots of plugins • Layer 4 has few plugins • Needs in layer 5 have not been addressed yet
Summary • Should focus in creating better techniques to solve needs in layer 4 • Focus in identifying the techniques that cater to needs in layer 5 • Eclipse provides the right infrastructure • Validate our classification framework
Conclusions • Presented a Maslow like need-based classification framework • Validated the framework by classifying Eclipse plugins • My research (Palantír) falls into layer 3 and 4 • Will use the framework for classifying the different areas in collaboration as part of my literature survey
Questions? Research tool Palantír can be downloaded at www.ics.uci.edu/~asarma/Palantir Research Funded by: IBM Eclipse Innovation Grant 2004 NSF: CCR-0093489 and IIS-0205724
A Need Based Classification Framework • Able to classify based on needs that are satisfied • Complement already existing frameworks • Not direct adaptation