1. Introducción
DevOps representa una respuesta a la realidad del trabajo descoordinado de las áreas de desarrollo de software y operaciones, y ha permitido la articulación de un conjunto de prácticas en la industria de software de aquella época (Debois, 2008). En particular, la práctica de integración continua es considerada como un factor crítico para su adopción (Mullaguru, 2015) y tiene como uno de sus pilares a las pruebas automatizadas (Virmani, 2015).
El desarrollo de software, bajo el enfoque de DevOps se basa en cuatro dimensiones (Lwakatare et al., 2015): colaboración, automatización, medición y monitoreo. Además, extiende las prácticas de los métodos agiles, distribuyéndolas en 3 fases (Ebert et al., 2016): fase de construcción, en el que también se involucra las prácticas de integración continua; fase de despliegue, en el que se involucra mucho a gestión de la configuración; y fase de operación, donde se involucran actividades de monitoreo y registros de bitácora (logs).
La aplicación de DevOps ha permitido que tanto los equipos de desarrollo y operación colaboren en el trabajo, considerando tanto los aspectos de software (Soni, 2015) y negocio (Stillwell & Coutinho, 2015); siendo un logro relevante, la reducción del tiempo de lanzamiento del producto (Ebert et al., 2016). Asimismo, a medida que DevOps se interioriza en el equipo de desarrollo, presenta desafíos que los equipos deben enfrentar en la práctica (Senapathi et al., 2018). A pesar de ello, sus beneficios y ventajas superan los desafíos, incluso los de la transformación digital (Al-Zahrani & Fakieh, 2020), por lo que se ha convertido en un referente en el desarrollo de software (Mishra & Otaiwi, 2020).
En relación a la investigación sobre DevOps, se han realizado múltiples estudios primarios (Erich et al., 2014), (Rütz, 2019), secundarios (Guerrero et al., 2020) e incluso terciarios sobre DevOps (Arvanitou et al., 2022). Entre estos últimos, se puede resaltar de uno que intentó encontrar una definición más precisa del término “DevOps” (Arvanitou et al., 2022), y otro sobre las prácticas de DevOps en las empresas de software (Strieker & Volchkov Supervisor Martin Svensson Karlskrona, 2022), entre otros. En particular, en nuestro trabajo presentado en (Pando et al., 2024) se responde sobre aspectos relacionados a la adopción de DevOps.
En este estudio terciario, extendemos nuestro artículo previo (Pando et al., 2024), actualizando las respuestas a las preguntas de investigación sobre la adopción de DevOps. Mantenemos el uso de la guía de (Petersen et al., 2015) como si fuera un mapeo sistemático de la literatura (MSL) y cuyo objeto de estudio son los estudios secundarios adicionales. El resto de este artículo está organizado de la siguiente manera: en la Sección 2, el trabajo realizado en DevOps se presenta como estudios terciarios; en la Sección 3 se presenta el protocolo de ejecución para facilitar la replicabilidad del estudio; en la Sección 4 se presentan los resultados y se responden las preguntas de investigación planteadas; y, en la Sección 5, se presentan las conclusiones.
2. Trabajos relacionados
En la literatura científica, se han publicado una gran diversidad de artículos sobre adopción de DevOps en distintos contextos. Así, por ejemplo, se tienen: (i) estudios primarios como experiencias de adopción, beneficios de DevOps, problemas y logros de las organizaciones (Ghantous & Gill, 2017), (Riungu-Kalliosaari et al., 2016); (ii) estudios secundarios variados como prácticas, beneficios, calidad, desafíos (Guerrero et al., 2020), (Senapathi et al., 2018), (Mishra & Otaiwi, 2020); y finalmente, en general, (iii) pocos estudios terciarios como aplicación e investigación (Arvanitou et al., 2022), dependabilidad en DevOps (Andrade et al., 2023) y adopción de DevOps (Pando et al., 2024).
3. Diseño del estudio terciario
Este estudio, siguiendo el trabajo previo (Pando et al., 2024), se basa en el protocolo de (Petersen et al., 2015) estudio de mapeo sistemático (SMS) para ingeniería de software. Se mantuvo las preguntas de investigación que en el estudio previo. De la misma manera, se mantuvo la cadena de búsqueda en las seis bases de datos: Scopus, IEEE, ACM, Science Direct, Web of Science/Clarivate y Wiley. El diseño del estudio terciario se presenta a continuación.
3.1. Preguntas de investigación
Las preguntas de investigación, se mantuvieron del estudio previo (Pando et al., 2024) y que elaboró tomando como referencia (Arvanitou et al., 2022), (Neumann, 2022), (Pando & Dávila, 2022). Dichas preguntas de investigación son:
RQ1. ¿Cuál es la evolución de los estudios secundarios sobre DevOps?
RQ2. ¿Cuáles fueron los principales temas abordados en la adopción de DevOps?
RQ3. ¿Cuáles son las prácticas utilizadas para adoptar DevOps?
RQ4. ¿Cuáles son los marcos o enfoques utilizados al adoptar DevOps?
RQ5. ¿Cuáles son las herramientas utilizadas en la adopción de DevOps?
RQ6. ¿Cuál es el interés de los directivos de la empresa y de los equipos de desarrollo y operación en adoptar DevOps?
RQ7. ¿Cuáles son los métodos ágiles que se utilizan al adoptar DevOps?
RQ8. ¿Se menciona que DevOps ofrece una ventaja competitiva?
Para la categorización de los tipos de investigación en RQ1, utilizamos MSL de mapeo sistemático de la literatura y RSL de revisión sistemática de la literatura. Lo mismo se hizo con otras preguntas de investigación que requieren un categorizador.
3.2. Cadena de búsqueda
La cadena de búsqueda se creó utilizando la estrategia PI (Petersen et al., 2015) y tal como se presentó en (Pando et al., 2024). Las palabras clave para la cadena se eligieron a partir de una revisión inicial de los antecedentes del tema. La cadena de búsqueda fue:
DevOps AND ("review of studies" OR "structured review" OR "systematic review" OR "literature review" OR "literature analysis" OR "in-depth survey" OR "literature survey" OR "meta-analysis" OR "past studies" OR "subject matter expert" OR "analysis of research" OR "empirical body of knowledge" OR "systematic mapping" OR "overview of existing research" OR "body of published research" OR "study aggregation" OR "study synthesis" OR "critical review" OR "mapping study" OR "mapping literature").
Esta cadena tuvo que adaptarse a la sintaxis y restricciones de cada base de datos.
3.3. Criterios y proceso de selección
Para seleccionar los artículos secundarios se establecieron los siguientes criterios de inclusión y exclusión.
CI1. El título y resumen del artículo están relacionados con el tema.
CI2. El estudio está escrito en inglés.
CI3. El estudio es una investigación secundaria de la literatura.
CE1. El artículo está duplicado.
CE2. El contenido completo del artículo no está disponible.
Para este estudio, se estableció utilizar los siguientes criterios de calidad (CC) (Kitchenham et al., 2010):
CC1. ¿Están descritos y son apropiados los criterios de inclusión y exclusión de la revisión?
CC2. ¿Es probable que la búsqueda bibliográfica haya cubierto todos los estudios relevantes?
CC3. ¿Evaluaron los revisores la calidad/validez de los estudios incluidos?
CC4. ¿Se describieron adecuadamente los datos/estudios básicos?
El proceso de selección se definió en tres etapas. La primera etapa fue la extracción de metadatos de bases de datos digitales. La segunda etapa fue la revisión de resúmenes, donde se aplicaron CI1, CI2, CI3 y CE1. La tercera etapa fue la revisión rápida de contenidos, donde se aplicaron CI2, CI3 y CE2. Finalmente, se aplicó la evaluación de la calidad (ver Apéndice A).
3.4. Amenazas a la validez
El análisis de las amenazas a la validez se realiza tomando como base los lineamientos de (Ampatzoglou et al., 2019) que consideran la validez de la selección del estudio, los datos y la investigación. Además, se mantiene lo señalado en (Pando et al., 2024).
Validez de la selección del estudio. Se mantuvo las preguntas de investigación planteadas, las mismas que se obtuvieron revisando un grupo de 15 estudios secundarios y terciarios relevantes. Asimismo, se mantuvo las palabras claves y los criterios de inclusión y exclusión establecidos en su oportunidad.
Validez de los datos. Se mantuvo las seis bases de datos relevantes para la ingeniería de software y se mantiene el hecho que pueden existir otras fuentes con estudios relevantes para este estudio terciario. El esquema de categorización basado en las preguntas de investigación se mantuvo durante esta segunda iteración del estudio terciario. Durante la categorización, uno de los autores revisó aleatoriamente para confirmar la categorización.
Validez de la investigación. Los tres autores están familiarizados con los temas de investigación en ingeniería de software y dos autores tienen experiencia en estudios secundarios. El estudio realizado es replicable considerando que se reportan todos los pasos seguidos para llegar a los resultados en el artículo previo (Pando et al., 2024). Además, la lista de estudios secundarios seleccionados se recoge en el Apéndice B. Los resultados pueden generalizarse, considerando lo indicado en el ítem anterior, ya que los estudios secundarios se cubren sin distinguir zona geográfica ni espectro temporal; esto último es considerando que los nuevos estudios se han adicionado al estudio anterior.
4. Resultados
El proceso de selección se realizó en base a la cadena de búsqueda aplicada a las bases de datos consideradas.
En la primera etapa, acumulando los resultados anteriores (Pando et al., 2024) y actuales, hasta el 28 de Feb de 2024, se identificaron 346 artículos: ACM (18), WoS (62), IEEE (38), ScienceDirect (21), Scopus (197) y Wiley (10). Luego de las etapas 2 y 3, se seleccionaron 102 estudios como estudios secundarios seleccionados (SSS). Para realizar la selección se utilizó la plataforma Parsifal (Freitas, 2021). La lista de los estudios secundarios seleccionados (ESS) se pueden ver en el Apéndice B. Las respuestas a las preguntas de investigación se presentan a continuación.
4.1. RQ1. ¿Cuál es la evolución de los estudios secundarios sobre DevOps?
Los estudios secundarios seleccionados, como se presenta en la Figura 1.a, se publican desde el 2014 y han mantenido un crecimiento continuo hasta llegar a un primer pico en el 2020 con 22 estudios secundarios, y un segundo pico el 2022 con 23 estudios secundarios. Esta situación evidencia que es un dominio en donde los investigadores han estado muy activos en el último quinquenio del 2019-2023 que tiene una media de 16 artículos por año, mientras que en 2014-2018 (quinquenio anterior) 3.8 artículos por año. Sin embargo, se nota una caída entre 2022 y 2023; y no se puede concluir aún para el 2024.
Adicionalmente, en lo que respecta a las publicaciones año por año de nuestro estudio, se nota que tiene el mismo patrón que el de prácticas ágiles presentado en (Neumann, 2022), lo cual tiene cierto sentido pues DevOps también es del mundo ágil.
Además, algunos detalles interesantes como en la Figura 1.b donde se observa que para el 2023, el número de Mapeos (9) es mayor que el de Revisiones (6), algo que se mantiene a la fecha en el 2024. De la Figura 1.c se obtiene que el 73% de publicaciones se concentran en Europa (44.1%) y Asia (29.4%). Finalmente, de la Figura 1.d se observa que el 67.4% son Revisiones y el resto (32.6%) Mapeos.
4.2. RQ2. ¿Cuáles fueron los principales temas abordados en la adopción de DevOps?
Al momento de consolidar los resultados, se obtuvo que los temas principales son: (i) implementación de DevOps (53), automatización (12), desafíos (12), factores críticos de éxito (8) y DevSecOps (8); los que en conjunto representan 91.1% (93/102) de los ESS. En el estudio previo (Pando et al., 2024), se habían identificado, además otros temas menos relevantes como: capacidades y prácticas, requisitos y colaboración, microservicios, calidad y despliegue, aprendizaje de maquina e internet de las cosas, entre otros.
Se observa que, en la Figura 2b, 53 ESS se centraron en la implementación de DevOps, es decir, en encontrar mejores prácticas y recomendaciones para lograr una implementación exitosa de DevOps. Los otros dos temas de interés son la automatización y lo desafíos en DevOps; que en el caso de la automatización es uno de los pilares que favorecer las prácticas de integración y despliegue continúo.
Además, reforzando lo identificado en el estudio previo (Pando et al., 2024), se tiene que existen pocos estudios secundarios que se enfoquen en buscar interacción con otras tecnologías o temas como IoT, seguridad o calidad, entre otros. Esto representa una oportunidad para incrementar la investigación sobre esos temas. Asimismo, también conviene resaltar que es necesario hacer investigaciones en la industria de software orientadas a la adopción de DevOps en el contexto de pequeñas empresas.
4.3. RQ3. ¿Cuáles son las prácticas utilizadas para adoptar DevOps?
A partir de los ESS, se puede observar en la Figura 3, que las prácticas más estudiadas son las de integración continua (97), entrega continua (78), monitoreo continuo (76), automatización de pruebas (63), y despliegue continuo (58). Se debe tener claro que más de una práctica puede ser mencionada en los ESS, por lo que la suma es mayor que 102 ESS.
Para (Arvanitou et al., 2022), las prácticas más frecuentes son la implementación continua, las pruebas y el monitoreo de software; que son similares a las prácticas encontradas en este estudio. Además, (Arvanitou et al., 2022) destaca que el uso de estas prácticas es un requisito innegociable a la hora de adoptar DevOps. El estudio de (Neumann, 2022), reporta que las pruebas, la integración continua, las entregas frecuentes y la retroalimentación continua como las prácticas más utilizadas. También señala que estas prácticas están relacionadas con aspectos técnicos y de colaboración. Estos resultados son similares a los encontrados en este estudio.
4.4. RQ4. ¿Cuáles son los marcos o enfoques utilizados al adoptar DevOps?
En el estudio previo (Pando et al., 2024), se presentaron varios marcos de trabajo, de los cuales, se han priorizado los más reportados. Entre ellos, según la Figura 4, se tiene a: el enfoque basado en la automatización (25), CAMS/CALMS (19), Modelo de Madurez DevOps (15), ITIL (12), SAFe (7), y el Fuzzy (5), los cuales representan el 81% (83/102) del total de ESS.
En la Figura 4, se puede observar el enfoque basado en automatización es uno de los marcos más reportados regularmente en el tiempo, teniendo un promedio de 4 artículos por año, en el último quinquenio. Mientras que CAMS/CALMS ha tenido un pico de 9 artículos, mientras que el promedio es de casi 1 artículo por mes. Por otro lado, el modelo de madurez de DevOps ha ido creciendo de manera sostenida, sin embargo, en el 2023 no hay resultados que lo refieran. En el caso de CALMS, que significa Cultura, Automatización, Liderazgo, Métricas y Compartir, aparece como un enfoque a la hora de adoptar DevOps. Este enfoque también menciona la automatización, pero agrega otros aspectos que son importantes para la adopción de DevOps.
En este estudio, los resultados muestran que existen enfoques y marcos conocidos en ingeniería de software que se están aplicando a DevOps. Sin embargo, aún no se ha definido un método para su adopción y desempeño en DevOps, lo cual concuerda con (Arvanitou et al., 2022), quien señala que no existe una metodología ampliamente establecida en DevOps.
4.5. RQ5. ¿Cuáles son las herramientas utilizadas en la adopción de DevOps?
Según la Figura 5, existen varias herramientas que se han utilizado al adoptar DevOps. Debido a que DevOps es un enfoque basado en la automatización, en 83 estudios se menciona la herramienta Jenkins, que permite automatizar muchas tareas rutinarias. Un total de 69 estudios secundarios seleccionados mencionan a GitLab como herramienta para el versionado del código fuente y alternativamente a Github con 31. En relación a la infraestructura, 78 estudios mencionan a Docker y 62 a Kubernetes. Además, para la gestión de infraestructura, Ansible se menciona en 73 estudios, Puppet en 53 estudios y Chef en 47 estudios.
Algunos estudios secundarios informan sobre otras herramientas como Jira, Azure DevOps o Nagios que respaldan la adopción de DevOps. Según (Guerrero et al., 2020), casi la mitad de los artículos encontrados mencionan que las herramientas tecnológicas son las que apoyan las prácticas a la hora de adoptar DevOps. Por otro lado, los resultados de este estudio, señalan que Jenkins, Docker, GitLab son algunas de las herramientas más reportadas que concuerdan con lo señalado por (Guerrero et al., 2020). Al igual que (Guerrero et al., 2020)y (Arvanitou et al., 2022), estas herramientas se encuentran principalmente en actividades continuas de integración e implementación, así como en monitoreo. Para (Arvanitou et al., 2022), la popularidad de estas herramientas podría generar oportunidades para desarrollar capacitación en habilidades para ingresar a la industria DevOps.
4.6. RQ6. ¿Cuál es el interés de los directivos de la empresa y de los equipos de desarrollo y operación en adoptar DevOps?
Se realizó un análisis narrativo, teniendo en cuenta las definiciones de (Cruzes et al., 2016), para sintetizar la relación con el interés de los directivos de la empresa, frases como "Las organizaciones eligieron adoptar DevOps", "La organización abrazó gradualmente la adopción de DevOps" y "La adopción de DevOps en la organización fue exitoso". Los resultados muestran que 98 (96%) estudios indican que las empresas están interesadas en adoptar DevOps. En el otro 4% no se pudo determinar si hay interés o no en adoptar DevOps.
En relación al interés de los equipos, se utilizaron frases con palabras como “interés”, “aceptación” o “aprobación” de los desarrolladores o equipos de desarrollo para adoptar DevOps. Los resultados muestran que se puede observar que 93 (91%) estudios indican que los equipos de desarrollo y operación están interesados en adoptar DevOps. En el otro 9% no se pudo determinar si hay interés o no en adoptar DevOps.
4.7. RQ7. ¿Cuáles son los métodos ágiles que se utilizan al adoptar DevOps?
Considerando que DevOps se basa en principios ágiles. resulta entendible que varios métodos ágiles se puedan adaptar a ellas. En particular en los ESS se reportan Scrum (66), Kanban (61), XP (43), Lean (34), DSSM (5), Crystal (2), con 1 DSSM, AUP y FDD; y no precisa 36 estudios. Estos resultados muestran que Scrum y Kanban son los más reportados, y que adoptar DevOps no sería un desafío cuando los equipos ya trabajan con métodos y técnicas que se basan en principios ágiles. En la Figura 6, se aprecia que las cuatro metodologías presentan un comportamiento similar, en particular Scrum y Kanban reportan las mismas cantidades de publicaciones hasta antes del 2021, por lo que en la Figura 6, da la impresión de ser sólo una.
Para (Hoda et al., 2017), Scrum es uno de los métodos más reportados en los artículos revisados en su estudio secundario, lo que coincide con los resultados de este estudio. Además, en este estudio, Kanban, XP y Lean se agregan a la lista de métodos utilizados cuando se trata de adoptar DevOps.
4.8. RQ8. ¿Se menciona DevOps como una ventaja competitiva?
Para responder a esta pregunta se busco frases como “el software hecho con DevOps, adquiere superioridad en el mercado”, “las empresas que adoptan DevOps reciben méritos y están mejor posicionadas en el mercado”. Los resultados revelan que 97 (95%) estudios mencionan a DevOps como una ventaja en la organización, pues son múltiples los beneficios que se adquieren cuando se implementa DevOps. El otro 5% de los artículos revisados no menciona si la adopción de DevOps le da a una organización una ventaja competitiva o no.
De los resultados de los estudios secundarios se puede establecer que existe una ventaja competitiva. Sin embargo, por la naturaleza de los estudios secundarios, es recomendable diseñar estudios, como encuestas, que establezcan tales ventajas desde la perspectiva de la gestión.
5. Conclusiones
En este artículo se presenta la extensión de un estudio terciario de la literatura sobre adopción de DevOps. El estudio se basa en la guía sugerida por (Petersen et al., 2015) teniendo como objetos de análisis a estudios secundarios. En el proceso de selección, se encontraron 346 estudios, de los cuales finalmente se seleccionaron 102 siguiendo el proceso establecido. A partir de dichos estudios secundarios se respondieron las ocho preguntas de investigación.
En el último quinquenio, la publicación de estudios secundarios se incrementó en gran medida, pasando de una media 3.8 artículos por año en el quinquenio 2014-2018 a una media de 16.0 artículos por año en el quinquenio 2019-2023. Lo que deja en evidencia el enorme interés que ha provocado hasta la actualidad esta temática.
Los estudios secundarios han presentado dificultades para encontrar mejores prácticas o recomendaciones para la adopción de DevOps. Entre las prácticas reportadas con frecuencia se encuentran la integración y entrega continua, el monitoreo continuo y la automatización de pruebas. Estos aspectos técnicos de DevOps se han estudiado más a fondo porque representan aspectos fundamentales de la parte técnica.
Para adoptar DevOps, los estudios revisados reportan un enfoque basado en la automatización, así como el marco CALMS y el modelo de madurez DevOps. Desde una perspectiva de proceso, la industria del software se beneficia de los dos últimos. CALMS refuerza la idea de que DevOps es una filosofía de trabajo que debe adoptarse teniendo en cuenta la cultura de los desarrolladores, y hablar de modelos de madurez es una señal de alineación con la estabilización de procesos y la mejora de la calidad asociada.
La mayoría de las herramientas reportadas son principalmente para infraestructura e integración y entrega continua. Los métodos ágiles reportados para la adopción de DevOps incluyen SCRUM, Kanban, XP y el enfoque Lean.
En cuanto a las personas, se establece que los equipos de desarrollo y operación tienen buena disposición para la adopción de DevOps en sus organizaciones. Respecto a las organizaciones, se establece que sí reconocen que adoptar DevOps representa una ventaja para la organización.
Como trabajo futuro, se ha previsto evaluar a un conjunto de empresas de software muy pequeñas, en la región Oriental del Perú, respecto a los hallazgos de este artículo e iniciar procesos de mejora de ser necesario para ese conjunto de organizaciones. Este esfuerzo servirá de marco para estudiar los distintos factores de adopción de DevOps en el conjunto descrito.