Supporting group awareness in distributed software development. Discussion (original) (raw)

Awareness of Concurrent Changes in Distributed Software Development

Lecture Notes in Computer Science, 2008

Traditional software development tools such as CVS and Subversion do not inform users about concurrent modifications while they work on shared projects in their local workspaces. We propose an awareness mechanism that informs users about location of concurrent changes at the level of class, method and line. Developers are provided with a preview of the concurrent changes made by other contributors on the project. They can continue to change and test their code without the need to integrate concurrent changes. We present the underlying algorithms of our proposed awareness mechanism.

Using Developer Activity Data to Enhance Awareness during Collaborative Software Development

Computer Supported Cooperative Work, 2009

Software development is a global activity unconstrained by the bounds of time and space. A major effect of this increasing scale and distribution is that the shared understanding that developers previously acquired by formal and informal face-to-face meetings is difficult to obtain. This paper proposes a shared awareness model that uses information gathered automatically from developer IDE interactions to make explicit orderings of tasks, artefacts and developers that are relevant to particular work contexts in collaborative, and potentially distributed, software development projects. The research findings suggest that such a model can be used to: identify entities (developers, tasks, artefacts) most associated with a particular work context in a software development project; identify relevance relationships amongst tasks, developers and artefacts e.g. which developers and artefacts are currently most relevant to a task or which developers have contributed to a task over time; and, can be used to identify potential bottlenecks in a project through a ‘social graph’ view. Furthermore, this awareness information is captured and provided as developers work in different locations and at different times.

Supporting Developers' Coordination in the IDE

Proceedings of the 18th ACM Conference on Computer Supported Cooperative Work & Social Computing - CSCW '15, 2015

Teamwork in software engineering is time-consuming and problematic. In this paper, we explore how to better support developers' collaboration in teamwork, focusing on the software implementation phase happening in the integrated development environment (IDE). Conducting a qualitative investigation, we learn that developers' teamwork needs mostly regard coordination, rather than concurrent work on the same (sub)task, and that developers successfully deal with scenarios considered problematic in literature, but they have problems dealing with breaking changes made by peers on the same project. We derive implications and recommendations. Based on one of the latter, we analyze the current IDE support for receiving code changes, finding that historical information is neither visible nor easily accessible. Consequently, we devise and qualitatively evaluate BELLEVUE, the design of an IDE extension to make received changes always visible and code history accessible in the editor.

Toward Introducing Notification Technology into Distributed Project Teams

12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05)

Software development can be thought of as the evolution of abstract requirements into a concrete software system. The evolution, achieved through a successive series of elaborations and refinements, is inherently a complex process. The complexity is not merely in the product-the complexity of managing the evolution of the product throughout the life of a project is proportional to the size and complexity of the product. Managing software project teams is a complex task complicated by the distribution of project teams. Distributed collaboration requires adequate support for team coordination and risk management. Human-computer interaction (HCI) combines technical concerns with human psychological concerns. Similarly, software project managers confront complexities in both of these dimensions. In this paper, we report on a collaborative design environment called LINK-UP being developed to guide the design process and facilitate reuse. We examine some web-based project management tools in terms of their support for collaborative design and virtual team processes. We present a notification system approach to making the design record a natural by-product of the design process and a lever for knowledge reuse. Knowledge from past projects could then be used to automatically notify project teams of potential problems and suggest possible solutions.

FASTDash: a visual dashboard for fostering awareness in software teams

2007

Software developers spend significant time gaining and maintaining awareness of fellow developers' activities. FASTDash is a new interactive visualization that seeks to improve team activity awareness using a spatial representation of the shared code base that highlights team members' current activities. With FASTDash, a developer can quickly determine which team members have source files checked out, which files are being viewed, and what methods and classes are currently being changed. The visualization can be annotated, allowing programmers to supplement activity information with additional status details. It provides immediate awareness of potential conflict situations, such as two programmers editing the same source file. FASTDash was developed through usercentered design, including surveys, team interviews, and in situ observation. Results from a field study show that FASTDash improved team awareness, reduced reliance on shared artifacts, and increased project-related communication. Additionally, the team that participated in our field study continues to use FASTDash.

Increasing Awareness in Distributed Software Development Workspaces

Lecture Notes in Computer Science, 2004

This work presents a middleware for collaborative applications that increase product and workspace awareness information available to users of computer-aided software engineering tools. This middleware-based approach helps application developers to construct enhanced tools, adapted to specific needs, reusing software components and existing applications. These enhanced tools must be designed to overcome some of the technical difficulties of collaboration in distributed software development scenarios, like the need of monitoring changes in remote workspaces. This paper describes the middleware architecture and intended usage, presents examples of enhanced tools, and proposes future case studies.

Building Collaboration into IDEs

Queue, 2003

Software development is rarely a solo coding effort. More often, it is a collaborative process, with teams of developers working together to design solutions and produce quality code. The members of these close-knit teams often look at one another's code, collectively make plans about how to proceed, and even fix each other's bugs when necessary. Teamwork does not stop there, however. An extended team may include project managers, testers, architects, designers, writers, and other specialists, as well as other programming teams. Programmers also interact with the community of developers outside their organization to obtain advice, code snippets, and a general understanding of what works and what doesn't.