https://doi.org/10.22463/2011642X.2011
Recibido: 6 de junio de 2013 - Aprobado: 30 de junio de 2013
Como citar:
Cuesta-Quintero, B. ., & Parra-Valencia, J. A. (2013). Cooperación en el desarrollo de proyectos de software libre. Revista Ingenio, 6(1), 20–25., 2013
Este artículo presenta un conjunto de elementos pertinentes a los proyectos de software libre y a teorías de la cooperación, a partir de reconocer cómo desarrolladores distribuidos geográficamente en el mundo encuentran la motivación para crear comunidad alrededor del software libre y desarrollar software exitoso. También se estudió casos de éxito a nivel mundial para mostrar cómo los participantes, a través de una comunicación mediada por computador, resuelven conflictos de racionalidad individual y grupal usando escenarios de confianza y reciprocidad sobre el uso de recursos comunes que permiten la cooperación para el desarrollo y mantenimiento del software libre.
Palabras clave: Cooperación, Desarrolladores, Sistemas, Software Libre
This paper presents a set of elements for the relevant cooperation to free software projects and theories of cooperation, from geographically distributed developers recognized as the world find the motivation to create community around free software and successful software development. Successful cases worldwide was also studied to show how participants through a computer-mediated communication to resolve conflicts using individual and group rationality scenarios of trust and reciprocity on the use of common resources that allow cooperation for development and maintenance free software.
Keywords: Cooperation, Developers, Systems, Free Software.
La disponibilidad de código fuente y la interactividad que puede tener un desarrollador al comunicarse mediante el uso de sistemas y herramientas telemáticas representan el éxito de los proyectos de software libre. Esto lo afirma (Raymond, 1999), en “La catedral y el bazar” y además explica como en el modelo de desarrollo libre con respecto al propietario se considera a los usuarios desarrolladores y así, puede darse el caso de que algún desarrollador encuentre un error y lo solucione o que una persona diferente a quien descubra el error sea la que lo entienda y corrija.
El software libre se asocia a un bien común en el que la acción colectiva representada en el esfuerzo de muchos desarrolladores está presente para su creación ó mantenimiento (Schweik & English, 2007). Por ser un bien común no se puede excluir a un individuo de los beneficios del bien, así tenga poca ó nada de motivación por contribuir voluntariamente en su producción ó mantenimiento. Estos individuos se enfrentan a situaciones de cooperación social y se les conoce como free-riders (Ostrom, 1990). En este contexto los free-riders son programadores, probadores o documentadores que utilizan software libre, pero se enfrentan a situaciones donde no contribuyen en su mantenimiento. Estas situaciones de racionalidad individual y colectiva es lo que se denomina un dilema social, siendo uno de los ejemplos más famosos de modelos de dilemas sociales llamado “la tragedia de los comunes” (Hardin, 1968). Hardin describe a un grupo de pastores que comparten una parcela como recurso común y que al tomar decisiones individuales en poner más vacas de las posibles pueden llevar al peor resultado para todos. Si se contextualiza con el software libre, no sería un problema de sobre apropiación de recursos comunes, sino con el hecho de que un proyecto de software libre quede abandonado por falta de recursos humanos disponibles para desarrollar y mantener el software (Schweik, 2005).
MetodologíaEn la participación de proyectos de desarrollo de software libre, se encuentran desarrolladores inexpertos y expertos. Generalmente trabajan voluntariamente, pero también pueden recibir pago de empresas que patrocinan el desarrollo de software libre. Los inexpertos, se encuentran motivados por adquirir habilidades a través de reconocer el código fuente de otros y producir nuevo código que es sometido a un proceso de revisión y de esa evaluación demostrar competencias que le permitan relacionarse y conseguir de a poco reputación. (Feller & Fitzgerald, 2001). Los expertos, hacen parte de un grupo importante y reducido de desarrolladores que contribuyen en el desarrollo de la mayor parte del código principal de los proyectos. Esto se puede evidenciar en proyectos como el Kernel de Linux (Dempsey, et. Al., 1999) y GNOME (Koch & Schneider, 2002).
Se han realizado estudios utilizando Sourceforge.net, que es un sitio que aloja el más grande repositorio de software libre, donde se demuestra que el tamaño de los equipos de desarrollo de software libre generalmente son pequeños, lo que facilita la cooperación (Schweik& English, 2007)
En el desarrollo de proyectos de software libre también se presentan situaciones en la que algunos participantes quieren sacar provecho de los aportes realizados por otros participantes sin contribuir al mantenimiento del proyecto del software en curso. A estos participantes se les denomina free-riders y se caracterizan por no querer contribuir con tiempo y recursos al proyecto, lo que repercute en el éxito o abandono de los participantes del proyecto. (Baldwin & Clark, 2005).
Teorías de la CooperaciónSi un individuo contribuye en la construcción de un bien público se puede enfrentar a una situación en la que otros no contribuyan y si quieran sacar provecho del bien (free-riders). De esta manera los individuos buscan garantías en sus contribuciones para evitar que no haya cooperación (Ostrom, 2001).
El estudio de los dilemas sociales muestra como las personas pueden querer obtener el mejor resultado posible sin cooperar. Igualmente, si los miembros de un grupo contribuyen aun bien público que beneficie a todos replica en una de identidad de grupo y en una interdependencia basada en confianza que representa cooperación entre los sujetos. (Walker & Ostrom, 2007)
La figura 1, muestra cómo se pueden alcanzar niveles altos de cooperación entre un grupo de individuos que propenden por el bien colectivo antes que el individual a partir de relacionar tres condiciones iniciales: La confianza, que representa las expectativas que los individuos tienen sobre el comportamiento de los demás; La reciprocidad, que son las normas que los individuos aprenden de la socialización y las experiencias de la vida y la reputación en como los individuos crean identidades que proyectan sus intenciones y normas. (Ostrom, 1997).
La tabla 1, muestra que los repositorios de los proyectos de software libre representan una fuente importante para reconocer el aporte de los participantes en el desarrollo del software. Una de las métricas utilizadas para verificar el aporte de un desarrollador es el número de líneas de código (LOC) agregadas a un archivo. De esta manera, los estudios demuestran que proyectos como el Kernel de Linux, Gnome y Apache, fueron desarrollados por pequeños grupos de programadores que lograron una fácil comunicación y cooperación, siendo estos responsables de la mayor parte del código desarrollado en el proyecto. (Dempsey & Weiss & Jones & Greenberg, 1999), (Koch & Schneider, 2002), (Mockuset al., 2000).
Elliott & Scacchi muestran un estudio sobre la resolución de conflictos en las comunidades virtuales de proyectos de software libre, a partir de los valores del trabajo cooperativo y las creencias en el software libre. Para este caso se analizaron los registros de mensajes IRC que están representados en resúmenes (kernelcousins) de las discusiones de los desarrolladores sobre dos casos: el primero, el conflicto y debate sobre el uso de un gráfico no diseñado con herramientas libres y el segundo el uso de una herramienta no libre para la documentación. En ambos casos demuestran cómo se resuelven los conflictos a través de comunicaciones mediadas por computador y fundamentadas en la identidad de grupo de la comunidad virtual (Elliott & Scacchi, 2004).
La tabla 1 representa elementos de cooperación en proyectos de software libre, el principal elemento es el acceso libre al código fuente y como a partir de este recurso común se construye comunidad sobre Internet (González Barahona, J. et at ,2003). Para construir comunidad es necesario definir una identidad de grupo a partir de normas donde se establecen límites para los participantes (Kollock, & Smith, 1996), en donde se pueden resolver conflictos como lo demuestran estudios basados en repositorios sobre discusiones relacionadas en los proyectos donde los desarrolladores muestran actividad en listas de correo e IRC (Elliott & Scacchi, 2004). La cooperación alcanza mayores niveles en grupos pequeños de desarrollo sobre los archivos grandes, debido a que se facilita la comunicación (Koch & Schneider, 2002), (Mockuset al., 2000). Los resultados sugieren un conjunto de elementos que demuestran la importancia de la cooperación en el desarrollo de software libre.
ConclusionesEl tamaño del grupo de desarrollo de los proyectos de software libre repercute en la facilidad para que sus participantes cooperen, siendo más difícil en la medida en que aumenta el tamaño. Al ser más grande, crecen los costos en una comunicación mediada por computador, en donde la resolución de conflictos puede generar en el abandono del proyecto (Ostrom, 2001), (Koch & Schneider, 2002).
Se evidencia que las comunidades virtuales de software libre han podido desarrollar y mantener con éxito muchos proyectos a pesar de la tentación de los free-riders en poco ó ningún esfuerzo por contribuir a la comunidad (Ostrom, 1990), (Elliott & Scacchi, 2004) .
Axelrod, R. (1984). The Evolution of Cooperation, Basic Books, NY.
Cuesta, B.& Parra, J. (2013). Curso E-learning para el mejoramiento de las competencias de cooperación en el desarrollo de proyectos de software libre orientado a los lineamientos metodológicos de la Programación Extrema. Tesis de Maestría, Universidad Autónoma de Bucaramanga Colombia. Maestría en Software Libre.
De Joode, V. & De Bruijn; R. & Van Eeten, M. (2003). Protecting the Virtual Commons; Self-organizing open source communities and innovative intellectual property regimes, Information Technology & Law Series, T.M.C. Asser Press, The Hague.
Feller, J. & Fitzgerald, B. (2001). Understanding Open Source Software Development. Addison-Wesley, Reading, MA.
González Barahona, J. (2003). Introducción al software libre: El desarrollador y sus motivaciones. UniversitatOberta de Catalunya. pp. 91 - 245.
Hardin, G. (1968). The Tragedy of the Commons. Science, New Series, Vol. 162, No. 3859. pp. 1243-1248.
Koch, S. & Schneider, G. (2002). 'Effort, co-operation and co-ordination in an open source software project: GNOME', Information Systems Journal 12(1), pp. 27-42.
Koch, S. & Schneider, G. (2002b). “Results from software engineering research into open source development projects using public data,gkeitsfeldInformationsverarbeitungundInformationswirtschaft”, En: H.R. Hansen, W.H. Janko (Hrsg.), Wirtschaftsuniversität Wien (núm. 22), 2002.Kollock, P. & Smith, M. (1996). “Managing the Virtual Commons: Cooperation and Conflict in Computer Communities.” Pp. 109-128 in Computer-Mediated Communication: Linguistic, Social, and Cross-Cultural Perspectives, edited by Susan Herring. Amsterdam: John Benjamins.Kollock, P. (1998). Social dilemmas: The anatomy of cooperation. Annual Review of Sociology, 24 (1). pp. 183-214.
Kollock, P. (1999). "The Economies of Online Cooperation: Gifts and Public Goods in Cyberspace". In Smith, Marc; Kollock, Peter. Communities in Cyberspace. London: Routledge. pp. 220–239
Markus, M. & Manville, B. &Agres,C. (2000). What Makes a Virtual Organization Work?, Sloan Management Review, 42 (1) 13-26.
Ostrom, E. (1990). Governing the commons: The evolution of institutions for collective action.Cambridge University Press.
Ostrom, E. (1997). A Behavioral Approach to the Rational Choice Theory of Collective Action: Presidential Address, American Political Science Association. The American Political Science Review, Vol. 92, No. 1. pp. 1-22.
Ostrom, E. (2001). Social dilemmas and human behavior.Economics in Nature.SocialDilemmas.Mate Choice and BiologicalMarkets. pág.23–41.
Perens, B. (1999). The Open Source Definition, in OpenSources Voices from the Open Source Revolution, DiBona, C., S. Ockman and M. Stone (Eds) O'Reilly & Associates, Sebastopol, pp. 171-189.
Raymond, E.(1999). The Cathedral and the Bazaar.Knowledge, Technology & Policy, Fall99, Vol. 12 Issue 3. pp. 23-49.
Schweik, C.(2005). “An Institutional Analysis Approach to Studying Libre Software “Commons”. Upgrade” The European Journal for the Informatics Professional.
Schweik, C. & English, R.. (2007).Tragedy of the FOSS Commons? Investigating the Institutional Designs of Free/Libre and Open Source Software Projects, IEEE Computer Society Washington, DC, USA.
Stallman, R. (1998). “The GNU Operating System and the Free Software Movement,” inOpenSources: Voices from the Open Source Revolution, C. DiBona, S. Ockman, andM. Stone, Eds.: O'Reilly Books, pp. 53-70.
Stallman, R. (2002). Free Software, Free Society: Selected Essays of Richard M. Stallman, GNU Press, Boston
Walker, J. &Ostrom, E. (2007). Trust and reciprocity as foundations for cooperation: Individuals, institutions, and context. In Capstone Meeting of the RSF Trust Initiative at the Russell Sage Foundation.
* Magister.Correo: bcuesta@unab.edu.co
** Ph.D.Correo: japarra@unab.edu.co