La Pastilla Roja
De Contextos
Autores: Alfredo Romeo, Juan Tomás García, Open Service, SL.Descarga del Libro
Contenido |
Comentario
El interés del texto reside en el proceso de exploración de los procesos de producción de la red y la cultura digital, la creación de comunidades y su aplicación a la producción cultural y audiovisual. Entendiendo que la generación de software libre es el paradigma de la producción en red, interesan los modos de diseñar y gestionar comunidades.
El texto incide poco en el concepto de comunidad limitándose a una definicón procedente de diccionarios y asociarla a grupos de personas e instituciones con intereses comunes.
Organizando la comunidad, modelos de desarrollo
Modelo de desarrollo Bazar
Frente al modelo de desarrollo propietario, Raymond propone el modelo de los grandes bazares orientales como símiles al modelo de desarrollo en el Software Libre. En este modelo de desarrollo las decisiones están descentralizadas, así como las incorporación de nuevo código. Los desarrolladores están organizados en red y en diferentes aspectos de la aplicación, encargándose de ir mejorándola poco a poco. Cualquiera, al igual que en los bazares, puede participar intercambiando bienes y servicios.
El modelo de desarrollo de bazar presenta diferentes eficiencias tecnológicas cuando se trata de desarrollar código en comparación con el software propietario: barreras de entrada bajas, número de desarrolladores, estabilidad de las aplicaciones, etc.
Barreras de entrada=conocimiento & meritocracia
Cualquier desarrollador que tenga el conocimiento para aportar código lo puede hacer en cual- quiera de los proyectos que existan a lo largo de todo el planeta. La única barrera de entrada es el conocimiento y su participación en el código que, tal y como veremos más tarde, serán cues- tiones de mérito y no de ninguna otra consideración
La Innovación por parte de toda la sociedad
La tecnología se aplica para paliar determinadas necesidades existentes en el mercado. Si un tra- bajador de una industria conoce básicamente las posibilidades tecnológicas existentes, sabe que con el Software Libre tiene la base para encargar su idea a un tercero para ser implantado. La innovación no proviene de la empresa de Software Libre solamente, sino que gran parte de la misma vendrá, en el futuro, por parte de los usuarios de la tecnología que son, al fin y al cabo, los que conocen el mercado al cual se aplica la misma
No hay presiones comerciales en la liberación de código
La característica intrínseca de libertad que tiene la Comunidad para evolucionar un software o aplicación, implica que sólo las consideraciones tecnológicas serán tenidas en cuenta para ofrecer una nueva versión del producto.
Pon los suficiente ojos y todos los errores se eliminarán
(Give enough eyeballs and all bugs will shallow) Una de las grandes ventajas que trae el Software Libre es la revisión por cada uno de los desa- rrolladores del trabajo del vecino. Al estar basado el desarrollo en la creación de código y su posterior implantación, el peer review ofrece una calidad de código excelente. El desa- rrollador que se incorpora al proceso de creación tiene que revisar el código de la aplicación para su comprensión y posterior adición del propio código. En este proceso, miles de líneas de código vuelven a ser revisadas por los nuevos desarrolladores que se van adheriendo a la Comunidad.
Libertad de creación
El Software Libre permite que emerja todo el potencial desarrollador que un pro- gramador puede tener y que sólo desarrollos basados en red pueden ofrecer al mismo, y para los programadores éste es un punto crucial. El software propietario, por su parte, constriñe amplia- mente esta libertad de creación al desarrollador. Al estar basado en un modelo de desarrollo cen- tralizado, la contribución de un programador a una aplicación será sólo y exclusivamente aquella que defina el ingeniero jefe del proyecto
Ciclo de vida
La situación del Software Libre es totalmente diferente. Al tenerse siempre acceso al código fuente, el ciclo de vida útil del mismo es "infinito". Cualquier empresa con el conocimiento sobre el código puede ofrecer soporte sobre el mismo, por lo que esta apertura posibilita que el ciclo de vida del software se pueda extender todo el tiempo que queramos. Además, los clientes de Software Libre tienen la gran ventaja de poder estar siempre a la última en cuestiones de aplicaciones. La inexistencia de licencias permite a la empresa tener siempre la versión más moderna de la aplicación a un coste ínfimo en comparación con las empresas de software propietario.
Creación y Organización de un proyecto de software libre
Origen
En contra de lo que muchos podrían esperar, no todos los proyectos de Software Libre comienzan siguiendo los pasos referidos anteriormente. Nadie puede esperar que una Comunidad comience sin nada tangible, ya que las mismas no se forman por "generación espontánea". Una de las condi- ciones para poder crear una base tecnológica que ofrezca la posibilidad, en un futuro, de conver- tirse en una herramienta necesaria, es la tangibilidad de la aplicación o proyecto de aplicación. El modelo de desarrollo de Software Libre prueba ser un excelente modelo de desarrollo para todas las actividades relacionadas con la creación de código, así como la mejora del mismo, la búsqueda de errores, etc., pero la precondición para esto, es tener un desarrollo potencial que sea promete- dor. A partir de aquí y en función de la criticalidad del desarrollo y de la comunicación que del mismo se haga a terceros, contribuidores de todo el mundo acudirán a interesarse por el desarrollo.
Muchas comunidades comienzan a formarse normalmente cuando un desarrollador presenta una necesidad concreta de una determinada aplicación y pone en conocimiento de otros desarrolladores su proyecto, al que se unirán siempre y cuando crean que pueden aportar o extraer conocimiento. Una vez que el desarrollo comienza a tomar forma, la creación de una Comunidad fuerte de desa- rrolladores es clave para el éxito del mismo.
En otras ocasiones, y como veremos en diferentes partes del libro, empresas liberan código con- virtiendo aplicaciones anteriormente propietarias en libres y formando comunidades alrededor de las mismas.
Hay otras formas en las que pueden comenzar los proyectos libres. Mitch Kapor, inversor capital-riesgo, lanzó el proyecto Chandler como aplicación que persigue convertirse en un gestor de información personal libre, mediante la inversión de 5 millones de dólares en un ente legal, como podremos ver más delante: The Open Source Applications Foundation
Consejo de la Comunidad / Fundaciones
Una vez que los proyectos han alcanzado una madurez propia, estos crean estructuras legales que se encargan de que pueda continuar con su existencia a lo largo de los años. La decisión se alcanza cuando la madurez del proyecto, la complejidad del mismo o el éxito propio de la(s) aplicación(es) creadas demandan un colectivo legal que soporte la existencia del proyecto
Una de las principales razones para la existencia de este tipo de órganos es la de promover y defender los derechos intelectuales del proyecto en sí, además de los derechos individuales de cada uno de los voluntarios que contribuyen con su código. Asimismo, el carácter libre y voluntario de las comunidades sin ninguna estructura legal detrás imposibilita la obtención de fondos económicos que, para aquellos proyectos maduros, son imperativos.
Cuando un producto alcanza una complejidad determinada, el desarrollo del mismo dificulta la lógica evolución del proyecto. A través de un cuerpo central se puede dirigir la evolución de un proyecto de forma consensuada entre los diferentes actores que participan en el desarrollo de la aplicación en cuestión.
Las razones que conducen a la creación de este tipo de cuerpos centrales no son de control, sino todo lo contrario. Su existencia es debida a que se necesita de un ente legal que posibilite el respaldo del proyecto.
Herramientas de Trabajo
Una de las dudas que más asaltan a las personas ajenas a la Comunidad, es cómo pueden tra- bajar si no tienen contacto físico. La profusión de herramientas tecnológicas permite trabajar en proyectos enormes sin necesidad de tener una presencia física.
Hay diferentes herramientas que son utilizadas por parte de la Comunidad para desarrollar y evolucionar las aplicaciones:
- Sistema de control de versiones
- Listas de correo: Las funciones que cumplen las listas de correo son, principalmente, la de intercambio de infor- mación entre los miembros de la Comunidad y, por otra, un historial de contribuciones (log) de la Comunidad.
- Sistemas de información de errores
- Wiki
Subproyectos
A medida que un software madura, éste se va haciendo cada vez más y más complejo... La idea es crear una serie de subproyectos, cada uno de los cuales será dirigido por una persona. El grupo de personas líderes de los distintos subproyectos será el equipo princi- pal o core team que dirigirá todo el trabajo. El grupo principal serán los únicos que tendrán permisos de escritura sobre el CVS (sólo sobre las ramas que correspondan al subproyec- to que lideran), lista de tareas, bugs y nuevas características. Cada líder de un subproyec- to será el que recibirá todos lo parches, bugs y peticiones y decidirá lo que hace con ellos. Dirigirá el desarrollo del subproyecto que lidera y será el responsable final del mismo.
¿Cómo Evolucionan los proyectos
Dinámicas
Un lector de Slashdot, Rosco P. Coltrane, se refería recientemente en los comentarios a una noticia de Slashdot acerca de las dinámicas que, bajo su experiencia, existen en las comunidades de Software Libre. Por su claridad lo reproducimos a continuación:
Tu proyecto es demasiado especializado, tienes una Comunidad pequeña de gente que lo usa, algunos reportan errores de vez en cuando y entonces tú terminas haciendo el trabajo de tu proyecto.
Tu proyecto es lo suficientemente interesante para que la Comunidad crezca alrededor de él a un punto donde la mayoría de las mejoras vienen vía parches, reporte de errores. Por ejemplo, bits de código hechos no por ti, pero todavía terminas siendo el que integra los cambios y actúa como el único coordinador del proyecto.
Tu proyecto es muy interesante y la Comunidad alrededor del mismo crece exponencial- mente. Las mejoras y reportes de bugs te invaden y esencialmente tu propio ancho de banda no es suficiente para mantener el proyecto. Tienes que delegar y confiar en otra gente, en cuyo caso: a) eres un manager de proyectos cochambrosos o b) te conviertes en un man- tenedor de proyectos exitosos, cuyo caso extremo, por ejemplo, es Linus.
Crecimiento y tamaño de comunidad: Ley de Metcalfe
La ley de Metcalfe, enunciada por Robert Metcalfe, define que el valor de un sistema de comunicaciones crece al ritmo del cuadrado del número de nodos (usuarios) en el sistema. Esto implica que un sistema tendrá más valor conforme se eleve el número de nodos. Por ejemplo, las empresas de telecomunicaciones tendrán más valor conforme tengan más usuarios a los cuales interconectar a su actual red. David Reed, co-inventor del principio extremo a extremo, evoluciona esta ley al hablar de las comunidades que se crean alrededor de la redes. En la misma habla que, cuando los intereses de determinados individuos convergen en un mismo punto, el valor de la red es de 2 elevado al número de usuarios que tenga la misma. El profesor Reed habla de las Group Forming Networks (GFNs), que son los grupos que se crean alrededor de la Red, formado comunidades de intereses comunes y que la Red maximiza. Éste es el ejemplo de eBay donde, gracias a la creación de comunidades con intereses comunes (coleccionables, antigüedades, arte, etc.), ha multiplicado el tamaño de la misma desde su nacimiento.