Modelo de Desarrollo del Software Libre

(Artículo en lentísimo desarrollo)

Historial de cambios

Beta 1.2 9 de julio de 2008

Agregadas referencias y comentarios al respecto de cada una.

Agregado “historial de cambios” e “introducción”.

Beta 1.1

Eliminada la sección de “Beneficios económicos” hasta que se haya desarrollado la idea adecuadamente.

Corregida y extendida redacción de la primera parte.

Publicación Inicial (beta) 12 de mayo de 2008

Introducción

El Software Libre es el que se desarrolla en un marco legal que garantiza todas las siguientes libertades: usar el programa para cualquier propósito(0), estudiarlo y adaptarlo a tus necesidades (1), distribuirlo para ayudar a los demás(2), publicar las mejoras para que se beneficie la comunidad(3).1 La propuesta del Software Libre es que el conocimiento y las herramientas que hacen posible utilizarlo deben ser propiedad pública, permitiendo la creatividad innovación y competencia en condiciones justas.En este ensayo hablo acerca de su modelo de desarrollo y de cómo se puede aplicar a otras industrias aparte del software.Marco legal

Probablemente la más grande ventaja del software libre sea que el marco legal dentro del que se desarrolla garantiza la difusión del conocimiento que hace posible la herramienta, promueve su uso, distribución y alteración.En este marco legal es bueno copiar y utilizar el programa, cobrar por la distribución (y obtener un beneficio que según la lógica comercial le pertenece a la empresa que lo desarrolló), alterar el producto y generar competencia, siempre y cuando, las obras derivadas permanezcan bajo la misma licencia.

Este entorno legal ha hecho posible un modelo de desarrollo que no se había utilizado en la industria hasta hace poco.

La Fundación por el Software Libre (FSF por sus siglas en inglés), posee un compendio de licencias que mantienen estas ventajas, con un breve análisis de las ventajas y desventajas de cada una.

Modelo de desarrollo

  1. Se comienza encontrando una necesidad social y planteando una idea para satisfacerla, si la necesidad se siente en carne propia la motivación para desarrollar el proyecto es aún mayor.
  2. Se buscan soluciones parciales al problema que ya se hayan desarrollado para basarse en ellas. Es más sencillo que partir de cero y tener un desarrollo inicial permite reducir el costo y esfuerzo de la producción.
  3. Se comienza a desarrollar un producto nuevo que satisfaga la necesidad social dando prioridad a la funcionalidad y eficiencia, mejorando los desarrollos previos donde se puede, desarrollando desde cero donde haga falta, eliminando lo innecesario.
  4. Se distribuye el producto o código fuente2 desde que tiene una funcionalidad mínima dejando claro que es un proyecto en desarrollo. Si es útil, la gente que lo utiliza estará dispuesta a ayudar en su desarrollo; esto supone publicidad y un canal de distribución gratuitos, aunque no implica ganancias.
  5. Se establece una infraestructura en la que pueda cooperar cualquier persona y generar una organización adecuada para el desarrollo del proyecto, distribuyendo las mejoras de manera rápida y eficiente.
  6. Cuando el proyecto tiene la madurez suficiente se busca la manera de publicitar y hacer redituable el producto3.
  7. Se mantiene en constante innovación y desarrollo, tomando en cuenta las necesidades de la comunidad que utiliza y desarrolla el producto.

El modelo de desarollo no implica por si mismo la calidad del producto, sin embargo, si es aprovechado correctamente reduce tiempos y costos de producción, haciendo posible mejorar la calidad y competir contra la industria establecida utilizando pocos recursos.

En general un proyecto de sofware libre no entrega un producto final, sino que se mejora constantemente y, si existen grupos con prioridades diferentes, se diversifica en múltiples proyectos que pueden o no cooperar entre sí dependiendo de qué tan compatibles sean sus métodos y objetivos.

El Software Libre se desarrolla organizadamente a pesar de tener la libertad de actuar caóticamente porque es una forma de desarrollo más eficiente y existe la infraestructura para coordinar el esfuerzo de miles de personas.Y como lo indica Jesús Gonzalez Barahona, no es un modelo nuevo, “es algo que se utiliza en la ciencia desde hace mucho tiempo.”4

Infraestructura de cooperación

Hay quienes argumentan que un proyecto caótico no tiene posibilidades de desarrollo y que la excesiva libertad que permiten las licencias de Software Libre promueven un estilo caótico de desarrollo. Tienen razón en la primera premisa, sin embargo no consideran la capacidad de organización de una comunidad.

Los programas que se desarrollan bajo este modelo aprovechan esta ventaja promoviendo la cooperación de las personas que los usan. Esto hace posible mejorar la calidad del producto a bajo costo.

Uno de los mayores retos para el desarrollo del software libre es la descentralización del trabajo, puede ser que haya muchas modificaciones incompatibles, que hagan inestable el sistema o que resuelvan un mismo problema. También está el problema de cuando se diversifican los proyectos y se vuelven incompatibles.

Disponibilidad del código fuente en un marco legal adecuado.

Para lograr una verdadera cooperación, cualquier individuo debe ser capaz de cooperar, entonces es necesario que el conocimiento y las herramientas que hacen posible un trabajo sean públicos.

Sin embargo la mera disponibilidad del código fuente no garantiza la cooperación, deben existir las facilidades legales que permitan a los miembros de la comunidad obtener beneficio de su trabajo.

La propuesta Open Source, que surge como una derivación del movimiento del software libre, promueve la publicación del código fuente en un marco legal en que la compañía elige el terreno de juego, eligiendo las restricciones que considera adecuadas para propiciar a la empresa.

Al restringir el beneficio que podría tener un miembro de la comunidad, se desalienta la participación y la comunidad en favor de un entorno corporativo. Hace poco leí un artículo

En un marco legal adecuado en que el usuario sea libre de utilizar, estudiar, modificar, publicar y comerciar el trabajo comunitario o independiente, se promueve la comunidad porque tanto los individuos como la comunidad son capaces de obtener beneficios, ya sea por tener una herramienta útil, versátil y en constante desarrollo o por la distribución de la plusvalía del producto entre quienes se esfuerzan por obtenerla.

En este sentido, se promueve verdaderamente el libre mercado, a diferencia de el esquema corporativo en que se busca el monopolio en un desarrollo específico al tramitar patentes o derechos de autoría.

Organización y Comunicación

Un argumento común en contra del software libre es que si todos pueden modificar cualquier cosa, el desarrollo del software se vuelve caótico y anárquico. Sin embargo, los proyectos de software libre se organizan de tal manera que se aproveche el trabajo de la comunidad.

Para ello se divide el proyecto en partes, de manera que cualquiera pueda participar según sus habilidades y conocimientos.

Los usuarios pueden cooperar con el proyecto principal con dibujos, difusión, mejoras al producto, nuevas ideas, reportando errores, esas actividades incluso pueden dividirse más.

Documentación

Incluso cuando el marco legal promueva las condiciones para llevar a cabo la producción con un modelo libre, si no se hace público el conocimiento que hace posible el producto, el desarrollo se acaba en cuanto la persona que lo desarrolló se retira del proyecto, y si la característica es crítica para el producto, su distribución fracasa.

Una gran ventaja de los proyectos de Software Libre es que pueden mejorarse, incluso si un producto no es muy bueno en su comienzo puede convertirse en una alternativa al Software Privativo planteando una propuesta aceptable y obteniendo el apoyo de una comunidad.

Distribución de las modificaciones

Para un los desarrolladores de un producto privativo una de las prioridades es restringir las copias y modificaciones, esto implica costos legales, administrativos, contables y publicitarios, sobre todo cuando el producto es tan fácilmente modificable y reproducible como el software.

El software libre promueve la copia y desarrollo de sus productos y conforme crece el número de usuarios de un producto, aumenta la cantidad de modificaciones que corrigen problemas o satisfacen una nueva necesidad.

Uno de los puntos claves del desarrollo en este modelo es que el producto se mantenga actualizado, para lograr este objetivo debe haber un lugar común donde se distribuya la versión oficial del proyecto que tome agregue las mejoras que no afectan la funcionalidad, y otro en que se pueda cooperar con las partes del proyecto en desarrollo.

Para el software esto es algo sencillo, porque se distribuye electrónicamente y puede reemplazarse muy fácilmente, para otro tipo de productos se debería garantizar la modificabilidad del producto y una infraestructura para distribuir las mejoras para poder actualizar a bajo costo.

Más allá del software

Este modelo de desarrollo (con su marco legal) es una apuesta por la cooperación en contraposición del modelo corporativo que predomina actualmente, en que se busca preferencia en las condiciones para producir, en la que se busca el beneficio propio a costa del beneficio social y unas pocas personas poseen la riqueza y los medios de producción.

Referencias

Software libre: un nuevo modelo de desarrollo (Jesús M Gonzalez Barahona)
Esta charla formó parte de las I Jornadas de software libre y GNU/Linux de Salamanca que se celebraron los días 4, 5 y 6 de Mayo de 2001.
http://ramonrey.net/blog/software-libre-un-nuevo-modelo-de-desarrollo-jesus-m-gonzalez-barahona/
consultado 11 de Mayo de 2008

Describe brevemente qué es el Software Libre y habla acerca del modelo de desrrollo del software libre y sus implicaciones para desarrolladores y usuarios.

The Free Software Definition
Free Software Foundation, Inc
http://www.gnu.org/philosophy/free-sw.html

La definición oficial del Software Libre, incluye además información relevante al respecto.

La catedral y el bazar
Eric S. Raymond
http://biblioweb.sindominio.net/telematica/catedral.html

Ensayo hecho en 1997 acerca de cómo el autor ha implementado el modelo de desarrollo del Software Libre (nombrado como bazar) y por qué piensa que funciona.

Modelos de desarrollo de software
José Camilo Daccach T.
http://www.gestiopolis.com/delta/prof/PRO350.html

Ésta fuente separa el modelo comercial del modelo de desarrollo y la filosofía, pone especial énfasis en que el modelo de desarrollo no implica calidad y no dice nada más.

Modelo de Desarrollo de Software Libre
Grupo de Usuarios de Software Libre de Mendoza
http://www.lugmen.org.ar/files/mdsl.html.txt

Resume el ensayo “La catedral y el bazar” y agrega anotaciones al respecto del desarrollo del software. Concluye muy pobremente..

ive and let license
LinuxWorld.com 5/23/01
http://www.itworld.com/AppDev/350/LWD010523vcontrol4/pfindex.html

Pequeño ensayo que habla acerca de la diferencia entre Software Libre y Open Source Software, describe brevemente su historia, el término copyleft y habla en favor de la licencia GPL.

Free Software Project Management
Benjamin “Mako” 2000
http://mako.cc/projects/howto/FreeSoftwareProjectManagement-HOWTO.html

Manual que contiene consejos para el desarrollo de Software Libre, escrito por uno de los desarrolladores del Proyecto Debian.

Managing Projects the Open Source Way
Monty R. Manley, Oct 31, 2000
http://www.welchco.com/02/14/01/60/00/10/3101.HTM

Ensayo que señala la importancia de la planeación y administración de los proyectos de Software de código abierto..

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
Free Software Foundation, Inc
http://www.gnu.org/licenses/gpl.odt

Licencia de Software Libre mantenida por la Fundación por el Software Libre, contiene un marco ideológico antes de la licencia.

1 The Free Software Definition
Free Software Foundation, Inc
http://www.gnu.org/philosophy/free-sw.html
2 En la Licencia GNU GPLv3 se define “código fuente” como la forma en que se prefiere un trabajo al modificarlo, esto fue una modificación para dar a la licencia la capacidad de usarse en cualquier tipo de trabajo.

3 Jeje, ahora que lo pienso, me parece similar a algo que leí acerca del modelo de negocios que planteó Google en algún comunicado de prensa que no logro encontrar:

  1. Tener una buena idea.
  2. Llevarla a un público masivo.
  3. Buscar la manera de sacarle provecho económico.
4 Software libre: un nuevo modelo de desarrollo (Jesús M Gonzalez Barahona)
Esta charla formó parte de las I Jornadas de software libre y GNU/Linux de Salamanca que se celebraron los días 4, 5 y 6 de Mayo de 2001. (Minuto 28)
http://ramonrey.net/blog/software-libre-un-nuevo-modelo-de-desarrollo-jesus-m-gonzalez-barahona/