The use of agile methodologies like SCRUM is seen by companies in the software engineering field as a strategic necessity for their competitiveness, which makes them more reactive and dynamic in an increasingly demanding and competitive international market. One of the critical factors in the implementation of a SCRUM environment is the set-up of teams that are simultaneously homogeneous and composed of the best collaborators for each SCRUM role. In this sense, this study describes the modeling process and presents the implementation of a decision support system that can contribute to improving the process of assigning an agile team simultaneously considering the technical and social skills of employees. The results of the study allowed testing the application considering different competencies associated to each Agile position, the impact that the attribution process suffers from oscillations in the process of evaluation and self-evaluation, and the impact in terms of the performance of the inclusion of new collaborators and criteria comparison.
TopIntroduction
The constitution of a software team plays a key role in the performance and success of a project. The criteria used to select team members are critical to the development of the entire project cycle. Balijepally et al. (2006) state that with the evolution of more team-oriented methodologies, such as agile, it is relevant to investigate how the personality profile and competencies of software engineers may likely impact on the productivity of the development team. Simultaneously, the management of software development productivity is a key issue in software organizations (Melo et al., 2013). In fact, in recent years, we have assisted to the appearance of studies that explore the impact of several types of factors on productivity. Several factors emerge as relevant to ensure successful team work, namely the clear understanding of project goals and its boundaries, high level of teamwork and cooperation, and a strong and reliable project leadership (Ofori, 2013; Alias et al., 2014; Saadé et al., 2015).
On the other hand, increasingly, and with the evolution of Decision Support Systems (DSS), Business Intelligence tools are being explored by companies. A DSS whatever its nature, aims to optimize this process as well. Decision making is in itself a vital process for the success of any project, and the more data we have, the better we treat them, the better that decision will be. Data Warehouse, Online Analytical Processing (OLAP) and Data Mining are increasingly used and essential in supporting the decision-making process. Although these same tools constitute a significant investment for most companies, the return in the medium and long term usually substantially exceeds the same investment. It is also important to recognize that the reliability of the data, as well as the immediate availability of the data, influence decision-making and can be differentiating factors in the future success of the same decision.
Currently the process of assigning software engineers to agile teams is carried out empirically based on the experience and maturity of software professionals or using a self-assignment approach (Misra et al., 2012; Masood, 2017). In this sense, it is pertinent to suggest a new allocation model in which both the capabilities of software engineers and the characteristics of each project are simultaneously considered. Therefore, this study proposes the development of a decision support system that intends to simplify and improve the assignment of tasks in a Scrum Agile team. Three roles are considered: (i) product owner; (ii) Scrum master; and (iii) Scrum team. The assignment of each software engineer to the Scrum role takes into account the hard skills and soft skills required in each role, as well as the performance of each member in previously developed projects. The paper is structured as follows: we initially perform a literature review in the field of decision support systems and agile software development. After that, we present the adopted methodology where we describe the project requirements, architecture and included models. Subsequently, the main results of the project are discussed. Finally, the conclusions of our work are drawn.