Metodología híbrida para la estimación y tratamiento de la Deuda Técnica de defectos en el Desarrollo Ágil de Software

Autores/as

  • María Guadalupe Medina Barrera División de Estudios de Posgrado e Investigación. Tecnológico Nacional de México / Instituto Tecnológico de Apizaco. Tlaxcala, México. https://orcid.org/0000-0003-3074-0029
  • José Juan Hernández Mora División de Estudios de Posgrado e Investigación. Tecnológico Nacional de México / Instituto Tecnológico de Apizaco. Tlaxcala, México. https://orcid.org/0000-0003-2878-7290

DOI:

https://doi.org/10.30973/progmat/2024.16.3/6

Palabras clave:

Estimación de esfuerzo, Deuda técnica, Defectos, Desarrollo ágil

Resumen

En el Desarrollo Ágil de Software (DAS) se realizan entregas parciales al cliente programadas en plazos muy cortos. Con el afán de cumplir los compromisos, los desarrolladores emplean diversas prácticas para acelerar el desarrollo. Sin embargo, las presiones de tiempo pueden propiciar la creación de errores que si no son corregidos antes de la entrega, acumulan Deuda Técnica (DT) de defectos en el producto. La DT representa el esfuerzo extra que debe invertirse para corregir los problemas causados por la adopción de soluciones rápidas. El problema de la DT es que si no se paga lo más pronto posible, puede llevar al punto de quiebre a un proyecto de software. Por lo tanto, es necesario Estimar el Esfuerzo (EE) que se requiere para pagar la DT de defectos y poder así, gestionarla en entornos de DAS. En este trabajo, se presentan los enfoques de EE reportados en la literatura y se propone una metodología híbrida para estimar la DT de defectos en el DAS. Esta propuesta aprovecha las bondades de los enfoques existentes de EE para obtener estimados realistas que faciliten el pago de la DT de defectos.

Biografía del autor/a

María Guadalupe Medina Barrera, División de Estudios de Posgrado e Investigación. Tecnológico Nacional de México / Instituto Tecnológico de Apizaco. Tlaxcala, México.

María Guadalupe Medina Barrera es Doctora en Planeación Estratégica y Dirección de Tecnología por la Universidad Popular Autonóma del Estado de Puebla (UPAEP). Realizó estudios de Maestría en Ciencias en Ciencias Computacionales en el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) y estudios de Licenciatura en Informática en el Instituto Tecnológico de Tepic, Nayarit, México. Actualmente, cuenta con el reconocimiento como candidata en el Sistema Nacional de Investigadores del CONAHCYT, además del reconocimiento al Perfil Deseable y de ser miembro del cuerpo académico “Sistemas de Información”, ambos reconocidos por PRODEP. Sus áreas de trabajo son: Gestión y Desarrollo de Proyectos de Software, Automatización de Procesos, Interfaces Humano Computadora y Reconocimiento de Patrones.

José Juan Hernández Mora, División de Estudios de Posgrado e Investigación. Tecnológico Nacional de México / Instituto Tecnológico de Apizaco. Tlaxcala, México.

José Juan Hernández Mora es Ingeniero en Computación por la Universidad Autónoma de Tlaxcala. Tiene el grado de Maestro en Ciencias en Ciencias Computacionales por el Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET), de Cuernavaca, Morelos y Doctor en Excelencia Docente  por la Universidad de los Ángeles. Es Profesor con Perfil Deseable por parte del PRODEP, es líder del cuerpo académico “Sistemas de Información” y nivel de candidato del SNII del CONAHCYT. Sus líneas de investigación incluyen: Ingeniería de Software, Desarrollo de Aplicaciones de Tecnologías de la Información, Procesamiento Digital de Imágenes (PDI), Redes Neuronales Artificiales (RNA).

Citas

Agile Manifesto. Manifesto for Agile Software Development [en línea]. Agile Manifesto, 2001 [recuperado el 5 de junio de 2024] de: https://agilemanifesto.org.

Bogner J, Verdecchia R, Gerostathopoulos I. Characterizing Technical Debt and Antipatterns in AI-Based Systems: A Systematic Mapping Study. In: 2021 IEEE/ACM Int. Conf. on Technical Debt (TechDebt), 2021, 64-73. https://doi.org/10.1109/TechDebt52882.2021.00016.

Freire S, Rios N, Gutierrez B, Torres D, Mendonca M, Izurieta C, Seaman C, Spínola RO. Surveying Software Practitioners on Technical Debt Payment Practices and Reasons for not Paying off Debt Items. In: Proc. of the 24th Int. Conf. on Evaluation and Assessment in Software Engineering, April 15-17, 2020, 210-219. https://doi.org/10.1145/3383219.3383241.

Tang Y, Khatchadourian R, Bagherzadeh M, Singh R, Stewart A, Raja A. An Empirical Study of Refactorings and Technical Debt in Machine Learning Systems. In: 2021 IEEE/ACM 43rd Int. Conf. on Software Engineering (ICSE), Madrid, España, 2021, 238-250. https://doi.org/10.1109/ICSE43902.2021.00033.

Seaman C, Guo Y. Measuring and Monitoring Technical Debt. Advances in Computers, 2011, 82, 25-46. https://doi.org/10.16/B978-0-12-385512-1.00002-5.

Trendowicz A, Jeffery R. Software Project Effort Estimation: Foundations and Best Practice Guidelines for Success. Springer, 2014. https://doi.org/10.1007/978-3-319-03629-8.

Azzeh M, Nassif AB. Analyzing the relationship between project productivity and environment factors in the case points method. Journal of Software: Evolution and Process, 2017, 29, 1-19. https://doi.org/10.1002/smr.1882.

Boehm B. Software Engineering Economics. Prentice Hall, 1981.

Boehm B. COCOMO II Model Definition Manual. Center for Software Engineering, University of Southern California, 2000. [recuperado el 12 de abril de 2024] de: http://csse.usc.edu/csse/research/COCOMOII/cocomo2000.0/CII_modelman2000.0.pdf

Dekkers C. IFPUG 30 years - International Year of Software Measurement Timeline. Metric Views: Celebrating IFPUG’s 30th Anniversary, 11(2), 4-5, August 2017 [recuperado el 10 de abril de 2024] de: https://www.ifpug.org.

Commeyne C, Abran A, Djouab R. Effort Estimation with Story Points and COSMIC Function Points - An Industry Case Study [Position Paper]. Software Measurement News, 2016, 21(1), 25-36.

Lavazza L, Meli R. An Evaluation of Simple Function Point as a Replacement of IFPUG Function Point. In: 2014 Joint Conf. of the Int. Workshop on Software Measurement and the Int. Conf. on Software Process and Product Measurement, 2014, 196-206. https://doi.org/10.1109/IWSM.Mensura.2014.28.

Lenarduzzi V, Lunesu I, Matta M, Taibi D. Functional size measures and effort estimation in agile development: A replicated study. In: Aalst W, Mylopoulos J, Rosemann M, Shaw MJ, Szyperski C. (Eds.), LNBIP: Vol. 1. Agile Software Development and Extreme Programming, 2015, 105-116. https://doi.org/10.1007/978-3-319-18612-2_9.

Rodríguez Sánchez E, Vázquez Santacruz E, Cervantes Maceda H. Estimación de esfuerzo en desarrollo de software ágil utilizando redes neuronales artificiales. Research in Computing Science, 2022, 151(7), 77-91.

Nassif AB, Azzeh M, Capretz LF, Ho D. Neural network models for software development effort estimation: a comparative study. Neural Comput & Applic, 2016, 27, 2369–2381. https://doi.org/10.1007/s00521-015-2127-1.

Durán M, Juárez-Ramírez R, Jiménez S, Tona C. User Story Estimation based on the Complexity Decomposition using Bayesian Networks. In: Proc. of the Institute for System Programming of the RAS, 2021, 33(2), 77-92. https://doi.org/10.15514/ISPRAS-2021-33(2)-4.

Turic M, Celar S, Dragicevic S, Vickovic L. Advanced Bayesian Network for Task Effort Estimation in Agile Software Development. Applied Sciences, 2023, 13, 9465. https://doi.org/10.3390/app13169465.

Araújo RA, Oliveira ALI, Meira S. A class of hybrid multilayer perceptrons for software development effort estimation problems. Expert Systems With Applications. 2017, 90, 1–12. https://doi.org/10.1016/j.eswa.2017.07.050.

Kassem H, Mahar K, Saad AA. Story Point Estimation Using Ussue Reports With Deep Attention Neural Network. E-Informatica Software Engineering Journal, 2023, 17(1), 230104. https://doi.org/10.37190/e-Inf230104.

Pospieszny P, Czarnacka-Chrobot B, Kobylinski A. An effective approach for software project effort and duration estimation with machine learning algorithms. The Journal of Systems and Software, 2018, 137, 184-196. https://doi.org/10.1016/j.jss.2017.11.066.

Sharma A, Karambir. Empirical Validation of Random Forest for Agile Software Effort Estimation based on Story Points. International Journal of Engigeering Sciences & Research Technology, 2016, 5(7), 1437-1446.

Thiago HAC, Oliveira ALI, da Silva FQB. Ensemble Effort Estimation: An updated and extended systematic literature review. Journal of Systems and Software, 2023, 195, 111542. https://doi.org/10.1016/j.jss.2022.111542.

Hacaloglu T, Demirors O. Challenges of Using Software Size in Agile Software Development: A Systematic Literature Review. In: Int. Workshop on Software Measurement IWSM Mensure Conference, 2018, 2207, 109-122. Recuperado de: http://ceur-ws.org/Vol-2207/IWSM_Mensura_2018_paper_9.pdf.

Halkjelsvik T, Jørgensen M. Time Predictions Biases. In: A.T. Fornebu et al. (Eds), SIMULA SPRINGERBRIEFS ON COMPUTING Volume 5. Time Predictions: Understanding and Avoiding Unrealism in Project Planning and Everyday Life [eBook], 2018, 55-70. https://doi.org/10.1007/978-3-319-74953-2.

Jørgensen M. Unit effects in software project effort estimation: Work-hours gives lower effort estimates than workdays. The Journal of Systems and Software, 2016, 117, 274-281. https://doi.org/10.1016/j.jss.2016.03.048.

Tanveer B, Guzmán L, Engel UM. Effort estimation in agile software development: Case study and improvement framework. Journal of Software: Evolution and Process, 2017, 29:e1862. https://doi.org/10.1002/smr.1862.

Fernández-Diego M, Méndez ER, González-Ladrón-De-Guevara F, Abrahão S. An update on effort estimation in agile software development: a systematic literature review. IEEE Access, 2020, 8. https://doi.org/10.1109/ACCESS.2020.3021664.

Phannachitta P, Keung J, Monden A, Matsumoto K. A stability assessment of solution adaptation techniques for analogy-based software effort estimation. Empirical Software Engineering, 2017, 22, 474-504. https://doi.org/10.1007/s10664-016-9434-8.

Huanca LM, Oré SB. Factores que afectan la precisión de la estimación del esfuerzo en proyectos de software usando puntos de casos de uso. Revista Ibérica de Sistemas y Tecnologías de Información, 2016, 21(3), 18-32. https://doi.org/10.17013/risti.21.18-32.

Vyas M, Bohra A, Lamba CS, Vyas A. A Review on Software Cost and Effort Estimation Techniques for Agile Development Process. International Journal of Recent Research Aspects, 2018, 5(1), 1-5.

Freire S, Rios N, Pérez B, et al. Software practitioners’ point of view on technical debt payment. The Journal of Systems & Software, 2023, 111554. https://doi.org/10.1016/j.jss.2022.111554.

Biazotto JP, Feitosa D, Avgeriou P, Nakagowa EY. Technical debt management automation: State of the arte and future perspectives. Information and Software Technology, 2024, 167, 107375. https://doi.org/10.1016/j.infsof.2023.107375.

Kontsevoi B, Terekhov S, Velesnitsky A. Practice of Technical Debt Management with TETRATM in Terms of Open-Source Project Assessment. In: 3rd Int. Conf. on Electrical, Computer, Communications and Mechatronics Engineering (ICECCME), Tenerife, Canary Islands, Spain, 2023, 1-9. https://doi.org/10.1109/ICECCME57830.2023.10252809.

Ludwig J, Cline D. CBR Insight: Measure and Visualize Source Code Quality. In: IEEE/ACM Int. Conf. on Technical Debt (TechDebt), Montreal, QC, Canada, 2019, 57-58. https://doi.org/10.1109/TechDebt.2019.00017.

Didier DM. Una métrica para medir deuda técnica basada en el análisis de las más usadas. Caso de estudio del repositorio Square, 2024, [Tesis de grado de maestría], Repositorio institucional de la Universidad Nacional de Colombia. Recuperado de https://repositorio.unal.edu.co/handle/unal/86250

Li Z, Yu Q, Liang P, Mo R, Yang C. Interest of Defect Technical Debt: An Exploratory Study on Apache Projects. In: IEEE Int. Conf. on Software Maintenance and Evolution (ICSME), Adelaide, SA, Australia, 2020, 629-639. https://doi.org/10.1109/ICSME46990.2020.00065.

Lenarduzzi V, Martini A, Taibi D, Tamburri DA. Towards Surgically-Precise Technical Debt Estimation: Early Results and Research Roadmpa. In: Proc. of the 3rd ACM SIGSOFT Int. Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE), 2019, Tallinn, Estonia. New York, USA. https://doi.org/10.1145/3340482.3342747.

Pavlič L, Hliš T, Heričko M, Beranič T. The Gap between the Admitted and the Measured Technical Debt: An Empirical Study. Appied Sciences, 2022, 12, 7482. https://doi.org/10.3390/app12157482.

Melo A, Fagundes R, Lenarduzzi V, Barbosa Santos W. Identification and measurement of Requirements Technical Debt in software development: A systematic literature review. The Journal of Systems & Software, 2022, 194, 111483. https://doi.org/10.1016/j.jss.2022.111483.

Wang Q, Gou L, Jiang N, Che M, Zhang R, Yang Y, Li M. Estimating Fixing Effort and Schedule based on Defect Injection Distribution. Software process improvement and practice, 2008, 13, 35-50. https://doi.org/10.1002/spip.366.

Čelar S, Turić M, Vicković L. Method for personal capability assessment in agile teams using personal points. In: IEEE 22nd Telecommunications Forum Telfor Conference, 2014, 1134-1137. https://doi.org/10.1109/TELFOR.2014.7034607.

Shastri Y, Hoda R, Amor R. The role of the project manager in agile software development projects. Journal of Systems and Software, 173, 110871. https://doi.org/1016/j.jss.2020.110871.

Vol-16-Num-3-art-6

Descargas

Publicado

01-10-2024

Cómo citar

Medina Barrera, M. G., & Hernández Mora, J. J. (2024). Metodología híbrida para la estimación y tratamiento de la Deuda Técnica de defectos en el Desarrollo Ágil de Software. Programación matemática Y Software, 16(3), 53–63. https://doi.org/10.30973/progmat/2024.16.3/6

Número

Sección

Artículos