Fortalecimiento de la capacidad de desarrollo, adopción y mantenimiento de software del Instituto Costarricense de Electricidad

Estado: 
Número de proyecto: 
834-B4-412
Vigencia:
De 15/Oct/2021 hasta 14/Oct/2022

Objetivo:

Apoyar al ICE a mejorar su capacidad interna para desarrollar, adaptar y mantener software para sus procesos de negocio.

Investigador principal
Gustavo López Herrera

Colaboradores
Julio Guzmán Benavides
Andrea Chacón Páez
Maria Murillo Quintana
Gustavo López Herrera

Unidad académica base
Centro de Investigaciones en Tecnologías de la Información y Comunicación (CITIC)

Unidades académicas colaboradoras
Escuela de Ciencias de la Computación e Informática (ECCI)

Publicaciones asociadas

Defining `Architecture' for Software Engineering -- A Review of Terminology

Tipo de publicación: Book Chapter

Publicado en: Advances in Human Factors, Software, and Systems Engineering: Proceedings of the AHFE 2017 International Conference on Human Factors, Software, and Systems Engineering, July 17-21, 2017, The Westin Bonaventure Hotel, Los Angeles, California, USA

Catching up with Method and Process Practice: An Industry-Informed Baseline for Researchers

Descripción:

Software development methods are usually not applied by the book. Companies are under pressure to continuously deploy software products that meet market needs and stakeholders' requests. To implement efficient and effective development processes, companies utilize multiple frameworks, methods and practices, and combine these into hybrid methods. A common combination contains a rich management framework to organize and steer projects complemented with a number of smaller practices providing the development teams with tools to complete their tasks. In this paper, based on 732 data points collected through an international survey, we study the software development process use in practice. Our results show that 76.8% of the companies implement hybrid methods. Company size as well as the strategy in devising and evolving hybrid methods affect the suitability of the chosen process to reach company or project goals. Our findings show that companies that combine planned improvement programs with process evolution can increase their process' suitability by up to 5%

Tipo de publicación: Conference Paper

Publicado en: Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice

Teaching Scrum Using Gamification

Descripción:

Teaching Scrum is a complex task in an academic setting. However, it is even more complex when it is taught in an industrial setting. This paper presents our experiences in the implementation of two different Scrum training workshop for workers. We have evaluated and improved these workshops over the past two years. More than 450 trainees with little or no background on Scrum receive the workshop. Furthermore, we present the implementation of three educational devices that automate activities in the context of this workshop. The automation aims to liberate some operative charge from the trainer to allow them to focus on the learning points and explanations of the activities rather than keeping track of the results of the participants.

Tipo de publicación: Conference Paper

Publicado en: Proceedings of 13th International Conference on Ubiquitous Computing and Ambient ‪Intelligence UCAmI 2019‬

Technical Debt is Not Only about Code and We Need to Be Aware about It

Descripción:

Context: It is common for a software project to incur technical debt (TD) during its development. It can impact several artifacts produced throughout the software development process. Therefore, it is necessary to carry out management actions to find a balance between the benefits of incurring it and the effects of its presence. However, so far, much of the attention has been given only to discussions relating TD to coding issues. This is a worrying scenario because other types of debt can also have impactful, or even worse, consequences on projects. Aims: This study elaborates on the need to consider other issues of the development process and not just the source-code when investigating the TD phenomenon. Method: We analyze responses from 653 practitioners concerning TD causes, effects, prevention, reasons for non-prevention, repayment, and reasons for non-repayment and investigate whether these TD management elements are related to coding or to other software development issues. Results: Coding issues are commonly related to the investigated elements but, indeed, they are only part of the big picture we draw. Issues related to the project planning and management, human factors, knowledge, quality, process, requirements, verification, validation, and test, design, architecture, TD management, and the organization are also common. Lastly, we present a hump diagram that, in combination with the detailed results, provides guidance on what to expect from the presence of TD and how to react to it considering several issues of software development. Conclusion: The results shed light on other concerns beyond code that the research community and practitioners need to be aware of.

Tipo de publicación: Conference Paper

Publicado en: XX Brazilian Symposium on Software Quality

Technical and Nontechnical Prioritization Schema for Technical Debt: Voice of TD-Experienced Practitioners

Descripción:

Technical debt (TD) can be injected at any stage of software development, spreading across other phases and causing various problems. This article presents a model for conceptualizing TD causes, effects, payment practices, and reasons for payment avoidance, with a prioritization schema for technical and nontechnical roles.

Tipo de publicación: Journal Article

Publicado en: IEEE Software

Pitfalls and Solutions for Technical Debt Management in Agile Software Projects

Descripción:

This article presents technical debt (TD) impediments, decision factors, enabling practices, and actions diagrams for TD management in agile software projects. By analyzing diagrams, professionals can avoid the pitfalls, and increase their capacity, for better TD management.

Tipo de publicación: Journal Article

Publicado en: IEEE Software

What Makes Agile Software Development Agile

Descripción:

Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders' collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile In this article, we investigate the question: what makes a software development method agile We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15%). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research.

Tipo de publicación: Journal Article

Publicado en: IEEE Transactions on Software Engineering

Common Causes and Effects of Technical Debt in Costa Rica: InsighTD Survey Replication

Descripción:

Technical debt is a concept used to describe technical decisions that can benefit companies in the short term but can produce costs and software quality issues in the long term. Technical debt management can help enterprise profitability, sustainability, and the software industry's credibility. This paper presents a replication of the InsighTD survey (a globally distributed family of industrial surveys on causes and effects of TD), focusing on Costa Rica and comparing other regional countries. In total, 145 practitioners from the Costa Rican IT industry participated. Results show that the leading cause of technical debt is not technical (not only in Costa Rica but also in the region). On the other hand, the main effects reported are delivery delay and general dissatisfaction of the parties involved. A comparative study of InsighTD survey results in various countries is also included.

Tipo de publicación: Conference Paper

Publicado en: 2021 XLVII Latin American Computing Conference (CLEI)

How Experience Impacts Practitioners' Perception of Causes and Effects of Technical Debt

Descripción:

Context: The technical debt (TD) metaphor helps to conceptualize the pending issues and trade-offs made during software development. Knowing TD causes can support in defining preventive actions and having information about effects aids in the prioritization of TD payment. Goal: To investigate the impact of the experience level on how practitioners perceive the most likely causes that lead to TD and the effects of TD that have the highest impacts on software projects. Method: We approach this topic by surveying 227 practitioners. Results: While experienced software developers focus on human factors as TD causes and external quality attributes as TD effects, low experienced developers seem to concentrate on technical issues as causes and internal quality issues and increased project effort as effects. Missing any of these types of causes could lead a team to miss the identification of important TD, or miss opportunities to preempt TD. On the other hand, missing important effects could hamper effective planning or erode the effectiveness of decisions about prioritizing TD items. Conclusion: Having software development teams composed of practitioners with a homogeneous experience level can erode the team's ability to effectively manage TD.

Tipo de publicación: Conference Paper

Publicado en: 2021 IEEE/ACM 13th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE)

Prevalence, common causes and effects of technical debt: Results from a family of surveys with the IT industry

Descripción:

Context: The technical debt (TD) metaphor describes actions made during various stages of software development that lead to a more costly future regarding system maintenance and evolution. According to recent studies, on average 25% of development effort is spent, i.e. wasted, on TD caused issues in software development organizations. However, further research is needed to investigate the relations between various software development activities and TD. Objective: The objective of this study is twofold. First, to get empirical insight on the understanding and the use of the TD concept in the IT industry. Second, to contribute towards precise conceptualization of the TD concept through analysis of causes and effects. Method: In order to address the research objective a family of surveys was designed as a part of an international initiative that congregates researchers from 12 countries—InsighTD. At country level, national teams ran survey replications with industry practitioners from the respective countries. Results: In total 653 valid responses were collected from 6 countries. Regarding the prevalence of the TD concept 22% of practitioners have only theoretical knowledge about it, and 47% have some practical experiences with TD identification or management. Further analysis indicated that senior practitioners who work in larger organizations, larger teams, and on larger systems are more likely to be experienced with TD management. Time pressure or deadlinewas the single most cited cause of TD. Regarding the effects of TD: delivery delay, low maintainability, and rework were the most cited. Conclusion: InsighTD is the first family of surveys on technical debt in software engineering. It provided a methodological framework that allowed multiple replication teams to conduct research activities and to contribute to a single dataset. Future work will focus on more specific aspects of TD management.

Tipo de publicación: Journal Article

Publicado en: Journal of Systems and Software