A Framework for Integrating ESL Tools - IRIT
A Framework for Integrating ESL Tools - IRIT
A Framework for Integrating ESL Tools - IRIT
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