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 16/Ago/2022

Objetivo:

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

Investigador principal
Dr. Gustavo López Herrera

Colaboradores
M.Sc. Julio Guzmán Benavides
Mag. Andrea Chacón Páez
Bach. Maria Murillo Quintana
Dr. 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

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

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

Identification and Management of Technical Debt: A systematic mapping study update

Descripción:

Technical debt is a concept used to describe the lack of good practices during software development, leading to several problems and costs. Identification and management strategies can help reduce these difficulties. In a previous study, Alves et al. (2016) analyzed the research landscape of such strategies from 2010 to 2014. This paper replicates and updates their study to explore the evolution of technical debt identification and management research landscape over a decade, including literature from 2010 until 2022. We analyzed 117 papers from the ACM Digital Library, IEEE Xplore, Science Direct, and Springer Link. Newly suggested strategies include automatically identifying admitted debt in comments, commits, and source code. Between 2015 and 2022, more empirical evaluations have been performed, and the general research focus has changed to a more holistic approach. Therefore, the research area evolved and reached a new level of maturity compared to previous results from Alves et al. (2016). Not only are code aspects considered for technical debt, but other aspects have also been investigated (e.g., models for the development process).

Tipo de publicación: Journal Article

Publicado en: Journal of Software Engineering Research and Development

Investigating the Relationship between Technical Debt Management and Software Development Issues

Descripción:

Context: The presence of technical debt (TD) brings risks to software projects. Managers must continuously find a cost-benefit balance between the benefits of incurring in TD and the costs of its presence in a software project. Much attention has been given to TD related to coding issues, but other types of debt can also have impactful consequences on projects. Aims: This paper seeks to elaborate on the growing need to expand TD research to other areas of software development, by analyzing six elements related to TD management, namely: causes, effects, preventive practices, reasons for non-prevention, repayment practices, and reasons for non-repayment of TD. Method: We survey and analyze, quantitatively and qualitatively, the answers of 653 software industry practitioners on TD to investigate how the previously mentioned elements are related to coding and non-coding issues of the software development process. Results: Coding issues are commonly related to the investigated elements but, indeed, they are only part of the TD Management stage. Issues related to the project planning and management, human factors, knowledge, quality, process, requirements, verification, validation, and test, design, architecture, and the organization are also common sources of TD. We organize the results in a hump diagram and specialize it considering the point of view of practitioners that have used agile, hybrid, and traditional process models in their projects. Conclusion: The hump diagram, 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. The results shed light on TD management of software elements, beyond source code related artifacts.

Tipo de publicación: Journal Article

Publicado en: Journal of Software Engineering Research and Development

Software practitioners’ point of view on technical debt payment

Descripción:

Context: Technical debt (TD) payment refers to the activity of expending maintenance effort and resources to make up for the effects of previous technical compromises. Aims: To investigate if software practitioners have paid debt items off in their projects, the practices that have been used for paying off debt items, and the issues that hamper the implementation of these practices. Method: We analyze 653 responses collected by surveying practitioners from six countries about TD payment. Results: Practitioners have not paid off TD items in most cases. We identified 27 reasons for not paying off those items and 32 payment-related practices. Practices are mainly related to internal quality issues, while reasons for not paying TD off are mostly associated with planning and management issues. Lastly, we identified relationships between practices and between reasons, indicating that both can appear in combination. Conclusion: . We use different views to consolidate the set of information on TD payment, extending the conceptual model for TD and organizing the set of practices and reasons into a TD payment map. We believe that the model and the map can support practitioners in planning their TD payment strategy.

Tipo de publicación: Journal Article

Publicado en: Journal of Systems and Software

Making Technical Debt Visible using Hybrid Sankey Diagrams: An Industrial Case Study

Descripción:

Context: Technical debt (TD) is a challenge for companies who develop software on which their critical operations depend. To properly manage TD, it is necessary to make it visible to the different stakeholders involved to support informed decisions. Objective: To validate a TD visualization approach based on hybrid Sankey diagrams that makes the TD visible by showing (a) technical and business aspects, and (b) the flow of value and TD impacts. This approach regards visualizations as boundary objects. Method: We performed a multi-case study in a large multi-industry state-owned company. The objective was to validate the effectiveness of such visualizations and to explore their possible uses in TD management. We first used a retrospective case study on a TD decision-making scenario and, later, visualization usage scenarios using focus groups to evaluate its usefulness. Results: The results suggest that the proposed approach: (a) provides a structured process for systematic TD visualization to help the decision-making process; (b) enables the communication at knowledge boundaries between stakeholders to make informed decisions; (c) uses flow representations that are important for assessing the impact in multiple functional areas; and (d) enables documentation and reuse. Conclusion: The study results suggest that TD decision-making events can benefit from using our TD visualizations based on hybrid Sankey diagrams as boundary objects to portray the impact of TD in business, services, and technical aspects.

Tipo de publicación: Journal Article

Publicado en: International Journal of Software Engineering and Knowledge Engineering