a survey of collaborative tools in software development

48
A Survey of Collaborative Tools in Software Development Anita Sarma Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine [email protected] Advancement to Candidacy March 17, 2005

Upload: cliff

Post on 21-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

A Survey of Collaborative Tools in Software Development. Anita Sarma Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine [email protected] Advancement to Candidacy March 17, 2005. Software Development. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A Survey of Collaborative Tools in Software Development

A Survey of Collaborative Tools in Software

Development

A Survey of Collaborative Tools in Software

Development

Anita Sarma

Department of InformaticsDonald Bren School of Information and Computer Sciences

University of California, [email protected]

Advancement to CandidacyMarch 17, 2005

Page 2: A Survey of Collaborative Tools in Software Development

2

Software DevelopmentSoftware Development

“Is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs.” [Schach]

“Multi-person construction of multi-version software” [Parnas]

“Deals with the building of software systems which are so large that they are built by a team or teams of engineers.” [Ghezzi, Jazayeri, Mandrioli]

Page 3: A Survey of Collaborative Tools in Software Development

3

Challenges in CoordinationChallenges in Coordination

Large team size Duplication in task assignment Distributed development Different kinds of artifacts Cognitive overload Lack of technology support …

Page 4: A Survey of Collaborative Tools in Software Development

4

Coordination ToolsCoordination Tools

Software configuration management Process modeling Decision support systems Workflow Synchronous editors Event notification …

Page 5: A Survey of Collaborative Tools in Software Development

5

Software Engineering versus CSCWSoftware Engineering versus CSCW

Software Engineering

CSCW

Strengths Weaknesses

Group centric, controlled,scalable, insulation from other activities, specific synchronization points

User centric, flexible,small group support, promotes synergy, raises awareness

Insulation becomes isolation, resynchronization problems

Extensive human intermediation, not scalable

Page 6: A Survey of Collaborative Tools in Software Development

6

Current Trend in Tool DevelopmentCurrent Trend in Tool Development

Researchers have recognized the need to combine approaches from the two areas

Borrow bits and pieces from the other area Primarily ad hoc in nature

– Process & groupware [Di Nitto, Ben-Shaul, Barthelmess]

– IDE & awareness [Jazz, Palantír, GroupDesk]

To build coordination tools of the future, research needs to be cross disciplinary in nature

Page 7: A Survey of Collaborative Tools in Software Development

7

Existing FrameworksExisting Frameworks

High-level approach to collaboration (process-based or awareness-based)

Formal versus informal approach

van der Hoek, et al. (04)

Managing interdependencies between activities

Interdisciplinary theory of coordination

Malone & Crowston (94)

Characteristics of a work- flow model

Model domain spaceNutt (96)

Temporality and location of teams

Focus

Space / Time Matrix

Framework

Grudin (94)

Author(s)

Page 8: A Survey of Collaborative Tools in Software Development

8

My FrameworkMy Framework

High-level approach to collaboration (process-based or awareness-based)

Formal versus informal approach

van der Hoek, et al. (04)

Managing interdependencies between activities

Interdisciplinary theory of coordination

Malone & Crowston (94)

Characteristics of a work- flow model

Model domain spaceNutt (96)

Temporality and location of teams

Focus

Space / Time Matrix

Framework

Grudin (94)

Author(s)

User effort required in using the tools

PyramidSarma (05)

Page 9: A Survey of Collaborative Tools in Software Development

9

My Classification FrameworkMy Classification Framework

Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

High user

effort

Low user effort

Page 10: A Survey of Collaborative Tools in Software Development

10Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

LayersLayers

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Page 11: A Survey of Collaborative Tools in Software Development

11Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

StrandsStrands

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Page 12: A Survey of Collaborative Tools in Software Development

12Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

Layer 1 – Functional ToolsLayer 1 – Functional Tools

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Email

SCM, repository based systems

Email, project management tools,

bug trackers

Page 13: A Survey of Collaborative Tools in Software Development

13

PinePine

Page 14: A Survey of Collaborative Tools in Software Development

14

TimeToolTimeTool

Page 15: A Survey of Collaborative Tools in Software Development

15

Layer 2 – Defined ToolsLayer 2 – Defined Tools

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

Bug trackers, SCM check-in comments

Asynchronous parallel development,

synchronous editors

Workflow, process modeling

Page 16: A Survey of Collaborative Tools in Software Development

16

ShrEdit Synchronous EditorShrEdit Synchronous Editor

Page 17: A Survey of Collaborative Tools in Software Development

17

Endeavors InterfaceEndeavors Interface

Page 18: A Survey of Collaborative Tools in Software Development

18

Layer 3 – Proactive ToolsLayer 3 – Proactive Tools

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

Instant Messaging, notification of

changes (monitors,

visualizations)

Fine grained versioning, conflict resolution

tools Information visualization

recommendation systems, social

Navigation, GDSS

Page 19: A Survey of Collaborative Tools in Software Development

19

Night WatchNight Watch

Page 20: A Survey of Collaborative Tools in Software Development

20

AugurAugur

Page 21: A Survey of Collaborative Tools in Software Development

21

Layer 4 – Passive ToolsLayer 4 – Passive Tools

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifactsAwareness (social, task-oriented,

room-based), event notification

services

Change analysis methods, social

callgraphs, task-based SCM

systems

Privacy concerns, interruption

management, modes of

collaboration

Page 22: A Survey of Collaborative Tools in Software Development

22

Nynex PortholesNynex Portholes

Page 23: A Survey of Collaborative Tools in Software Development

23

Jazz InterfaceJazz Interface

Page 24: A Survey of Collaborative Tools in Software Development

24

Layer 5 – Seamless Layer Layer 5 – Seamless Layer

Communication Artifact Management Task Management

Continuous coordination, collaborative architecture,

seamless development environments

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

Organizational memory, social navigation

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Page 25: A Survey of Collaborative Tools in Software Development

25

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Communication

Collocation benefitsto distributeddevelopment

Organizational memory, social navigation

,

Prescribed and defined coordination support

Artifact Management Task Management

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Communication Artifact Management Task Management

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Task allocation and assignment

Communication archivalalong with artifacts

Collocationbenefits to distributed

development

,

Prescribed and defined coordination support

Advanced conflict detection

Fine grained versioning, conflict resolution

Instant Messaging,monitoring changes

to artifacts

?

Organizational memory, social navigation

?

?

?

?

?

Page 26: A Survey of Collaborative Tools in Software Development

26

My Classification FrameworkMy Classification Framework

Communication

,

Artifact Management Task Management

Func

tiona

lDe

fined

Proa

ctive

Pass

iveSe

amles

s

Basic coordination support needed to achieve rudimentary collaboration

Structured processes to achieve smooth coordination in complex systems

Enhanced information allowing proactive coordination

Unobtrusive coordination information reducing distraction

Ubiquitous and pervasive coordination

Page 27: A Survey of Collaborative Tools in Software Development

27

Usage of the FrameworkUsage of the Framework

Evolution of technology– Software Configuration Management– Groupware

Classification of tools– Palantír– Augur

Highlighting potential future directions– Palantír– Augur

Page 28: A Survey of Collaborative Tools in Software Development

28

Access to common set of artifacts,isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness,manage information

overload

Communication archivalalong with artifacts

Prescribed and defined coordination support

Advanced conflictdetection

Fine grained versioning,conflict resolution

Instant Messaging,monitoring changes

to artifacts

Software Configuration ManagementSoftware Configuration Management

Page 29: A Survey of Collaborative Tools in Software Development

29

Parallel development,roles and access rights

Passive awareness,manage information

overload

Collocation benefits todistributed development

Organizational memory,knowledge acquisition and

dissemination, social navigation

GroupwareGroupware

Page 30: A Survey of Collaborative Tools in Software Development

30

Palantír Palantír

Communication: Passive layer

Page 31: A Survey of Collaborative Tools in Software Development

31

AugurAugur

Task management: Proactive layer

Page 32: A Survey of Collaborative Tools in Software Development

32

Future Direction: Palantír Future Direction: Palantír

Continuous coordination, collaborative architecture,

seamless development environments

Passive awareness,manage information

overload

Collocationbenefits to distributed

development

Advanced conflict detection

Page 33: A Survey of Collaborative Tools in Software Development

33

Future Direction: AugurFuture Direction: Augur

Collocationbenefits to distributed

development

Advanced conflict detection

Organizational memory, social navigation

Page 34: A Survey of Collaborative Tools in Software Development

34

Observations – FrameworkObservations – Framework

A different but critical perspective – user effort The layers do not strictly represent historical

evolution As we move up the pyramid

– User effort reduces– Strands of the pyramid intermingle

The top of the pyramid has been left open to signify further research

More layers may be needed before reaching the Seamless layer

Page 35: A Survey of Collaborative Tools in Software Development

35

Observations – ToolsObservations – Tools

Natural ordering among the tools A tool can exist in different strands in

different layers Tools often build on the underlying

infrastructure and experiences learned Trends among tools

– Try to move up the pyramid– Employ more than one strand

Page 36: A Survey of Collaborative Tools in Software Development

36

My RecommendationsMy Recommendations

Understand both software engineering principles and CSCW experiences

Automated support for detecting conflicting situations

Integrated support for the strands of the pyramid

Cross-artifact explorations Intelligent systems – self adaptive systems Peripheral visualizations

Page 37: A Survey of Collaborative Tools in Software Development

37

PalantírPalantír

Problem: isolation created by SCM workspaces leads to conflicting changes

Approach: break the isolation of workspaces by providing awareness of parallel activities

Visualizations to show:– Which artifact is being changed by which

developer– The size of the changes– The impact of others’ changes on current work

Page 38: A Survey of Collaborative Tools in Software Development

38

Questions …Questions …

Page 39: A Survey of Collaborative Tools in Software Development

39

Another Influencing FactorAnother Influencing Factor

Technology

Needs Activities

Page 40: A Survey of Collaborative Tools in Software Development

40

Expertise BrowserExpertise Browser

Task management: Proactive layer

Page 41: A Survey of Collaborative Tools in Software Development

41

Social Call GraphsSocial Call Graphs

Task management: Proactive layer

Artifact Management: Passive Layer

Page 42: A Survey of Collaborative Tools in Software Development

42

Why a Pyramid?Why a Pyramid?

Framework has 5 layers and 3 strands Layers - distinct ordering of the tools

based on the user effort required Strands - the inherent activities involved

in collaboration The strands slowly intermingle to depict

the change in the approach of the tools

Page 43: A Survey of Collaborative Tools in Software Development

43

Applicable to Other FieldsApplicable to Other Fields

No The framework has been created based on

the available tools for software development The idea of using layers and strands in the

framework is universal Strands – different fields may have different

activities inherent for collaboration Layers

– Identify the difference in user effort required– The different collaboration needs that prompted

the tools

Page 44: A Survey of Collaborative Tools in Software Development

44

Characteristics of Tools at a layerCharacteristics of Tools at a layer

Functionality of tools can be split into different layers

Tools at a higher layer does not signify that they are better

Tools at a layer inherently build on the underlying layer. If not directly by using the underlying infrastructure, then from the experience gained from tool usage

Page 45: A Survey of Collaborative Tools in Software Development

45

Time vs. Place Matrix – Grudin(1994)Time vs. Place Matrix – Grudin(1994)

Collaborative writing

Work flowComputer

boards

Interactive multicast seminar

Electronic mail

Tele/

Video/

Desktop/

conferencing

Team roomsWork shiftsMeeting

facilitation

Different but predictable

Different and Un-predictable

same

same

Different but predictable

Different and Un-predictable

TIME

PLA

CE

Page 46: A Survey of Collaborative Tools in Software Development

46

Model for Workflow Systems – Nutt, 1996Model for Workflow Systems – Nutt, 1996

Amount of Detail

Required Conformance

Operational Abstraction

1.0 = Fully implemented

1.0 = Fully implemented1.0 = No deviation

Page 47: A Survey of Collaborative Tools in Software Development

47

Interdisciplinary Coordination – Malone & Crowston, 1994Interdisciplinary Coordination – Malone & Crowston, 1994

Communication

Group decision making gIBIS, Sibyl, electronic meeting rooms

Managing task/ subtask relation-

ship (goal decomposition)

Meeting scheduling tools [14]

Polymer

Coordinator, Information Lens

Example SystemsProcess

Managing producer / consumer relationships (sequencing pre-requisites)

Electronic mail, computer conferencing electronic meeting rooms, Information lens, collaborative authoring tools

Polymer

Managing shared resources (task assignment and prioritization)

Managing simultaneity constraints (Synchronizing)

Page 48: A Survey of Collaborative Tools in Software Development

48

Formal vs. Informal - van der Hoek, et al., 2004Formal vs. Informal - van der Hoek, et al., 2004

Conceptual visualization

Formal process based

coordination

Informal awareness based

coordination

Continuouscoordination