A method to identify toggle debt in a project from its source code.

ilustraciones, diagramas, tablas

Autores:
Hoyos Rentería, Juan David
Tipo de recurso:
Fecha de publicación:
2021
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
eng
OAI Identifier:
oai:repositorio.unal.edu.co:unal/80530
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/80530
https://repositorio.unal.edu.co/
Palabra clave:
620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
Software engineering
Ingeniería de software
Software quality
Continuous delivery
Feature toggles
Technical debt
Calidad de software
Entrega continua
Deuda técnica
Rights
openAccess
License
Reconocimiento 4.0 Internacional
id UNACIONAL2_f08f90c0f68cf3a712cac9db2f650e95
oai_identifier_str oai:repositorio.unal.edu.co:unal/80530
network_acronym_str UNACIONAL2
network_name_str Universidad Nacional de Colombia
repository_id_str
dc.title.eng.fl_str_mv A method to identify toggle debt in a project from its source code.
dc.title.translated.spa.fl_str_mv Un método para identificar toggle debt en un proyecto a partir de su código fuente.
title A method to identify toggle debt in a project from its source code.
spellingShingle A method to identify toggle debt in a project from its source code.
620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
Software engineering
Ingeniería de software
Software quality
Continuous delivery
Feature toggles
Technical debt
Calidad de software
Entrega continua
Deuda técnica
title_short A method to identify toggle debt in a project from its source code.
title_full A method to identify toggle debt in a project from its source code.
title_fullStr A method to identify toggle debt in a project from its source code.
title_full_unstemmed A method to identify toggle debt in a project from its source code.
title_sort A method to identify toggle debt in a project from its source code.
dc.creator.fl_str_mv Hoyos Rentería, Juan David
dc.contributor.advisor.none.fl_str_mv Espinosa Bedoya, Albeiro
dc.contributor.author.none.fl_str_mv Hoyos Rentería, Juan David
dc.contributor.researchgroup.spa.fl_str_mv Calidad de Software
dc.subject.ddc.spa.fl_str_mv 620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
topic 620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería
000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computación
Software engineering
Ingeniería de software
Software quality
Continuous delivery
Feature toggles
Technical debt
Calidad de software
Entrega continua
Deuda técnica
dc.subject.lemb.eng.fl_str_mv Software engineering
dc.subject.lemb.spa.fl_str_mv Ingeniería de software
dc.subject.proposal.eng.fl_str_mv Software quality
Continuous delivery
Feature toggles
Technical debt
dc.subject.proposal.spa.fl_str_mv Calidad de software
Entrega continua
Deuda técnica
description ilustraciones, diagramas, tablas
publishDate 2021
dc.date.accessioned.none.fl_str_mv 2021-10-13T14:06:05Z
dc.date.available.none.fl_str_mv 2021-10-13T14:06:05Z
dc.date.issued.none.fl_str_mv 2021
dc.type.spa.fl_str_mv Trabajo de grado - Maestría
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/masterThesis
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.content.spa.fl_str_mv Text
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TM
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.unal.edu.co/handle/unal/80530
dc.identifier.instname.spa.fl_str_mv Universidad Nacional de Colombia
dc.identifier.reponame.spa.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
dc.identifier.repourl.spa.fl_str_mv https://repositorio.unal.edu.co/
url https://repositorio.unal.edu.co/handle/unal/80530
https://repositorio.unal.edu.co/
identifier_str_mv Universidad Nacional de Colombia
Repositorio Institucional Universidad Nacional de Colombia
dc.language.iso.spa.fl_str_mv eng
language eng
dc.relation.references.spa.fl_str_mv [Dja, 2018a] (2018a). Django Packages: Feature Flipping. https://djangopackages.org/grids/g/feature-flip/. Accessed 2018-11-05.
[Dja, 2018b] (2018b). The Web framework for perfectionists with deadlines — Django. https://www.djangoproject.com/. Accessed 2019-03-05.
[OSF, 2019] (2019). Center for Open Science. https://github.com/CenterForOpenScience/osf.io. Accessed 2019-01-09.
[Waf, 2019] (2019). Django Waffle — django-waffle 0.14.0 documentation. https://waffle.readthedocs.io/en/stable/. Accessed 2019-01-11.
[Adams and McIntosh, 2016] Adams, B. and McIntosh, S. (2016). Modern release engineering in a nutshell – why researchers should care. In Leaders of Tomorrow: Future of Software Engineering, Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 78–90, Osaka, Japan.
[Alfayez et al., 2020] Alfayez, R., Alwehaibi, W., Winn, R., Venson, E., and Boehm, B. (2020). A systematic literature review of technical debt prioritization. In Proceedings of the 3rd International Conference on Technical Debt, pages 1–10.
[Alves et al., 2014] Alves, N. S., Ribeiro, L. F., Caires, V., Mendes, T. S., and Spinola, R. O. (2014). Towards an ontology of terms on technical debt. pages 1–7. IEEE.
[Arif and Rana, 2020] Arif, A. and Rana, Z. (2020). Refactoring of code to remove technical debt and reduce maintenance effort.
[Asthagiri, 2018] Asthagiri, N. (2018). OEP-17: Feature Toggles. https:// open-edx-proposals.readthedocs.io/en/latest/oep-0017-bp-feature-toggles.html. Accessed 2020-01-10.
[Avgeriou et al., 2016] Avgeriou, P., Kruchten, P., Ozkaya, I., and Seaman, C. (2016). Managing technical debt in software engineering. http://drops.dagstuhl.de/opus/volltexte/2016/6693/.
[Chen, 2015] Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54.
[Claps et al., 2015] Claps, G. G., Berntsson Svensson, R., and Aurum, A. A. (2015). On the journey to continuous deployment: Technical and social challenges along the way. Information and Software Technology, 57(1):21–31.
[Cunningham, 1993] Cunningham, W. (1993). The wycash portfolio management system. Proc. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA ’92) (Addendum), 4:29–30.
[edX, 2019] edX (2019). edx-platform. https://github.com/edx/edx-platform. Accessed 2019-01-09.
[edX, 2021a] edX (2021a). 5.3. Code Quality — Open edX Developer’s Guide documentation. https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/testing/code-quality.html#code-quality. Accessed 2021-01-01.
[edX, 2021b] edX (2021b). edx/ecommerce: Service for managing edX’s product catalog and handling orders for those products. https://github.com/edx/ecommerce. Accessed 2021-01-01.
[edX, 2021c] edX (2021c). Gating E-Commerce Service Features. https://edx-ecommerce.readthedocs.io/en/latest/additional_features/gate_ecommerce.html. Accessed 2021-01-01.
[edX, 2021d] edX (2021d). Projects - JIRA. https://openedx.atlassian.net/projects. Accessed 2021-01-01.
[Feitelson et al., 2013] Feitelson, D. G., Frachtenberg, E., and Beck, K. L. (2013). Development and deployment at facebook. IEEE Internet Computing, 17(4):8–17.
[Fowler, 2009] Fowler, M. (2009). Technicaldebtquadrant. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html. Accessed 2017-01-04.
[Hodgson, 2017] Hodgson, P. (2017). Feature Toggles. https://martinfowler.com/articles/feature-toggles.html. Accessed 2017-08-30.
[Hoyos et al., 2020] Hoyos, J., Abdalkareem, R., Mujahid, S., Shihab, E., and Espinosa Bedoya, A. (2020). On the Removal of Feature Toggles: A Study of Python Projects and Practitioners Motivations. Submitted to Empirical Software Engineering.
[Humble and Farley, 2010] Humble, J. and Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment.
[Jabangwe et al., 2015] Jabangwe, R., B ̈orstler, J., Sˇmite, D., and Wohlin, C. (2015). Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empirical Software Engineering, 20(3):640–693.
[Kasting, 2015] Kasting, P. (2015). Announcing base::feature api - chromium-dev mailing list. https://groups.google.com/a/chromium.org/g/chromium-dev/c/Esavy4-JTHY/m/CJ_zXzBQAAAJ. Accessed 2020-11-22.
[Khomyakov et al., 2020] Khomyakov, I., Makhmutov, Z., Mirgalimova, R., and Sillitti, A. (2020). An analysis of automated technical debt measurement. volume 378 LNBIP.
[Kruchten et al., 2019] Kruchten, P., Nord, R., and Ozkaya, I. (2019). Managing Technical Debt: Reducing Friction in Software Development. Addison-Wesley Professional.
[LaunchDarkly, 2018] LaunchDarkly (2018). Feature Flags - Feature Flags, Toggles, Controls. http://featureflags.io/feature-flags/. Accessed 2018-11-03.
[Leite et al., 2019] Leite, L., Rocha, C., Kon, F., Milojicic, D., and Meirelles, P. (2019). A survey of devops concepts and challenges. ACM Computing Surveys (CSUR), 52(6):1–35.
[Lenarduzzi et al., 2020] Lenarduzzi, V., Besker, T., Taibi, D., Martini, A., and Fontana, F. A. (2020). A systematic literature review on technical debt prioritization: Strategies, processes, factors, and tools. Journal of Systems and Software, 171:110827.
[Leon-Sigg et al., 2020] Leon-Sigg, M. D., Vazquez-Reyes, S., and Rodriguez-Avila, D. (2020). Towards the use of a framework to make technical debt visible. pages 86–92.
[Li et al., 2015] Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220.
[Mahdavi-Hezaveh et al., 2019] Mahdavi-Hezaveh, R., Dremann, J., and Williams, L. (2019). Software development with feature toggles: Practices used by practitioners.
[Marinescu, 2012] Marinescu, R. (2012). Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development, 56:9:1–9:13.
[McConnell, 2007] McConnell, S. (2007). Technical debt. http://www.construx.com/10x_Software_Development/Technical_Debt/. Accessed 2017-01-04.
[Meinicke et al., 2020a] Meinicke, J., Hoyos, J., Vasilescu, B., and K ̈astner, C. (2020a). Capture the feature flag: Detecting feature flags in open-source. In International Conference on Mining Software Repositories.
[Meinicke et al., 2020b] Meinicke, J., Wong, C.-P., Vasilescu, B., and K ̈astner, C. (2020b). Exploring differences and commonalities between feature flags and configuration options. In Proc. Int’l Conf. Software Engineering–Software Engineering in Practice (ICSE-SEIP). ACM.
[Molnar and Motogna, 2020] Molnar, A.-J. and Motogna, S. (2020). Long-term evaluation of technical debt in open-source software.
[Mozilla, 2019] Mozilla (2019). Bedrock configurator. https://www-config.readthedocs.io/. Accessed 2019-02-21.
[Neely and Stolt, 2013] Neely, S. and Stolt, S. (2013). Continuous delivery? Easy! Just change everything (well, maybe it is not that easy). Proceedings - AGILE 2013, pages 121–128.
[Osherove, 2018] Osherove, R. (2018). Feature Toggles – Enterprise DevOps. http://enterprisedevops.org/feature-toggle-frameworks-list/. Accessed 2018-12-11.
[Pecorelli et al., 2020] Pecorelli, F., Nucci, D. D., Roover, C. D., and Lucia, A. D. (2020). A large empirical assessment of the role of data balancing in machine-learning-based code smell detection. Journal of Systems and Software, 169.
[Poppendieck and Poppendieck, 2006] Poppendieck, M. and Poppendieck, T. (2006). Implementing lean software development : from concept to cash. Addison-Wesley.
[Potdar and Shihab, 2014] Potdar, A. and Shihab, E. (2014). An exploratory study on self-admitted technical debt.
[Rahman et al., 2015] Rahman, A. A. U., Helms, E., Williams, L., and Parnin, C. (2015). Synthesizing Continuous Deployment Practices Used in Software Development. 2015 Agile Conference, pages 1–10.
[Rahman et al., 2016] Rahman, M. T., Querel, L.-P., Rigby, P. C., and Adams, B. (2016). Feature toggles: Practitioner practices and a case study. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR ’16, pages 201–211, New York, NY, USA. ACM.
[Rahman et al., 2018] Rahman, M. T., Rigby, P. C., and Shihab, E. (2018). The modular and feature toggle architectures of google chrome. Empirical Software Engineering, pages 1–28.
[Rajalakshmi et al., 2021] Rajalakshmi, V., Sendhilkumar, S., and Mahalakshmi, G. S. (2021). Classification of technical debts in software development using text analytics. pages 313–323. Springer International Publishing.
[Ramanathan et al., 2020] Ramanathan, M. K., Clapp, L., Barik, R., and Sridharan, M. (2020). Piranha: reducing feature flag debt at uber. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice, pages 221–230.
[Ramasubbu and Kemerer, 2019] Ramasubbu, N. and Kemerer, C. (2019). Integrating technical debt management and software quality management processes: A normative framework and field tests. IEEE Transactions on Software Engineering, 45:285–300.
[Rodríguez et al., 2017] Rodríguez, P., Haghighatkhah, A., Lwakatare, L. E., Teppola, S., Suomalainen, T., Eskeli, J., Karvonen, T., Kuvaja, P., Verner, J. M., and Oivo, M. (2017). Continuous deployment of software intensive products and services: A systematic mapping study. Journal of Systems and Software, 123:263–291.
[Rios et al., 2018] Rios, N., de Mendonça Neto, M. G., and Spínola, R. O. (2018). A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology, 102:117–145.
[Alves et al., 2016] Alves, N. S., Mendes, T. S., de Mendonç̧a, M. G., Spínola, R. O., Shull, F., and Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70:100–121.
[Sayagh et al., 2018] Sayagh, M., Kerzazi, N., Adams, B., and Petrillo, F. (2018). Software configuration engineering in practice: Interviews, survey, and systematic literature review. IEEE Transactions on Software Engineering.
[Schermann et al., 2016] Schermann, G., Cito, J., Leitner, P., Zdun, U., and Gall, H. (2016). An empirical study on principles and practices of continuous delivery and deployment. PeerJ Preprints, 4:e1889v1.
[Securities and Commission, 2013] Securities and Commission, E. (2013). Administrative and cease-and-desist proceedings against Knight Capital Americas LLC. https://www.sec.gov/litigation/admin/2013/34-70694.pdf. Accessed 2019-01-19.
[Sowa and Loh, 2010] Sowa, E. C. and Loh, R. Y. (2010). Feature bits: Enabling flow within and across teams.
[Viswanathan, 2018] Viswanathan, S. (2018). Dynamic configuration at Twitter. https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/dynamic-configuration-at-twitter.html. Accessed 2019-03-25.
[Yli-Huumo et al., 2015] Yli-Huumo, J., Maglyas, A., and Smolander, K. (2015). The benefits and consequences of workarounds in software development projects. volume 210.
[Zazworka et al., 2014] Zazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., and Shull, F. (2014). Comparing four approaches for technical debt identification. Software Quality Journal, 22:403–426.
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.license.spa.fl_str_mv Reconocimiento 4.0 Internacional
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv Reconocimiento 4.0 Internacional
http://creativecommons.org/licenses/by/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv xiii, 60 páginas
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Universidad Nacional de Colombia
dc.publisher.program.spa.fl_str_mv Medellín - Minas - Maestría en Ingeniería - Ingeniería de Sistemas
dc.publisher.department.spa.fl_str_mv Departamento de la Computación y la Decisión
dc.publisher.faculty.spa.fl_str_mv Facultad de Minas
dc.publisher.place.spa.fl_str_mv Medellín, Colombia
dc.publisher.branch.spa.fl_str_mv Universidad Nacional de Colombia - Sede Medellín
institution Universidad Nacional de Colombia
bitstream.url.fl_str_mv https://repositorio.unal.edu.co/bitstream/unal/80530/3/license.txt
https://repositorio.unal.edu.co/bitstream/unal/80530/4/71360425.2021.pdf
https://repositorio.unal.edu.co/bitstream/unal/80530/5/71360425.2021.pdf.jpg
bitstream.checksum.fl_str_mv cccfe52f796b7c63423298c2d3365fc6
e75edeee533697f24f2d4fa45a870bce
79a0805f4f7ec4500ce2a14701634f54
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
repository.mail.fl_str_mv repositorio_nal@unal.edu.co
_version_ 1814090208646266880
spelling Reconocimiento 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Espinosa Bedoya, Albeiro16b6474a3fac0cc52f9d2217afeaafff600Hoyos Rentería, Juan David539dd06f89e9b1c526f38d75eda6c41bCalidad de Software2021-10-13T14:06:05Z2021-10-13T14:06:05Z2021https://repositorio.unal.edu.co/handle/unal/80530Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/ilustraciones, diagramas, tablasContinuous Delivery has benefited companies such as IBM, Google and Microsoft after the adoption of practices to deliver friction-less value. These lean and agile practices help teams to adjust to implicit variability when developing software and to provide non-stop features and enhancements. Practitioners that use feature toggles in their source code can control the execution of features with a high degree of precision. As this execution control effectively decouples the feature implementation from its release, feature toggles help practitioners move valuable software artifacts closer to the user. However, there is evidence of unwanted risks and negative consequences that impact the quality of a software project when, for example, a feature hidden under a toggle remains in the source code longer than expected. Although practitioners of feature toggles have crafted mechanisms to keep their feature toggles inventory in check, little is known about the automated identification of feature toggles and their associated technical debt. This thesis focuses on the proposal of a method to identify source code where both feature toggles and technical debt coincide in the repository of a project. This method is based on two complementary empirical explorations. First, we identified areas of code containing feature toggles in 72 open source projects that use toggling libraries. And second, we selected one of the toggled projects and identified technical debt that intersects with the previously identified feature toggles. The proposed method uncovers the presence of toggle debt in the early stages of the development process. These results demonstrate the feasibility of a systematic approach to find toggle debt from a software repository, and advise practitioners on the importance for automated, reliable and up-to-date quality measurement tools.La Entrega Continua de software ha beneficiado a compañías como IBM, Google y Microsoft luego de haber adoptado prácticas para generar valor sin fricción. Estas prácticas limpias y ágiles ayudan a los equipos de desarrollo a ajustarse a la variabilidad implícita, y a proveer funcionalidades y mejoras sin parar. Quienes usan feature toggles en su código fuente pueden controlar la ejecución de funcionalidades con un alto grado de precisión. A la vez que este control efectivamente desacopla la etapa de implementación de la del lanzamiento de una funcionalidad, los feature toggles ayudan a los equipos de desarrollo a enfocarse en el valor de uso de sus implementaciones. Sin embargo, existe evidencia de riesgos no esperados y de consecuencias negativas que impactan la calidad del proyecto de software cuando, por ejemplo, una funcionalidad bajo la guarda de un toggle permanece escondida en el código fuente por más tiempo de lo esperado. A pesar que las personas que usan feature toggles han creado mecanismos para mantener controlado el inventario de feature toggles, poco se conoce sobre la identificación automatizada de feature toggles y su technical debt asociado. Esta tesis se enfoca en proponer un método para identificar código fuente donde los feature toggles y el technical debt coinciden en el repositorio de un proyecto. Este método se basa en dos exploraciones empíricas complementarias. Primero, identificamos áreas de código que contienen feature toggles en 72 proyectos de código abierto que usan librerías de toggling. Y segundo, seleccionamos uno de los proyectos que usa toggles e identificamos la deuda técnica que se cruza con los feature toggles previamente identificados. El método propuesto descubre la presencia de toggle debt en las primeras etapas del proceso de desarrollo. Estos resultados demuestran la viabilidad de un acercamiento sistemático para encontrar toggle debt en un repositorio de software y advierte a los practicantes sobre la importancia de usar herramientas automatizadas, confiables y actualizadas para medir la calidad. (Texto tomado de la fuente)MaestríaMagíster en Ingeniería - Ingeniería de SistemasInteligencia de softwarexiii, 60 páginasapplication/pdfengUniversidad Nacional de ColombiaMedellín - Minas - Maestría en Ingeniería - Ingeniería de SistemasDepartamento de la Computación y la DecisiónFacultad de MinasMedellín, ColombiaUniversidad Nacional de Colombia - Sede Medellín620 - Ingeniería y operaciones afines::629 - Otras ramas de la ingeniería000 - Ciencias de la computación, información y obras generales::005 - Programación, programas, datos de computaciónSoftware engineeringIngeniería de softwareSoftware qualityContinuous deliveryFeature togglesTechnical debtCalidad de softwareEntrega continuaDeuda técnicaA method to identify toggle debt in a project from its source code.Un método para identificar toggle debt en un proyecto a partir de su código fuente.Trabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TM[Dja, 2018a] (2018a). Django Packages: Feature Flipping. https://djangopackages.org/grids/g/feature-flip/. Accessed 2018-11-05.[Dja, 2018b] (2018b). The Web framework for perfectionists with deadlines — Django. https://www.djangoproject.com/. Accessed 2019-03-05.[OSF, 2019] (2019). Center for Open Science. https://github.com/CenterForOpenScience/osf.io. Accessed 2019-01-09.[Waf, 2019] (2019). Django Waffle — django-waffle 0.14.0 documentation. https://waffle.readthedocs.io/en/stable/. Accessed 2019-01-11.[Adams and McIntosh, 2016] Adams, B. and McIntosh, S. (2016). Modern release engineering in a nutshell – why researchers should care. In Leaders of Tomorrow: Future of Software Engineering, Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 78–90, Osaka, Japan.[Alfayez et al., 2020] Alfayez, R., Alwehaibi, W., Winn, R., Venson, E., and Boehm, B. (2020). A systematic literature review of technical debt prioritization. In Proceedings of the 3rd International Conference on Technical Debt, pages 1–10.[Alves et al., 2014] Alves, N. S., Ribeiro, L. F., Caires, V., Mendes, T. S., and Spinola, R. O. (2014). Towards an ontology of terms on technical debt. pages 1–7. IEEE.[Arif and Rana, 2020] Arif, A. and Rana, Z. (2020). Refactoring of code to remove technical debt and reduce maintenance effort.[Asthagiri, 2018] Asthagiri, N. (2018). OEP-17: Feature Toggles. https:// open-edx-proposals.readthedocs.io/en/latest/oep-0017-bp-feature-toggles.html. Accessed 2020-01-10.[Avgeriou et al., 2016] Avgeriou, P., Kruchten, P., Ozkaya, I., and Seaman, C. (2016). Managing technical debt in software engineering. http://drops.dagstuhl.de/opus/volltexte/2016/6693/.[Chen, 2015] Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54.[Claps et al., 2015] Claps, G. G., Berntsson Svensson, R., and Aurum, A. A. (2015). On the journey to continuous deployment: Technical and social challenges along the way. Information and Software Technology, 57(1):21–31.[Cunningham, 1993] Cunningham, W. (1993). The wycash portfolio management system. Proc. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA ’92) (Addendum), 4:29–30.[edX, 2019] edX (2019). edx-platform. https://github.com/edx/edx-platform. Accessed 2019-01-09.[edX, 2021a] edX (2021a). 5.3. Code Quality — Open edX Developer’s Guide documentation. https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/testing/code-quality.html#code-quality. Accessed 2021-01-01.[edX, 2021b] edX (2021b). edx/ecommerce: Service for managing edX’s product catalog and handling orders for those products. https://github.com/edx/ecommerce. Accessed 2021-01-01.[edX, 2021c] edX (2021c). Gating E-Commerce Service Features. https://edx-ecommerce.readthedocs.io/en/latest/additional_features/gate_ecommerce.html. Accessed 2021-01-01.[edX, 2021d] edX (2021d). Projects - JIRA. https://openedx.atlassian.net/projects. Accessed 2021-01-01.[Feitelson et al., 2013] Feitelson, D. G., Frachtenberg, E., and Beck, K. L. (2013). Development and deployment at facebook. IEEE Internet Computing, 17(4):8–17.[Fowler, 2009] Fowler, M. (2009). Technicaldebtquadrant. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html. Accessed 2017-01-04.[Hodgson, 2017] Hodgson, P. (2017). Feature Toggles. https://martinfowler.com/articles/feature-toggles.html. Accessed 2017-08-30.[Hoyos et al., 2020] Hoyos, J., Abdalkareem, R., Mujahid, S., Shihab, E., and Espinosa Bedoya, A. (2020). On the Removal of Feature Toggles: A Study of Python Projects and Practitioners Motivations. Submitted to Empirical Software Engineering.[Humble and Farley, 2010] Humble, J. and Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment.[Jabangwe et al., 2015] Jabangwe, R., B ̈orstler, J., Sˇmite, D., and Wohlin, C. (2015). Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empirical Software Engineering, 20(3):640–693.[Kasting, 2015] Kasting, P. (2015). Announcing base::feature api - chromium-dev mailing list. https://groups.google.com/a/chromium.org/g/chromium-dev/c/Esavy4-JTHY/m/CJ_zXzBQAAAJ. Accessed 2020-11-22.[Khomyakov et al., 2020] Khomyakov, I., Makhmutov, Z., Mirgalimova, R., and Sillitti, A. (2020). An analysis of automated technical debt measurement. volume 378 LNBIP.[Kruchten et al., 2019] Kruchten, P., Nord, R., and Ozkaya, I. (2019). Managing Technical Debt: Reducing Friction in Software Development. Addison-Wesley Professional.[LaunchDarkly, 2018] LaunchDarkly (2018). Feature Flags - Feature Flags, Toggles, Controls. http://featureflags.io/feature-flags/. Accessed 2018-11-03.[Leite et al., 2019] Leite, L., Rocha, C., Kon, F., Milojicic, D., and Meirelles, P. (2019). A survey of devops concepts and challenges. ACM Computing Surveys (CSUR), 52(6):1–35.[Lenarduzzi et al., 2020] Lenarduzzi, V., Besker, T., Taibi, D., Martini, A., and Fontana, F. A. (2020). A systematic literature review on technical debt prioritization: Strategies, processes, factors, and tools. Journal of Systems and Software, 171:110827.[Leon-Sigg et al., 2020] Leon-Sigg, M. D., Vazquez-Reyes, S., and Rodriguez-Avila, D. (2020). Towards the use of a framework to make technical debt visible. pages 86–92.[Li et al., 2015] Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220.[Mahdavi-Hezaveh et al., 2019] Mahdavi-Hezaveh, R., Dremann, J., and Williams, L. (2019). Software development with feature toggles: Practices used by practitioners.[Marinescu, 2012] Marinescu, R. (2012). Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development, 56:9:1–9:13.[McConnell, 2007] McConnell, S. (2007). Technical debt. http://www.construx.com/10x_Software_Development/Technical_Debt/. Accessed 2017-01-04.[Meinicke et al., 2020a] Meinicke, J., Hoyos, J., Vasilescu, B., and K ̈astner, C. (2020a). Capture the feature flag: Detecting feature flags in open-source. In International Conference on Mining Software Repositories.[Meinicke et al., 2020b] Meinicke, J., Wong, C.-P., Vasilescu, B., and K ̈astner, C. (2020b). Exploring differences and commonalities between feature flags and configuration options. In Proc. Int’l Conf. Software Engineering–Software Engineering in Practice (ICSE-SEIP). ACM.[Molnar and Motogna, 2020] Molnar, A.-J. and Motogna, S. (2020). Long-term evaluation of technical debt in open-source software.[Mozilla, 2019] Mozilla (2019). Bedrock configurator. https://www-config.readthedocs.io/. Accessed 2019-02-21.[Neely and Stolt, 2013] Neely, S. and Stolt, S. (2013). Continuous delivery? Easy! Just change everything (well, maybe it is not that easy). Proceedings - AGILE 2013, pages 121–128.[Osherove, 2018] Osherove, R. (2018). Feature Toggles – Enterprise DevOps. http://enterprisedevops.org/feature-toggle-frameworks-list/. Accessed 2018-12-11.[Pecorelli et al., 2020] Pecorelli, F., Nucci, D. D., Roover, C. D., and Lucia, A. D. (2020). A large empirical assessment of the role of data balancing in machine-learning-based code smell detection. Journal of Systems and Software, 169.[Poppendieck and Poppendieck, 2006] Poppendieck, M. and Poppendieck, T. (2006). Implementing lean software development : from concept to cash. Addison-Wesley.[Potdar and Shihab, 2014] Potdar, A. and Shihab, E. (2014). An exploratory study on self-admitted technical debt.[Rahman et al., 2015] Rahman, A. A. U., Helms, E., Williams, L., and Parnin, C. (2015). Synthesizing Continuous Deployment Practices Used in Software Development. 2015 Agile Conference, pages 1–10.[Rahman et al., 2016] Rahman, M. T., Querel, L.-P., Rigby, P. C., and Adams, B. (2016). Feature toggles: Practitioner practices and a case study. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR ’16, pages 201–211, New York, NY, USA. ACM.[Rahman et al., 2018] Rahman, M. T., Rigby, P. C., and Shihab, E. (2018). The modular and feature toggle architectures of google chrome. Empirical Software Engineering, pages 1–28.[Rajalakshmi et al., 2021] Rajalakshmi, V., Sendhilkumar, S., and Mahalakshmi, G. S. (2021). Classification of technical debts in software development using text analytics. pages 313–323. Springer International Publishing.[Ramanathan et al., 2020] Ramanathan, M. K., Clapp, L., Barik, R., and Sridharan, M. (2020). Piranha: reducing feature flag debt at uber. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering in Practice, pages 221–230.[Ramasubbu and Kemerer, 2019] Ramasubbu, N. and Kemerer, C. (2019). Integrating technical debt management and software quality management processes: A normative framework and field tests. IEEE Transactions on Software Engineering, 45:285–300.[Rodríguez et al., 2017] Rodríguez, P., Haghighatkhah, A., Lwakatare, L. E., Teppola, S., Suomalainen, T., Eskeli, J., Karvonen, T., Kuvaja, P., Verner, J. M., and Oivo, M. (2017). Continuous deployment of software intensive products and services: A systematic mapping study. Journal of Systems and Software, 123:263–291.[Rios et al., 2018] Rios, N., de Mendonça Neto, M. G., and Spínola, R. O. (2018). A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology, 102:117–145.[Alves et al., 2016] Alves, N. S., Mendes, T. S., de Mendonç̧a, M. G., Spínola, R. O., Shull, F., and Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70:100–121.[Sayagh et al., 2018] Sayagh, M., Kerzazi, N., Adams, B., and Petrillo, F. (2018). Software configuration engineering in practice: Interviews, survey, and systematic literature review. IEEE Transactions on Software Engineering.[Schermann et al., 2016] Schermann, G., Cito, J., Leitner, P., Zdun, U., and Gall, H. (2016). An empirical study on principles and practices of continuous delivery and deployment. PeerJ Preprints, 4:e1889v1.[Securities and Commission, 2013] Securities and Commission, E. (2013). Administrative and cease-and-desist proceedings against Knight Capital Americas LLC. https://www.sec.gov/litigation/admin/2013/34-70694.pdf. Accessed 2019-01-19.[Sowa and Loh, 2010] Sowa, E. C. and Loh, R. Y. (2010). Feature bits: Enabling flow within and across teams.[Viswanathan, 2018] Viswanathan, S. (2018). Dynamic configuration at Twitter. https://blog.twitter.com/engineering/en_us/topics/infrastructure/2018/dynamic-configuration-at-twitter.html. Accessed 2019-03-25.[Yli-Huumo et al., 2015] Yli-Huumo, J., Maglyas, A., and Smolander, K. (2015). The benefits and consequences of workarounds in software development projects. volume 210.[Zazworka et al., 2014] Zazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., and Shull, F. (2014). Comparing four approaches for technical debt identification. Software Quality Journal, 22:403–426.EstudiantesInvestigadoresLICENSElicense.txtlicense.txttext/plain; charset=utf-83964https://repositorio.unal.edu.co/bitstream/unal/80530/3/license.txtcccfe52f796b7c63423298c2d3365fc6MD53ORIGINAL71360425.2021.pdf71360425.2021.pdfTesis de Maestría en Ingeniería - Ingeniería de Sistemasapplication/pdf1018252https://repositorio.unal.edu.co/bitstream/unal/80530/4/71360425.2021.pdfe75edeee533697f24f2d4fa45a870bceMD54THUMBNAIL71360425.2021.pdf.jpg71360425.2021.pdf.jpgGenerated Thumbnailimage/jpeg4244https://repositorio.unal.edu.co/bitstream/unal/80530/5/71360425.2021.pdf.jpg79a0805f4f7ec4500ce2a14701634f54MD55unal/80530oai:repositorio.unal.edu.co:unal/805302023-10-25 09:06:07.254Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUExBTlRJTExBIERFUMOTU0lUTwoKQ29tbyBlZGl0b3IgZGUgZXN0ZSDDrXRlbSwgdXN0ZWQgcHVlZGUgbW92ZXJsbyBhIHJldmlzacOzbiBzaW4gYW50ZXMgcmVzb2x2ZXIgbG9zIHByb2JsZW1hcyBpZGVudGlmaWNhZG9zLCBkZSBsbyBjb250cmFyaW8sIGhhZ2EgY2xpYyBlbiBHdWFyZGFyIHBhcmEgZ3VhcmRhciBlbCDDrXRlbSB5IHNvbHVjaW9uYXIgZXN0b3MgcHJvYmxlbWFzIG1hcyB0YXJkZS4KCk5PVEFTOgoqU0kgTEEgVEVTSVMgQSBQVUJMSUNBUiBBRFFVSVJJw5MgQ09NUFJPTUlTT1MgREUgQ09ORklERU5DSUFMSURBRCBFTiBFTCBERVNBUlJPTExPIE8gUEFSVEVTIERFTCBET0NVTUVOVE8uIFNJR0EgTEEgRElSRUNUUklaIERFIExBIFJFU09MVUNJw5NOIDAyMyBERSAyMDE1LCBQT1IgTEEgQ1VBTCBTRSBFU1RBQkxFQ0UgRUwgUFJPQ0VESU1JRU5UTyBQQVJBIExBIFBVQkxJQ0FDScOTTiBERSBURVNJUyBERSBNQUVTVFLDjUEgWSBET0NUT1JBRE8gREUgTE9TIEVTVFVESUFOVEVTIERFIExBIFVOSVZFUlNJREFEIE5BQ0lPTkFMIERFIENPTE9NQklBIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU4sIEVYUEVESURBIFBPUiBMQSBTRUNSRVRBUsONQSBHRU5FUkFMLgoqTEEgVEVTSVMgQSBQVUJMSUNBUiBERUJFIFNFUiBMQSBWRVJTScOTTiBGSU5BTCBBUFJPQkFEQS4KUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igc3UgcHJvcGlvIGF1dG9yOiBBbCBhdXRvYXJjaGl2YXIgZXN0ZSBncnVwbyBkZSBhcmNoaXZvcyBkaWdpdGFsZXMgeSBzdXMgbWV0YWRhdG9zLCBZbyBnYXJhbnRpem8gYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVTiBlbCBkZXJlY2hvIGEgYWxtYWNlbmFybG9zIHkgbWFudGVuZXJsb3MgZGlzcG9uaWJsZXMgZW4gbMOtbmVhIGRlIG1hbmVyYSBncmF0dWl0YS4gRGVjbGFybyBxdWUgZGljaG8gbWF0ZXJpYWwgZXMgZGUgbWkgcHJvcGllZGFkIGludGVsZWN0dWFsIHkgcXVlIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgVU4gbm8gYXN1bWUgbmluZ3VuYSByZXNwb25zYWJpbGlkYWQgc2kgaGF5IGFsZ3VuYSB2aW9sYWNpw7NuIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGFsIGRpc3RyaWJ1aXIgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuIChTZSByZWNvbWllbmRhIGEgdG9kb3MgbG9zIGF1dG9yZXMgYSBpbmRpY2FyIHN1cyBkZXJlY2hvcyBkZSBhdXRvciBlbiBsYSBww6FnaW5hIGRlIHTDrXR1bG8gZGUgc3UgZG9jdW1lbnRvLikgRGUgbGEgbWlzbWEgbWFuZXJhLCBhY2VwdG8gbG9zIHTDqXJtaW5vcyBkZSBsYSBzaWd1aWVudGUgbGljZW5jaWE6IExvcyBhdXRvcmVzIG8gdGl0dWxhcmVzIGRlbCBkZXJlY2hvIGRlIGF1dG9yIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gY29uZmllcmVuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgdW5hIGxpY2VuY2lhIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBzZSBpbnRlZ3JhIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwsIHF1ZSBzZSBhanVzdGEgYSBsYXMgc2lndWllbnRlcyBjYXJhY3RlcsOtc3RpY2FzOiBhKSBFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWUgZW4gZWwgcmVwb3NpdG9yaW8sIHF1ZSBzZXLDoW4gcHJvcnJvZ2FibGVzIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gcGF0cmltb25pYWwgZGVsIGF1dG9yLiBFbCBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgbGljZW5jaWEgc29saWNpdMOhbmRvbG8gYSBsYSBVbml2ZXJzaWRhZC4gYikgTG9zIGF1dG9yZXMgYXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBwdWJsaWNhciBsYSBvYnJhIGVuIGVsIGZvcm1hdG8gcXVlIGVsIHJlcG9zaXRvcmlvIGxvIHJlcXVpZXJhIChpbXByZXNvLCBkaWdpdGFsLCBlbGVjdHLDs25pY28gbyBjdWFscXVpZXIgb3RybyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSB5IGNvbm9jZW4gcXVlIGRhZG8gcXVlIHNlIHB1YmxpY2EgZW4gSW50ZXJuZXQgcG9yIGVzdGUgaGVjaG8gY2lyY3VsYSBjb24gdW4gYWxjYW5jZSBtdW5kaWFsLiBjKSBMb3MgYXV0b3JlcyBhY2VwdGFuIHF1ZSBsYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIHJlbnVuY2lhbiBhIHJlY2liaXIgZW1vbHVtZW50byBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgQ3JlYXRpdmUgQ29tbW9ucyBjb24gcXVlIHNlIHB1YmxpY2EuIGQpIExvcyBhdXRvcmVzIG1hbmlmaWVzdGFuIHF1ZSBzZSB0cmF0YSBkZSB1bmEgb2JyYSBvcmlnaW5hbCBzb2JyZSBsYSBxdWUgdGllbmVuIGxvcyBkZXJlY2hvcyBxdWUgYXV0b3JpemFuIHkgcXVlIHNvbiBlbGxvcyBxdWllbmVzIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uIGUpIExvcyBhdXRvcmVzIGF1dG9yaXphbiBhIGxhIFVuaXZlcnNpZGFkIHBhcmEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyDDrW5kaWNlcyB5IGJ1c2NhZG9yZXMgcXVlIGVzdGltZW4gbmVjZXNhcmlvcyBwYXJhIHByb21vdmVyIHN1IGRpZnVzacOzbi4gZikgTG9zIGF1dG9yZXMgYWNlcHRhbiBxdWUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcHVlZGEgY29udmVydGlyIGVsIGRvY3VtZW50byBhIGN1YWxxdWllciBtZWRpbyBvIGZvcm1hdG8gcGFyYSBwcm9ww7NzaXRvcyBkZSBwcmVzZXJ2YWNpw7NuIGRpZ2l0YWwuIFNJIEVMIERPQ1VNRU5UTyBTRSBCQVNBIEVOIFVOIFRSQUJBSk8gUVVFIEhBIFNJRE8gUEFUUk9DSU5BRE8gTyBBUE9ZQURPIFBPUiBVTkEgQUdFTkNJQSBPIFVOQSBPUkdBTklaQUNJw5NOLCBDT04gRVhDRVBDScOTTiBERSBMQSBVTklWRVJTSURBRCBOQUNJT05BTCBERSBDT0xPTUJJQSwgTE9TIEFVVE9SRVMgR0FSQU5USVpBTiBRVUUgU0UgSEEgQ1VNUExJRE8gQ09OIExPUyBERVJFQ0hPUyBZIE9CTElHQUNJT05FUyBSRVFVRVJJRE9TIFBPUiBFTCBSRVNQRUNUSVZPIENPTlRSQVRPIE8gQUNVRVJETy4KUGFyYSB0cmFiYWpvcyBkZXBvc2l0YWRvcyBwb3Igb3RyYXMgcGVyc29uYXMgZGlzdGludGFzIGEgc3UgYXV0b3I6IERlY2xhcm8gcXVlIGVsIGdydXBvIGRlIGFyY2hpdm9zIGRpZ2l0YWxlcyB5IG1ldGFkYXRvcyBhc29jaWFkb3MgcXVlIGVzdG95IGFyY2hpdmFuZG8gZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBVTikgZXMgZGUgZG9taW5pbyBww7pibGljby4gU2kgbm8gZnVlc2UgZWwgY2FzbywgYWNlcHRvIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHBvciBjdWFscXVpZXIgaW5mcmFjY2nDs24gZGUgZGVyZWNob3MgZGUgYXV0b3IgcXVlIGNvbmxsZXZlIGxhIGRpc3RyaWJ1Y2nDs24gZGUgZXN0b3MgYXJjaGl2b3MgeSBtZXRhZGF0b3MuCkFsIGhhY2VyIGNsaWMgZW4gZWwgc2lndWllbnRlIGJvdMOzbiwgdXN0ZWQgaW5kaWNhIHF1ZSBlc3TDoSBkZSBhY3VlcmRvIGNvbiBlc3RvcyB0w6lybWlub3MuCgpVTklWRVJTSURBRCBOQUNJT05BTCBERSBDT0xPTUJJQSAtIMOabHRpbWEgbW9kaWZpY2FjacOzbiAyNy8yMC8yMDIwCg==