Recepción: 04 Octubre 2021
Aprobación: 24 Noviembre 2021
Resumen: . La investigación realizada es del tipo investigación descriptiva (investigación descriptiva por encuestas) de diseño no-experimental. La data fue obtenida a través de una encuesta de tipo digital, durante el bienio 2018-2019. El objetivo principal fue determinar si los desarrolladores de software en Panamá, aplican los modelos de madurez de software libre o de código abierto, identificar qué características de calidad son consideradas, por los desarrolladores de software, para la selección de software libre a utilizar. Los resultados demuestran que los desarrolladores de software en Panamá, casi no utilizan modelos de madurez de software abierto o de código libre para la selección del software libre. Que existe un desconocimiento de la existencia de modelos de madurez enfocados en software libre y de su utilidad para la selección de software libre. Que la principal razón para utilizar software libre para el desarrollo de productos es por su cero costo, y que el tipo de aplicaciones que más desarrollan son las relacionadas a páginas Web y aplicaciones Web.
Palabras clave: Software libre, modelo de madurez, desarrolladores de software.
Abstract: The research carried out is a descriptive research (descriptive research by surveys) of non-experimental design. The data was obtained through a digital survey, during the 2018-2019 biennium. The main objective was to determine if software developers in Panama apply free or open-source software maturity models, to identify what quality characteristics are considered by software developers for the selection of free software to be used. The results show that software developers in Panama hardly use open- source or free source models of maturity for the selection of free software. That there is a lack of knowledge of the existence of maturity models focused on free software and of their usefulness for the selection of free software. That the main reason for using free software for product development is its zero cost and that the type of applications mostly developed are the ones related to Web pages and Web applications.
Keywords: Free software, maturity model, software developers.
1. Introducción
El software libre nace como un movimiento de libertad. Esa libertad ha permitido que se desarrolle y emerja como un pilar en el desarrollo de software, tanto privativo como libre. Al desarrollar con software libre o abierto esto implica que se ponga en duda la continuidad del producto desarrollado desde la perspectiva de calidad. Es decir, si el software es maduro, si en un futuro el software se podrá mejorar de forma continua o, por el contrario, que se vuelva obsoleto.
El uso de software libre o el software de código abierto se ha incrementado en Panamá, al igual que otras latitudes del mundo. En particular se considera que su uso debe incrementarse, porque facilita el desarrollo del software al no tener que pagar por su licencia. Además, su código abierto permite realizar aportes para mejorarlo, con la finalidad de contribuir en hacerlo más robusto en cuanto a competitividad y usabilidad. Debe estar al servicio de la sociedad en todos sus aspectos: educativo, social, científico, humanístico, entre otros. Sobre todo, a disposición de las comunidades más vulnerables que no pueden pagar este servicio, que se ha convertido en un servicio vital dentro de la sociedad de hoy, la sociedad del conocimiento y de la información.
Durante los últimos diez años el software libre o de código abierto libre ha ganado gran popularidad, tanto es así que el número de proyectos de código libre ha aumentado por lo que se puede decir, que ha alcanzado la madurez durante los últimos años Tiwarin, (2010), Singh y Singh (2015).
Debido a ello, se han desarrollado modelos de madurez de código libre, en los que las empresas se apoyan para seleccionar el software a utilizar.
Vaughan-Nichols (2015) presentó un estudio donde se determinó que el 78% de las empresas utilizan software de código abierto. Aunado a lo anterior Infosys Digital (2016), señala que casi todas las empresas de Fortune 500, utilizan software de código abierto para crear aplicaciones empresariales simples o complejas.
Para garantizar la madurez del software libre se han desarrollado modelos de madurez de software libre (Open Source Maturity Model de Capgemini, Open Source Maturity Model de Navica, Qualification and Selection of Open Source Software, entre otros), que tienen como finalidad evaluar la madurez del software basados en indicadores o características de la madurez del software. En ese sentido la madurez del software la define Etheredge (2009) como la eficacia alcanzada por el software en su evolución en el tiempo.
Mark et al. (1993) señala que la madurez es un proceso específico para definir, claramente, la gestión, medición y control del crecimiento progresivo de una determinada organización. De igual forma De Freitas (2018) define la madurez como el estado de efectividad en que una organización gestiona los procesos, programas o proyectos de forma efectiva a través de su capacidad y competencia.
Por su parte el Software Engineering Institute-SEI (2010), definen un modelo de madurez y capacidad como un modelo que contiene los elementos esenciales de procesos eficaces para una o más áreas de interés y describe un camino de mejora evolutivo desde procesos inmaduros y ad hoc hasta procesos maduros y disciplinados con una mejora en la eficacia y en la calidad.
Luego de las diferentes definiciones e interpretaciones de madurez, la delimitamos como un modelo que establece guías o buenas prácticas para una gestión certera de los procesos de software desde su fase inicial (inmadura) hasta llevarlos de forma planificada a su fase madura, a través de la medición de los procesos de forma que se realicen los ajustes necesarios para que los proyectos estén respaldados por un proceso de calidad (Jiménez Puello, 2021).
Al respecto ElFadl et al. (2018) señala que la madurez es uno de los factores clave de calidad que las personas consideran al elegir entre proyectos de código abierto.
Por lo tanto, se hace imperativo debido al auge en el uso de software libre o de código abierto y a su presencia de uso en el desarrollo de software en la actualidad, determinar si los desarrolladores de software aplican modelos de madurez de software libre, en la selección del software a la hora de ser utilizado para el desarrollo de productos.
En la presente investigación, se determinó la aplicación de los modelos de madurez de software libre por parte de los desarrolladores de software.
2. Metodología
Previo a la implementación de la investigación se realizó una fase exploratoria que consistió en un muestreo dentro de la ciudad de Panamá, específicamente, en el centro de la ciudad, para localizar a los desarrolladores de software y así conocer la población existente. Se contactó a los colegas egresados de la Facultad de Informática, Electrónica y Comunicación de la Universidad de Panamá y de la Universidad Tecnológica de Panamá a quienes se les solicitó que fueran agentes multiplicadores de la encuesta entre sus colegas y conocidos, dedicados al desarrollo de software. Se localizaron 50 desarrolladores de software.
2.1 Validación y confiabilidad
Para validar la encuesta se realizó una pre-prueba piloto y una prueba piloto: Una vez elaborado el cuestionario, se le dio a leer a algunos compañeros del área y a una doctora en didáctica para conocer el grado de comprensión de los ítems (pre-prueba piloto). Con sus comentarios y observaciones se editó el instrumento. Con el instrumento editado se procedió a aplicárselo a los compañeros expertos en la materia (prueba piloto) que se prestaron de voluntarios. Con sus observaciones se estructuró el cuestionario definitivo que fue aplicado a los desarrolladores localizados o participantes del estudio.
La validación fue significativa para modificar algunas preguntas, adecuarlas a los objetivos trazados y ajustar la cantidad de ítems para no hacerla muy larga. Sobre todo, nos permitió darnos cuenta de que no conocían sobre modelos de madurez para software libre. Al parecer los voluntarios que participaron, estaban más relacionados con el tema de modelos de madurez para procesos.
El anterior procedimiento obedece al planteamiento de muchos expertos que consideran que se puede asegurar la validez cualitativa a través de juicios o revisión de expertos, más allá de lo que expresan los números. Planteamiento que fue el utilizado en este estudio. Por lo tanto, el instrumento aplicado o de ejecución fue validado a través de expertos, como ya se expuso, razón por la cual esos voluntarios no fueron incluidos en la muestra para evitar sesgo.
Con respecto a la confiabilidad, se obtuvo de la revisión de los expertos que se realizó y de sus observaciones, lo que permitió modificar y ajustar el instrumento o cuestionario de la encuesta aplicada. En síntesis, la confiabilidad de la encuesta aplicada se obtuvo mediante la aplicación de la prueba piloto.
2.2. Tipo de investigación
El estudio realizado consistió en una investigación descriptiva (investigación descriptiva por encuestas) de diseño no-experimental. La investigación fue diseñada para recoger la información a través de una encuesta. La data recopilada desde el punto de vista de la estadística es del tipo externa, datos obtenidos por el autor a través de una encuesta a los desarrolladores de software durante el año 2018 - 2019. Como toda data que se procesa, cumplió con los procesos establecidos de organización, representación gráfica y el análisis correspondiente.
La técnica más adecuada de uso en el estudio es la encuesta (investigación por encuesta), por tratarse de un estudio sin antecedentes conocidos en nuestro país. La encuesta fue el instrumento de evaluación que aplicaba, dado el objetivo general planteado en esta investigación, y porque se trata de un estudio que por primera vez se realiza en Panamá.
2.3. Población y muestra
La población (N) fue de 50 desarrolladores de software localizados en el muestreo de la fase exploratoria. Para la muestra se aplicó la condición estadística, ampliamente, aceptada, que para investigaciones descriptivas es común utilizar un muestreo del 10-20% de la población. En este caso (n=36) que, estadísticamente, es considerada una muestra significativa.
El estudio estuvo dirigido a desarrolladores de software en empresas, organizaciones o desarrolladores independientes, sin ningún tipo de estratificación, porque no era el objetivo de la investigación. De esta forma se cumplía con otro precepto de la estadística, que es la homogenización de la muestra, lo que disminuye la probabilidad de sesgo porque todos los participantes compartían el común denominador, de ser desarrolladores de software.
El instrumento utilizado para la recogida de los datos fue un cuestionario a través de la aplicación Monkey Suvrvey.
2.4. El cuestionario
El cuestionario estaba conformado por diez (10) preguntas, elaboradas para determinar el uso de modelos de madurez para software libre. Eso incluye indicadores orientados a la calidad del software y a las características propias de software libre, que fueron consideradas con base en los diferentes modelos de madurez de software libre revisados en la literatura. Por lo tanto, los indicadores se adaptaron al contexto de esta investigación.
El cuestionario quedó estructurado de la siguiente forma: Indicadores de madurez, estructurado en diez (10) preguntas. Los resultados y la discusión de cada pregunta del cuestionario se exponen en la sección de resultados.
3. Resultados y discusión
A continuación se presentan los resutlados obtenidos en el estudio.
Un 88,9% (32) de los desarrolladores de software encuestados no tenía conocimiento sobre modelo de madurez de software (figura 1). Mientras que un 11,1% (4), sí conocen de la existencia de los modelos de madurez de software. Los que respondieron que sí tienen conocimientos de modelo de madurez de software, indicaron que con los modelos se puede tener la certeza que se ha seguido un proceso continuo de buenas prácticas que garantizan un producto de calidad.
Sin embargo, los que respondieron que no, señalan que no conocían el término, no hay espacio en el cronograma para conocerlos o estudiarlos o, simplemente, no lo conocen.
Estos resultados indican que una gran mayoría desconoce la existencia de los modelos y de sus buenas prácticas.
La (figura 2) indica que el 69,4% (25) de los participantes señalan que la organización no implementa un modelo de madurez. 30,6% (11) indicó que sí. Como vemos un alto porcentaje de las organizaciones no aplican un modelo de madurez en el desarrollo de software. Esto puede deberse a la falta de conocimiento, de las ventajas de su uso, falta de entrenamiento en su implementación o el factor de rentabilidad económica.
Los desarrolladores participantes indicaron (figura 3) que nunca realizan evaluación del software libre para el desarrollo de sus productos (25,0%). En este, la selección del software se debe a varias razones que pueden ser porque está de moda el software, goza de buena reputación o está siendo, ampliamente, utilizado en el momento. Lo que, consideran que es bueno y que reúne o posee las características para utilizarlo en el desarrollo de sus productos, ya que, otros lo han implementado o, simplemente, porque es el que usa la comunidad de desarrolladores y reúne los requisitos para desarrollar los productos. Pero, no ha sido, tal vez, evaluado bajo ciertos criterios o características para demostrar su madurez. Por otro lado, un 44,4% lo evalúa de forma ocasional. Es decir, que puede ser de vez en cuando por alguna necesidad técnica o que por otras causas se vean obligados a realizar algún tipo de evaluación.
El 30,6% si evalúa el software. Si al 25% que dijo no evaluar el software se le suma el 44,4% que dijo que lo hace de forma ocasional, se podría decir que un porcentaje bastante alto de los desarrolladores de software en nuestro país, no evalúan el software libre que utilizan para desarrollar sus productos.
Cabe destacar de estas respuestas (figura 4), que solo el 5,6% aplica modelo de madurez para software libre, lo que puede deberse a que no hay una cultura en las organizaciones, al menos de este estudio, de aplicar modelos de madurez de software libre para evaluar el software a la hora de desarrollar sus productos. Lo que es impresionante, dada las ventajas corporativas que ofrecen. Llama la atención, el 30,6% respondió que no realiza evaluación del software, sobre todo, porque en la (figura 3) fue un 25% que dijo que no evaluaban el software libre que utilizaban. No hay una correlación entre ambas preguntas, que era lo esperado. Esto significa que el 25% que dijo que nunca evaluaban el software en realidad es de un 30%, lo que hace pensar que no respondieron con objetividad. Por otro lado, para la evaluación del software un 22,2% aplican una metodología y un 41,7% alguna herramienta.
A pesar de los resultados, no causa asombro que solo un 5,6% use modelo de madurez para evaluar software libre, ya que, se correlaciona con la respuesta sobre si conocían modelos de madurez, donde un 88% dijo que no conocía los modelos de madurez. En su mayoría indicaron que utilizan una metodología o una herramienta para su evaluación, en este caso no se preguntó qué metodología o qué herramienta.
Las razones que expusieron los participantes de por qué utilizan software libre para el desarrollo de los productos, son variadas (figura 5). Es destacable el 41,5% que señalaron el costo de la licencia del software. En este caso la mayoría se refería que el software es gratis, que no debía pagar por su uso, entre otros. Un 14% indica que por la comunidad de usuario que apoyo el software, lo que permite intercambiar ideas sobre la instalación, uso, funcionamiento o modificación del software. Por la accesibilidad y por la modificación del código el 9,8%, respectivamente.
El resto indica que, por disponer de más actualizaciones, por la documentación y funcionalidad o por lo robusto del software. Este último en un porcentaje muy bajo (2,4%). De esta forma, son dos los aspectos claves para elegir un software libre: cero costos de la licencia y la comunidad de usuario que lo respaldan.
En este caso, son diez las características que los desarrolladores encuestados consideran importantes en la selección de software libre (figura 6). En primer término (26,7%) está la funcionalidad del software. Un aspecto tan importante como la seguridad solo fue considerado por un 20%. Llama la atención este hecho, ya que, la seguridad de un software previene la vulnerabilidad tanto del mismo software, como de la aplicación que se desarrolla con el software. Si no hay seguridad se expone al usuario a ser objeto de la delincuencia informática. Otra característica es la documentación con un 13,3%, mientras que el rendimiento obtuvo un 8,9%. En menor porcentaje la eficiencia, la mejora en el código fuente y confiabilidad con un 2,2%, respetivamente.
Con respecto a la madurez del software libre, solo un 4,4% la consideró importante en la selección de software libre. Esto correlaciona con las respuestas dadas sobre si tienen conocimiento sobre modelos de madurez y si realizan evaluación del software libre antes discutidas. Es probable que no se le dé la importancia que tiene esta característica, por el desconocimiento de la existencia de los modelos de madurez de software libre, porque no lo aplican o usan, y por el desconocimiento de su valor en el desarrollo de software. También se puede deber a la falta de formación, por parte de los desarrolladores, de que los modelos te brindan una mayor certeza de los softwares que vas a utilizar y consideran que la funcionalidad y la documentación son las principales características, sin comprender que la madurez del software involucra todos estos aspectos.
Un 91,7% (figura 7) considera que es importante la madurez del software libre para su selección. Sin embargo, esto no correlaciona con las respuestas obtenidas sobre los indicadores o características que consideran importantes para la selección de software libre, donde solo un 4,4% señaló que la madurez del software es una característica importante en la selección del software libre. Consideran que es importante la madurez del software, por lo siguiente:
· Que el grado de madurez y seguridad es importante
· Debe existir documentación
· Que funcione de forma correcta
· Por su eficiencia y prolongado periodo de mantenimiento
· Tiene una comunidad que lo sostiene y respalda
Por su confiabilidad, menos propenso a errores y no está en etapa de desarrollo. Por otro lado, solo el 8,3% considera que no es importante su madurez y no se obtuvo respuesta de por qué no consideran que es importante. Esto causa algo de incertidumbre porque consideran que no es importante, sin embargo, no saben por qué no es importante, no dieron razón alguna. Lo que se interpreta como falta de conocimiento sobre el tema o del trabajo que se realiza.
El 38,9%, indicó que sí ha escuchado sobre modelo de madurez de software libre (figura 8). Mientras que una gran mayoría (61,1%), señaló que no ha escuchado sobre modelo de madurez para software libre. Esto implica que una mayoría desconoce sobre los diferentes modelos de madurez para software libre, lo que se convierte en un impedimento para poder elegir, correctamente, en la selección de software libre para desarrollar productos basados en software libre. Lo que es una limitante a la hora de aplicar un software o evaluar el software.
Sobre indicadores o características de madurez de software libre, la funcionalidad y la comunidad de usuarios (figura 9) son consideradas para la selección de software (10,5%) por encima de otros indicadores o característica, soporte y usabilidad (9,3%), rendimiento del software (8,6%) y licencia (8,0%). Las otras características son consideradas en menor grado. El modo de distribución es la que menos consideran (3,7%). Cabe resaltar que son características que se establecen en los modelos de madurez de software libre. Como se indicó en los resultados la funcionalidad y la comunidad de usuarios son esenciales para los encuestados. Esto puede deberse a que la comunidad de usuario es un apoyo fundamental para la solución de problemas en el uso del software. Sin embargo, la usabilidad no está muy lejos como un requisito para su selección. Es decir, si el software presenta usabilidad es un valor agregado para su uso. Algo muy importante que resaltar es, que la respuesta, todas las anteriores solo es (4,9%), cuando se esperaba fuera la de mayor porcentaje, dado que todas son consideradas de una forma u otra en los modelos de madurez de software libre.
En cuanto si aplican un modelo de madurez de software libre para la selección del software (figura 10), el 11,1% de los participantes indicó que ha aplicado un modelo de madurez de software libre para la selección del software. A la pregunta ¿Por qué sí? indicaron que para corroborar que el software es eficaz, confiable, eficiente, que dispone de una comunidad organizada de usuarios, que la documentación es clara.
Mientras que un significativo 88,9% indicó que no. De esto se deduce que son pocos los desarrolladores que utilizan un modelo de madurez de software libre, para la selección del software. A la pregunta ¿Por qué no? Señalaron, que por desconocimiento no aplican un modelo de madurez de software libre para la selección del software. Con estos resultados queda demostrado que la mayoría de los desarrolladores, encuestados en este estudio, no aplican modelos de madurez de software libre para la selección del software; y que los mismos no lo hacen por desconocimiento. Por consiguiente, se hace necesario dar a conocer los modelos de madurez de software libre entre los desarrolladores de software.
4. Conclusiones
· Un alto porcentaje de los desarrolladores de software en Panamá, no evalúan el software que utilizan para desarrollar sus productos o si lo hacen alguna vez, es por una circunstancia “X” que les amerite o les obligue a hacerlo.
· Existe un desconocimiento marcado por parte de los desarrolladores de software y, por tanto, de las organizaciones, de la existencia de modelos de madurez enfocados en software libre y de su utilidad para la selección de software libre que cumpla con su madurez, razón por la cual no aplican modelos de madurez de software libre o de código abierto.
· El 94,5% de los desarrolladores de software de este estudio no aplican modelos de madurez de software libre a la hora de desarrollar sus productos en las empresas donde laboran.
· Son muy pocos los desarrolladores de software, que dijeron no usar software libre para el desarrollo de software, en las organizaciones desarrolladoras de software.
· El 63,9% de los desarrolladores de software utilizan una metodología y una herramienta para la evaluación de software libre, sin especificar cuál.
· Las características de calidad que más valoran los desarrolladores de software, para la selección del software a aplicar, son la funcionalidad y la seguridad.
· Los desarrolladores de software, al parecer, tienen claro que es de suma importancia y fundamental la madurez que alcance el software libre. Sin embargo, existe una ausencia en el uso o aplicación de los modelos de madurez de software libre, para el desarrollo de software.
Referencias bibliográficas
De Freitas, V. (2018). Modelo de madurez en sistema de gestión del conocimiento, desde un enfoque holístico. Negotium: revista de ciencias gerenciales, 39(13), 5-31. https://www.revistanegotium.org.ve
ElFadl, R.A., Salah, A. y Kamel, A. (2018). Review on Quality Models for open source software and its reflection on social coding. International Research Journal of Electronics and Computer Engineering, 4(.), 1-6. DOI: http://dx.doi.org/10.24178/irjece.2018.4.1.01
Etheredge, J. (2009). How do we measure maturity in software?https://www.simplethread.com/how-do-we-measure-maturity-in-software/
Infosys Digital. (2016). Open-source software (OSS) wave of the future. http://www.infosysblogs.com/infosysdigital/2016/06/open_source_software_wave_of_future.html
Jiménez Puello, J. (2021). Aplicación de modelos de madurez de software libre, en las organizaciones de software en Panamá (Tesis de Maestría, Universidad Internacional de Ciencia y Tecnología). https://www.idi-unicyt.org/wp-content/uploads/2021/02/Tesis-de-Maestria-de-Jose-Jimenez-version-definitiva.pdf
Mark, P., Curtis, B., Chrissis, M. y Webber, S. (1993). Capability maturity model, version 1.1. IEEE Software, 10(.), 7-27.
SEI, (2010). CMMI® para Desarrollo, Versión 1.3 CMMI-DEV, V1.3. TECHNICAL REPORT CMU/SEI-2010-TR-033
Singh, H.J. y Singh, S. (2015). Open-Source Software-Its Impact on Software Industry in India. International Journal of Computer Science and Technology, 6(3), 79-83. https://www.ijcst.com/vol63/aetm2015/18-Harmaninder-Jit-Singh-Sidhu.pdf
Tiwari, V. (2010). Some observations on open-source software development on software engineering perspectives. International Journal of Computer Science & Information Technology. 2 (6), 13-125. http://airccse.org/journal/jcsit/1210ijcsit11.pdf
Vaughan-Nichols, S.J. (2015). It's an open-source world: 78 percent of companies run open-source software. https://www.zdnet.com/article/its-an-open-source-world-78-percent-of-companies-run-open-source-software/