06.03.2014 Views

A Framework for Integrating ESL Tools - IRIT

A Framework for Integrating ESL Tools - IRIT

A Framework for Integrating ESL Tools - IRIT

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

We take the MDE (Model-Driven Engineering) approach, and build a metamodel<br />

suited to the description of ad-hoc collaboration practices, which extends<br />

SPEM. This paper shows, on an example taken from a real world project, how<br />

appropriate our conceptualization is <strong>for</strong> actual software projects. It should be<br />

noted that our ef<strong>for</strong>t is not restricted to face to face or synchronous interactions,<br />

but covers any collective work that escapes the plan-and-execute scheme.<br />

The rest of this paper is organized as follows. Section 2 characterizes adhoc<br />

collaboration to build an understanding which we <strong>for</strong>malize in Section 3<br />

as a metamodel. Section 4 describes and represents a real world collaboration<br />

scenario with the proposed concepts. Section 5 summarizes some related works.<br />

2 Ad-hoc Collaborative Processes<br />

Collaboration happens whenever two or more individuals work on the same<br />

task or interact with the same work product. Collaboration has been defined<br />

as “a collective ef<strong>for</strong>t to construct a shared understanding of a problem and its<br />

solution” [16].<br />

Various concerns such as power sharing, responsibility assignment, appropriate<br />

recognition, giving credit, coordinating actions, trust, etc., can easily undermine<br />

collaborative ef<strong>for</strong>ts, by incurring to much cognitive overhead on participants,<br />

and taking the focus away from their actual tasks. In software engineering,<br />

these problems are further complicated by worldwide distribution of teams, the<br />

amount of knowledge sharing required, communication among people with different<br />

expertise, and high complexity and interdependency of artifacts [9].<br />

Thus, people usually collaborate only when the need arises. While there<br />

can be some prior planning, collaboration, especially in software engineering,<br />

is mostly ad-hoc [3, 15]. Whereas planned collaboration happens because it was<br />

on the agenda, ad-hoc collaboration is prompted by a new issue or new considerations<br />

in an existing issue. A field study found ad-hoc collaboration to amount<br />

to as much as 69% of all collaborative work in software development [15].<br />

Any tool that seeks to support collaboration had better speak the language<br />

of its users, so as to not increase the cognitive overhead they are already fighting<br />

with, and provide a frictionless surface <strong>for</strong> development [2]. When ad-hoc<br />

collaboration occurs in software engineering, the concepts involved <strong>for</strong> the practitioners<br />

are the actual people doing the job, what each of them is doing, and<br />

which artifacts they are manipulating.<br />

However, the central concepts used in process models like SPEM (role, product,<br />

task) are at a much higher level of abstraction than those used by practitioners<br />

to understand collaboration, thus hiding needed in<strong>for</strong>mation:<br />

– Role. How do we describe interactions between people playing the same role,<br />

but still doing different things like coding two dependant components, when<br />

the very need <strong>for</strong> two people surfaces only in the middle of the project?<br />

– Tasks. When we find out that more than one person is needed <strong>for</strong> a task<br />

(which is the very definition of collaboration), how can we, <strong>for</strong> example,<br />

2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!