International Workshop On Global Software Development: ICSE 2002
International Workshop On Global Software Development: ICSE 2002
International Workshop on
Global Software Development
ICSE 2002
Edited by:
Daniela Damian
Frank Maurer
Nigamanth Sridhar
ISBN 1-86365-699-5
Publication sponsored by the University of Technology, Sydney.
Welcome
Welcome to Orlando and to the International Workshop on Global Software
Development.
The goal of this workshop is to bring together researchers and practitioners in trying to
understand the emerging phenomenon of global software development. As we witness an
increased globalization of software development, it is important that research addresses
the challenges of distributed software engineering, identifies the impact of geographical
and cultural differences on software engineering practice, and informs the development
of techniques and technologies to improve such practice.
The workshop is a continuation of the workshops held in the last four years at ICSE, on
the topic of "Software Engineering over the Internet". In particular, it intends to provide a
forum for discussion of the problems of software development in geographically
distributed structures, of the factors that contribute to the success or failure of virtual
corporations, and to ways in which Internet technologies can be used to overcome current
problems. Further, the workshop will discuss how standard software engineering practice
can benefit from open-source approaches and vice-versa. A major focus is on empirical
studies of global software development practices and of methods and technologies
employed to overcome geographical and cultural differences in multi-site projects.
Finally we would like to thank the members of the Workshop Program Committee for
their effort and support in making this workshop possible.
Program Committee
John Grundy, University of Auckland, New Zealand
Ross Jeffrey, University of New South Wales, Australia
Filippo Lanubile, University of Bari, Italy
Heather Oppenheimer, Bell Labs, Lucent Technologies, USA
Walt Scachi, University of California at Irvine, USA
Didar Zowghi, University of Technology, Sydney, Australia
Table of Contents
International Workshop on Global Software Development
May 21, 2002
Orlando, FL
ABSTRACT
Distributed software development typically uses a centralized
1. INTRODUCTION
Globally distributed software development has led to the creation
architecture, which has some drawbacks such as, the participants
of several applications that are in widespread use today. Examples
may experience lengthy delays if they are located far from the
include telecommunication software from Eriksson, Nortel and
central server, and the organization that runs the server must deal
others, and open source software, such as the Apache Web Server
with the security and privacy issues that come with being in
[1], the Linux operating system [7], the MySQL database [12],
charge of a central repository of information. We are investigating
and the CVS (Concurrent Versions System) [2]. Open-source
whether this centralized control can be relaxed by using peer-to-
software is created typically in a centralized distributed topology,
peer (P2P) technology. Adopting a P2P architecture includes
which involves people working in isolation and then releasing
some of the following benefits for software development: (1) the
their source code to a central repository. Any coordination and
peer (or group) is able to have complete control of its information,
communication that occurs between the members is done mainly
(2) groups can share and duplicate information to help users with
through message bulletin boards and email. There are industry
slow network connections, and (3) users can easily contribute
products available that developers can use over a network (e.g.,
their own resources to the project, such as hard drive space. The
Microsoft Project [10], Rational XDE [13]), and some tools
P2P architecture also has potential drawbacks, including the need
developed in educational institutions (e.g., TUKAN [14] and
for complex search and retrieval algorithms, and having to
CHIME [3]), however, most of these applications rely on a
coordinate the synchronization of duplicated stores of data. The
centralized architecture to aid the collaboration process. As a
objectives of our research are threefold: (1) to examine the design
result, software developers participating in a distributed project
issues related to the development of a P2P software development
(a) need to have a reliable and fast connection to the central server
application, (2) to alter an existing virtual software development
to access information and (b) need to trust the organization that
application (MILOS) from a client-server to a P2P application
runs the server.
using the Sun JXTA framework, and (3) to present empirical
evidence on the value of the P2P implementation based on data In our research project, we are investigating if this centralized
gathered during the development process, and during application control can be relaxed by using peer-to-peer (P2P) technology.
use (i.e., delays when searching and retrieving information). We see the following advantages compared to centralized
approaches:
Categories and Subject Descriptors The reliability of the overall collaboration environment is
D.2.9 [Software Engineering]: Management – programming increased because we replicate the information that is currently
teams; C.2.4 [Computer-Communication Networks]: maintained on a central server. As a side effect of the replication,
Distributed Systems – distributed applications we also expect performance improvements because we can bring
currently centralized information closer to each user.
General Terms Users have a tighter control over what information is accessible
Management by other developers. This is especially necessary in virtual
software enterprises, where the need for information sharing in a
Keywords project needs to be balanced with the needs of participating
Process Support, Peer-to-Peer Computing companies on protecting their intellectual capital.
Our project is in its starting phase. The work presented here
describes initial thoughts and should be seen as a means to start
the discussions that could provide us with feedback on the overall
idea.
The work presented in this abstract is based on our MILOS
system - which is described in the next section. The last section
presents our current thinking on a P2P extension of the MILOS Second, there is a greater importance on authenticating peers
approach. since the dynamic environment does not lend itself to easily
tracing peers, such as through static IP addresses or registered
2. BACKGROUND domain names because these may not be used. When dealing with
MILOS (Minimally Invasive Long-Term Organizational Support sensitive information, such as during the development of a
for software development) is an open-source project that provides medical information system, the authenticity of peers must be
support for the coordination and collaboration of virtual software without doubt. Third, there is the issue of the coordination of
engineering projects [8]. It includes the following developmental information in a P2P environment. For example, if information is
aids: duplicated then how often should the stores be synchronized with
- a workflow engine supporting the management of one another?
projects, which includes the coordination of the tasks
required for the completion of a project; 4. OBJECTIVES
- a bug-tracking system; The objectives for our research of P2P virtual software
development are threefold. First, to examine the design issues
- a metrics gathering utility; and, related to the development of a P2P virtual software development
- an experience base to store process models for future application, with specific attention given to the coordination of
use. data between different peers, and security concerns. Second, to
alter MILOS from a client-server to a P2P application using a P2P
MILOS also supports agile software development using some XP
framework. And third, to assess the value of the P2P
(eXtreme Programming) practices [9]. During the planning of a
implementation based on comparisons of the two implementations
project, user stories can be created and edited. As well, the
based on the differences in the quality and quantity of information
application supports the scheduling of communication and pair
available, and performance. An empirical evaluation of the
programming via Microsoft NetMeeting [11]. Although MILOS is
approach will involve gathering data on the development process,
geared towards software development, the application is general
measuring performance by measuring the delays when retrieving
enough to support the development of any type of project.
information, and having users complete questionnaires on their
3. ISSUES WITH MILOS AND P2P impressions of how the P2P architecture impacts the original
MILOS is based on a client-server model that has some potential application. This research will present some novel findings into
drawbacks for virtual software development teams. First, being the usefulness and issues related to applying the P2P architecture
dependent upon a central repository means that information may to virtual software development.
be brought together simply for the convenience of exchange or
access. The potential problem is that the singular group in charge 5. IMPLEMENTATION FRAMEWORK
of this information must deal with the security and privacy issues As MILOS is written in Java, we will be using the JXTA P2P
related to this intellectual property, when several groups could framework for our extensions. The JXTA model is a general
perhaps more appropriately manage it. Second, a virtual specification for describing a P2P architecture [4]. The
environment often means that team members are distributed specification is general in that it does not restrict the type of
around the globe. The distance of a user to the central server can language, service, or even network that is used. For example,
become a factor because team members may connect to the communication can be supported at the application layer by using
Internet via slow connections and so could be subjected to long HTTP, or even at the lower IP layer by using datagram packets.
delays. The JXTA specification is intentionally high-level to support the
interoperability of any P2P system. Data is structured in JXTA
The P2P networking model offers advantages in software
using XML (eXtensible Markup Language), which is a common
development over a client-server model because of the
method of structuring data for the communication between
independence from a central control. First, each peer, or group, is
different applications. Thus, any application can take advantage of
able to have complete control of its information, including source
the JXTA specification without having to be tied into a vendor.
code. The group could even be more cohesive because they can
Open-source implementations of the JXTA specification are
choose what information to filter from the outside. Second,
currently being developed in several languages, including Java,
groups can dynamically share and duplicate information with one
J2ME (Java Micro Edition), C, Perl, Python, Ruby, and Objective
another to allow for faster access to users who may have slow
C [6]. There is currently a stable build available in Java because it
network connections, or to support multiple projects that have
was the first programming language used to implement JXTA.
dependencies on the same artifacts. Third, the developers can
Java is an appropriate language for the implementation of a P2P
easily contribute their own resources, such as hard drive space and
specification because applications written in Java can run in
computing cycles, to an endeavor, which increases the robustness
several different operating systems, including Windows,
of the environment. This feature can be especially helpful for
Macintosh, Solaris, and Red Hat Linux [5].
projects with limited funding, such as open-source projects.
There are also potential drawbacks that must be considered when 6. REFERENCES
adopting a P2P design. First, searching for information is in [1] Apache HTTP Server Project. http://httpd.apache.org/.
general more complicated and time-consuming in a P2P
environment than in a client-server environment because the [2] Concurrent Versions System.
information is often more distributed, and can be more dynamic. http://www.cvshome.org/.
These characteristics could lead to longer development times.
[3] Dossick, S.E., Port, D., and Kaiser, G.E. Embedding [9] Maurer, F. and Martel, S. Process Support for
Model-Based Architecting in a Collaborative Distributed Extreme Programming Teams. University
Environment. Columbia University, New York, NY. of Calgary, Calgary, Canada.
http://www.psl.cs.columbia.edu/ftp/psl/CUCS-016- http://sern.ucalgary.ca/~milos/papers/2002/MaurerMart
99.pdf. el2002.pdf.
[4] Gong, L. JXTA: A Network Programming [10] Microsoft Project.
Environment. IEEE Internet Computing, 4 (May-June http://www.microsoft.com/office/project/default.asp.
2001), 88-95. [11] Microsoft NetMeeting.
[5] J2SE v 1.8 Download. http://www.microsoft.com/windows/netmeeting/.
http://java.sun.com/j2se/1.8/download.html. [12] MySQL. http://www.mysql.com/.
[6] JXTA Project. [13] Rational XDE.
http://core.jxta.org/servlets/ProjectHome. http://www.rational.com/products/xde/index.jsp.
[7] Linux Online. http://www.linux.org. [14] Schümmer, T. and Schümmer, J. Support for
[8] Maurer, F., Dellen, B., Bendeck, F., Goldmann, S., Distributed Teams in eXtreme Programming. German
Holz, H., Kötting, B., and Schaaf, M. Merging Project National Research Center for Information Technology.
Planning and Web-Enabled Dynamic Workflow http://www.darmstadt.gmd.de/concert/people/schuemm
Technologies. IEEE Internet Computing, 8 (May-June ePrivate/xp00.pdf.
2000), 65-74.
! " # $$% &'
() *+ , %* ,
- ' ' '
0 . ' 4
/ 1'
. / ! ' ' 5 . . 5 8 !
0 1' 20 3 1' ! 5
' 4 ! 5 / 5 5 ' 4 4
' 1' 5 1'
5 .' ! 5 5 ' . 6
5 .' 5 !
& 5 5 55 :%; 9 1' 5 '
1' . 5 5 8 ! 4'
5 5 & 0 6 ! 1'
' 4 5 / . . ' ' = . /
' 6 7 5 . ' . !
.' 1' . ! 1' 5 & '
5 5 ' ! 6 5
. ! 5
/ 7 ' '
4 4 1' .
!" #$% !#" & ' . ' 0
5 . ' 5 '
! ! 6 ! ' 5
4 5 / '
! . ! .
. 0 5 . ' 5 8 # .'
5 . ! & 9 :); ! 1' : ;
' & ' 5 : ; < . ! '
5 / 8 5 . ' . ' ' 4 / 1'
. ! >
5 :); <' 5 .' 5 5 '
. . ' ' ' .' ! . .
6 ! '. 1' 5 ! ' . 5
. ! 5 5 ! 1'
5 ' ! 5 . ! 5 8
5 ! '5 6 . ! 5 5 5 '
' 5 1' ' ' 5 ' ' 5 8
' !
. ' 5 &
5 6 7
5 .' 1'
. .
' 5 ! 5
' 5 . 5 & 5! 6 5
' ' ' ' 4 5
, / !
5 . ' .
& ' ' ( )'"$
0 1' 5 5
* + ',!-!" . /!"$!") / #-
/ ! 5 :+;:?; 9 ' %$.
6 ' ' ! 44 .' ' . ' ' 4
' ! 4' 6 '5 / 6
5 1' ' ' ' A 1' 2 5
/ . ' 9 5 5 . 6 5 3 5
' 6 ! ' ' &' ' '5 ! !
0 5 5 5 6 5 ' 5
. ' . ' 4
/ 1'
9 1' ! 6
@ ! 5 5 5 ' . !
1' . . 1' 5 ! . 9
' ' ' 5 ' 5 5
' 5 8 & 55 .' 1' !
5 5 '5 5 5
' ' ' . 5 . . . 9 5 2.'
/ 5 1' 1' 5 '
9 5 ' ' ' 1' 3 4
! . 5 5 '
1' 6 '5
6 ' ' ! ! '
5 ! ' 5 1'
' ' . &' 5
5 ' 55 . &' ' $$ '
. ' 2 5 ' . 1'
' 4 / 3 5 . 4 4
. 5 ' 5 5 ! ! 6
' ! ' ' . 5 B ' 5
1' C' '55 B
' . . ! 5 8 ! '
# ' ' . . 0 &' " ! D
5 . ! ' 5 ! . ' . 1' '
5 5 A E! '
. ! 5 5 . 0 1' .' FG E!
. ! 5 8 . 1' ' 5 FG
! ' E! ' FG
5 1' < .
& 5 . 5 5 8 &
! ' 5 ! 5 ' :); '
! 4 5 5 ' ' ' 6 !
' 5 5 5
0 5 . 5 8 . ! . 5 5 . 6
1' 5 . ' . ' 1' 5 8
5 ' 0 . . !A
• ' 5 . H '
. 4 4 ' ' . . 44 '
6 7 ' 5 ' 6 6 '
1' ' ' ' ! ! 6
' 9 ' . 5
'5 2 ' 6 5 5 ' ' 1'
5 3 ' ' 1' 5 /
6 5 ! ' B . ' :,; # 5
5 ' 5
! 6 5 ' . 6
• 1'
5 5
. ' 1' ' 5 '
' 55 5 0 ( ,,'")' !" #"$% !") (!
! 5 B . ' ' ' (
.' 1'
5 ' 6 6 5 #
! . 5 ' ! ' 5 '
5 5 ! ' 4 5 5 5
/ ' ! '
• 6 7 9 ' 1'
' ' ' . 5 ! ' .
' 5 1' 5 55 ' ! 6 6
' 5 / 1' 1' 4
' ' ' " 5 ' 5 1' '
! / ' ' .' ' 6 . ! . '
! 5 . ! ' 1' 5 ' ' !
5 / 2 6 .' 5 / .
5 3 ' = ' 5
! '
• 9 / 5'. ! '
.' 6 9 ' /
' 4/ ! / 5 . ' . 6 7
5 . ' . 5 .'
@ ' 5 5 1' 5 =
' 5 . ' 5 5
'
! !6! H ' ! 8
! E . !G
5 ! 6 ' ' 5 5
1' ! 1' 5 5 9 ' 4
' ' 5 / H 4 ! 5 5 !
! 1' ' ' H 5
5 ' ! 5 6 . 5
1' @ 5
9 5 . &' . 5
I ' 4 4 67 / 6 ' ' 0 5 . '
5 . 5 ' A ' ! 6
' 7 5 . ' 6 0 1' 4 6
5 ' 5 ' ' 1'
5 ' 5 5 / . 5
5 &' ' E G ' / 0 1'
& 5 0 . 5 ! ' !
5 . 9 . 5 0 ' ' ! 1'
' 4 ! 5 < ' ' 1'
1' ' ! 6 ! 2"#3,'$)'-'"
1' . 5
! ' 5 5 5 B 6 5 5 ' 4
5 / ! ' .
' ! ' . " 0C
# ' / ! 5 4 ! 5
E G 5 &'
5 .' 5
. 5 /
' . ! ! ! ' !
' ! !
'/' '" '
6 ' 5 : ; C > . ! @ ***
.' ' 5 !
: ; . & > '5! '55
! 6 !
1' .' !
6 5
5 ! "
1'
# B C
<' ' 5 5 $$
' & ! .
: ; . & ! BJ> >
5 !
0 '
' ' = !
1' B KL' ?4
5 6 5 . ' .
) $$$
' '
5 ' 4 5 5 :,; D ! 5
! 6 7 5 .'
! ' .' E G 1' ' 4 /
5 / . 5 . $ " %&&% ' $$
.' . ! .
:+; > ' L& 0 1'
.'
' L 6 B
5 6 ' 4
> ' L 2 3A 0
1 #" ,% !#" & )+4 $$ **,
5 5 ' 1' :); @ . . L B > . !
5 .' 5 # #B K&5 )4 $ $$
! 5 5 5 :%; 0 M &0 .8 4
5 5 1' A ' . !
. 0 5 ( )* @ ! $$
5 5
5 ' . :?; 9 ! $
6 5 ! +,- # **%
' ! ' '
5 '
' 1' ' 4
5 /
Supporting Global Software Development with
Event Notification Servers
Cleidson R. B. De Souza1,2 Santhoshi D. Basaveswara1 David F. Redmiles1
1 2
Information and Computer Science Department of Informatics
University of California, Irvine Federal University of Pará
Irvine, CA, USA Belém, PA, Brazil
{cdesouza,sdb,redmiles}@ics.uci.edu [email protected]
3.2 Integration
An event notification server can also be used to support
integration among software development tools [22]. Therefore,
these tools will be able to communicate with each other and
cooperate despite incompatible data formats. In fact, event
based integration is one of the most prevalent integration
Figure 1. A generic event notification server. approaches to support loose integration [1]. A loose integration
approach occurs when tools have little or no knowledge of one
A notification server usually provides a subscription service another reducing the coupling between tools. This advantage is
that allows consumers to subscribe to different types of events particularly important in distributed software development
using, for example, boolean (logical) connectors, regular because, often, each site uses different tools as they became part
expressions, sequence matching, and so on. There are many of the company due to acquisitions and merges [16], i.e. the
event notification servers in existence and they are surveyed event-based framework can be used as a mechanism to integrate
elsewhere [7]. Three representative examples are CASSIUS tools and therefore support cooperation amongst distributed
[18], Elvin [11] and Siena [4]. CASSIUS was developed sites. Frequently, sites also have their own organizational
tailored to provide awareness information for groups. Elvin was culture that encompasses the unit’s norms and values, and also
originally developed to gather events for visualizing distributed the culture of system development, such as the use of
systems, but it evolved later to a multi-purpose event methodologies and project management practices.
notification system. Finally, Siena emphasizes scalability in
distributed environments. 3.3 Internet-scale Notifications
Another important advantage is the possibility of Internet-scale
3. ADVANTAGES OF EVENT event notification. Although this feature is not implemented in
all notification servers it has becoming increasingly more
NOTIFICATION SERVERS common. Siena [4] is an example of a server supporting wide-
Herbsleb and Moitra [15] classify the dimensions of the
are event notification. Basically, this means that those
problems encountered in global software development: strategic
notification servers enable the construction of Internet-scale
issues, cultural issues, inadequate communication, knowledge
distributed applications [3]. This feature is necessary to support
management, project and process management issues, and
integration among tools, since these tools are used in distributed
technical issues. Each one of these problems demands different
sites. Furthermore, it is also useful because it enables the
approaches. In this paper, we argue that event notification
communication and exchange of information (through the
servers can be used to support global software development
exchange of events) among the distributed different sites.
because they help resolve the technical issues, they help to
minimize the inadequate communication between developers,
and they provide support for some organization issues such as 3.4 Support for Informal Communication
role support. The physical distance between sites makes it harder for
distributed team members to locate remote colleagues and to be
aware of their actions. This lack of awareness implies in fewer architecture to communicate with the information consumers,
interactions since they can not tell what people are up to and if i.e. they poll the notification server to check for new events, in
it is appropriate to interrupt [2]. In fact, one of the main our scenario, at intervals of five seconds.
problems in distributed software development is the lack of
informal communication [14], i.e., since the teams are not On the other hand, in a push architecture the component that
physically together, they can not meet around the water cooler, wants to send the events “pushes” these events onto the others.
in the hallway or in other public areas. Empirical studies In other words, the second component is “called” by the one
suggest that informal communication is very important to that is sending events. In this case, these components need to
coordinate teams in uncertain tasks such as software implement some kind of standard interface to be invoked by the
development [8][20]. In other words, software developers rely other components.
also on informal, ad-hoc communication to fill in details, handle
exceptions, correct mistakes and bad predictions, and manage To the best of our knowledge, current notification servers
the effects of all these changes [14]. As this type of implement one of the two architectural models. However, in
communication is absent in global software development the order to support distributed software development both
coordination of these tasks is much more difficult. architectural models should be supported due to the different
Portholes systems were one approach to give geographically roles involved in a software development activity. For example,
distant co-workers a sense of mutual awareness [10]. More a push model is important in order to inform the manager of an
recently, researchers have tried displacing porthole’s invalid or problematic state. In real-time scenarios, it might be
information in time to compensate for differences in time zones. imperative to receive a notification of events as soon as they
Another possible approach to this problem is to use Instant occur. On the other hand, a pull model is important in a mobile
Messaging (IM) to stimulate informal communication environment where the information sources can be
(opportunistic interactions) among workers at different sites. disconnected. In this case, the events would be lost if they were
Usually, IM systems provide awareness information about the not recorded for later delivery.
presence of others. For example, if the other members of the
team are connected at the moment, the last time they connected 3.6 Network Problems
and so on. Notification servers have been used as infrastructure In order to support global software development, networks
to build IM systems [3], in so doing they can indirectly support spanning across several sites are necessary. However, these
informal communication. networks are often slow and unreliable, i.e., network packages
are lost due to problems in the transmission. For several
3.5 Role Support applications, this is not a problem, however in global software
In general, software development is essentially a cooperative development the events flowing in the network encapsulate
activity performed by a team. This is also true for distributed critical data necessary to improve coordination of activities,
software development where developers are dispersed in communication, etc.
different sites and even countries. Roles are used to help the
coordination of a large number of developers. Examples of Event meta-information could be used to avoid networks
roles are: project managers, team leaders, senior analysts, problems. By meta-information, we mean any additional
designers, programmers and so on. Each role has its own duties: information about an event that is recorded by the information
e.g., the project manager is responsible to ensure that the project source or notification server and sent alongside with the event.
is completed within budget and on time, while the reviewer has Therefore, this meta-information is available to the information
to ensure that the components being implemented do not have consumers, in addition to event information. Typical examples
defects. These formal roles need different types of information of meta-information are the type of the event being sent, the
to be properly played. In fact, according to [24] a collaborative information source that sent the event, the timestamp when the
system should be able to direct particular information to event was sent by the information source and so on. A flexible
particular people based on their roles. mechanism to support event meta-information could be used to
support additional services such as guaranteed delivery and
Fuchs [12] argues that the same event can be highly important security, therefore alleviating the problems of the wide-area
for one user and completely uninteresting for another user in the networks.
same situation, or similarly, an event may be important for a
user in some situation and irrelevant for the same user in
another. Fuchs’ work is about public administration, but the
4. EXAMPLE SCENARIO
The following scenario illustrates how a notification server
similarities to software projects is sufficient that we believe
might be used to support distributed software development. It is
similar conclusions apply.
similar to the scenario developed by [23] while describing
Palantír. Palantír’s goal is to support developers with advanced
In general, in an event-based system there is communication:
graphical views that keep them continuously aware not only of
between the information source and the notification server and
which artifacts are changing, but also of the impact and severity
between the notification server and the information consumers.
of those changes. We are currently working with the developers
There are two types of architectures to implement this
of Palantír to implement the following scenario.
communication: pull and push. In a pull architecture, the
component interested in receiving the events is responsible for
In this scenario, several distributed users are working on
contacting the other component to check for new events.
different, but dependent, parts of the system. For example, John
Usually, it is necessary to specify how often one component
is developing a component called “Note.java” in Los Angeles,
wants to poll the other. For example, CASSIUS uses a pull
USA. This component depends on another component strong coordination and communication among developers.
“Main.java” being developed by another developer, Simon, in When performed in a distributed setting, software development
Kerala, India. The dependency between these components becomes even more challenging. In global software
implies that John needs to be notified when component development, several problems arise due to the physical, social
“Main.java” is modified. Otherwise, changes in Main.java may and cultural difference between the developers. For example,
“break” his code. In other words, John adds this component to communication is much more difficult because of language
his private workspace in Palantír; therefore this system will barriers, informal communication among the team members
send a subscription to a notification server specifying that John cannot happen and trust is more difficult to achieve.
be notified about changes (events) for that component. This
subscription is sent to the notification server located in Los The goal of this paper was to present event notification servers
Angeles, which forwards it to all other notification servers of as an important and useful technology to support global
the company including one in India. Meanwhile, Simon, who software development. They are able to do so because they
has been working in India to complete his task, checks in provide a good framework to the development of collaborative
“Main.java” into the Configuration Management (CM) system. tools. For examples, technical problems that collaborative tools
face in widely distributed scenarios can be solved using these
The CM system is instrumented in a manner such that it sends servers. Indeed, we presented some common problems in global
events to the notification server, when components are checked software development and how event notification servers could
in or checked out. In this case, a new event viz. "component solve them.
Main.java checked in by Simon at 5:03 PM" would be
generated. The notification server in India adds information Finally, it is important to note that event notification servers are
about the current location to the event and then forwards it to one mechanism to distribute events across the sites. They
the server in LA. The next morning, John’s workspace would provide the infrastructure for a variety of tools to be built upon,
have an indication of changes to the component “Main.java”. such as process visualization [6] or event reasoning [5].
Using Palantír [23] John would be able to figure out the
appropriate action to be taken: change his code, contact Simon,
etc.
6. ACKNOWLEDGMENTS
Effort sponsored by the Defense Advanced Research Projects
Agency (DARPA) and Air Force Research Laboratory, Air
Similarly, say John’s component also depends on another
Force Materiel Command, USAF, under agreement number
component, “Connection.java,” being developed by Susan in
F30602-00-2-0599. Effort also partially funded by the National
New York, USA. In this case, due to the small difference
Science Foundation under grant number CCR-0205724 and
between the two time zones, John could be working on his
9624846. The U.S. Government is authorized to reproduce and
component at the same time that Susan is working on hers. In
distribute reprints for governmental purposes notwithstanding
this case, John would be notified about changes in this
any copyright annotation thereon. The views and conclusions
component accordingly and he might contact her to avoid
contained herein are those of the authors and should not be
possible problems and inconsistencies.
interpreted as necessarily representing the official policies or
endorsements, either expressed or implied, of the Defense
There are several important points in this. First, the notification
Advanced Research Projects Agency (DARPA), the Air Force
server must support Internet-scale notifications in order to
Laboratory, or the U.S. Government. The first author was also
deliver the information among the distributed sites. Second, the
supported by CAPES (grant BEX 1312/99-5).
notification server must support push and pull. A pull
architecture is necessary to store events and deliver them when
necessary as in the first part of the scenario. Push is used in the 7. REFERENCES
second case to deliver information in near real time. Third, in [1] Barret, D. J., Clarke, L. A., Tarr, P. L. et al. A Framework
this scenario, events are being treated as strings without any for Event-Based Software Integration, ACM Transaction
formal structure. However, in reality, events should be semi- on Software Engineering, vol. 5, n. 4, pp. 378-421,
formally structured in order to (1) facilitate their processing, October 1996.
and (2) provide support for error detection. It is also necessary
to have some mechanism for defining event structure and type. [2] Bellotti, V. and Bly, S. Walking away from the desktop
For example, events being sent by a configuration management computer: distributed collaboration and mobility in a
system are different for those provided by project support tools product design team. In Proceedings of the ACM
such as MILOS [21]. Finally, it is important to mention that, to Conference in Computer Supported Cooperative Work, pp.
the best of our knowledge, there is no current implementation of 209-218, Cambridge, MA, ACM Press, 1996.
a notification server that supports all the features described [3] Cabrera, L. F., Jones, M. B. and Theimer, M. Herald:
above. We are currently building a more complete server and Achieving a Global Event Notification Service, In
plan to deploy it in a real organization with other collaborative Proceedings of the Eighth Workshop on Hot Topics in
software engineering tools in order to investigate whether the Operating Systems (HotOS-VIII), Elmau, Germany. IEEE
advantages described in this paper can be obtained. Computer Society, May 2001.
[4] Carzaniga, A., Rosenblum, D., and Wolf, A.. Design and
5. CONCLUSION AND FUTURE WORK Evaluation of a Wide-Area Notification Service. ACM
Software development performed by traditional co-located Transactions on Computer Systems, 19(3), 332-383, 2001.
teams is an intrinsically difficult task. It is difficult because of
the complex nature of the activities being executed requiring [5] Cohen, D., Feather, M. S. and K. Narayanaswamy. An
Event-Based, Reactive, and Extensible Infrastructure for IEEE Software, vol. 18, Issue 2, pp. 16-20, March/April
Distributed Collaboration, In Proceedings of the Workshop 2001, Special Issue in Global Software Development.
on Coordinating Distributed Software Development
Projects, IEEE Intl. Workshops on Enabling Infrastructure [16] Herbsleb, J., Mockus, A. Finholt, T. A. and Grinter, R.
for Collaborative Enterprises, June 1998. Distance, Dependencies, and Delay in a Global
Collaboration, In Proceedings of ACM Conference in
[6] Cook, J. Internet-based Software Engineering Enables and Computer Supported Cooperative Work, pp. 319-328,
Requires Event-Based Management Tools, Proceedings of Philadelphia, Pennsylvania, 2000.
the 3rd Workshop on Software Engineering over the
Internet, At International Conference on Software [17] Hilbert, D., Redmiles, D. Extracting Usability Information
Engineering, Limerick, Ireland, June 2000. from User Interface Events. ACM Computing Surveys,
accepted and to appear, Vol. 32, No. 4, December 2000.
[7] Cugola, G.; Di Nitto, E.; Fuggetta, A. The JEDI event-
based infrastructure and its application to the development [18] Kantor, M., Redmiles, D. Creating an Infrastructure for
of the OPSS WFMS. IEEE Transactions on Software Ubiquitous Awareness, Eight IFIP TC 13 Conference on
Engineering, 27(9), pp. 827 –850, Sept. 2001. Human-Computer Interaction (INTERACT 2001), Tokyo,
Japan, pp. 431-438, July 2001.
[8] Curtis, B., Krasner, H. and Iscoe, N. A Field Study of the
Software Design Process for Large Systems. [19] Karolak, D. W. Global Software Development. Chapter 1,
Communications of the ACM 31(11):1268-1287, “What’s Driving Global Development?”, IEEE Press,
November 1988. 1999.
[9] De Souza, C. R. B., Basaveswara, S. D., Redmiles, D. F. [20] Kraut, R. E., Streeter, L. A., Coordination in software
Lessons Learned Using with Notification Servers To development, Communications of the ACM, 38(3), pp.69-
Support Application Awareness, In progress. 81, March 1995
[10] Dourish, P. and Bly, S. Portholes: Supporting Awareness [21] Maurer, F., Dellen, B., Bendeck, F., Goldmann, S., Holz,
in a Distributed Work Group. In Proceedings of the ACM H., Kotting, B., and Schaaf, M. Merging Project Planning
Conference on Human Factors in Computing Systems, and Web-Enabled Dynamic Workflow Technologies, IEEE
Monterey, CA, pp. 541-547, 1992. Internet Computing, pp. 65-74, May/June 2000.
[11] Fitzpatrick, G., Mansfield, T. et al. Augmenting the [22] Reiss, S. P. Connecting Tools Using Message Passing in
workaday world with Elvin, In Proceedings of 6th the Field Environment, IEEE Software, pp. 57-66, July,
European Conference on Computer Supported 1990.
Cooperative Work, pp. 431-450. Copenhagen, Denmark, [23] Sarma, A. van der Hoek, A., Palantír: Increasing
Kluwer, September 12-16, 1999. Awareness in Distributed Software Development, In
[12] Fuchs, L.. AREA: A cross-application notification service Proceedings of the International Workshop in Global
for groupware. In Proceedings of the Sixth European Software Development, At International Conference on
Conference on Computer-Supported Cooperative Work, Software Engineering, Orlando, Florida, May 2002.
pp. 61–80, Copenhaguem, Denmark,. Kluwer, September [24] Steinfield, C., Jang, C.Y., and Pfaff, B. Supporting Virtual
12-16, 1999. Team Collaboration: The TeamSCOPE System. In
[13] Grudin, J. CSCW: History and Focus. IEEE Computer Proceedings of ACM GROUP Conference, pages 81–90,
27(5):19-27, May 1994. Stockholm, Sweden, Nov. 1999.
[14] Herbsleb, J. and Grinter, R. Architectures, Coordination, [25] Sutton, P., Arkins, R., Segall, B. Supporting
and Distance: Conway’s Law and Beyond, IEEE Software, Disconnectedness – Transparent Information Delivery for
September/October, 1999. Mobile and Invisible Computing. In Proceedings of IEEE
International Symposium on Cluster Computing and the
[15] Herbsleb, J. and Moitra, D. Global Software Development, Grid (CCGrid’01), 2001.
Virtual Software Inspections
for Distributed Software Engineering Projects
versioned
file
XSQML repository
XML + XSLT
annotations,
Xfi metric
database
Figure 1. Integrating the XATI inspection tool with other development tools by means of Xfi.
to a logical element in the document, or to an individual word. An that almost all of them already had software engineering
inspector can decide on the scope while making a comment. experience in industry.
Integration with other software development tools and repositories Over a period of one month, 74 students evaluated the XATI tool
is carried out with an interoperability framework called Xfi and filled in an on-line questionnaire. The material to be
(eXtensible framework for interoperability) [7]. This consists of inspected was a fictional requirements definition document
an XML-based query and data manipulation language XSQML containing UML diagrams and many defects. It was structured
together with drivers and schema transformers for adapting the using XML and visualized with a CSS stylesheet.
general interface to different situations. This prototype framework
allows the inspection tool to fetch the necessary data from other The questionnaire was based on research by Laitenberger and
applications and minimizes administrative and out-of-core tasks. Dreyer [9] with only slight modifications, chiefly that the middle
No separate server is needed to support it, because the tool alternative “neither” was omitted, as suggested in the original
operates in co-operation with a generic interoperability framework paper. The resulting item scale is shown as a table in Figure 2.
configured to serve inspection-related data, taking advantage of The questionnaire also included additional statements about new
the Xfi's feature of supplying data from a variety of sources features provided by XATI and free form questions, which,
through a simple XML-based interface and just one among other things, provided us with important feedback about
interconnectivity point. Data on inspection tasks are derived from the user interface and some feature requests.
the project plan, documents under inspection are fetched directly
from a file repository, and annotations are referred back to the When analyzing the results, the students were divided into two
shared databases for the collection of metrics (Figure 1). groups based on their working experience with inspections or
technical reviews. 35 students were marked as experienced and 39
4. EVALUATION as inexperienced (had performed inspections only once or not at
all). The ratio is suitable, as the two groups can be interpreted as
Although the concept of virtual software inspection was
implying that the inspection was introduced either as a new
formulated in co-operation with our partner companies, we are
process or else merely as a new tool to support an already familiar
transferring the generalized results back to the industry by
process. On the other hand, the numbers unfortunately indicates
experimenting with the virtual software inspection tool.
that inspections and reviews are still unpopular in industry.
We started with a student experiment that focused on the
Figure 2 depicts also the relative frequencies of answers to the
usefulness and ease of use of the XATI tool. The students were
four most interesting questions. These consisted of the following
taking a course in reviewing and testing at the University of Oulu,
statements:
and they were all familiar with inspection techniques and had
ª Usefulness: I would find XATI useful in my job.
performed a conventional paper-based inspection as an exercise.
In addition, they were 3rd year students or higher, which meant ª Ease of use: I would find XATI easy to use.
Figure 2. Relative frequencies (%) of answers to the four most interesting questions.
ª Future usage: Assuming that XATI were available on my The initial results of our evaluations of the key aspects of virtual
job, I predict that I would use it on a regular basis in the software inspection were encouraging, as the students felt our first
future. virtual inspection tool, XATI, to be both useful and easy to use.
ª Preference over paper-based forms: I would prefer using An obvious majority preferred it to paper-based forms for
XATI to paper-based forms for performing inspections. performing inspections and predicted that they would use it on a
The answers to these questions summarise the general trend regular basis in the future if available. We are now testing the tool
among the test users. 74% found XATI useful, and the same in a partner company, and focusing on integration and flexibility
percentage found it easy to use, the mean values being 3 (slightly aspects. In addition, we intend to define the subprocesses of
likely) and 4 (quite likely). When predicting future usage, 69% virtual inspection in more detail, although still expressing them in
said that they would like to use the tool and 72% were ready to a tailorable manner.
replace paper-based forms with on-line inspection. The mean
value for both statements was 3. The role of virtual software inspection will be even more
important in the future. To meet the challenges inherent in modern
It was interesting to note that the experienced students were a little software development environments, the arranging of virtual
more sceptical than unexperienced ones when predicting future reviews would seem to be the only competent solution. More
usage of the XATI. Only 60% of the students making inspections research will be required, however, to refine distributed inspection
or reviews in their job were ready to employ the new tool, in order to exploit its full potential.
whereas 77% of the inexperienced students predicted that they
would use it on regular basis. It is not clear whether this is only a REFERENCES
consequence of bugs in the tool or whether it represents natural [1] Caivano, D., Lanubile, F. and Visaggio, G. Scaling up
resistance to change. Luckily, there was no difference when the distributed software inspections. Proceedings of the Fourth ICSE
students were asked whether they preferred using XATI to paper- Workshop on Software Engineering over the Internet, 2001.
based form for performing inspections, the proportions being 71% [2] Document Object Model Working Group,
and 72% respectively. It seems that tool support is quite well http://www.w3c.org/DOM/
accepted, but individual tools need more finishing before they can [3] Fagan, M.E. Design and code inspections to reduce errors in
be adopted without resistance. program development. IBM Systems Journal, vol15, no 3, 1976,
182-211.
The next step will be to evaluate the XATI and Xfi tools in [4] Harjumaa, L., and Tervonen, I. A WWW-based tool for
industry projects to obtain feedback from real users. We are software inspection. Proceedings of the 31st HICSS conference,
especially interested in how feasible the aspects of virtual vol III, 1998, 379-388.
inspections are and whether we have succeeded in implementing [5] Harjumaa, L., and Tervonen, I. Virtual software inspections
them in our tool. We thus aim to seek answers to at least the over the internet. Proceedings of the Third ICSE Workshop on
following questions:
ª How efficient and easy to use is our tool? Especially, how
Software Engineering over the Internet, 2000.
[6] Hazeyama, A. and Nakano, A. Web-based Inspection Process
well are the annotation, linking and commenting capabilities Support Environment for Software Engineering Education.
implemented?
ª
Proceedings of the Fourth ICSE Workshop on Software
Are the virtual inspection process and tools supporting it as Engineering over the Internet, 2001.
flexible as they should be? Especially, what changes should [7] Hedberg, H. Integrating software engineering tools and
be made to the processes when using our tool?
ª
repositories with XML and XSLT. Proceedings of the Fourth
Is the organization able to make efficient use of the ICSE Workshop on Software Engineering over the Internet, 2001.
interoperability of the processes and tools? Especially, [8] Johnson, P.M., and Tjahjono, D. Does every inspection really
where are the bottlenecks when creating seamless operation need a meeting? Empirical Software Engineering, no 3, 1998, 9-
between inspection and other phases? 35.
The experiment will be carried out during 2002, and will include [9] Laitenberger, O., and Dreyer, H.M. Evaluating the usefulness
couple of cycles in which opinions on virtual inspection and the and the ease of use of a web-based inspection data collection tool.
tool itself are evaluated using questionnaires. Proceedings of the Fifth International Software Metrics
Symposium, 1998, 122-132.
5. CONCLUSIONS [10] McConnell, S., The Best Influences on Software
Distributed software engineering projects cannot make use of the Engineering, IEEE Software, January, 2000.
same traditional methods as do co-located teams, although their [11] Porter, A. A., and Johnson, P.M. Assessing software review
communication and quality assurance needs are the same. This is meetings: Results of a comparative analysis of two experimental
especially apparent in software inspections that have a heavy studies. IEEE Transactions on Software Engineering, vol 23, no 3,
accent on teamwork. 1997, 129-145.
[12] Tervonen, I., Iisakka, J., and Harjumaa, L. Software
It is not feasible to construct computer support for paper-based inspection – a blend of discipline and flexibility. Proceedings of
inspections, but rather distributed working, which has its own the ESCOM-ENCRESS conference, 1998, 157-166.
needs as fas as the roles, tasks and phases involved in the process [13] Weinberg, G., M., The Psychology of Computer
are concerned, should be counted as a method of its own. We call Programming, Van Nostrand Reinhold Company Inc., New York,
this method virtual software inspection. Its characteristics, notably 1971.
flexibility and integration, are important factors when introducing [14] XPToolkit project, http://www.mozilla.org/xpfe/
software inspections and new tools into organizations.
Building Awareness in Global Software Engineering:
Using Issues as Context
ABSTRACT Curtis et al. [4] observed that documentation does not re-
In this paper, we propose an awareness system that en- duce the need for communication, in particular, during the
ables participants to monitor the activities of others over early phases of the project, when stakeholders coordinate
a wide range of artifacts (e.g., system artifacts, organiza- their conventions and create informal communication net-
tional charts, or rationale models). Participants can sub- works. They also observed that obstacles in informal com-
scribe to be notified when specific system artifacts are mod- munication (e.g., organizational barriers) can lead to mis-
ified, when specific participants trigger an activity, or when understandings in conventions and rationale. Kraut and
participants trigger activities related to specific issues. Re- Streeter [15] note that formal communication (e.g., formal
lationships among the system, organizational, and rationale specifications, inspections) is useful for routine coordination
models are then used to provide observers a context to inter- while informal communication (e.g., hallway conversations,
pret the activities of others. By providing context in terms telephone) is needed in the face of uncertainty. Grinter et
of issues (as opposed to only system or communication ar- al. [12] studied distributed projects using different organi-
tifacts), we hope to disseminate richer and more targeted zational models and confirmed these findings in distributed
awareness information, hence creating more opportunities projects.
for informal information exchanges and for distributed col-
laboration. Several approaches have been proposed to support distributed
communication. In the software process community, dis-
1. INTRODUCTION tributed process support systems have been proposed [14].
In researching distributed software engineering, we have taken Detailed models of the software development process and of
the approach of “learning-by-doing.” We have taught sev- the organization are developed and enacted with the help of
eral distributed project courses in which teams located in a distributed tool. Participants are automatically notified of
Pittsburgh, PA and in Munich, Germany collaborated on the completion of other participants tasks and are told what
developing a system for a single industrial client [2, 9]. We to do next. Assuming a realistic process model, the strength
have observed that the most critical issues related to distri- of process enactment environments are that responsible par-
bution are actually not technical, but social: ticipants are notified in a timely manner, regardless of their
location and independent of their counter parts. However,
current challenges posed by such environments include the
• Participants not knowing each other resulted in low difficult adaptation of the workflow during exceptions, the
awareness of each site and little daily collaboration. interleaving of process modeling and process enactment, and
• Lack of daily collaboration made it more difficult to user acceptance [11].
accurately communicate team and project status, re-
sulting in many crises detected late. In computer supported collaborative work, groupware and
videoconferencing have been proposed and evaluated with
• Lack of status information and informal contacts be- mixed results [13], especially in informal communication,
tween sites made it difficult to manage crises once they as they require that participants are aware of each others
were identified. activities. This, in turn, triggered substantial research in
improving group awareness [7]. Awareness systems are usu-
Researchers have already noted the importance of commu- ally integrated with a groupware system and provide their
nication in software development [4, 12, 15]. In a field study, project participants some indication of who is currently us-
ing their computers and hint about their communication
activity. Knowledge of what others are doing enables par-
ticipants to find their counter parts and to initiate conver-
sations about impending crises.
An awareness system enables participants to receive a stream • dependency: a collection of references of other issues
of events that inform them about the activities of others, that need to be resolved first
in real time. Although our primary objective is to create
opportunities for participants to initiate informal commu-
nications, we see other longer term uses for this stream of In our environment, we store issue models in a repository
events. For example, a variety of process and system met- shared across all tools manipulating issues.
rics can be derived from awareness events over time, hence
informing a project manager of the direction of the project.
Since issues are used as a main context element, these met-
rics could also be based on the issue models, hence providing Issue
a rationale centric view of the software life cycle, as opposed Argument
to an entity centric or a process centric view. Rationale
Element Proposal
Criterion
In the rest of the paper, we describe in more detail our * * Decision
awareness system, our plans for its experimental evaluation,
and future directions.
2. META-MODEL * *
Participants use many different sources of information to
Organization
Element
* * System
Element
• System models represent the system under develop- Team Resource Domain Class Solution Class
1. Motivation and Theoretical Background interest is to explore and improve the practice of
development of CB/OO software systems in a
Global distribution of software development has
globally distributed setting.
become widespread over the last decade. There are
a number of economical and technical trends that 2. Research Objectives and Questions
are likely to further accelerate the growth of
distributed software development. On the The main research question we address is what
technological side, ongoing innovations in support (technical, methodology, and social) is
information and communication technologies, needed for coordination and collaboration of
made by eliminating the perception of distance, distributed teams in Component-Based/Object-
make it possible to cooperate in software Oriented software development?
development projects in a distributed mode. Our first objective is to elicit Coordination and
However, currently there is limited research and Collaboration (C&C) patterns for distributed
experience in this emerging area. The few existing teams developing CB/OO software. Following
studies ([1-3]) report numerous problems in traditions of software development community (e.g.
distributed projects. The time, governance, [5], [6]) by patterns we mean “best practices”
infrastructure, and culture gaps, associated with the explicitly represented by means of templates
geographical dispersion of work, make it more (models or working instructions) that could be used
difficult to manage inter-site work dependencies for coordination and collaborations of distributed
and to coordinate and control the distributed work. teams in well-defined (easily identified/recognized)
Furthermore, traditional coordination and control situations or for resolving well-defined issues.
mechanisms are less effective in global software − C&C patterns are to be based on issues and
projects. Carmel ([1] and Van Fenema [3] suggest problems distributed teams face in practice.
that these traditional mechanisms will be effective − They will provide solutions/ways that are based
for dispersed projects only with appropriate on “best practices” or existing successful
Information and Communication Technology (ICT) practices.
support. However little is known of the success of − C&C patterns will incorporate the following
current ICT and methodology support within elements: Activities, Actors (roles),
globally distributed software development projects. Technology, Artifacts and guidelines regarding
Furthermore, current development methods do not human issues.
accommodate the distribution of development
activities across multiple sites. Recent trends in the The second objective is to develop a (meta)-model
software development industry in the use of Object of coordination and collaboration for distributed
technology and a modular or component-based teams. This meta-model will provide the overall
architectures allow distribution of development framework (architecture) for the socio-technical
activities over multiple sites. However knowledge support for globally distributed software teams.
is lacking on how to effectively distribute To study existing practices and elicit C&C patterns
Component Based (CB) / Object-Oriented (OO) we have defined three sub-questions:
development over multiple sites and what Q1 What are the collaboration issues for distributed
“collaboration patterns” to use for the various teams? What problems do they face?
activities and tasks. Therefore, our research
In greater details - we are interested in learning - Documentation & Records – paper-based or
how distributed teams developing CB/OO software digital documents and records that provide
collaborate and coordinate their work: what information on the project and sites involved
issues/problems do they face? What successful and (from corporate and public sources).
non-successful practices could be identified? What - Direct observation – attending meetings (e.g.
procedures, methods and tools are used (when-in video and phone conferences, net meetings) and
which situations and for which activities)? What other communications between sites as far as
does matter for members of distributed teams feasible.
(regarding their counterparts)?
- Interviews – face-to-face semi-structured
Q2 How teams collaborate at present - “good” and interviews of project managers, team leaders and
“bad” practices? Why they work and Why project team members, in particular people
don’t? Are there alternatives? cooperating across project locations (selected to
Q3 How can existing solutions/ways be improved provide a heterogeneous perspective on the
and under which conditions? project). We interview about 5 people from each
project. In three out of four companies we have
3. Research Methodology interviewed people involved in two-three different
Research methodology we have followed is a projects, therefore in total we have about 15
qualitative case study methodology [7]. interview per each of theses three companies.
We are conducting case studies in four different While collecting empirical data we follow iterative
companies (each company is a “case study”), at approach – after each case study we come back to
each company we study in depth one to three the initial theory-based categorization and modify
projects. For the moment we have finished data and expand on issues and patterns based on our
collection in two companies and collecting data in observations and data collected. Appendix 1
two other companies in parallel. The first case describes the overall research design.
study was conducted in the company developing
software between USA and Europe. Other three 4. Initial Empirical Findings
case studies are in companies (projects) distributed Based on the conducted case studies we have
between India, Europe and USA. identified several factors that influence ways
During the case studies we are collecting input and distributed teams collaborate. These factors could
gaining the perspective of two (or more) remote be distinguishes as flexible factors (those could be
groups participating in the overall project from changed) and fixed factors (those cannot or hardly
their dispersed locations. Project is unit of analysis. ever possible to change). The factors are presented
Criteria for choosing projects – project distributed at Figure 1 (fixed factors are in green and flexible
between at least two locations, preferably: factors are in blue). Furthermore, some of the
completely new CB/OO development, factors are intra-organizational (internal) factors
specification-design and/or integration stage, (they appear within the circle) and some are out of
current project. We collect data from the following organizational scope (external) factors (they are
sources: outside the circle).
Software Engineering
Boundaries/ gaps
Process (SEP) Team B - geographical distance
- Software methodology - time zone differences
- Modeling languages Organizational factors - cultural differ. (norms for
- CASE tools - organiz. culture - infrastructure dif. behavior, values, language)
Project Mgmt - team-building - governance dif.
(PM) tools - rewarding -methodology dif
Environmental Groupware &
factor (Uniqueness Human factors Team C Internet
Team A
of the situation) - if people worked technology
Smth. outstanding or or met f2f before
Support synchronous and
unpredictable, making - motivation
- trust asynchronous activities
the situation unique
Coordination
mgmt
Configuration Constraints
mgmt mgmt
Common
Version Workspace
mgmt Product Methodo Planning,
logy scheduling,
Plan allocation
Reuse
mgmt Project
organization
Monitoring
Risk
mgmt
Progress
measurement and
ensuring quality
Research design
Literature review
Building a
theoretical Priliminary categorization of (meta)
framework coordination and collaboration modeling
issues/areas of distributed teams techniques
Collecting data
(best/existing
practices) Case 1 Case 2 Case 3 Case 4
Comp A Comp B Comp C Comp D
Thesis - towards
collaboration Coordination and collaboration
framework patterns for distributed teams
Comments:
1
SEP – Software Engineering Process
2
SD – Software Development
3
PM – Project Management
Preliminary Evaluation of Tool-based Support for
Distributed Inspection
Filippo Lanubile Teresa D. Mallardo
University of Bari
Dipartimento di Informatica
Bari, Italy
[email protected]
[3] Fielding, R. T., Whitehead-Jr., E. J., Anderson, K. M., [19] C. Maidantchik V. Costa, C. Rocha, A. P. Wauke,
Bolcer, G. A., Oreizy, P., Taylor, R. N., "Web-Based “Achieving Process Improvement through Modeling and
Development of Complex Information Products", Measurements”, The 5th World Multi-Conference on
Communications of the ACM, Vol..41, No. 8, 1998. Systemics, Cybernetics and Informatics (SCI 2001),
Orlando, Florida USA, July 2001.
[4] M. G. Mendonça, V. BASILI et al, “A Prototype Experience
Management System for a Software Consulting
Organization”, In: Proceedings of the 13th International
Conference on Software Engineering and Knowledge
Engineering, pp. 29-36, Buenos Aires, June, 2001.
[5] V. Grover, J. T. C. Teng, K. D. Fiedler, "IS Investment
Priorities in Contemporary Organizations", Communications
of the ACM, Vol. 41, No. 2, 1998.
[6] Software Engineering Institute (SEI) (1997), The Capability
Maturity Model: Guidelines for Improving the Software
Process, Addison-Wesley Longman, Inc.
[7] B. Curtis, M. I. Kellner, J. Over, "Process Modelling",
Communications of the ACM, vol. 35, no. 9, 1992.
[8] CERN, http://www.cern.ch/
[9] World Wide Web Consortium,
http://www.w3.org/hypertext/WWW/TheProject
[10] ATLAS Collaboration, ATLAS Computing Technical
Proposal, CERN/96-43, Geneva, Switzerland, 1996.
[11] W. Humphrey, M. Kellner, Software Process Modeling,
Technical Report CMU/SEI-89-TR-002, February 1989.
[12] ISO/IEC 12207: Information technology - Software Life
Cycle Processes, International Standard Organization, 1995.
[13] D.K. Dunaway, S. Masters, CMMSM-Based Appraisal for
Internal Process Improvement (CBA IPI): Method
Description, Software Engineering Institute, CMU/SEI-96-
TR-007, Pittsburgh, Pennsylvania, USA, 1996.
[14] Boris Kötting, Frank Maurer: Approaching negotiation
automation for software development companies, In:
Proceedings of ICSE Workshop 'SE over the Internet',
Toronto, Canada, May 2001.
[15] L.Scott, R.Jeffery and U.Becker-Kornstaedt: Preliminary
Results of an Industrial EPG Evaluation, In: Proceedings of
ICSE Workshop 'SE over the Internet', Toronto, Canada,
May 2001.
[16] Luca Bompani, Paolo Ciancarini, Fabio Vitali: Sophisticated
hypertext functionalities for software engineering, In:
Proceedings of ICSE Workshop 'SE over the Internet',
Limerick, Ireland, June 2000.
[17] Ulrike Becker-Kornstaedt, A Strategy for the Integration of
Software Process Support Technology into Organizations,
Process Support for Distributed Extreme
Programming Teams
Frank Maurer Sebastien Martel
University of Calgary University of Calgary
Department of Computer Science Department of Computer Science
Calgary, Alberta, Canada, T2N 1N4 Calgary, Alberta, Canada, T2N 1N4
+1 (403) 220 3531
[email protected] [email protected]
Team members are able to access the project plans and the 3.2 Task Creation
information related to each task using a standard Web browser. For each user story, the MILOS system automatically creates a
top-level process “Design and implement user story <story
number>”. The input of this process is the newly created user
3. USING MILOS DXP FOR DISTRIBUTED story. Then the programmer can decompose the user story into
smaller and more concrete tasks. A possible decomposition of the
EXTREME PROGRAMMING above user story could have two separate sub-tasks (see Figure 2).
The following scenario illustrates the infrastructure provided by the
MILOS framework to support distributed extreme programming.
Given the user story, the programmer may create a sub-task called be met. After having signed-up for some task, a programmer can
“create m/frame” and another one called “create RM boundary”. pair with another programmer through the MILOS framework.
1 http://sern.ucalgary.ca/~milos
at first results in an increased workload, we argue that, in the long 8. ACKNOWLEDGEMENTS
run, the proposed approach will improve productivity of virtual The work on MILOS DXP was supported by the NSERC
software development teams (although it will most probably not (National Science and Engineering Research Council of Canada),
reach the same productivity levels as collocated teams). ASERC (Alberta Software Engineering Research Consortium),
Our future work will focus on four aspects: The University Of Calgary, and Nortel Networks with several
research grants.
• Stabilizing the MILOS implementation and usability
improvements We specifically would like to thank Sandra Barlot, Subhendu
Chattopadhyay, Darryl Gates, Christine Jia Li, Raul Nemes,
• Formal evaluation of the approach
Philip Nour, and Jay Wallace for implementing and testing the
• Extreme federations MILOS DXP system.
• Knowledge management for DXP
9. REFERENCES
Stabilizing the MILOS implementation and usability [1] Armitage, J., and Kellner, M. (1994). A conceptual schema
improvements: After porting MILOS to WebSphere Server 4.0, we for process definitions and models. In D. E. Perry, editor, Proc. of
encountered some bugs and instabilities. As we were using MILOS the Third Int. Conf. on the Software Process, IEEE Computer
for our own process support, we were experiencing some sub- Society Press.
optimal user interaction. We are planning to fix these this summer
[2] Bandinelli, S., Fuggetta, A., and Grigolli, S. (1993). Process
(Summer 2002). MILOS is offered as a Web-based service to the
Modeling-in-the-large with SLANG. In IEEE Proceedings of the
software development community. We expect to get valuable
2nd Int. Conf. on the Software Process, Berlin (Germany).
feedback from MILOS users to determine future improvements.
[3] Beck, K.: Extreme Programming Explained: Embrace
Formal evaluation of the approach: We would like to set up
Change, Addison-Wesley Pub Co, 1999, ISBN: 0201616416
controlled experiments to evaluate the feasibility and the benefits
& problems of distributed extreme programming. In addition, we [4] Kent Beck, Martin Fowler: Planning Extreme Programming,
would like to compare the productivity and quality of XP teams Addison-Wesley Pub Co, 2000, ISBN: 0201710919
and DXP teams to determine the influence of collocation on [5] Conradi, R., Hagaseth, M., Larsen, J. O., Nguyen, M., Munch,
productivity. B., Westby, P., and Zhu, W. (1994). Object-Oriented and
Extreme federations: One of the problems of XP is scalability Cooperative Process Modeling in EPOS. In PROMOTER book:
concerning team size: XP works for small teams of five to ten Anthony Finkelstein, Jeff Kramer and Bashar A. Nuseibeh (Eds.):
people but there is some doubt that it works with even a mid-sized Software Process Modeling and Technology, 1994. Advanced
team of twenty people. One way to scale it up could be to have Software Development Series, Research Studies Press Ltd. (John
loosely coupled federations of XP teams that work together on a Wiley).
single project. This poses several interesting research questions: [6] Curtis, B., Kellner, M., and Over, J. (1992). Process
• How can we preserve XP productivity and quality in multi- modeling. Comm. of the ACM, 35(9): 75–90.
team environment? [7] Dellen, B.: Change Impact Analysis Support for Software
• Do we need additional documentation and, if so, how Development Processes, Ph.D. thesis, University of
much more? And what needs to be documented to enable a Kaisersalutern, Germany, 2000
smooth work of the Extreme Federation. [8] Holz, H., Könnecker, A., Maurer, F.: Task-Specific
• Do Extreme Federations needs a component architecture to Knowledge Management in a Process-Centred SEE, Proceedings
work? of the Workshop on Learning Software Organizations LSO-2001,
Springer, 2001.
• How fixed need the interfaces between components of
individual XP teams be? How much flexibility and/or [9] Jeffries, R., Anderson, A., Hendrickson, C.: Extreme
adaptability of requirements do Extreme Federations loose Programming Installed, Addison-Wesley Pub Co, 2000, ISBN:
compared with “normal” XP teams? 0201708426
Knowledge management for DXP: XP is very weak in conserving [10] Kaiser, G. E., Feiler, P. H., and Popovich, S. S. (1988).
the knowledge gathered by the development team. It’s focus on Intelligent Assistance for Software Development and
verbal communication for knowledge exchange makes it difficult Maintenance, IEEE Software.
to preserve information in a storable format. As a result of keeping [11] Osterweil, L. (1987). Software Processes are Software Too.
development knowledge primarily in the heads to the people, XP In: Proc. of the Ninth Int. Conf. of Software Engineering,
will run into trouble when the members of the development team Monterey CA, pp. 2-13.
change frequently or when the development on the system stops for [12] Peuschel, P., Schäfer, W., and Wolf, S. (1992). A
some time and is then resumed. Hence, an approach is needed that Knowledge-based Software Development Environment
integrates knowledge management and DXP. Supporting Cooperative Work. In: Int. Journal on Software
Engineering and Knowledge Engineering, 2(1).
Project Management Issues
in Globally Distributed Development
Heather L. Oppenheimer
Bell Laboratories, Lucent Technologies
345 Resor Ave.
Cincinnati, OH 45220 USA
+1 513.751.0927
[email protected]
Hill et al. [13] created an extension to the Zmacs editor that [3] Perry, D.E., H.P. Siy, and L.G. Votta. Parallel
shows how often a particular section in a document has Changes in Large Scale Software Development: An
been read or modified. Similar to Palantír, this extension Observational Case Study. in Proceedings of the 1998
provides developers with an increased level of awareness. International Conference on Software Engineering.
Unfortunately, the visualization only provides an indication 1998.
of change severity, not change impact. Moreover, use of the [4] Grinter, R., Supporting Articulation Work Using Con-
system requires developers to know a-priori who is chang- figuration Management Systems. Computer-Supported
ing which artifact and, more importantly, requires continu- Cooperative Work, 1996. 5(4): p. 447-465.
ous network connectivity, something that is simply not fea-
sible in a geographically distributed setting. TUKAN [14], [5] Carzaniga, A., D.S. Rosenblum, and A.L. Wolf, De-
another collaborative editor that augments the editor’s inter- sign and Evaluation of a Wide-Area Event Notification
face with an indication of changes being performed by other Service. ACM Transactions on Computer Systems,
developers, suffers from similar drawbacks. 2001.
[6] Lanza, M. The Evolution Matrix: Recovering Software
5. Conclusion Evolution using Software Visualization Techniques. in
Palantír is a system that we are currently developing to Proceedings of the Fourth International Symposium on
bring project awareness to developers. Palantír is explicitly the Principles of Software Evolution. 2001.
designed to operate in a distributed setting and is aimed at
[7] Dwyer, M. and L.A. Clarke, A Flexible Architecture [11] Baker, M.J., and Eick,S.G., Space-Filling Software
for Building Data Flow Analyzers, in Proceedings of Visualization. Journal of Visual Languages and Com-
the Eighteenth International Conference on Software puting, 1995. 6: p. 119-133.
Engineering. 1996, ACM. p. 554-564.
[12] Fitzpatrick, G., et al. Instrumenting and Augmenting
[8] Burrows, C. and I. Wesley, Ovum Evaluates Configu- the Workaday World with a Generic Notification Ser-
ration Management. 1998, Burlington, Massachusetts: vice called Elvin. in Proceedings of the Sixth European
Ovum Ltd. Conference on Computer Supported Cooperative
Work. 1999. Copenhagen, Denmark.
[9] Chu-Carroll, M.C. Supporting Distributed Collabora-
tion through Multidimensional Software Configuration [13] Hill, W.C., Hollan, J. D., Wroblewski, D., and McCan-
Management. in Proceedings of the Tenth Interna- dless,. Edit wear and read wear. in Proceedings of the
tional Workshop on Software Configuration Manage- 1992 ACM Conference on Human Factors in Com-
ment. 2001. puter Systems. 1992.
[10] Jazayeri, M., C. Riva, and H. Gall. Visualizing Soft- [14] Schümmer, T., and J.M. Haake. Supporting Distributed
ware Release Histories: The Use of Color and Third Software Development by Modes of Collaboration. in
Dimension. in Proceedings of the International Con- Proceedings of the Seventh European Conference on
ference on Software Maintenance. 1999: IEEE Com- Computer Supported Cooperative Work. 2001.
puter Society.
Does Global Software Development Need a Different
Requirements Engineering Process?
Didar Zowghi
Faculty of Information Technology,
University of Technology, Sydney,
P O Box 123 Broadway
NSW 2007 Australia
+61 2 9514 1860
[email protected]