DOI:
https://doi.org/10.14483/23448350.19670Publicado:
2023-01-02Número:
Vol. 46 Núm. 1 (2023): Enero-Abril 2023Sección:
Ingeniería y TecnologíaDeuda de la documentación en el desarrollo ágil de software: mapeo sistemático de la literatura
Documentation Debt in Agile Software Development: A Systematic Mapping of the Literature
Palabras clave:
Agile software development, documentation debt, technical debt, software documentation, documentation debt management (en).Palabras clave:
Desarrollo ágil de software, deuda de la documentación, deuda técnica, documentación de software, gestión de la deuda de la documentación (es).Descargas
Resumen (es)
En el desarrollo de software, la documentación es un proceso continuo en el cual se especifica qué hace el sistema, cómo lo hace y para quién lo hace, describiendo todas sus características desde diferentes perspectivas para facilitar la comprensión de todos los interesados. Sin embargo, esto no siempre se logra, debido a malas prácticas de documentación, lo cual lleva a un tipo de deuda técnica conocida como deuda de la documentación, relacionada con documentación faltante, inconsistente o incompleta que degrada la comprensión del sistema, afectando gravemente su desarrollo, mantenimiento y evolución. Este fenómeno parece agravarse en los enfoques ágiles, ya sea por una mala interpretación de los valores y principios ágiles, enfocándose en la entrega continua de software funcional más que en la documentación exhaustiva, o por desconocimiento de buenas prácticas de documentación. Si bien existen iniciativas que describen de forma general las causas, efectos y buenas prácticas para mitigar la deuda de documentación, aún hace falta comprender el impacto de este tipo de deuda para la industria de software y profundizar en una definición más completa en el desarrollo ágil de software. En ese sentido, se presentan los resultados de un mapeo sistemático que brinda una base sólida de conocimiento sobre la deuda de la documentación en el desarrollo ágil de software y permite identificar brechas u oportunidades de investigación en este tema.
Resumen (en)
In software development, documentation is a continuous process that specifies what the system does, how it does it, and for whom it does it, describing all its characteristics from different perspectives in order to facilitate the understanding of all the interested parties. However, this is not always achieved due to poor documentation practices, leading to a type of technical debt known as documentation debt, which is related to missing, inconsistent, or incomplete documentation that degrades the understanding of the system, severely affecting its development, maintenance, and evolution. This phenomenon seems to be aggravated in agile approaches, either due to a misunderstanding of agile values and principles by focusing on the continuous delivery of functional software rather than comprehensive documentation, or a lack of good documentation practices. Although there are initiatives that generally describe the causes, effects, and good practices to mitigate documentation debt, it is still necessary to understand the impact of this type of debt on the software industry and to delve into a more complete definition in agile software development. In this sense, the results of a systematic mapping are presented, which provide a solid base of knowledge about documentation debt in agile software development and allow identifying gaps or research opportunities in this topic.
Referencias
Aghajani, E., Nagy, C., Vega-Márquez, O. L., Linares-Vásquez, M., Moreno, L., Bavota, G., Lanza, M. (2019). Software documentation issues unveiled. En IEEE/ACM 41st International Conference on Software Engineering (ICSE), 1199-1210. https://doi.org/10.1109/ICSE.2019.00122
Alsaqqa, S., Sawalha, S., Abdel-Nabi, H. (2020). Agile software development: Methodologies and trends. International Journal of Interactive Mobile Technologies, 14(11), 246-270. https://doi.org/10.3991/ijim.v14i11.13269
Alves, N., Mendes, T., de Mendonça, M., Spinola, R., Shull, F., Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70, 100-121. https://doi.org/10.1016/j.infsof.2015.10.008
Basili, V. R., Caldiera, G. (1994). Goal Question Metric Paradigm. Encyclopedia of Software Engineering - 2 Volume Set, 528-532. https://www.cs.umd.edu/~basili/publications/technical/T89.pdf
Behutiye, W. N., Rodríguez, P., Oivo, M., Tosun, A. (2017). Analyzing the concept of technical debt in the context of agile software development: A systematic literature review. Information and Software Technology, 82, 139-158. https://doi.org/10.1016/j.infsof.2016.10.004
Budgen, D., Turner, M., Brereton, P., Kitchenham, B. (2008). Using Mapping Studies in Software Engineering. En Proceedings of the 20th Annual Workshop of the Psychology of Programming Interest Group.
Cappelli, C., Engiel, P., Araujo, R. de, do Prado Leite, J. (2013). Managing transparency guided by a maturity model. En 3rd Global Conference on Transparency Research HEC.
Charalampidou, S., Ampatzoglou, A., Chatzigeorgiou, A., Tsiridis, N. (2018). Integrating traceability within the IDE to prevent requirements documentation debt. En 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 421-428. https://doi.org/10.1109/SEAA.2018.00075
CORE Inc. (s.f.). CORE Conference Ranks. http://portal.core.edu.au/conf-ranks/
Hazzan, O., Dubinsky, Y. (2014). The agile manifesto. In: Agile Anywhere: Essays on Agile Projects and Beyond (pp. 9-14). Springer. https://doi.org/10.1007/978-3-319-10157-6_3
Islam, Z., Ferworn, A. (2020). A Comparison between agile and traditional software development methodologies. Global Journal of Computer Science and Technology, 20(2), 7-42. https://doi.org/10.34257/gjcstcvol20is2pg7
Jalali, S., Wohlin, C. (2012). Systematic literature studies: Database searches vs. backward snowballing. En ESEM ’12: Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, 29-38. https://doi.org/10.1145/2372251.2372257
Kamal, T., Zhang, Q., Akbar, M. A., Shafiq, M., Gumaei, A., Alsanad, A. (2020). Identification and prioritization of agile requirements change management success factors in the domain of global software development. IEEE Access, 8, 44714-44726. https://doi.org/10.1109/ACCESS.2020.2976723
Kitchenham, B., Charters, S. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering, Version 2.3. EBSE Technical Report, Keele University, & University of Durham, UK
Li, Z., Avgeriou, P., Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101, 193-220. https://doi.org/10.1016/j.jss.2014.12.027
Martini, A., Besker, T., Bosch, J. (2020). Process debt: A first exploration. En 27th Asia-Pacific Software Engineering Conference (APSEC), 316-325. https://doi.org/10.1109/APSEC51365.2020.00040
Martini, A., Stray, V., Moe, N. B. (2019). Technical-, social- and process debt in large-scale agile: An exploratory case-study. In: R. Hoda (Ed.), Agile Processes in Software Engineering and Extreme Programming - Workshops (pp. 112-119). Springer. https://doi.org/10.1007/978-3-030-30126-2_14
Matturro, G., Raschetti, F., Fontán, C. (2019). A systematic mapping study on soft skills in software engineering. Journal of Universal Computer Science, 25(1), 16-41. https://doi.org/10.3217/jucs-025-01-0016
McBurney, P. W., Jiang, S., Kessentini, M., Kraft, N. A., Armaly, A., Mkaouer, M. W., McMillan, C. (2018). Towards prioritizing documentation effort. IEEE Transactions on Software Engineering, 44(9), 897-913. https://doi.org/10.1109/TSE.2017.2716950
Petersen, K., Feldt, R., Mujtaba, S., Mattsson, M. (2008). Systematic mapping studies in software engineering. En EASE’08: Proceedings of the 12th international conference on Evaluation and Assessment in Software Engineering, 68-77
Petersen, K., Vakkalanka, S., Kuzniarz, L. (2015). Guidelines for conducting systematic mapping studies in software engineering: An update. Information and Software Technology, 64, 1-18. https://doi.org/10.1016/j.infsof.2015.03.007
Portela, L. T., Borrego, G. (2016). Scrumconix: Agile and documented method to AGSD. En IEEE 11th International Conference on Global Software Engineering (ICGSE), 195-196. https://doi.org/10.1109/ICGSE.2016.39
Rios, N., Mendes, L., Cerdeiral, C., Magalhães, A. P. F., Perez, B., Correal, D., Astudillo, H., Seaman, C., Izurieta, C., Santos, G., Oliveira Spínola, R. (2020a). Hearing the voice of software practitioners on causes, effects, and practices to deal with documentation debt. In: N. Madhavji, L. Pasquale, A. Ferrari, S. Gnesi (Eds.), Requirements Engineering: Foundation for Software Quality (pp. 55-70). Springer. https://doi.org/10.1007/978-3-030-44429-7_4
Rios, N., Spínola, R. O., Mendonça, M., Seaman, C. (2020b). The practitioners’ point of view on the concept of technical debt and its causes and consequences: a design for a global family of industrial surveys and its first results from Brazil. Empirical Software Engineering, 25(5), 3216-3287. https://doi.org/10.1007/s10664-020-09832-9
SCImago. (s.f.). SJR - SCImago Journal & Country Rank. https://www.scimagojr.com/
Shafiq, M., Waheed, U. (2018). Documentation in agile development: A comparative analysis. En IEEE 21st International Multi-Topic Conference (INMIC), 1-8. https://doi.org/10.1109/INMIC.2018.8595625
Shaydulin, R., Sybrandt, J. (2017). To agile, or not to agile: A comparison of software development methodologies. arXiv:1704.07469v1. https://doi.org/10.48550/arXiv.1704.07469
Shmerlin, Y., Hadar, I., Kliger, D., Makabee, H. (2015). To document or not to document? An exploratory study on developers’ motivation to document code. In: A. Persson, J. Stirna (Eds.), Advanced Information Systems Engineering Workshops (pp. 100-106). Springer. https://doi.org/10.1007/978-3-319-19243-7_10
Shylesh, S. (2017). A study of software development life cycle process models. SSRN. https://doi.org/10.2139/ssrn.2988291
Sinha, R., Shameem, M., Kumar, C. (2020). SWOT: Strength, weaknesses, opportunities, and threats for scaling agile methods in global software development. En ISEC 2020: Proceedings of the 13th Innovations in Software Engineering Conference on Formerly known as India Software Engineering Conference. https://doi.org/10.1145/3385032.3385037
State of Agile. (2021). State of Agile Report. https://stateofagile.com/#ufh-c-7027494-state-of-agile
Voigt, S., von Garrel, J., Müller, J., Wirth, D. (2016). A study of documentation in agile software projects. En ESEM’16: Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 1-6. https://doi.org/10.1145/2961111.2962616
Wieringa, R., Maiden, N., Mead, N., Rolland, C. (2006). Requirements engineering paper classification and evaluation criteria: A proposal and a discussion. Requirements Engineering, 11(1), 102-107. https://doi.org/10.1007/s00766-005-0021-6
Cómo citar
APA
ACM
ACS
ABNT
Chicago
Harvard
IEEE
MLA
Turabian
Vancouver
Descargar cita
Licencia
Derechos de autor 2023 Juan-Carlos Narváez-Narváez, César-Jesús Pardo-Calvache, Carlos-Eduardo Orozco-Garcés

Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial-CompartirIgual 4.0.
El (los) autor(es) al enviar su artículo a la Revista Científica certifica que su manuscrito no ha sido, ni será presentado ni publicado en ninguna otra revista científica.
Dentro de las políticas editoriales establecidas para la Revista Científica en ninguna etapa del proceso editorial se establecen costos, el envío de artículos, la edición, publicación y posterior descarga de los contenidos es de manera gratuita dado que la revista es una publicación académica sin ánimo de lucro.