Factores asociados a prácticas de desarrollo y pruebas de software en Costa Rica: Un estudio exploratorio Christian Quesada-López, Marcelo Jenkins Universidad de Costa Rica, San Pedro, Costa Rica {cristian.quesadalopez, marcelo.jenkins}@ucr.ac.cr Resumen. La industria de desarrollo de software costarricense se desenvuelve en entornos cambiantes y competitivos. Para enfrentar los continuos desafíos adop- tan distintas prácticas ingenieriles que les permitan cumplir las metas de calidad establecidas e incrementar la productividad. Este estudio realiza un análisis cru- zado de factores entre las prácticas de ingeniería de software utilizadas en la in- dustria versus los factores demográficos de los profesionales. Para esto, explora- mos las relaciones y patrones identificados para las prácticas de desarrollo y prue- bas de software. Nuestro análisis considera las respuestas de 135 profesionales que participaron en una encuesta basada en el cuerpo de conocimiento en la in- geniería del software (SWEBOK). En nuestra investigación encontramos que no existe una asociación significativa entre el tamaño de la organización y las meto- dologías de desarrollo. Además, un conjunto de asociaciones identificadas con distintos factores de contexto son discutidas. Los resultados sugieren que las or- ganizaciones y sus equipos de desarrollo adaptan las prácticas ingenieriles en sus procesos de acuerdo a las necesidades específicas y el contexto de negocios en el que desarrollan sus proyectos. Se requieren estudios similares que analicen las tendencias de uso y adopción de las prácticas de la ingeniería del software en distintos contextos. Palabras clave. Análisis cruzado de factores, prácticas en la industria, proceso de desarrollo y pruebas, Costa Rica, encuesta, ingeniería de software. 1 Introducción En la actualidad existe una gran cantidad de prácticas ingenieriles que las organiza- ciones de desarrollo de software pueden adoptar para enfrentar los continuos desafíos a los que se enfrentan [1, 2]. Estas organizaciones se desenvuelven en entornos cam- biantes y competitivos [2] en los cuales deben cumplir metas de calidad establecidas e incrementar su productividad [3]. Para entender las prácticas y técnicas en la industria es necesario explorar los factores que afectan cuando los profesionales las utilizan, ade- más del nivel de éxito que estas les proveen [1]. El estudio de estos factores permite un mejor entendimiento de cómo cada una de las prácticas se adaptan a los distintos am- bientes de operación. Por ejemplo, como los ingenieros de software adoptan distintos procesos de desarrollo de acuerdo a su contexto de negocio [4]. La caracterización y entendimiento de los factores asociados a las prácticas utilizadas en la industria puede ayudar a los profesionales e investigadores en el mejoramiento de los retos que enfrenta la ingeniería del software en la práctica [1]. El objetivo de este estudio es explorar los factores demográficos asociados a las prácticas de la ingeniería del software (SE) utilizadas en la industria. Para esto se realiza un análisis de las relaciones y patrones identificados entre las prácticas de desarrollo y pruebas de software y los distintos factores demográficos de los profesionales. Asi- mismo, nuestro estudio analiza la asociación entre estas prácticas ingenieriles. El aná- lisis se realiza bajo un enfoque exploratorio [5]. Los datos para este estudio incluyen las respuestas de 135 profesionales de la ingeniería del software en Costa Rica que participaron en una encuesta [3] basada en el cuerpo de conocimiento en la ingeniería del software (SWEBOK) [6, 7]. En dicha encuesta se reportó el análisis individual de las prácticas de la ingeniería del software. El análisis realizado en este trabajo se basa en los estudios reportados en [1, 8] y compara algunas de las tendencias reportadas previamente en dichos estudios. La estructura de este artículo es la siguiente: la Sección 2 discute brevemente los trabajos relacionados, la Sección 3 describe el diseño del estudio, los resultados obte- nidos se presentan en la Sección 4. La Sección 5 resume los resultados y discute las lecciones aprendidas y finalmente, la Sección 6 presenta las conclusiones y el trabajo futuro. 2 Trabajo relacionado Múltiples estudios han realizado análisis de factores asociados a las prácticas de la ingeniería del software en la industria [1]. Blackburn et al. [9] analizan factores asocia- dos en la velocidad y productividad de los desarrolladores tales como las fases del ciclo de desarrollo y el tamaño de los equipos. Herbsleb et al. [10] analizan los factores rela- cionados entre los retrasos en las solicitudes de modificaciones y el número de involu- crados, la magnitud de los cambios y su tamaño y severidad. Jiang et al. [11] analizan 15 factores de desempeño en los proyectos y su relación con la madurez de los procesos de desarrollo. Los autores analizan los datos recolectados de ingenieros de software y reportan las actividades con mayor influencia en la madurez de los procesos. Chow et al. [12] realizan un estudio con datos de 109 proyectos ágiles para identificar los facto- res asociados al éxito percibido en proyectos de desarrollo ágiles. Los resultados sopor- tan 10 hipótesis que determinan dichos factores de éxito. Dagenais et al. [13] analizan las características de los proyectos con los cuales se enfrentan los desarrolladores al incorporarse en un nuevo proyecto. Los autores anali- zan los datos de 18 profesionales e identifican las principales características de un nuevo proyecto junto con los aspectos clave de orientación para finalmente determinar los principales aspectos que impactan su integración a los proyectos. Garousi et al. [1] analizan las asociaciones de múltiples factores demográficos en el uso de las prácticas de ingeniería del software en la industria. Los autores analizan las respuestas de 202 participantes e identifican relaciones entre factores de la organización, tipos de proyec- tos, perfil de los participantes y las prácticas en la industria tales como la relación entre el tamaño de las organizaciones y las metodologías de desarrollo. Kuhrmann et al. [2] realizan un estudio enfocado metodologías de desarrollo de software híbridas y analizan factores de contexto asociados al uso y combinación de las distintas metodologías. Los autores examinan las respuestas de 69 participantes y determinan que no existe relación entre distintos factores de contexto y las metodologías de desarrollo híbridas utilizadas. Akdur et al. [14] analizan las prácticas de modelado versus factores demográficos en la industria de software embebido. Los autores recolectaron datos de 627 participantes y determinaron las principales relaciones con las prácticas de modelado. Nuestro estudio se basa en el reportado en [1] y se limita al análisis de un subcon- junto de las prácticas de ingeniería versus factores demográficos que agregan evidencia para la caracterización de las prácticas de desarrollo y pruebas en la industria. 3 Descripción del estudio Este estudio explora las relaciones y patrones identificados entre las prácticas de la in- geniería del software utilizadas en la industria y distintos factores demográficos de los profesionales. El estudio es una replicación parcial externa, sin interacción con los in- vestigadores originales, en la industria de software de Costa Rica que se basa en el estudio publicado en [1] y considera las recomendaciones detalladas en [2]. El estudio incluye el análisis de factores para los datos recolectados en la encuesta publicada en [3] y su comparación con estudios previos [1, 2]. El objetivo del estudio es explorar los factores asociados a las prácticas de desarrollo y pruebas de la ingeniería del software utilizadas en la industria de software costarri- cense. Con base en este objetivo, se definen las siguientes preguntas de investigación: RQ1. ¿Cuál es la relación entre las metodologías de desarrollo de software y los factores demográficos de los profesionales? RQ2. ¿Cuál es la relación entre las prácticas de pruebas del software y los factores demográficos de los profesionales? Las preguntas de investigación se basan en un sub conjunto de las presentadas en [1, 2] que investigan factores potenciales que pueden relacionarse entre factores demográfi- cos de los profesionales y las prácticas de la ingeniería del software. Las RQ’s se clasi- fican en la categoría de “Relación” <<¿Está el factor X relacionado con el factor Y?>> [15]. El Cuadro 1 muestra los factores demográficos recolectados en la encuesta y que son considerados para este estudio. El Cuadro2 detalla las relaciones estudiadas para cada una de las preguntas de investigación. El Cuadro 1 y Cuadro 2 representan las secciones de la encuesta realizada en [3] que son de interés para este estudio. Las prácticas de la ingeniería del software para las cuales se analiza su relación con factores demográficos se encuentran marcadas con (×). El detalle del estudio original que detalla el cuestionario se encuentra en el reporte técnico descrito en [3]. Diseño del instrumento de encuesta. Se diseñó un cuestionario electrónico basado en el instrumento propuesto en [1, 8] y la estructura del SWEBOK [6, 7]. Los datos para este estudio incluyen las respuestas de 135 profesionales de la ingeniería del software en Costa Rica que participaron en la encuesta reportada en [3]. Cuadro 1 Factores demográficos considerados en el estudio No. Per. Pregunta Esc. # No. Per. Pregunta Esc. # 1 PO Sector SM 18 5 PY Tipos SU 4 2 PO Tamaño SU 9 6 PY Tipo de cliente SU 4 3 PO Capital SM 3 7 PY Software desarrollado SM 5 4 PO Unidad de proyectos YN Perfil: PO = Organización, PY = Proyectos. Escala: SM= Selección múltiple, SU= Selección única, YN=Sí/No. Procedimiento de recolección de datos. El cuestionario electrónico fue puesto en línea mediante la herramienta LimeSurvey durante 4 meses, de julio a octubre del 2016. Para la selección de los participantes se utilizó un muestreo no probabilístico, donde los par- ticipantes fueron contactados por medios electrónicos y participaron de manera volun- taria y anónima. El muestreo por conveniencia [16] es uno de los más utilizados en el área de la ingeniería del software. Todos los participantes fueron invitados por medio de distintas instituciones relacionadas con la industria de software en Costa Rica. Procedimiento de análisis. Se utilizaron distintos métodos para responder las pregun- tas de investigación. Para todas las preguntas se utilizaron estadísticas descriptivas y se aplicaron pruebas de hipótesis. Se realizaron las pruebas estadísticas Pearson’s 𝜒2 (𝑝 ≤ 0.05) para analizar la asociación entre variables que se encuentran en escala categórica y Spearman’s rank correlation (𝑝 ≤ 0.05) para analizar la correlación entre variables con escala de intervalo y ordinal. Nuestras pruebas estadísticas fueron realizadas de acuerdo con las recomendaciones presentadas en [1, 2]. Amenazas a la validez. Las limitaciones en nuestro estudio son las comúnmente re- portadas en estudios de encuesta en el área de la ingeniería de software [1, 2, 3, 8]. Validez de la conclusión. Para cada pregunta de investigación se realizó un procesa- miento de datos estadístico y trazable a través de la información analizada. Cuando se ejecutan las pruebas de hipótesis, el estudio está sujeto al problema del multiple testing. En nuestro estudio no se aplican correcciones de la taza de error para múltiples pruebas lo que constituye una amenaza a la validez. Los análisis estadísticos para cada uno de los factores se analizan por separado. Validez interna. El sesgo de la selección de los participantes es una amenaza por ser una muestra a conveniencia no aleatoria. Nuestros participantes fueron invitados por correo electrónico mediante las principales institu- ciones que tienen relación con el área de estudio. Se enviaron recordatorios periódicos a los participantes y se permitió guardar la encuesta para continuar su llenado poste- riormente. La participación del sector privado fue limitada (organizaciones pequeñas y transnacionales), al igual que la participación de ingenieros jóvenes. Durante el llenado del cuestionario, algunos participantes dejaron preguntas sin responder y otros abando- naron el cuestionario. Después del pre procesamiento de datos, se analizan las respues- tas de 135 profesionales, 48% de las respuestas originales. Los resultados que se repor- tan se basan en todas las respuestas incluyendo las respuestas parciales. Validez del constructo. Se utilizó el SWEBOK y se procesaron los datos de acuerdo a las recomen- daciones e instrumentos recomendados en [1, 8]. Los instrumentos fueron validados en el contexto de la industria de software costarricense, dado que este estudio utilizó los instrumentos validados en [1, 8] no se realizaron validaciones adicionales a las pregun- tas del cuestionario. La invitación indicó explícitamente que la participación era anó- nima y los resultados serían publicados de manera agregada sin afectar la privacidad. Validez externa. Se aplicaron diferentes estrategias para minimizar el sesgo de la po- blación. Sin embargo, los resultados solo pueden generalizarse a los datos demográficos que se describen. Los resultados no pueden generalizase sin realizar un análisis crítico que los evalúe de acuerdo con las características de los profesionales y de las organiza- ciones específicas. Los resultados deben ser interpretados con cautela dado el sesgo que puede introducirse por la muestra. Los resultados deben ser interpretados bajo esta con- dición y no pueden ser asociados a las organizaciones o a sus proyectos de software [8]. Cuadro 2 Asociaciones investigadas Factores demográficos No Grp Pregunta Esc # * 1 2 3 4 5 6 7 8 CV Metodologías de desarrollo SM 9 * × × × × × × × 9 PR Tipos y niveles L 5 * × 10 PR Automatización L 5 * × *=relación con ella misma. Prácticas: CV= Ciclo de vida y prácticas organizacionales, PR= Pruebas. Escala: SM= Selección múltiple, L=Likert. 4 Análisis de resultados 4.1 Características de los participantes del estudio En total, se analizan 135 respuestas completas. El Cuadro 3 muestra las frecuencias de los participantes por cada uno de los roles que desempeñan dentro de su organización. El Cuadro 4 muestra la distribución en que los profesionales se encuentran por sector. Los participantes indicaron sus roles con la posibilidad de realizar selección múltiple por lo que se totalizan todas las posiciones reportadas por cada uno de ellos. Del mismo modo, se totalizan los sectores por organización donde los participantes pueden estar activos en múltiples sectores. Con respecto a los tamaños de las organizaciones, los datos contienen respuestas que abarcan todos los rangos, pero principalmente de parti- cipantes que laboran en organizaciones grandes (64%). En el caso del rol del partici- pante, los administradores y/o líderes de proyectos representan un 11%, al igual que los desarrolladores, seguido por los ingenieros de requerimientos y profesionales relacio- nados con la docencia (10%). Finalmente, los arquitectos y diseñadores representan un 9%. En el caso de los sectores representados, los participantes se encuentran principal- mente en organizaciones de gobierno y sector público (29%), seguido por el sector banca y finanzas y educación superior (14%) y el sector de servicios de TI (11%). 4.2 Metodologías de desarrollo de software versus factores demográficos La RQ1 busca determinar las asociaciones entre el uso de las distintas metodologías de desarrollo de software y los factores demográficos de los profesionales y sus organiza- ciones. Para esto se plantean un conjunto de hipótesis que se analizan para determinar si existen estas relaciones. Para realizar las pruebas se utilizan las categorías de meto- dologías de desarrollo: tradicionales (que incluye cascada, prototipos, incremental y espiral) y ágiles (agile o lean, extreme programming, scrum), posteriormente se realiza el análisis de cada una de las subcategorías para determinar si existen otras asociacio- nes. Cuadro 3. Roles de los participantes Tamaño Q % R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 1-5 6 4 - - - 2 - - - - - 2 2 3 2 - - 1 6-10 6 4 6 6 6 6 6 - - - - 6 6 - 6 - - - 11-20 4 3 2 1 1 - 2 - 1 - 1 1 1 2 - 1 1 1 21-30 3 2 2 2 2 2 - - - - 2 3 - 2 3 - - - 31-50 2 1 - - 1 - - - - - - 1 - - 1 1 - 1 51-100 8 6 3 5 1 1 3 2 - 3 1 2 - - 3 - - - 101-200 12 9 2 6 - 1 3 2 4 - 2 - 2 3 2 1 - - 201-500 7 5 - 1 1 1 2 - 2 - 2 1 1 3 5 1 - - 501+ 87 64 23 29 32 31 39 13 35 4 26 23 6 22 28 11 5 5 Total 135 100 38 50 44 44 55 17 42 7 34 39 18 35 50 15 6 8 % 8 10 9 9 11 3 8 1 7 8 4 7 10 3 1 2 R1: Analista, R2: Ingeniero de Req., R3: Arquitecto, R4: Diseñador, R5: Desarrollador, R6: Tester, R7: Ingeniero de software, R8: "QA lead", R9: Administrador de pry., R10: Líder de proyecto, R11: Gerente, R12: Soporte técnico, R13: Docente, R14: Investigador, R15: Vendedor, R16: Otro. Q: Cantidad. Cuadro 4. Participantes por sector de la organización Tamaño Q % S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 1-5 6 4 - 2 2 - - 1 - - 2 - 1 - - - - - - 6-10 6 4 - 6 6 - - - - - - - - - - - - - - 11-20 4 3 1 1 1 2 - - - 1 - - 2 1 1 1 1 - 1 21-30 3 2 2 - 2 - - - - 1 - - - - - - - - - 31-50 2 1 1 - - - - - - 2 - - - - - - - - - 51-100 8 6 5 6 6 4 - - - - - - - - - - - - - 101-200 12 9 - 1 1 8 - - - 2 - 2 2 - - 1 - - 1 201-500 7 5 - - - 4 - - 1 1 2 - - - - - - - - 501+ 87 64 6 1 7 51 3 32 3 25 6 3 2 1 1 - 2 2 3 Total 135 100 15 17 25 69 3 33 4 32 10 5 7 2 2 2 3 2 5 % 6 7 11 29 1 14 2 14 4 2 3 1 1 1 1 1 2 Q: Cantidad. S1: Desarrollo a la medida, S2: Paquetes, S3: Servicios TI, S4: Gobierno y sector público, S5: Manufactura o ingenie- ría, S6: Banca o finanzas, S7: Seguros, S8: Educación o Universidad, S9: Educación, S10: Salud, S11: Comercio, S12: Administra- ción y negocios, S13: No gubernamental, S14: Organismo internacional, S15: Telecomunicaciones, S16: Asociación, S17: Otro. Uso de varias metodologías en un mismo contexto. El análisis explora la combina- ción de uso de diferentes metodologías de desarrollo en un mismo contexto. Para esto utilizamos la prueba Pearson 𝜒2 (𝑝 ≤ 0.05) para cada par de diferentes metodologías de desarrollo. A continuación se listan los principales resultados: No se encuentra una asociación significativa entre las metodologías tradicionales y ágiles 𝜒2(1, 𝑁 = 135) = 2.208, 𝑝 = .137. Sin embargo, analizando las sub catego- rías se encuentra una asociación significativa entre cascada y prototipos 𝜒2(1, 𝑁 = 135) = 4.495, 𝑝 = .034 denotando que si una de las prácticas es usada (o no usada) es probable que la otra práctica sea usada (o no usada) también. Basado en la proporción del uso de cascada y prototipo (18/24)/(23/70), el uso de la metodología de prototipos es 2.3 veces más alto si las organizaciones usan cascada. Se encuentra una asociación entre espiral y prototipos 𝜒2(1, 𝑁 = 135) = 13.125, 𝑝 = .000 que indica que el uso de espiral influencia el uso de prototipos, sin embargo no se puede concluir ya que no se cumple con una de las suposiciones de la prueba. Se encuentra una asociación significativa entre scrum y el desarrollo incremental 𝜒2(1, 𝑁 = 135) = 7.834, 𝑝 = .005 donde el uso de la metodología incremental es 3.8 veces más alto si las organizaciones usan scrum (14/39)/ (7/75). Existe una asociación entre agile o lean y espiral 𝜒2(1, 𝑁 = 135) = 12.132, 𝑝 = .000 que indica que el uso de agile o lean influencia el uso de espiral, sin embargo no se puede concluir ya que no se cumple con una de las suposiciones de la prueba. Al igual que lo reportado en [1] se encuentran asociaciones entre agile o lean tanto con scrum 𝜒2(1, 𝑁 = 135) = 24.628, 𝑝 = .000 como extreme programming 𝜒2(1, 𝑁 = 135) = 3.506, 𝑝 = .061. El uso de extreme programming y scrum es de 4.6 [(4/39)/(2/90)] y 6.9 [(30/13)/(23/69)] veces más respectivamente si la organiza- ción utiliza las metodologías agile o lean. Tamaño de la organización. El análisis busca identificar si el uso de una metodología de desarrollo se relaciona con el tamaño de la organización para lo cual se utilizó la prueba Pearson 𝜒2 (𝑝 ≤ 0.05) donde los participantes votan si usan o no cada una de las metodologías de desarrollo. Para realizar las pruebas se utilizan las categorías de tamaño de organización: pequeña (1 a 50 empleados que incluye micro de 1 a 10 y pequeña de 11 a 50), mediana (51 a 200 empleados) y grande (201 o más empleados). Las agrupaciones por tamaño se realizan para cumplir con el mínimo 𝑁 requerido por la prueba estadística. A continuación se listan los principales resultados: Los resultados indican que no existe una asociación significativa entre el tamaño de la organización y las metodologías tradicionales 𝜒2(2, 𝑁 = 135) = 4.069, 𝑝 = .131. Esto es, la decisión de las organizaciones de utilizar las metodologías tradicio- nales no depende de su tamaño. No encontramos una asociación significativa entre el tamaño de la organización y las metodologías ágiles 𝜒2(2, 𝑁 = 135) = 1.604, 𝑝 = .448. Por cada una de las sub categorías de las organizaciones pequeñas, micro y pequeña, se obtienen similares resultados para ambos enfoques de desarrollo: tradicional 𝜒2(3, 𝑁 = 135) = 4.649, 𝑝 = .199 y ágiles 𝜒2(3, 𝑁 = 135) = 2.176, 𝑝 = .537. Las pruebas para cada una de las subcategorías de las metodologías de desarrollo encuentran que no existe una asociación significativa entre el tamaño de la organi- zación y cascada 𝜒2(2, 𝑁 = 135) = .266, 𝑝 = .875, prototipos 𝜒2(2, 𝑁 = 135) = 5.204, 𝑝 = .074 e incremental 𝜒2(2, 𝑁 = 135) = .649, 𝑝 = .723. En el caso de la metodología de espiral sí se encuentra una asociación 𝜒2(2, 𝑁 = 135) = 23.010, 𝑝 = .000 que indica que aunque las organizaciones pa- recen no utilizar esta metodología, las pequeñas son las más anuentes a utilizarla en comparación con las medianas y grandes. Las organizaciones de tamaño micro reportan un 50% de utilización de un total de 12 respuestas. Sin embargo, con este resultado en particular no es posible concluir sobre su asociación dada la cantidad de respuestas de algunas de las categorías de tamaño que no cumplen una de las suposiciones de la prueba. Las pruebas para las subcategorías agile o lean 𝜒2(2, 𝑁 = 135) = 3.202, 𝑝 = .202 y extreme programming 𝜒2(2, 𝑁 = 135) = 2.438, 𝑝 = .296 no encuentran una aso- ciación significativa, pero en el caso de la metodología scrum 𝜒2(2, 𝑁 = 135) = 13.183, 𝑝 = .001 sí se encuentra una asociación significativa. Las organizaciones grandes son las más anuentes a utilizar esta metodología (49%) en comparación con las pequeñas (10%) y medianas (25%). Aunque los resultados reportados en [1] presentan algunas tendencias relacionadas al tamaño de la compañía, nuestros resultados no identifican una relación entre el uso de las metodologías de desarrollo y el tamaño de las organizaciones. En este caso, estos resultados mantienen correspondencia con los reportados en [2]. En nues- tro caso, la tendencia de la metodología scrum se invierte con respecto a lo reportado en [1]. Sector objetivo y tipos de proyectos. Este análisis explora si el uso de una metodología de desarrollo se relaciona con el sector objetivo del software que una organización desa- rrolla para lo cual utilizamos la prueba Pearson 𝜒2 (𝑝 ≤ 0.05). Para realizar las pruebas se utilizan las categorías de sector objetivo: gobierno y sector público, manufactura o ingeniería, banca y finanzas, seguros, educación superior, salud y comercio. Al obser- var los resultados podemos identificar que para la mayoría de combinaciones no se en- cuentra una asociación significativa entre los sectores y las metodologías de desarrollo. A continuación se listan algunos ejemplos representativos de los principales resultados: Para el sector gobierno y las metodologías tradicionales no encontramos asociacio- nes significativas, 𝜒2(1, 𝑁 = 135) = .666, 𝑝 = .414 y para las ágiles 𝜒2(1, 𝑁 = 135) = .194, 𝑝 = .659. El sector banca y finanzas y las metodologías agiles presentan una asociación 𝜒2(1, 𝑁 = 135) = 28.447, 𝑝 = .000 donde en este sector se adoptan estas metodo- logías en un 85% de las veces, caso contrario su adopción se acerca a un 35%. Del mismo modo con la metodología incremental 𝜒2(1, 𝑁 = 135) = 6.174, 𝑝 = .013 para la cual su adopción es del 28% en el sector banca y caso contrario es de solo el 10%. En el caso de agile o lean 𝜒2(1, 𝑁 = 135) = 14.032, 𝑝 = .000 la adopción es del 55% y solo del 22% si no es una organización del sector. Del mismo modo para scrum 𝜒2(1, 𝑁 = 135) = 48.872, 𝑝 = .000 con un 85% de uso contra solo el 20% si no es del sector. Se encuentra una asociación con el sector de seguros y metodologías ágiles 𝜒2(1, 𝑁 = 135) = 5.234, 𝑝 = .022, cascada 𝜒2(1, 𝑁 = 135) = 4.187, 𝑝 = .041 y scrum 𝜒2(1, 𝑁 = 135) = 4.103, 𝑝 = .043. En el caso de ágiles la adopción es del 79% en el sector de seguros y caso contrario es de solo el 46%. Para la metodología de cascada la adopción es del 7% contra un 34% si no es del sector. La adopción para scrum es del 64% en este sector y caso contrario es del 36.4%. En el sector de salud la tendencia se invierte, se encuentran asociaciones entre este sector y metodologías ágiles 𝜒2(1, 𝑁 = 135) = 5.725, 𝑝 = .017, cascada 𝜒2(1, 𝑁 = 135) = 4.554, 𝑝 = .033 y scrum 𝜒2(1, 𝑁 = 135) = 5.282, 𝑝 = .022. Sin embargo, para este sector la adopción de las metodologías ágiles es solo del 17% y del 53% en caso contrario. La adopción de scrum es del 8% contra el 43% y cascada del 58% contra solo un 28% si no es del sector. Analizando el uso de las metodologías por sector confirmamos parcialmente los re- portado en [1]. Las metodologías product line development, espiral y extreme pro- gramming no son muy populares entre los distintos sectores, las metodologías ágiles son muy utilizadas en el sector de banca y seguros y las metodologías tradicionales, como cascada, son muy utilizadas en el sector de salud y manufactura e ingeniería. Asimismo, se realiza un análisis para explorar si el uso de una metodología de desa- rrollo depende del tipo de proyectos que se desarrollan en las organizaciones. Para rea- lizar las pruebas se utilizan las categorías de proyectos: in-house, paquetes para un sec- tor de industria, paquetes de uso general para negocios y desarrollo a la medida. A continuación se listan los principales resultados: Se identifica una asociación significativa entre los proyectos in-house y las metodo- logías tradicionales 𝜒2(1, 𝑁 = 135) = 5.138, 𝑝 = .023. En este tipo de proyectos se utilizan estas metodologías un 64% contra un 44% en el caso de que el proyecto no sea in-house. Existe una asociación en proyectos in-house y metodologías ágiles 𝜒2(1, 𝑁 = 135) = 20.228, 𝑝 = .000 donde la adopción es del 65% para este tipo de proyectos y 26% en caso contrario. Se identifica una asociación con la metodología prototipos 𝜒2(1, 𝑁 = 135) = 4.256, 𝑝 = .039 para la cual su adopción es del 37% en el caso que el proyecto sea in-house y del 20% caso contrario. Igualmente, se encuentra una asociación con las metodologías agile o lean 𝜒2(1, 𝑁 = 135) = 12.035, 𝑝 = .001 y scrum 𝜒2(1, 𝑁 = 135) = 19.264, 𝑝 = .000. En el caso de agile o lean la adopción es del 43% para este tipo de proyectos y caso contrario es de solo el 15%. En el caso de scrum la adopción es del 54% y solo del 17% caso contrario. Para el desarrollo de paquetes de un sector de industria no se identifica una asocia- ción significativa con las metodologías tradicionales 𝜒2(1, 𝑁 = 135) = 3.729, 𝑝 = .053. Sin embargo, si se identifica una asociación con las metodologías ágiles 𝜒2(1, 𝑁 = 135) = 8.429, 𝑝 = .004 donde la adopción es del 69% para este tipo de proyectos y 42% en caso contrario. En el caso del desarrollo de paquetes de uso general para negocios no se identifica una asociación significativa con las metodologías tradicionales 𝜒2(1, 𝑁 = 135) = 3.497, 𝑝 = .061 y tampoco para las metodologías ágiles 𝜒2(1, 𝑁 = 135) = 2.695, 𝑝 = .101. Para la metodología scrum se identifica una asociación significa- tiva 𝜒2(1, 𝑁 = 135) = 5.429, 𝑝 = .020. En scrum la adopción es del 61% para este tipo de proyectos y solo del 35% en caso contrario. Para el desarrollo a la medida se identifica una asociación significativa con las me- todologías tradicionales 𝜒2(1, 𝑁 = 135) = 4.565, 𝑝 = .033 con una adopción del 65%. En el caso de las metodologías ágiles 𝜒2(1, 𝑁 = 135) = 2.682, 𝑝 = .102 no se identifica una asociación significativa. Para la metodología cascada se identifica una asociación significativa 𝜒2(1, 𝑁 = 135) = 4.235, 𝑝 = .040. En cascada la adopción es del 39% para este tipo de proyectos y solo del 23% en caso contrario. Otros factores demográficos. Este análisis busca identificar si el uso de una metodo- logía de desarrollo se relaciona con otros factores demográficos de los profesionales. Para esto utilizamos la prueba Pearson 𝜒2 (𝑝 ≤ 0.05). Realizamos el análisis para las categorías de tipo de capital de la organización: nacional, extranjero o ambos. A conti- nuación se listan los principales resultados: Este factor no influye en el uso de las metodologías tradicionales 𝜒2(2, 𝑁 = 131) = 2.163, 𝑝 = .339. Encontramos una asociación entre el tipo de capital y las metodologías ágiles 𝜒2(2, 𝑁 = 131) = 10.339, 𝑝 = .006. Las organizaciones de capital nacional tien- den a tener una menor adopción de metodologías agiles (45%) que las de capital extranjero (72%) y ambas (87%). Con respecto a este resultado en particular no es posible concluir sobre su asociación dada la cantidad de respuestas que no cumplen una de las suposiciones de la prueba. No encontramos una asociación entre la existencia de una unidad de proyectos en la organización y la adopción de las metodologías tradicionales 𝜒2(1, 𝑁 = 128) = .307, 𝑝 = .580. Se encuentra una asociación significativa con el uso de las metodologías ágiles 𝜒2(1, 𝑁 = 128) = 5.175, 𝑝 = .023 donde la existencia de una unidad de proyectos muestra un uso del 60% y en caso contrario solo del 40%. En el caso de la metodo- logía scrum se identifica la misma asociación 𝜒2(1, 𝑁 = 128) = 12.764, 𝑝 = .000 donde las organizaciones con una unidad de proyectos (54%) parecen utilizar con mayor frecuencia esta metodología que las que no la tienen (22%). Se analizan las asociaciones para los tipos de clientes de las organizaciones (internos, externos o ambos): No existe una asociación entre el tipo de cliente y el uso de las metodologías tradi- cionales 𝜒2(2, 𝑁 = 122) = .244, 𝑝 = .885. Se encuentra una asociación significativa con el uso de las metodologías ágiles 𝜒2(2, 𝑁 = 122) = 10.170, 𝑝 = .006 donde para clientes internos su uso es del 40%, para clientes externos del 27% y si cuentan con ambos tipos de cliente es del 66%. Tanto el desarrollo con las metodologías agile o lean 𝜒2(2, 𝑁 = 122) = 8.332, 𝑝 = .01 y extreme programming 𝜒2(2, 𝑁 = 122) = 12.923, 𝑝 = .002 presentan asocia- ciones significativas con el tipo de cliente. La metodología scrum 𝜒2(2, 𝑁 = 122) = 3.695, 𝑝 = .158 es igualmente adoptada independiente del tipo de cliente. 4.3 Prácticas de pruebas de software versus factores demográficos La RQ2 busca determinar las asociaciones entre el uso de las distintas prácticas de ca- lidad del software y los factores demográficos de los profesionales. Para esto se plan- tean un conjunto de hipótesis que se analizan para determinar si existen estas relaciones. Tipo y nivel de pruebas versus tamaño de la organización. El análisis busca identi- ficar si los distintos tipos y niveles de pruebas se relacionan con el tamaño de la orga- nización para lo cual se utilizó la prueba Spearman’s rank correlation (𝑝 ≤ 0.05). Ade- más se analiza las correlaciones entre distintos tipos y niveles de pruebas. Los tipos y niveles de pruebas son: pruebas de unidad, de integración, aceptación, pruebas funcio- nales, de sistema, de rendimiento, pruebas de carga y estrés, pruebas de seguridad y de usabilidad. Las categorías de tamaño de organización: pequeña (1 a 50 empleados que incluye micro de 1 a 10 y pequeña de 11 a 50), mediana (51 a 200 empleados) y grande (201 o más empleados). Las agrupaciones por tamaño se realizan para cumplir con el mínimo 𝑁 requerido por la prueba estadística. A continuación se listan los principales resultados: Se identifica que el tamaño de la organización presenta una correlación positiva débil con las pruebas funcionales 𝑟𝑠(88) = .239, 𝑝 = .027 y una correlación positiva dé- bil con las pruebas de carga y estrés 𝑟𝑠(88) = .230, 𝑝 = 0.31. Al realizar las prue- bas, todos los valores son cercamos a cero lo que indica la ausencia de una correla- ción entre el tamaño de las organizaciones y los tipos y niveles de pruebas. Las tendencias muestran que si el tamaño de la organización crece, incrementa la probabilidad de realizar pruebas funcionales y de sistema. Existen correlaciones entre los distintos tipos y niveles de pruebas que indican que si una organización decide realizar un tipo o nivel de pruebas podría decidir realizar el otro tipo o nivel de pruebas. Los resultados se muestran en el Cuadro 5. Cuadro 5 Correlaciones significativas entre tipo y nivel de pruebas Tipos y niveles 𝒓𝒔(𝟖𝟖) 𝒑 Correlación Pruebas funcionales y de sistema . 948 . 000 Positiva muy fuerte Pruebas de integración y de sistema . 756 . 000 Positiva fuerte Pruebas de unidad y pruebas de integración . 751 . 000 Positiva fuerte Pruebas de integración y pruebas funcionales . 701 . 000 Positiva fuerte Pruebas de rendimiento y pruebas de carga y/o estrés . 690 . 000 Positiva fuerte Pruebas de aceptación y pruebas de sistema . 666 . 000 Positiva fuerte Pruebas de aceptación y pruebas funcionales . 665 . 000 Positiva fuerte Pruebas de unidad y pruebas funcionales . 614 . 000 Positiva fuerte Pruebas de seguridad y pruebas de usabilidad . 612 . 000 Positiva fuerte Pruebas de integración y pruebas de aceptación . 611 . 000 Positiva fuerte Pruebas de sistema y pruebas de usabilidad . 606 . 000 Positiva fuerte Pruebas automatizadas y pruebas manuales. El análisis busca identificar si las prue- bas automatizadas y manuales se relacionan con el tamaño de la organización para lo cual se utilizó la prueba Spearman’s rank correlation (𝑝 ≤ 0.05). Además se analiza las correlaciones entre distintos tipos y niveles de pruebas con la realización de pruebas manuales o automatizadas. A continuación se listan las principales asociaciones: El tamaño de la organización no presenta una correlación con la realización de prue- bas manuales o automatizadas. Se identifica una correlación positiva débil entre las pruebas manuales y pruebas de integración 𝑟𝑠(93) = .236, 𝑝 = .023, pruebas de aceptación 𝑟𝑠(93) = .289, 𝑝 = .005 y pruebas funcionales 𝑟𝑠(84) = .304, 𝑝 = .005. Se identifica una correlación positiva débil entre las pruebas automatizadas, las prue- bas de carga y estrés 𝑟𝑠(94) = .269, 𝑝 = .009 y las pruebas de seguridad 𝑟𝑠(94) = .252, 𝑝 = .014. 5 Discusión 5.1 Resumen de resultados Las organizaciones de desarrollo de software adaptan las prácticas ingenieriles de sus procesos de acuerdo a sus necesidades específicas y el contexto de negocios en el que desarrollan sus proyectos, las que son muy diversas, y no existen patrones generalizables a todas ellas que expliquen cuáles son los factores que influyen en sus decisiones. En este estudio encontramos que no existe una correlación significativa entre el ta- maño de la organización y las metodologías de desarrollo que utiliza, por lo que el tamaño, en número de empleados, no es uno de los factores que expliquen la adop- ción de metodologías específicas. Tampoco encontramos una asociación significativa entre el uso de metodologías tra- dicionales o de metodologías ágiles, con respecto a los factores demográficos. Las metodologías ágiles son actualmente las más utilizadas, principalmente Scrum. Sin embargo las metodologías tradicionales tales como cascada y desarrollo por pro- totipos también son populares en la industria. Las metodologías ágiles son más utilizadas en el sector de banca y seguros y las metodologías tradicionales, tales como cascada, son más utilizadas en el sector de salud y manufactura. Determinar las razones de este fenómeno requiere una investi- gación más profunda para determinar las causas del porqué de estas tendencias. Determinamos que no existe una correlación significativa entre el tamaño de las or- ganizaciones y los tipos y niveles de pruebas que realizan, y tampoco entre el tamaño y si realizan pruebas manuales o automatizadas. En otras palabras, el nivel de auto- matización de las pruebas no se puede predecir con base en el tamaño de las organi- zaciones. Se identifican correlaciones fuertes entre pruebas funcionales y de sistema, integra- ción y sistema, unidad e integración, integración y funcionales, rendimiento y carga/estrés, aceptación y sistema, aceptación y funcionales, unidad y funcionales, seguridad y usabilidad, integración y aceptación, y finalmente, sistema y usabilidad. Finalmente, los datos sugieren que la no adopción de las prácticas en la ingeniería del software no solo se debe a aspectos técnicos sino a la falta de recursos en las organizaciones. Debemos ahora investigar por qué los desarrolladores hablan de falta de recursos, aun en organizaciones grandes. Situación que se presente princi- palmente en el sector público gobierno. 5.2 Lecciones aprendidas durante la ejecución del estudio de encuesta La mayor cantidad de preguntas sin contestar se relacionan con las secciones de las prácticas específicas en la ingeniería del software. Los factores que pueden influenciar esta tendencia son: (1) la cantidad de preguntas del cuestionario y (2) el que algunos de los participantes son reservados acerca de las prácticas específicas en sus organizacio- nes. Aunque nuestro instrumento se basa en estudios previos y sigue la estructura del SWEBOK, el pilotaje con profesionales permitió depurar y mejorar la estructura y el contenido del mismo. Es importante realizar una validación de los instrumentos en el contexto donde se conduce el estudio y utilizando el idioma nativo de los profesionales. El instrumento se aplicó en el lenguaje español y los investigadores fueron los respon- sables de realizar las traducciones respectivas. La comparación de las tendencias entre estudios se dificulta dada la variedad del contexto donde se desarrollaron los estudios. Para una comparación más rigurosa es necesario contar con los datos crudos de los estudios previos para poder realizar el aná- lisis correspondiente. Al ser este estudio una replicación externa se dificulta este pro- ceso. 6 Conclusiones y trabajo futuro El presente estudio realizó un análisis exploratorio sobre los factores demográficos de los profesionales asociados a las prácticas de la ingeniería del software utilizadas en la industria costarricense. En nuestro estudio discutimos las asociaciones de estos factores demográficos con las prácticas de desarrollo y pruebas de software. Nuestra investiga- ción indica que no existe una asociación entre el tamaño de la organización y las meto- dologías de desarrollo. Los resultados sugieren que las organizaciones de desarrollo adaptan las prácticas ingenieriles en sus procesos de acuerdo a las necesidades especí- ficas y el contexto de negocios en el que realizan sus proyectos. Estas prácticas son muy diversas, y no existen patrones generalizables a todas ellas que expliquen cuáles son los factores que influyen en sus decisiones. Cómo trabajo futuro, se requieren realizar análisis adicionales sobre los factores aso- ciados a las prácticas de la ingeniería. Existen múltiples relaciones adicionales que pue- den ser exploradas con los datos de la encuesta original [3]. Planeamos complementar este estudio para analizar las tendencias de adopción de otras prácticas de la ingeniería a partir de los factores demográficos de los profesionales. Finalmente, nuestro estudio no pretende generalizar los resultados para cualquier contexto de desarrollo. Por el con- trario, este trabajo tiene como objetivo aportar en el entendimiento del uso y adopción de las prácticas de la ingeniería en la industria. Se requieren futuros estudios que ex- ploren las tendencias de adopción de las prácticas en contextos específicos y estudios particulares con organizaciones de desarrollo para lograr dicho entendimiento y proveer recomendaciones para los profesionales con respecto a lo que se puede mejorar en sus procesos y prácticas. Agradecimientos. Agradecemos a todos (as) los (as) profesionales que participaron anónimamente en la encuesta y a las instituciones que colaboraron con su difusión. Este estudio fue apoyado por el Ministerio de Ciencia, Tecnología y Telecomunicaciones (MICITT) y la Universidad de Costa Rica (No. 834-B5-A18). Referencias 1. Garousi, V., Coşkunçay, A., Demirörs, O., Yazici, A.: Cross-factor analysis of software engineering practices versus practitioner demographics: An exploratory study in Turkey. Journal of Systems and Software, 111, 49-73 (2016). 2. Kuhrmann, M., Diebold, P., Münch, J., Tell, P., Garousi, V., Felderer, M., & Prause, C. R. (2017, July). Hybrid software and system development in practice: waterfall, scrum, and beyond. In Proceedings of the 2017 International Conference on Software and System Process (pp. 30-39). ACM. 3. Quesada-López, C., y Jenkins, M. (2017). Un estudio sobre las prácticas de la ingeniería del software en Costa Rica: Resultados preliminares. Proceedings of the XX Ibero-American Conference on Soft- ware Engineering (CibSE 2017). Buenos Aires, Argentina, 22-23 May 2017. 4. Kalus, G., & Kuhrmann, M. (2013, May). Criteria for software process tailoring: a systematic review. In Proceedings of the 2013 International Conference on Software and System Process (pp. 171-180). ACM. 5. Runeson, P., & Höst, M. (2009). Guidelines for conducting and reporting case study research in software engineering. Empirical software engineering, 14(2), 131. 6. Abran, A., Moore, J., Bourque, P., Dupuis, R. (Eds): Guide to the Software Engineering Body of Kno- wledge: 2004 version. IEEE Press, CA, USA (2004). 7. Bourque, P., Fairley, R. (Eds): Guide to the Software Engineering Body of Knowledge: Version 3.0. IEEE Press, CA, USA (2014). Recuperado de http://www.swebok.org. 8. Garousi, V., Coşkunçay, A., Betin-Can, A., Demirörs, O.: A survey of software engineering practices in Turkey. Journal of Systems and Software, 108, 148-177 (2015). 9. Blackburn, J. D., Scudder, G. D., & Van Wassenhove, L. N. (1996). Improving speed and productivity of software development: a global survey of software developers. IEEE Transactions on Software En- gineering, 22(12), 875-885. 10. Herbsleb, J. D., Mockus, A., Finholt, T. A., & Grinter, R. E. (2001, July). An empirical study of global software development: distance and speed. In Proceedings of the 23rd international conference on soft- ware engineering (pp. 81-90). IEEE Computer Society. 11. Jiang, J. J., Klein, G., Hwang, H. G., Huang, J., & Hung, S. Y. (2004). An exploration of the relationship between software development process maturity and project performance. Information & Management, 41(3), 279-288. 12. Chow, T., & Cao, D. B. (2008). A survey study of critical success factors in agile software projects. Journal of systems and software, 81(6), 961-971. 13. Dagenais, B., Ossher, H., Bellamy, R. K., Robillard, M. P., & De Vries, J. P. (2010, May). Moving into a new software project landscape. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1 (pp. 275-284). ACM. 14. Akdur, D., Garousi, V., & Demirörs, O. (2017, June). Cross-factor analysis of software modeling prac- tices versus practitioner demographics in the embedded software industry. In Embedded Computing (MECO), 2017 6th Mediterranean Conference on (pp. 1-5). IEEE. 15. Easterbrook, S., Singer, J., Storey, M. A., & Damian, D. (2008). Selecting empirical methods for soft- ware engineering research. Guide to advanced empirical software engineering, 285-311. 16. Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2012). Experimentation in software engineering. Springer Science & Business Media.