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