Ir al contenido

Documat


Resumen de An agent architecture to improve coordination and communicatiion in GSE

Javier Portillo

  • Modern software engineering, and more specifically Global Software Engineering (GSE) which takes place in globally dispersed teams, present the software industry with specific advantages and challenges. Working in a globally distributed team is fast becoming the norm for many software engineering organizations, as they seek to attract new customers, strive to be nearer to their existing customers, broaden their skills base and reduce their labor costs. However, realizing these benefits goes hand in hand with additional challenges such as an increased complexity and communication overheads. The coordination and communication in GSE becomes more difficult as a result of the problems related to distance (i.e., different working times, different understandings or difficulties in communicating synchronously). A key challenge for GSE companies is to coordinate and allocate tasks, and to ensure that important information is successfully communicated to all partners. Despite this need, there is little help available to allow GSE managers to assess their organizational structure and inform them which coordination and communication processes need to be strengthened. If organizations cannot assess how well their communication and coordination strategies are working, it will be extremely difficult to pinpoint where changes are needed. One technique that has been designed to measure coordination and communication is that of Socio-Technical Congruence (STC). The main idea of Socio-Technical Congruence is based on Conway¿s Law which states that the structure of a software product reflects the physical layout of the development organization. Based on this law, Socio-Technical Congruence can be defined as a measure or a technique that assesses the ¿fit¿ between the structure of a software system and the structure of the organization that develops it or ¿an intuitive way to compare required coordination effort within a software development project with the actual ongoing coordination¿. An increasing effort is currently being made to empirically demonstrate the benefits of gaining a good level of congruence between coordination requirements and the coordination activities actually performed. In theory, a high level of congruence should relate to improvements in productivity and quality. However, a high level of congruence can also be associated with increased risks and costs, and too many interactions can overload and overwhelm team members. There is, therefore, a clear need to balance the number of interactions in and time spent on actual development tasks. There are tools available to help measure STC and STC-related aspects and to achieve a suitable socio- technical balance, but the majority of these ¿STC tools¿ have been designed to visualize coordination relationships and coordination gaps (lack of coordination interactions where coordination is needed). What is more, they do not help the organization to maintain a good level of STC in a proactive manner, i.e., without human intervention. Moreover, they use STC measurements that are based on collocated development, and these are not therefore suited to a Global Software Project. In this thesis, we present an Agent-Architecture that has been designed to manage, i.e., measure, control and maintain, Socio- Technical Congruence in order to improve coordination and communication in a Global Software Project. In order to adapt our approach to the GSE context, we introduce a new approach with which to measure STC, by combining one of the existing STC measurements and Socio-Cultural, Geographical and Temporal Distance factors that influence in the way in which distributed team members work together. In addition to measuring STC, this architecture has been also designed to detect, analyze and close coordination and communication gaps. It also calculates the importance of these gaps, on the basis of the aforementioned distance factors, in order to classify gaps by their importance and to change the way in which the agent helps the user depending on the gaps' importance. User notifications will therefore also be adapted to the importance of the gaps in order to avoid information overload if the gap's importance is very low. All these features are possible since this architecture takes advantage of software agents¿ properties such as autonomy, reactivity, pro-activity and social ability to perform tasks such as monitoring, reporting and measuring Socio-Technical 13 Congruence levels. In summary, agents could provide a much needed systematic approach that can be incorporated into and improve current STC tools, and could therefore provide a proactive means to help globally distributed teams maintain a good level of coordination and communication. The Architecture presented herein has been designed as an Agent Architecture, and the agent that it implements belongs to a Multi-Agent System (MAS). This signifies that our architecture also provides mechanisms with which to collaborate with other agents in order to achieve the goals defined. Moreover, the architecture has been designed in order to easily extend functionalities and connectivity options with external systems. This last feature makes our architecture adaptable to the different distributed environments¿ configurations and different implementation options. In order to discover how this architecture can eventually be translated to an implemented system (tool), which can be used in a real environment to improve coordination and communication, some analysis, design and implementation aspects have also been included in this work. INGENIAS methodology is used to show how it is possible to perform the analysis and design phases, and how the implementation is carried out using the JADE development environment. The architecture was tested in two case studies, whose goal was to validate the architectural goals and therefore this work. We therefore show how the architecture can be adapted to different situations and environment configurations, thus improving coordination and communication in a real distributed environment. The first case study shows the use of an implemented system based on our architecture in an environment in which data concerning users' activity is limited and is not generated in real time, that is, by using a set of data that was generated before using the system. The data used was extracted from the IGEA project that it is being developed by Indra Software Labs, and this shows how our proposal might help to detect coordination gaps and therefore improve coordination. The second case study is more complex since we show how the system implemented works in an environment in which the data is generated and analyzed in real time and extracted from different data sources. More specifically, the architecture was tested by integrating it with Jira (an issue management tool) in the ORIGIN project, which is also being carried out by Indra Software Labs. This case study shows how the use of our architecture makes it possible to improve coordination and communication among distributed team members in different situations. This thesis therefore provides two main contributions which may help to move GSE one step closer to practice. The first of these is an architecture designed to take advantage of agent technology in order to improve communication and coordination in globally distributed environments by measuring and maintaining STC, in addition to detecting and alleviating gaps in communication and coordination. The second is the introduction of a new approach with which to measure STC in a Global Development Project by combining an existing measurement with a set of factors that adapt this measurement to the GSE context. This signifies that the analysis of the STC values, that are adapted to GSE, can be performed by the agents with more accuracy.


Fundación Dialnet

Mi Documat