23
Palantír: Increasing Awareness in Distributed Software Development Anita Sarma and André van der Hoek {asarma, andre}@ics.uci.edu Institute for Software Research University of California, Irvine

Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Embed Size (px)

DESCRIPTION

Direct Conflicts Ellen’s CM Workspace in USA Pete’s CM Workspace in Canada Direct conflicts are overlapping changes to the same artifact in different workspaces /word pad/edit/spell /write /……… /word pad/edit/spell /undo /redo Configuration Management Repository

Citation preview

Page 1: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Palantír: Increasing Awareness in Distributed Software Development

Anita Sarma and André van der Hoek

{asarma, andre}@ics.uci.edu

Institute for Software Research University of California, Irvine

Page 2: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

ScenarioEllen’s CM Workspace in USA

Pete’s CM Workspace in Canada

Workspaces isolate developers from changes made concurrently by other developers

/word pad/edit/spell /write

/………

/word pad/edit/spell /undo

/redo

Configuration ManagementRepository

Page 3: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Direct ConflictsEllen’s CM Workspace in USA

Pete’s CM Workspace in Canada

Direct conflicts are overlapping changes to the same artifact in different workspaces

/word pad/edit/spell /write

/………

/word pad/edit/spell /undo

/redo

Configuration ManagementRepository

Page 4: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Indirect ConflictsEllen’s CM Workspace in USA

Pete’s CM Workspace in Canada

Indirect conflicts are changes to an artifact causing the behavior of another artifact to change

/word pad/edit/spell /write

/………

/word pad/edit/spell /undo

/redo

Configuration ManagementRepository

Page 5: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Traditional CM Approach Locking

Only one person can change an artifact at a time (check-out/check-in)

Limited in allowing parallel changes Does not address indirect conflicts

Merging Conflicts have to be manually resolved Indirect conflicts not addressed

Current CM functionality is inadequate in addressing direct/indirect conflicts

Page 6: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Goal Improve workspace awareness among

developers, such that they are continuously informed of parallel changes Which artifacts are changing? What is the severity of the changes?

(amount/size of change between two versions) What is the impact of the changes?

(effect of changes on my current work) Being aware of the parallel changes would enable

developers to reduce direct and indirect conflicts

Palantír deliberately but non-intrusively breaks the isolation of workspaces

Page 7: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Existing Scenario

Ellen’s CM Workspace

Pete’s CM Workspace/word pad/edit/spell

/write /…..

/word pad/edit/spell /undo

/redo CMRepository

Page 8: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Palantír Components

Ellen’s CM Workspace

Pete’s CM Workspace/word pad/edit/spell

/write /…..

/word pad/edit/spell /undo

/redoEllen’s Visualization Pete’s Visualization

Severity Analysis Change Impact Analysis

CMRepository

Page 9: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Complete Palantír Architecture

Ellen’s CM Workspace

Pete’s CM Workspace/word pad/edit/spell

/write /…..

/word pad/edit/spell /undo

/redoEllen’s Visualization Pete’s Visualization

Severity Analysis Change Impact Analysis

CMRepository

Event notificati

on

Page 10: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Visualization Component Shows pair-wise conflicts between developers Shows severity and impact of the changes Triggered by CM actions

Check-out, check-in, add, remove ... Unique view per workspace

Conflicts are shown only for artifacts present in that workspace

We plan to experiment with different visualizations Tabular form, graphical display, ticker tape, …

Page 11: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

1. Ellen populates her workspace

Workspace owner

Gray indicates no changes have occurred as of now

Page 12: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

2. Ellen makes changes to some artifacts in her workspace

Green indicates changes by the workspace owner (Ellen)

“?” indicates changes are being made but their exact nature is not known

Page 13: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

3. Ellen puts the changes back into the CM system

Severity and impact indicators

“!” indicates changes are now known

Page 14: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

4. Ellen makes changes to print and (again) spell, Pete makes changes to write

Red indicates changes in another workspace

Stack indicates evolution into new versions

Page 15: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

5. Pete makes changes to spell

Page 16: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Back button for traversing up one layer

Other features: zooming in and zooming out

Page 17: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Other features: examining other versions and meta-data

Examining a different version Artifact metadata

Page 18: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Severity Analysis

“The amount (size) of change between two versions of an artifact”

Proposed algorithms Lines of code

Simple, but inaccurate Token based difference

Measures structural changes, but language dependent Abstract syntax tree

Very detailed analyses, but likely too expensive (and language dependent)

Work in progress

Page 19: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Impact Analysis

“The effect of changes on my current work” Proposed algorithms

Overlapping lines of code Simple, but inaccurate

Changed interfaces Potentially accurate and effective, but language

dependent Dependency analysis

Very precise, semantic results, but complex (and language dependent)

Work in progress

Page 20: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Related Work

Configuration Management ClearCase, Telelogic, Subversion, Coven, …

Software Visualization Code decay, 3D visualization, …

Computer-Supported Collaborative Work Edit wear and read wear, BSCW, TUKAN, …

Palantír provides a solution that combines contributions in each of these areas

Page 21: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Conclusion

Palantír is a prototype that… …brings awareness to workspaces …shows pair-wise conflict …provides severity analysis …provides change impact analysis

Use of Palantír (hopefully) results in fewer direct and indirect conflicts

Future work Analysis algorithms for both atomic and

compound artifacts Additional visualizations

Page 22: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software
Page 23: Palantr: Increasing Awareness in Distributed Software Development Anita Sarma and Andr van der Hoek {asarma, Institute for Software

Addressing Scale

Leverage hierarchical structure of artifact

Show pair-wise conflicts Sorting constituent artifacts according

to highest severity/change impact Explore “smaller boxed” in the user

interface Truncate number of layers being

visualized