Group publications
Up one levelThis folder can hold files, pages and documents that belong to the group
- Continuous Coordination (CC): A New Collaboration Paradigm (Pages 69-72)
- 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. Proceedings of the CSCW Workshop on Supporting the Social Side of Large-Scale Software Development, Banff, AB November 2006
- Lighthouse: Coordination through Emerging Design
- Despite the fact that software development is an inherently collaborative activity, a great deal of software development is spent with developers in isolation, working on their own parts of the system. In these situations developers are unaware of parallel changes being made by others, often resulting in conflicts. One common approach to deal with this issue is called conflict resolution, which means that changes have already been checkedin and developers must use merge tools to resolve conflicts and then retest the code to ensure its correctness. Unfortunately, this process becomes more difficult the longer the conflicts go undetected. In order to address these issues, have been proposed conflict avoidance approaches that detect conflicts as soon as they occur. In this paper, we present Lighthouse, an Eclipse plug-in that takes the conflict avoidance approach to coordinate developers. Lighthouse distinguishes itself by utilizing a concept called emerging design, an up to date design representation of the code, to alert developers of potentially conflicting implementation changes as they occur, indicating where the changes have been made and by whom.
- Continuous Coordination: A New Paradigm to Support Globally Distributed Software Development Projects
- Redmiles, D., van der Hoek, A., Al-Ani, B., Hildenbrand, T., Quirk, S., Sarma, A., Silva Filho, R. S., de Souza, C., Trainer, E. Continuous Coordination: A New Paradigm to Support Globally Distributed Software Development Projects, Wirtschaftsinformatik, Special Issue on the Industrialization of Software Development, V. 49, 2007, pp. 28-38. --- 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 understanding human nature. We therefore propose a new approach to supporting collaborative work called Continuous Coordination. Underlying Continuous Coordination is the premise that humans 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.
- A Comprehensive Evaluation of Workspace Awareness in Software Configuration Management Systems
- A. Sarma, D. Redmiles, and A. van der Hoek, A Comprehensive Evaluation of Workspace Awareness in Software Configuration Management Systems, Short paper in IEEE Symposium on Visual Languages and Human-Centric Computing, Coeur d'Alène, Idaho, September, 2007 (Accepted) --- Workspace awareness has emerged as a new coordination paradigm in software configuration management 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 indirect 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.
- A Visualization for Software Project Awareness and Evolution
- R. Ripley, A. Sarma, and A. van der Hoek, A Visualization for Software Project Awareness and Evolution. Fourth International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), Alberta, Canada, 2007 (Accepted). --- 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 project wide 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.
- Designing Software Cockpits for Coordinating Distributed Software Development, 1st Workshop on Measurement-based Cockpits for Distributed Software and Systems Engineering Projects
- da Silva, I., Alvim, M., Ripley, R., Sarma, A., Werner, C., van der Hoek, A. Designing Software Cockpits for Coordinating Distributed Software Development, 1st 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 (Accepted). --- 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 of lessons learned so far.
- Contextualized Awareness: A Lynchpin of Software Development, Workshop on Awareness in Activity-Centric Groupware Design
- Sarma, A. Contextualized Awareness: A Lynchpin of Software Development, Workshop on Awareness in Activity-Centric Groupware Design, held in conjunction with the Conference on Computer-Supported Cooperative Work (CSCW 2006— Banff, Canada), November 2006. --- 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.
- Towards Awareness in the Large
- Sarma, A., van der Hoek, A. Towards Awareness in the Large. First International Conference on Global Software Engineering (Florianópolis, Brazil), October 2006, pp. 127-131. --- 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.