Publications

Journals

Conference and Workshops

Technical Reports


Palantír Papers


  • Palantír: Raising Awareness among Configuration Management Workspaces (Primary Palantír paper)

    Anita Sarma
    , Zahra Noroozi, and André van der Hoek

    Current configuration management systems promote workspaces that isolate developers from each other. This isolation is both good and bad. It is good, because developers make their changes without any interference from changes made concurrently by other developers. It is bad, because not knowing which artifacts are changing in parallel regularly leads to problems when changes are promoted from workspaces into a central configuration management repository. Overcoming the bad isolation, while retaining the good isolation, is a matter of raising awareness among developers, an issue traditionally ignored by the discipline of configuration management. To fill this void, we have developed Palantír, a novel workspace awareness tool that complements existing configuration management systems by providing developers with insight into other workspaces. In particular, the tool informs a developer of which other developers change which other artifacts, calculates a simple measure of severity of those changes, and graphically displays the information in a configurable and generally non-obtrusive manner. To illustrate the use of Palantír, we demonstrate how it integrates with two representative configuration management systems

    Twenty-Fifth International Conference on Software Engineering, Portland, Oregon, May 2003,pages 444-454.

    icse2003.pdf(177KB)



  • Workspace Awareness in Application Development  (Palantír-Eclipse integration)

    Roger Ripley, Ryan Yasui, Anita Sarma, and André van der Hoek

    Coordination of development activities is often the most crucial success factor in a software development team. Typically, teams rely on configuration management (CM) systems for coordination purposes. CM systems manage concurrent development by isolating workspaces. As a result of this isolation, developers are aware of concurrent changes only when they interact with the repository and when changes have already been completed. Breaking this isolation would enable developers to detect potential conflicts as they occur in the workspaces and proactively take steps to avoid them. Our Eclipse plug-in, Palantír, supports such a workstyle by showing which artifacts have been changed by which developers and by how much

    OOPSLA workshop on Eclipse Technology eXchange, Vancouver, Canada, October 2004, pages 17-21.

    etx2004pdf(71KB)



  • Visualizing Parallel Workspace Activities  (Discussion of Palantír visualizations)

    Anita Sarma and André van der Hoek

    Palantír is a configuration management workspace awareness tool that continuously informs developers of the changes that are made in parallel by other developers in other workspaces. In order to achieve its goal of reducing the number of merge conflicts when developers commit their artifacts, Palantír deliberately breaks traditional workspace isolation in order to promote better coordination of parallel activities. In this paper we examine four different visualizations that developers can use for visualizing the activities in other workspaces. We discuss their strengths and weaknesses, role within Palantír, and opportunities for future improvements

    IASTED International Conference on Software Engineering and Applications, Marina Del Rey, California, November 2003, pages 435-440.

    IASTED_SEA2003.pdf(501KB)



  • Towards Supporting Awareness of Indirect Conflicts across Software Configuration Management Workspaces   (Discussion of impact analysis in Palantír)

    Anita Sarma, Gerald Bortis, and André van der Hoek

    Workspace awareness techniques have been proposed to enhance the effectiveness of software configuration management systems in coordinating parallel work. These techniques share information regarding ongoing changes, so potential conflicts can be detected during development, instead of when changes are completed and committed to a repository. To date, however, workspace awareness techniques only address direct conflicts, which arise due to concurrent changes to the same artifact, but are unable to support indirect conflicts, which arise due to ongoing changes in one artifact affecting concurrent changes in another artifact. In this paper, we present a new, cross-workspace awareness technique that supports one particular kind of indirect conflict, namely those indirect conflicts caused by changes to class signatures. We introduce our approach, discuss its implementation in our workspace awareness tool Palantír, illustrate its potential through two pilot studies, and lay out how to generalize the technique to a broader set of indirect conflicts.

    Twenty-second IEEE/ACM International Conference on Automated Software Engineering (ASE),Atlanta, Georgia, November 2007, pages 94-103

    ImpactAnalysis.pdf (276KB)

  • A previous version of the paper Cross-Workspace Impact Awareness for Early Detection of API-induced Indirect Conflicts in Configuration Management is available as a Technical report (UCI-ISR-06-17), December 2006 (223KB)


  • A Comprehensive Evaluation of Workspace Awareness in Software Configuration Management Systems   (Pilot evaluations of Palantír)

    Anita Sarma, David Redmiles, and André van der Hoek

    Workspace awareness has emerged as a new coor-dination paradigm in software configuration manage-ment systems, enabling the early detection of potential conflicts by providing developers with information of relevant, parallel activities. The focus of our work has been on detecting and mitigating both direct and indi-rect conflicts by unobtrusively sharing information about ongoing code changes. In this paper, we discuss the results of user experiments designed as a broad and formative evaluation of workspace awareness, specifically focusing on whether users detect conflicts as they arise and act to mitigate potential problems. Our results confirm that workspace awareness pro-motes active self-coordination among users and leads to an improved end-product in terms of the number of unresolved conflicts remaining in the code.

    Short paper in IEEE Symposium on Visual Languages and Human-Centric Computing, Coeur d'Aléne, Idaho, Septemeber 2007, pages 23-26.

    Workspace Awareness Evaluation.pdf (69KB)

  • Longer version of the paper can be found in Technical report (UCI-ISR-07-2) (178KB)


    Other Papers


  • Designing Software Cockpits for Coordinating Distributed Software Development   (Integration of different Hi-Tech awareness visualizations)

    Isabella Almeida da Silva, Marcello Alvim, Roger Ripley, Anita Sarma, Claudia. Werner, and André van der Hoek

    Coordination of global software development is particularly difficult as it involves teams that are distributed across different locations and time zones. One of the key issues is a lack of understanding of how activities of different teams (and team members) relate to one another. To provide situational awareness for distributed teams, software cockpits, at-a-glance computer-controlled displays of data collected from multiple sources, have been proposed. In this paper, we introduce a set of design decisions that need to be considered for building software cockpits, present our approach to realizing such a cockpit based on three exploratory visualizations of distributed software development projects, and conclude with a discussion oflessons learned so far.

    First Workshop on Measurement-based Cockpits for Distributed Software and Systems Engineering Projects (SOFTPIT 2007),in conjunction with the IEEE International Conference on Global Software Engineering, Munich, Germany, August 2007, pages 14-18 (electronic proceedings).

    Sofpit07.pdf (130KB)


  • A Visualization for Software Project Awareness and Evolution   (Discussion of Workspace Activity Viewer)

    Roger Ripley, Anita Sarma, and André van der Hoek

    Real-time awareness of other developers’ activities is a powerful tool to assist in coordination of developer activities. Thus far, this type of awareness has focused only on individual developers, with information regarding individual artifacts provided in a contextualized visualization. Here, we build upon our prior work, but take a broader perspective: visualization and exploration of workspace activity and evolution on a projectwide basis. We believe this visualization helps project managers who now have a comprehensive view of all project activities, allowing them to intelligently steer development and adjust task assignments. Developers can also benefit from this high level view by understanding how their work relates with each other and to the project as a whole. Another interesting aspectof our work is that we can visualize the evolution of workspaces - and the emergent project evolution - either live or postmortem: since our tool stores all the workspaces’ events, we can replay, stop, rewind, and visually inspect the effort at any given point in time to find trends, problems, and other patterns of interest.

    Fourth International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), Alberta, Canada, June 2007, pages 137-144.

    Workspace Evolution.pdf (621KB)



  • Continuous Coordination: A New Paradigm to Support Globally Distributed Software Development Projects   (Discussion of the Continuous Coordination Paradigm and the associated tools)

    David Redmiles, André van der Hoek, Ban Al-Ani, Tobias Hildenbrand, Stephen Quirk, Anita Sarma, Roberto Silveira Silva Filho, Cleidson de Souza, Erik Trainer

    Along with the rapid globalization of companies, the globalization of software development has become a reality. Many software projects are now distributed in diverse sites across the globe. The distance between these sites creates several problems that did not exist for previously collocated teams. Problems with the coordination of the activities, as well as with the communication between team members, emerge. Many collaborative software engineering tools that have been used to date, in global software development projects, exhibit a fundamental paradox: they are meant to support the collaborative activity of software development, but cause individuals and groups to work more or less independently from one another. The underlying issue is that existing software engineering tools, such as configuration management repositories, issue trackers, and workflow engines, separate time and tasks in concrete but isolated process steps. Designing tools based on the premise that human activities can be codified and that periodic resynchronization of tasks is an easy step reflects poor understand-ing human nature. We therefore propose a new approach to supporting collaborative work called Continuous Coordination. Underlying Continuous Coordination is the premise that hu-mans must not and cannot have their method of collaboration rigidly dictated, but should be supported flexibly with both the tools and the information to coordinate their activities and to collaborate in their activities as they see fit. In this paper, we define the concept of Continuous Coordination, introduce our work to date in building prototypes that support the Continuous Coordination paradigm in the context of Global Software Development, and set out a further research agenda to be pursued.

    In Wirtschaftsinformatik, Special Issue on the Industrialization of Software Development, 2007, 49(3), pages S28-S38

    Wirts_GSD.pdf(737KB)



  • Continuous Coordination (CC): A New Collaboration Paradigm (Discussion of tools following the Continuous coordination paradigm)

    Ban Al-Ani, Anita Sarma, Gerald Bortis, Isabella Almeida da Silva, Erik Trainer, André van der Hoek, and David Redmiles

    The increase in software complexity introduced the need for software development teams and consequently the need to coordinate team members' activities and create a shared awareness. We seek to overcome some the pitfalls of earlier attempts to coordinate software development through a new coordination paradigm we term Continuous Coordination (CC). Generally speaking, the CC paradigm complements formal synchronization with support for informal activities. In this paper, we define the CC paradigm within three dimensions and demonstrate how we embodied CC through a spectrum of Eclipse plug-ins.

    CSCW Workshop on Supporting the Social Side of Large Scale Software Development, Banff, Canada, November 2006, pages 69-72.

    CSCWWKs06_2.pdf(599KB)



  • Contextualized Awareness: A Lynchpin of Software Development (Discussion of strategies for workspace awareness tools)

    Anita Sarma

    Creating coordination tools for workspace awareness, requires a thorough understanding of the kinds of information that is required to assist a developer in the specific task at hand. To accomplish this, we need to carefully explore the following three aspects of information: (1) the kinds of information that is to be shared, (2) the granularity of the information that is to be provided, and (3) the presentation of information that is appropriate to a given situation or member of the team.

    CSCW Workshop on Awareness in Activity-Centric Groupware Design, Banff, Canada, November 2006.

    CSCWWKs06.pdf(144KB)



  • Towards Awareness in the Large

    Anita Sarma and André van der Hoek (World View paper)

    Management of shared artifacts is critical to ensure the correct integration and behavior of code created by multiple teams working in concert. Awareness of inter-team development activities and their effects on shared artifacts provides developers the opportunity to detect potential integration problems earlier and take proactive steps to avoid these conflicts. However, current awareness tools do not provide such kinds of awareness making them unsuitable for global software development. In this paper, we discuss their drawbacks, present three strategies to make them suitable for global settings, and illustrate these strategies through a new view for Palantír that better addresses awareness in the large.

    First International Conference on Global Software Engineering, Florianópolis, Brazil, October 2006, pages 127-131

    ICGSE06.pdf(279KB)



  • Using Visualizations to Analyze Workspace Activity and Discern Software Project Evolution (Workspace Activity Viewer paper )

    Roger Ripley, Anita Sarma, and André van der Hoek

    Real-time awareness of other developers’ activities is gaining acceptance as a complementary strategy to traditional SCM (software configuration management) locking and branching. Thus far, this type of awareness-including our work has focused only on individual developers, with information regarding individual artifacts provided in a contextualized visualization. Here, we build upon our prior work but take a broader perspective: visualization and exploration of workspace activity and evolution on a project-wide basis. We believe this visualization will help not only developers, who can benefit from this high-level view by understanding how their work relates, but, more importantly, managers, who now have a comprehensive view of all project activities, allowing them to intelligently steer development and adjust task assignments. Another interesting aspect of our work is that we can visualize the evolution of workspaces - and the emergent project evolution - either live or post mortem: since our tool stores all the workspaces’ events, we can replay, stop, rewind, and visually inspect the effort at any given point in time to find trends, problems, and other patterns of interest.

    UCI, ISR Technical Report, UCI-ISR-06-1, January 2006.

    Activity Viewer.pdf(410KB)



  • A Survey of Collaborative Tools in Software Development (Literature survey)

    Anita Sarma

    In this survey, we take a look at collaborative tools from the perspective of user effort. While we cannot quantify the efforts required of each tool in detail, it is clear that there is a natural ordering among different groups of tools. We propose a framework that identifies these groups and highlights this ordering. Based on this framework, our survey organizes the individual tools into tiers. Our framework is in the form of a pyramid consisting of five vertical layers and three horizontal strands. The five layers in the pyramid are: (1) functional, (2) defined, (3) proactive, (4) passive, and (5) seamless. Tools that are at a higher layer in the pyramid provide more sophisticated automated support, thereby reducing the user effort required in collaborating. Each level, thus, represents an improvement in the way a user is supported in their day-to-day collaborative activities. The three strands in the pyramid are: communication, artifact management, and task management. These three dimensions, we believe, are critical needs crosscutting all aspects of collaboration

    UCI, ISR Technical Report, UCI-ISR-05-3, March 2005.

    Survey2005.pdf(633KB)



  • A Need Hierarchy for Teams (Maslow's need hierarcy for software teams)

    Anita Sarma and André van der Hoek

    Maslow created a hierarchy of needs for the individual. He placed the needs in a hierarchy such that only after the needs of a layer are satisfied would an individual care about the needs in the next layer. Using Maslow's insight we create a hierarchy of needs for the team. In this paper we map the needs of a software development team to the need layers that Maslow prescribed for the individual. In creating this mapping we come across an interesting observation that most collaborative tools focus on enhancing the efficiency of the team and depend on collocation to create team cohesiveness

    UCI, ISR Technical Report, UCI-ISR-04-9, October 2004.

    maslow.pdf(159KB)



  • A Need-Based Collaboration Classification Framework (Classification of Eclipse plugins)

    Anita Sarma, André van der Hoek, and Li-Te Cheng

    Research in collaboration has yielded a large number of tools and environments. A number of classification frameworks exist that organize these contributions, but none of them are comprehensive enough; they focus either on a particular aspect of collaboration or on the specific mechanism that the tools follow. We have developed a new framework that is based on the collaboration needs of a developer. Specifically, we have adapted Maslow's hierarchy of needs to create a hierarchy of collaboration needs in the software development world. These collaboration needs can be broadly classified into basic needs, enhanced needs and comfort needs, according to which collaborative tools and environments can be categorized. In this paper, we first introduce the framework, and then use it to identify the collaboration needs that Eclipse and its plug-ins satisfy. We also identify further research directions that would enhance Eclipse's ability as a vehicle for collaboration technology

    First Workshop on Eclipse as a Vehicle for CSCW Research, Chicago, USA, November 2004, pages 16-20.

    CSSE2004.pdf(496KB)



  • Continuous Coordination: A New Paradigm for Collaborative Software Engineering Tools (Discussion of a new coordination paradigm)

    André van der Hoek, David Redmiles, Paul Dourish, Anita Sarma,Roberto Silva Filho, and Cleidson de Souza

    Collaborative software engineering tools that have been developed and used to date exhibit a fundamental paradox: they are meant to support the collaborative activity of software development, but cause individuals and groups to work independently from one another. The underlying issue is that existing tools discretize time and tasks in concrete but isolated process steps. This approach is fundamentally flawed in assuming that human activity can be codified and that periodic resynchroniza-tion of tasks is an easy step. We propose a new approach to supporting collaborative work called continuous coor-dination. The underlying principle is that humans must not and cannot have their method of collaboration dic-tated, but should be supported flexibly with both the tools and the information to coordinate themselves and col-laborate in their activities as they see fit. In this paper, we define the concept of continuous collaboration, introduce our work to date in building some example tools that support the continuous coordination paradigm, and set out a further research agenda to be pursued

    In Proceedings of the Workshop on Directions in Software Engineering Environments, Edinburgh, United Kingdom, May 2004, pages 29-36.

    WODISEE2004.pdf(177KB)



  • A Conflict Detected Earlier is a Conflict Resolved Easier (Palantír for project management)

    Anita Sarma and André van der Hoek

    Open Source development is highly distributed and parallel in nature. There are no definite boundaries, either for people or from where they work. This high level of parallel, distributed development leads to conflicting changes made concurrently by different developers. Because OSS developers lack the kinds of informal coordination opportunities that collocation offers, OSS developers must rely on mailing lists, discussion groups, and tools such as CM and bug tracking systems to try to manage their parallel efforts such that conflicts do not occur. Unfortunately, these coordination mechanisms are not adequate: it still regularly happens that parallel changes interfere, either via direct overlap or indirect, semantic conflicts. In this paper, we build upon our previous work in raising awareness as a mechanism to support better coordination among developers, and introduce a new integration of our Palantír tool with Eclipse as well as a new visualization of parallel work that we believe is especially useful in Open Source settings

    In Collaboration, Conflict, and Control : Fourth Workshop on Open Source Software Engineering, Edinburgh, United Kingdom, May 2004, pages 82-86.

    OSCCC2004.pdf(211KB)



  • Configuration Management Workspace Awareness for Distributed Software Development (Doctoral symposium)

    Anita Sarma

    Current configuration management systems isolate workspaces such that work in one workspace is shielded from parallel changes in other workspaces. This workspace isolation is needed so that changes in one workspace do not interfere with changes by another developer working in parallel. This isolation, however, creates a problem in that developers are not aware of other workspace activities. As a result, developers often end up making conflicting changes that on promotion to a central configuration management repository have to be resolved - a time consuming task. To address this problem we are building Palantír, a novel workspace awareness tool. Palantír raises awareness among developers by providing them with continuous information about concurrent changes and how these changes would affect their work. Palantír thus moves the point at which conflicts are detected earlier, from being only at the moment at which changes are committed to continuously during the making of changes. This allows early detection of potential conflicts and should result in fewer and smaller conflicts

    European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE) Doctoral Symposium, Helsinki, Finland, September 2003.

    DSFSE2003.pdf(198KB)



  • Palantír: Coordinating Distributed Workspaces (Initial Palantír papers)

    Anita Sarma and André van der Hoek

    Distributed software development suffers from limited collaboration capabilities, as developers are unable to easily coordinate their efforts across physical boundaries. Different fields, such as CSCW and groupware, have attempted to bridge this gap, but few of the approaches developed so far have been incorporated in current software development environments. Configuration Management (CM) systems are vital to any software development process, support distributed development, and are in widespread use. Unfortunately, they have only limited support for distributed collaboration. In this paper we describe Palantír, a system that is aimed at bringing collaborative capabilities to distributed development. Palantír builds upon existing CM systems to introduce project awareness to the developer workspace. In particular, Palantír supports close collaboration among developers by visualizing concurrent changes and showing, in real time, the severity and impact of those changes on the developer's workspace

    COMPSAC 2002 Workshop on Cooperative Supports for Distributed Software Engineering Processes, August 2002, Oxford, United Kingdom, pages 1093-1097.

    CSSE2002.pdf(69KB)



  • Palantír: Increasing Awareness in Distributed Software Development (Initial Palantír papers)

    Anita Sarma and André van der Hoek

    Distributed software development, just like regular software development, typically involves developers working in parallel on the same set of artifacts. Unlike regular software development, however, distributed software development is limited since developers are unable to easily coordinate their efforts in person due to the presence of physical boundaries. While configuration management systems provide some automated coordination support in the form of locking and merging, the high cost of conflict resolution in distributed software development requires even higher levels of support to ensure as few integration problems as possible. In this paper, we introduce Palantír, a system that complements existing configuration management systems by providing distributed awareness of project progress. In particular, Palantír provides each developer with a graphical display that not only shows which remote artifacts are changing, but also presents them with a measure of both the severity and the impact of the changes. As a result, developers are provided with an increased level of awareness that allows them to detect and resolve problems much earlier

    ICSE 2002, Workshop on Global Software Development, Florida, USA, May 2002, pages 28-32.

    IWGSD2002.pdf(76KB)