• Nenhum resultado encontrado

Analysis of the relationship of the level of maturity process with the Success of Open Source Projects

N/A
N/A
Protected

Academic year: 2017

Share "Analysis of the relationship of the level of maturity process with the Success of Open Source Projects"

Copied!
7
0
0

Texto

(1)

21

Analysis of the relationship of the level of maturity process with the Success of

Open Source Projects

Análisis a la Relación del Nivel de Madurez de los Procesos con el Éxito de los

Proyectos de Código Abierto

Gina Pintendi

Tecnologías HCL. Gina.P(AT)hcl.com

INFORMACIÓN DEL ARTÍCULO

Tipo de artículo: Investigación.

Historia del artículo Recibido: 19-07-2012 Correcciones: Aceptado: 25-10-2012

Categories and Subject Descriptors D.2.9 [Software Engineering]: Management – Software process models.

General Terms

Software Engineering, Logic or Abstraction.

Keywords

Maturity level, improved quality, free software, open source.

Palabras clave

Nivel de madurez, mejoramiento de la calidad, software libre, código abierto.

ABSTRACT

The success of free software and open source projects has sparked interest in the use of his model to develop mature software. However, its ad hoc nature can also produce poor quality software or failures in projects. In this article it is analyze the SourceForge.net projects described in order to test the hypothesis that under the open source model there is a relationship between the levels of maturity of process with success of the projects. The processes are identified as key factors in the success of free software projects and this study addresses the question of whether their level of maturity differs notably between successful and unsuccessful projects. The knowledge gained can be applied to improve the processes used in both projects free software as in software engineering in general.

RESUMEN

El éxito del software libre y de los proyectos de código abierto ha despertado el interés en la utilización de su modelo para desarrollar software maduro. Sin embargo, su naturaleza ad hoc también puede producir software de mala calidad o fracasos en los proyectos. En este artículo se hace un análisis a los proyectos descritos en SourceForge.net con el objetivo de probar la hipótesis de que bajo el modelo de código abierto existe una relación entre el nivel de madurez de los procesos con el éxito de los proyectos. Los procesos se identifican como factores clave para el éxito de los proyectos de software libre y en este estudio se aborda la cuestión de si su nivel de madurez particular difiere entre proyectos exitosos y no exitosos. Los conocimientos obtenidos se pueden aplicar para mejorar los procesos utilizados tanto en los proyectos de software libre como en los de Ingeniería de Software en general.

© 2012 IAI. All rights reserved.

1. INTRODUCCIÓN

El modelo de desarrollo utilizado en los proyectos de software libre y de código abierto es único en muchos aspectos. Tradicionalmente, estos proyectos se caracterizan por dos factores que tienen impacto en su calidad y gestión [1, 2]: (1) los llevan a cabo voluntarios y (2) los participantes están distribuidos globalmente.

Además, el modelo está determinado por la naturaleza del software libre en sí, porque todo el código fuente está disponible y se comparte con otros. Raymond [3, 4] sugiere que este intercambio conduce a un alto nivel de revisión por pares e incentiva la participación del usuario. En la investigación de la Ingeniería de Software [5] se ha demostrado que esta revisión contribuye a mejorar la calidad del software, lo que puede ofrecer una explicación a los niveles de calidad encontrados en algunos proyectos exitosos, como Linux, Apache y Debian.

Si bien ha habido un incremento en la investigación alrededor del método del software libre y del código abierto, se ha prestado poca atención a cómo incorporarle los principios de la Ingeniería de Software tradicional [6]. Dado que los voluntarios que trabajan en software libre a menudo lo hacen impulsados por motivaciones diferentes a las de las compañías que desarrollan software propietario [7], no está claro si todas las estrategias postuladas en la Ingeniería de Software se pueden aplicar en los proyectos de código abierto. Sin embargo, esta cuestión es importante si se encuentran técnicas que incrementen el éxito del modelo de desarrollo de código abierto.

El proyecto del que se origina este artículo tiene como objetivo investigar si el nivel de madurez de los procesos utilizados en los proyectos de código y aplicados por los voluntarios está conectado con su éxito. Aunque la mayor parte de la investigación en Ingeniería de Software acerca RACCIS, 2(2), 21-27, 2012.

Revista Antioqueña de las

Ciencias Computacionales y la Ingeniería de Software

ISSN: 2248-7441

www.fundacioniai.org/raccis

(2)

22 del código abierto se ha concentrado en los proyectos

exitosos ―Apache [8], Debian [9, 10], GNOME [11] y Linux [12]―, se puede afirmar que existe igualmente un alto número de estos proyectos que han fallado y que hasta el momento no se han estudiado en detalle [13]. La hipótesis es que existe una relación entre el nivel de madurez de los procesos y el éxito del proyecto, especialmente en lo relacionado con la coordinación y la comunicación. En el proceso de investigación se identificaron las áreas clave del proceso de software relacionadas con el éxito de los proyectos. Factores que dan una idea de la importancia de los distintos procesos y contribuirá al desarrollo de más proyectos exitosos.

2. METODOLOGÍA

Este artículo se basa en un estudio de caso empírico que involucró 80 proyectos alojados en SourceForge.net. Actualmente, este sitio aloja más de 95.000 proyectos de software libre y de código abierto, y tiene más de un millón de desarrolladores registrados. El nivel de madurez de los proyectos seleccionados aleatoriamente fue evaluado utilizando una valoración simple diseñada para este propósito. El objetivo central en el desarrollo de esta valoración fue la creación de un mecanismo general para la evaluación del nivel de madurez de los procesos, en lugar de uno específico para la pregunta de investigación. Por tanto, el formulario de evaluación puede ser utilizado por otros investigadores y profesionales para juzgar el nivel de madurez de todo tipo de proyectos de código abierto.

2.1 Evaluación de los proyectos

La evaluación aplicada se puede utilizar para evaluar aspectos importantes del nivel de madurez de los proyectos de software libre y de código abierto. Se centra en el nivel de madurez de los procesos relacionados con la coordinación y la comunicación debido a su valor en los proyectos distribuidos [1]. Para hacerlo se utilizaron los datos empíricos que típicamente están disponibles en los proyectos de código abierto; su validez se supone alta, porque la mayoría de preguntas del instrumento se pueden responder de forma objetiva y sólo requieren un poco de juicio personal. Aunque la inter-evaluación y la fiabilidad de repetición de la prueba han sido comprobadas estadísticamente, ambas mostraron resultados fiables en este estudio de caso.

El proceso de la evaluación incorporó ideas de Ingeniería de Software y de código abierto y se basó en los modelos que postulan la importancia de una calidad alta y de procesos disciplinados. Se hizo hincapié en los procesos que pueden ser importantes en los proyectos de código abierto y específicamente se tuvo en cuenta la naturaleza distribuida y voluntaria del software libre y de estos proyectos. Debido a que el software libre y el código abierto benefician en gran medida a la comunidad alrededor de un proyecto [3, 14], los procesos para atraer voluntarios e integrarlos al mismo son de mucha importancia.

La evaluación se agrupó en cinco categorías teniendo en cuenta los diferentes aspectos de los proyectos de

software libre. La mayoría de preguntas fueron de tipo cerradas, es decir, se podían responder con un simple o no porque se referían a la presencia o a la disponibilidad de un proceso o parte de una infraestructura. Algunas preguntas tenían un grado de medida más preciso porque evaluaban el nivel de madurez de los procesos.

Control de versiones. La primera pregunta de la

encuesta se refiere al control de versiones y a la gestión de la configuración del proyecto. El uso de herramientas de control de versiones, como CVS [15], les permite a múltiples voluntarios trabajar con poca coordinación en el mismo código. Por otra parte, la amplia disponibilidad de repositorios de código los alienta a revisar el código, a eliminar los defectos, o a añadir nuevas funcionalidades. Por lo tanto, esta pregunta indaga si se utiliza un sistema de control de versiones y si está o no disponible públicamente.

Listas de correo. Las listas de correo son importantes en los proyectos de software libre porque crean un medio eficaz y rápido para la comunicación y la coordinación. Además, a menudo se utilizan para responder a las preguntas que plantean usuarios y desarrolladores, y por lo tanto alientan a que más personas participen y contribuyan al proyecto. Esta pregunta consulta si existen una o varias listas de correo especializadas o si no existen. Las listas dedicadas a diferentes temas ayudan a mantener el enfoque y pueden existir de usuarios, de desarrolladores y de anunciantes. En la encuesta también se tiene una pregunta acerca de la disponibilidad de archivos de listas de correo, porque ofrecen la posibilidad de seguir los debates anteriores y encontrar respuestas ofrecidas previamente. Esto reduce el tiempo que dedican los desarrolladores a responder preguntas ya tratadas, y se reduce la barrera de ingreso para desarrolladores potenciales.

Documentación. La tercera categoría indaga por la

disponibilidad de documentación para usuarios y desarrolladores. Puede haber una relación importante entre la documentación del usuario y el éxito de un proyecto, porque es posible que no sean capaces de utilizar el software si no está bien documentado. La documentación de un desarrollo dedicado podría alentar a nuevos voluntarios a contribuir, con lo que se reduce la curva de aprendizaje asociada cuando un integrante se involucra en el proyecto. Si todos se adhieren a los estándares de codificación, que se describen en la documentación para los desarrolladores, se podría incrementar la capacidad de mantenimiento y la calidad del código fuente.

(3)

23 pruebas unitarias, y la tercera comprueba la presencia

de un sistema de seguimiento de defectos o de rastreo de problemas. Este sistema podría alentar a los usuarios a que informen los defectos, para que los desarrolladores los eliminen y así mejorar la calidad del software. También puede ser un buen mecanismo para capturar retroalimentación y garantizar que no se pierda la posible entrada.

Portabilidad. La última pregunta indaga por la

portabilidad del software, porque un producto puede ser convertido a una amplia variedad de plataformas, lo que atrae a más usuarios que puedan contribuir al proyecto. Por otra parte, convertir software a una nueva plataforma a menudo pone de relieve los defectos que se manifiestan sólo en circunstancias especiales. Esta pregunta diferencia la portabilidad entre tres niveles: (1) dirigida específicamente a una plataforma, (2) soporta un conjunto de plataformas o (3) soporta múltiples plataformas a través de un proceso que identifica automáticamente las características de un sistema.

2.2 Estudio de caso

Se seleccionaron 80 proyectos de SourceForge.net y se aplicó un proceso de valoración para evaluar el nivel de madurez. Este sitio presenta una alta popularidad para alojar proyectos de software libre y de código abierto y tiene una base de datos de más de 95.000 proyectos; cuenta con más de un millón de desarrolladores registrados y ofrece diversos tipos de infraestructura, como CVS, listas de correo y sistemas de seguimiento a problemas. Aunque la investigación se aplicó sobre proyectos alojados en este sitio los resultados obtenidos también se pueden replicar a proyectos open source alojados en otros portales. Lo mismo se puede hacer con la valoración aplicada al estudio de caso, porque el detalle con que se describe permite que otros investigadores la utilicen.

Para alcanzar el objetivo de investigar si el nivel de madurez de los procesos empleados está relacionado con el éxito de un proyecto se seleccionaron al azar 40 proyectos exitosos y 40 fracasados. SourceForge.net proporciona estadísticas elaboradas que permiten contrastar los resultados obtenidos. Aunque el número de descargas no equivale ni implica necesariamente calidad o incluso éxito [13], es una métrica del nivel de uso, porque los usuarios de software de código abierto lo

deben descargar activamente en lugar de utilizar aplicaciones pre-instaladas. Además, la ventaja de utilizar esta métrica es que es objetiva e independiente, porque son los usuarios quienes la determinan y no el investigador.

Primero se seleccionaron 40 proyectos que estuvieran en la lista de los 100 más descargados. Dado que en este estudio de caso la métrica de comparación es un criterio importante, no se seleccionaron proyectos que no crearan componentes software, pero sí se tuvieron en cuenta los que reunieran programas creados en otros lugares. Tampoco se seleccionaron los que no disponían de código fuente, porque esta característica permite una evaluación más completa. De acuerdo con estos criterios se excluyeron 33 proyectos que estaban por fuera del top 100 y, de los proyectos restantes, se seleccionaron 40 al azar.

Para seleccionar los proyectos fallidos se empleó la métrica de descarga. El valor del percentil se tomó desde septiembre de 2003, porque esto indica cómo se ubica un proyecto con relación a los demás. Los proyectos exitosos seleccionados presentaron un percentil promedio de 97,66% (σ = 2,78). Teniendo en cuenta este valor se eligió de forma arbitraria un límite superior de 75% como el criterio para un proyecto fallido, porque es considerablemente menor que el promedio de colocación de un proyectos exitoso. En el proceso de selección de los proyectos fallidos se hizo evidente que el número promedio era mucho más pequeño que el de los que tienen éxito. Aunque esta observación es interesante y debería ser corroborada con mayor detalle en el futuro, para este estudio de caso es problemática porque los dos grupos tenían que poseer características similares y sólo diferir en su éxito. Si los grupos diferían en otras formas no fue posible ver claramente su relaciona sólo con el éxito del proyecto. Por lo tanto, los fallidos fueron seleccionados al azar hasta que este grupo tuviera características similares a las de los proyectos exitosos. En particular, se tuvieron en cuenta los factores de edad, líneas de código y estado de desarrollo, como se puede observar en la Tabla 1. El estado de desarrollo se basó en la categorización que hace SourceForge.net y las líneas de código se determinaron con el programa SLOCCount [9, 16]. Al final, los grupos se compararon de acuerdo con estas variables sin una diferencia significativa. Sin embargo, diferían altamente en cuanto a su éxito.

Tabla 1 Media y desviación estándar de los proyectos exitosos y fracasados

Edad LOC Estado Categorización

Media Exitosos 1163 126500 4.43 97.66%

Fracasados 1066 78140 4.11 41.18%

Desviación estándar Exitosos 298 167995 1.06 2.78% Fracasados 291 123109 0.98 22.09%

Los 80 proyectos fueron evaluados por dos investigadores, cada uno seleccionó 40 proyectos al azar. La evaluación se realizó a ciegas, es decir, no sabían si un proyecto se consideraba exitoso o no. Los investigadores eran estudiantes de posgrado de Ciencias

(4)

24 diseñó de forma que se garantizara una buena validez, el

hecho de que los investigadores tuvieran poca familiaridad con el código abierto fortalece las bases metodológicas de este estudio.

Luego de reunir y verificar los datos y de culminar y verificar las evaluación, se realizaron diversas pruebas estadísticas. La prueba de chi-cuadrado se utilizó para los datos nominales y la de Wilcoxon para los datos ordinales. Todas las pruebas se realizaron con el programa GNU R versión 1.8.0 y se llevaron a cabo con α =

0,05 ―la probabilidad de rechazar la hipótesis estadística

prueba cuánto, de hecho, esa hipótesis es verdadera―. La hipótesis nula para todas las pruebas fue que no existe diferencia entre los proyectos exitosos y los fracasados, además, todas las pruebas fueron de dos caras.

3. RESULTADOS Y CONCLUSIONES

Se analizaron los datos para cada pregunta del formato de valoración. A continuación se presentan los resultados individuales, seguidos por una discusión y un estudio prospectivo para futuras investigaciones.

3.1 Resultados

En total se llevaron a cabo nueve pruebas estadísticas correspondientes a las preguntas que conforman la evaluación. Como era de esperar debido al número, algunas pruebas revelaron diferencias significativas en los dos grupos, mientras que otras no lo hicieron. El control de versiones es uno de los aspectos en los que estos grupos difieren significativamente: mientras que los proyectos exitosos muestran 1,75 puntos en promedio,

los fallidos tiene 1,275. Así mismo, en la disponibilidad de listas de distribución también difieren: los exitosos no sólo hacen mejor uso de estas listas, obteniendo 1,55 puntos en promedio, en comparación con los 0,925 de los fracasados, sino que también proporcionan archivos de sus discusiones en más casos; el 80% de los proyectos exitosos ofrecen archivos de correo, mientras que sólo la mitad de los fallidos lo hace. La tercera categoría de la evaluación se relaciona con la documentación, como se observa en la Tabla 2.

Tabla 2 Disponibilidad de la documentación

Usuario Desarrollador

Exitosos Disponible 23 (57.5%) 10 (25.0%) No disponible 17 (42.5%) 30 (75.0%)

Fallidos Disponible 24 (60.0%) 5 (12.5%) No disponible 16 (40.0%) 35 (87.5%)

Los grupos no difieren significativamente en la disponibilidad de documentación para el usuario o para los desarrolladores. Alrededor del 60% de los proyectos ofrece documentación para el usuario y sólo el 25% de los exitosos y el 12,5% de los fracasados la ofrecen para los desarrolladores. La cuarta categoría, pruebas, muestra resultados combinados. Los proyectos significativamente más exitosos ofrecen versiones candidatas y hacen uso de un sistema de seguimiento de defectos. Sin embargo, los grupos no difieren mucho en el uso de pruebas unitarias o de regresión. En la Tabla 3 se puede observar estas diferencias.

Tabla 3 Presencia de facilidades de pruebas

Versiones candidatas

Pruebas automáticas

Seguimiento a defectos

Exitosos Utilizan 22 (55.0%) 5 (12.5%) 35 (87.5%) No utilizan 18 (45.0%) 35 (87.5%) 5 (12.5%)

Fallidos Utilizan 11 (27.5%) 8 (20.0%) 12 (30.0%) No utilizan 29 (72.5%) 32 (80.0%) 28 (70.0%)

En resumen, los proyectos más exitosos usan un sistema de seguimiento de defectos y más de la mitad ofrece versiones candidatas, pero pocos utilizan conjuntos de pruebas. Por otro lado, sólo el 30% de los proyectos fracasados utiliza un sistema de seguimiento de defectos y tienen versiones candidatas disponibles. Finalmente, no se encontraron diferencias importantes entre los grupos con respecto a la portabilidad. Los dos grupos tienen cifras casi iguales: los exitosos tienen un promedio de 1,325 puntos y los fallidos 1,375.

3.2 Discusión

El análisis estadístico de los datos obtenidos en la evaluación de los grupos de proyectos muestra que en 5 de las 9 pruebas se encontraron diferencias significativas. En los casos en los que se encontraron mayores diferencias se debe a que los exitosos emplean un proceso más maduro que los fracasados. Debido al número de pruebas en las que difieren se puede concluir que el nivel de madurez de los procesos empleados por un proyecto sí está vinculado a su éxito. Por lo tanto, con los resultados se demuestra la existencia de una relación entre los

procesos utilizados por un proyecto y su éxito, pero en este estudio no se investigó la naturaleza de esta relación. Particularmente, no se puede hacer conclusiones sobre una posible causalidad entre los procesos de madurez y el éxito. Además, se debe llevar a cabo una amplia investigación acerca de los aspectos cualitativos de la relación entre el nivel de madurez de los procesos y el éxito. Finalmente, aunque esta investigación demuestra que el nivel de madurez de los procesos desempeña un papel importante, puede haber otros factores que no se consideraron en el estudio.

(5)

25 privado limita el acceso de los colaboradores

potenciales. Además, un repositorio CVS disponible al público les permite a los colaboradores monitorear lo que otras personas están trabajando, lo que permite que múltiples personas puedan trabajar juntas de manera eficiente y de forma distribuida. Así como para los sistemas de seguimiento de defectos, los sistemas de control de versiones públicas pueden atraer a más voluntarios porque los usuarios pueden ver qué se necesita y cómo involucrarse.

Listas de distribución. De manera similar a las

herramientas de control de versiones, las listas de correo tienen una importante función para la coordinación de un proyecto. Las listas archivadas pueden remplazar hasta cierto punto la documentación, porque en ellas los usuarios encuentran respuesta a las preguntas que se ya han formulado. Los potenciales voluntarios pueden seguir los debates anteriores y aprender fácilmente para participar en el proyecto. De acuerdo con los resultados de este estudio, tanto para las herramientas de control de versiones como para las listas de correo, no es claro si un proyecto exitoso requiere de este tipo de infraestructura para prosperar, o si la implementación de la misma atrae a más voluntarios y lograr mayor éxito. La hipótesis a la que se llega aquí es que no existe una causalidad clara y que ambos se

condicionan mutuamente. Sin embargo, es claro que las

listas y las herramientas son factores clave para el éxito de los proyectos de código abierto.

Documentación. La presencia de documentación para

el usuario y el desarrollador no es un buen indicador para el éxito de un proyecto. Mientras que más de la mitad de los proyectos de este estudio ofrecen documentación a los usuarios, un número mucho más pequeño proporciona documentación para los desarrolladores. Esta diferencia sugiere que los hallazgos se deben interpretar de manera diferente. Debido a que un alto número de proyectos ofrece documentación para los usuarios se puede afirmar que éste es un factor importante en los proyectos de software libre, sin embargo, por sí solo no determina el éxito. Por otra parte, la documentación para los desarrolladores no es muy común en los proyectos de software libre. Una razón puede ser que los potenciales interesados encuentran más respuestas a sus preguntas en otras fuentes, como en los archivos de listas de correo o en el mismo código fuente. Si no existe una guía acerca del estilo y la lógica de codificación, ellos las pueden derivar utilizando directamente el código fuente del proyecto y luego seguir el proceso de desarrollo en las listas de correo, y pueden aprender las reglas observándolos en acción [17]. Esto sugiere que la documentación escrita no es necesaria, porque ya está indirectamente disponible. Los desarrolladores competentes podrán encontrar toda la información desde otras fuentes o mediante la observación directa del proceso. Aunque esta explicación no parece muy plausible queda latente una cuestión: sería interesante estudiar la calidad del

código de los proyectos de software libre y de código abierto para investigar si la disponibilidad de la documentación para los desarrolladores repercute en una mayor calidad del código. También es posible que la disponibilidad de una buena documentación atraiga un número mayor de potenciales desarrolladores que contribuyan al proyecto.

Pruebas sistemáticas. El análisis de los procesos que implican pruebas demuestra que los proyectos exitosos hacen más uso de versiones candidatas y de sistemas de seguimiento de defectos que los proyectos fallidos. No se encontraron diferencias en la presencia de conjuntos de pruebas automatizadas. La disponibilidad de versiones candidatas se toma como un indicador de un plan de liberación bien definido y, aunque puede servir para revelar la calidad cualitativa del estudio y para comparar las estrategias de lanzamiento de los diferentes proyectos, los hallazgos sugieren que una estrategia de liberación clara unida a un buen plan de pruebas contribuye al éxito del proyecto. Además, los sistemas de seguimiento de defectos juegan un papel importante. Mientras que los exitosos y fallidos en este estudio no difieren significativamente en tamaño, los exitosos son más propensos a recibir retroalimentación de los usuarios. Esta información se debe capturar adecuadamente para luego analizarla y priorizarla. Ninguno de los dos grupos hace mucho uso de conjuntos de pruebas automatizadas. Una razón puede ser la naturaleza misma del código abierto. Raymond [3] afirma que este tipo de proyectos se beneficia de la amplia comunidad que los rodea y que proporciona informes de defectos. Una vez que se produce una regresión es muy probable que alguno de los usuarios se dé cuenta rápidamente y la reporte. Esto podría ser una razón por la que se invierte poco tiempo en aplicar pruebas automatizadas, sin embargo, queda por ver si su uso podría incrementar la calidad del producto. Las pruebas automatizadas les permitirían a los voluntarios dedicar menos tiempo a rastrear regresiones y dedicarse a eliminar otros defectos o a implementar nuevas características.

Portabilidad. Este factor es representativo en ambos grupos. Una probable razón es que la filosofía Unix siempre ha promovido la portabilidad [18]. Conectado a esto se encuentra la disponibilidad del software, como autoconf [19, 20], lo que hace que sea relativamente fácil para una pieza de software determinar automáticamente las características de una plataforma y adaptarse a ella. Otro factor que podría contribuir a la portabilidad es la naturaleza diversa de los voluntarios que participan en proyectos de software libre.

(6)

26 proyectos de software libre y de código abierto se

benefician del uso de procesos maduros. Aunque este

estudio se centra en procesos relacionados con la coordinación y la comunicación ―factores importantes en los proyectos distribuidos― el proceso de código abierto también se podría beneficiar de otros que utilizan los proyectos tradicionales de Ingeniería de Software. Este hallazgo contrasta con la sugerencia de algunos desarrolladores de código abierto de que su modelo de desarrollo es único y que no se beneficiarán del nivel de madurez de los procesos o las ideas tradicionales [6].

3.3 Trabajo Futuro

Los resultados en esta investigación corroboran la hipótesis de que los proyectos de software libre y de código abierto se benefician de procesos maduros. Además, apoyan la noción de que algunas ideas de la Ingeniería de Software se pueden aplicar a este modelo de desarrollo. Estos resultados tienen especial valor para demostrar la importancia de continuar con la investigación en esta área y abordar algunas de las cuestiones que quedaron planteadas en este artículo.

Si bien se pudo demostrar que la documentación para el desarrollador no contribuye al éxito de un proyecto, se acepta que su solidez puede llevar a una mayor calidad del código fuente. Un futuro estudio que compare la calidad del código de proyectos con y sin buena documentación podría arrojar más luz acerca de esta cuestión.

Por otra parte, mientras que en los proyectos de software libre no es tan común el uso de conjuntos de pruebas automatizadas, pueden ofrecer ciertos beneficios a los participantes voluntarios en un proyecto. Otra cuestión relacionada con la prueba es si los proyectos que utilizan sistemas de seguimiento de defectos tienen una mayor tasa de eliminación que los proyectos que utilizan técnicas menos fiables. Por último, un enfoque cualitativo comparando diferentes estrategias de liberación podría conducir a directrices específicas en desarrollo que promuevan estrategias exitosas para la distribución de software de código abierto, probado y estable para usuarios finales

4. CONCLUSIONES

Se ha observado en este trabajo que en muchos aspectos el software libre y los proyectos de código abierto son diferentes a los proyectos tradicionales de Ingeniería de Software. Esto se debe principalmente a que los primeros normalmente los realizan voluntarios distribuidos por todo el mundo. Esta diferencia plantea la cuestión de si las ideas tradicionales se pueden aplicar a los proyectos de código abierto. Se ha propuesto que algunos conocimientos de los modelos de calidad de software, como la demanda por procesos maduros, también se podrían aplicar a estos proyectos. Algunos procesos enraizados en la Ingeniería de Software, como la exigencia de especificaciones de requisitos y otras guías formales, podrían ser incompatibles con la motivación de los participantes voluntarios. Sin embargo, otros pueden ser unificados en el modelo de desarrollo de código abierto y

contribuir a su éxito y calidad. En particular, los procesos relacionados con la coordinación y la comunicación parecen ser necesarios para los proyectos de software libre.

Para investigar esta hipótesis se llevó a cabo un estudio de caso con la participación de 80 proyectos elegidos al azar en SourceForge.net. Se tomaron 40 proyectos exitosos y 40 fracasados y se evaluaron en cuanto al nivel de madurez en varios aspectos. Los resultados de los análisis estadísticos mostraron que la madurez de algunos procesos se relaciona con el éxito del proyecto. Además, se identificó la importancia de utilizar herramientas de control de versiones y de una comunicación efectiva a través de listas de correo, y se encontraron varias estrategias eficaces relacionadas con las pruebas. Estos resultados aportan valor para los profesionales, porque les indican cuáles áreas merecen más atención.

Los hallazgos de este estudio destacan la importancia de aplicar conocimientos de Ingeniería de Software en el modelo de desarrollo de código abierto. Se sugieren otras investigaciones para explorar con mayor detalle algunos de los resultados de este trabajo, como una comparación exhaustiva de la calidad del código y una evaluación cualitativa de las estrategias de liberación. Esto contribuirá a incrementar la calidad y el éxito de los proyectos de software libre y de código abierto.

5. REFERENCIAS

[1] Michlmayr, M. (2004). Managing volunteer activity in free

software projects. Proceedings of the 2004 USENIX Annual

Technical Conference, FREENIX Track, pp. 93-102. Boston, USA.

[2] Michlmayr, M. & Mako, H.B. (2003). Quality and the

reliance on individuals in free software projects.

Proceedings of the 3rd Workshop on Open Source Software Engineering, pp. 105-109. Portland, OR, USA. [3] Raymond, E.S. (2010). The Cathedral and the Bazaar.

Snowball Publishing.

[4] Raymond, E.S. (1999). Linux and open-source success. IEEE Software, 16(1), pp. 85-89.

[5] Fagan, M.E. (1976). Design and code inspections to reduce

errors in program development. IBM Systems Journal,

15(3), pp.182-211.

[6] Massey,B. (2003). Why OSS folks think SE folks are

clue-impaired. Proceedings 3rd Workshop on Open Source

Software Engineering, pp. 91-97. University College Cork, Ireland.

[7] Hars, A. & Ou, S. (2000). Why is open source software viable? A study of intrinsic motivation, personal needs, and

future returns. Proceedings of the Sixth Americas

Conference on Information Systems (AMCIS), pp. 486-490. Long Beach, California.

[8] Mockus, A.; Fielding, R.T. & Herbsleb, J.D. (2002). Two case studies of open source software development: Apache and

Mozilla. ACM Transactions on Software Engineering and

Methodology, 11(3), pp. 309-346.

[9] González-Barahona, J.M. (2001). Counting Potatoes: The

Size of Debian 2.2. Upgrade, 2(6), pp. 60-66.

[10] Robles, G.; Gonzalez-Barahona, J.M. & Michlmayr, M. (2005). Evolution of volunteer participation in libre

(7)

27 the First International Conference on Open Source

Systems, pp. 100-107. Genova, Italy.

[11] Koch, S. & Schneider, G. (2002). Effort, cooperation and

coordination in an open source software project: GNOME.

Information Systems Journal, 12(1), pp. 27-42.

[12] Schach, S.R. et al. (2002). Maintainability of the Linux

kernel. IEE Proceedings – Software, 149(1), pp. 18-23.

[13] Howison, J. & Crowston, K. (2004). The perils and pitfalls

of mining Source-Forge. Proceedings of the International

Workshop on Mining Software Repositories (MSR), pp. 7-11. Edinburgh, UK.

[14] Senyard, A. & Michlmayr, M. (2004). How to have a

successful free software project. Proceedings of the 11th

Asia-Pacific Software Engineering Conference, pp. 84-91. Busan, Korea.

[15] Vesperman, J. (2003). Essential CVS. O’Reilly & Associates.

[16] Wheeler, D.A. (2001). More than a gigabuck: Estimating

GNU/Linux’s size. Online [Mar. 2012].

[17] Krogh, G.; Spaeth, S. & Lakhani, K.R. (2003). Community, joining, and specialization in open source software

innovation: a case study. Research Policy, 32(7), pp.

1217-1241.

[18] Raymond, E.S. (2003). The Art of Unix Programming. Addison-Wesley.

[19] Vaughan, G.V. (2000). GNU Autoconf, Automake, and

Libtool. SAMS Publishing.

[20] Oram, A. & Loukides, M. (1996). Programming With GNU

Imagem

Tabla 1 Media y desviación estándar de los proyectos exitosos y fracasados  Edad  LOC  Estado  Categorización
Tabla 3 Presencia de facilidades de pruebas  Versiones  candidatas  Pruebas  automáticas  Seguimiento a defectos  Exitosos  Utilizan  22 (55.0%)  5 (12.5%)  35 (87.5%)  No utilizan  18 (45.0%)  35 (87.5%)  5 (12.5%)  Fallidos  Utilizan  11 (27.5%)  8 (20.0

Referências

Documentos relacionados

Alguns ensaios desse tipo de modelos têm sido tentados, tendo conduzido lentamente à compreensão das alterações mentais (ou psicológicas) experienciadas pelos doentes

Dos objectivos traçados no nosso trabalho, verificamos que da análise quantitativa da transição das Lux GAAP para as IFRS nas diferentes rubricas, bem como nos

Além disso, o Facebook também disponibiliza várias ferramentas exclusivas como a criação de eventos, de publici- dade, fornece aos seus utilizadores milhares de jogos que podem

Para cada utilização de uma bancada de labo- ratório, a base de dados estará também preparada para armazenar a informação acerca da hora de início e de fim de utilização de

No campo, os efeitos da seca e da privatiza- ção dos recursos recaíram principalmente sobre agricultores familiares, que mobilizaram as comunidades rurais organizadas e as agências

Na hepatite B, as enzimas hepáticas têm valores menores tanto para quem toma quanto para os que não tomam café comparados ao vírus C, porém os dados foram estatisticamente

Por essa razão, a proposição de um sistema informatizado de apoio ao monitoramento dessas pragas de eucalipto, que fazem uso de cartões-armadilha adesivos amarelos, auxiliaria