José Teodoro da Silva, Marco Aurélio Gerosa
Departamento de Ciência da Computação
Universidade de São Paulo (USP)
São Paulo, Brazil
{jteodoro, gerosa}@ime.usp.br
Igor Wiese, Reginaldo Ré, Igor Steinmacher
Coordenação de Informática
Universidade Tecnológica Federal do Paraná (UTFPR)
Campo Mourão, Brazil
{igor,reginaldo,igorfs}@utfpr.edu.br
Abstract—a common challenge in Distributed software
development (DSD) is the identification and ranking of experts
that can provide help to team members on their tasks. This paper
presents a survey conducted with distributed software developers
to identify a set of requirements to improve collaboration among
team members by providing experts location features. We submit
an architecture that was proposed based on the survey results.
Therefore, the developed architecture enables the addition of new
mining and ranking methods in one search engine, also enabling
the use of different ways to present the ranking.
Keywords-Distributed Software Development; expert
recommendation; architecture;
I. INTRODUCTION
Software development industry has been gaining
competitive advantage in terms of cost and quality using
qualified professionals distributed from all over the world [1].
This approach, called Distributed Software Development
(DSD), is based on geographically dispersed teams working
collaboratively in a project. Besides its advantages, DSD brings
new challenges such as contextual, cultural, geographical, and
temporal differences among developers [2].
During software development, team members typically
share and exchange knowledge about their work by interacting
constantly with others developers [3]. Traditional face-to-face
communication becomes less common and interaction among
members requires the use of technology to support
communication [4][5] to reduce the problems caused by
geographical distance [6][7].
Information sharing, which is a critical factor during
software development activities [6], becomes more difficult in
distributed settings because the access to remote team members
is not trivial, due to temporal and physical distance. A
developer often needs to identify who is the person he/she
needs to talk to in order to solve an issue [8][6]. The time spent
to perform this search can be improved if a tool to identify
experts is provided.
The problem of searching for experts is a challenge that
distributed teams face every day. Many recent studies have
being conducted and tools are being proposed to support
experts location on the software development domain
[9][10][11][12]. However, each of these tools presents a
specific method to identify the experts and just one way to
present the list of experts. These tools are not extensible
enough, as they cannot accommodate changes or new
requirements with few or no changes in the application [13].
Thus, their use is limited to a specific situation or need. These
limitations motivated an extensible architecture.
We conducted a survey with distributed teams’ members to
check their needs regarding expertise search and we designed a
service architecture to fill these requirements. On survey, we
asked participants to grade 10 different information according
to the importance given to it when working on a specific
software artifact. We also asked them to reveal how they find
experts when they need some support on their work. The
preliminary results, presented in this paper (Section 3), show
that team members want to be aware of experts that can support
them on their tasks; that they usually spent their time manually
looking for these experts; and that they use different sources
and methods to perform this manual search.
This work presents a new extensible service architecture
that enables the addition of new mechanisms and techniques
without architecture or clients code changes. The rest of this
paper is organized as follows. Section 2 contains the related
works. Section 3 presents the survey results. Section 4
discusses the service architecture. Section 5 concludes the
paper and describes future work.
II. RELATED WORK
There are many studies and tools proposed to support
communication among members of geographically distributed
teams [14][10][9][15]. The tools do not focus on
communication itself, but enable the identification of experts
within the team, providing access to the experts’ skills.
Expertise Browser (ExB) [10] is a tool that uses the concept
of Experience Atoms (EAs) to represent the expertise unities
gathered from SCMs and content management systems. EAs
are used to generate a socio technical network (graph)
involving the relationships among artifacts, people, and tasks.
It is used to identify experts and trace their relationships.
SmallBlue [9] uses social networks generated from
messages exchanged via emails and instant messenger to rank
the experts. The analysis is performed associating names and
topics extracted from the texts of messages. The experts search
An Extensible Service for Experts Recommendation
on Distributed Software Development Projects
2012 IEEE Seventh International Conference on Global Software Engineering Workshops
978-0-7695-4788-6/12 $26.00 © 2012 IEEE
DOI 10.1109/ICGSEW.2012.9
18