Inicio
 > Informes e investigaciones > Blog de TEC > Desarrollar comunidades de software libre, con J...

Desarrollar comunidades de software libre, con Jeff Bates

Escrito por: josh chalifour
Publicado: julio 26 2005

Introducción

Jeff Bates es vicepresidente de operaciones editoriales del Open Source Technology Group (Grupo de tecnología de software libre, OSTG). Sus puntos de vista acerca de la forma para promover comunidades de software libre exitosas son el resultado de su experiencia práctica como cofundador y editor ejecutivo de Slashdot.org, una de las comunidades más activas y reconocidas en Internet, así como de su responsabilidad de dirigir la comunidad de SourceForge.net.

SourceForge.net es un sitio web enorme de desarrollo de software libre. Contiene cerca de 100,000 proyectos (entre ellos, cientos de aplicaciones empresariales) y cuenta con más de un millón de usuarios registrados que lo utilizan como recurso central para manejar proyectos, problemas, comunicaciones y código. La idea detrás de SourceForge.net y de los sistemas de gestión de configuración de software (SCM) relacionados es proporcionar a los desarrolladores de software las herramientas de infraestructura que necesitan para colaborar en sus proyectos. Existe también SourceForge Enterprise Edition, que ofrece VA Software , la empresa madre. Esta edición empresarial pretende ser una solución segura y centralizada para el desarrollo de software distribuido de forma geográfica.

Segunda parte de la serie Únase a la interrupción concertada

Mi participación con SourceForge.net y el Open Source Technology Group (OSTG) empezó cuando ayudé a fundar Slashdot. Rob Malda y yo iniciamos el sitio en, bueno, 1996 ó 1997, dependiendo de cómo contemos. Yo tenía una experiencia bastante sólida en el área de software libre. Andover.net adquirió Slashdot para después fusionarse con VA Linux Systems. En esa época, yo seguía trabajando como editor ejecutivo de Slashdot. Después de la fusión, empezaron a buscar a alguien que se hiciera cargo de la parte en línea, así que acepté el reto y ahora trabajo como vicepresidente de operaciones editoriales. Esencialmente, me encargo de todos los sitios web desde el punto de vista editorial, de desarrollo y de operaciones de red. Actualmente dirijo SourceForge.net directamente.

¿Cuáles cree que son algunas medidas para fomentar el interés de los desarrolladores – alentarlos a que usen ese tipo de foro de la comunidad (SourceForge.net)?

Una de las ventajas principales que tiene SourceForge.net en ese aspecto es su escala, pero uno de los problemas principales es que no es tan difícil crear una comunidad en línea para que la gente venta y desarrolle software. Es relativamente fácil cuando se hace a pequeña escala, pero la infraestructura y las herramientas que hay que tener para hacerlo a gran escala, hacen que la tarea sea un poco más desalentadora.

Al final, contamos con mucha gente que ha estado haciendo algo de desarrollo por su parte, pero que no quiere hacer todo el trabajo de infraestructura, mantener los sistemas de archivos, mantener el sistema de rastreo de errores. Por lo tanto, acumulamos todas las herramientas que necesitan para que ellos no tengan que realizar todo el trabajo de infraestructura para desarrollar sus proyectos. Así, les permitimos enfocarse en el desarrollo.

Otra de las ventajas importantes es que tenemos varios socios en el mundo que actúan como socios espejo; se trata básicamente de ISP (proveedores de servicios de Internet), empresas o quienes crean que el software libre tiene un valor importante y quieran ayudar a garantizar su éxito asegurándose de que hay descargas fáciles. Eso significa que tenemos un tráfico de aproximadamente 1.5 gigabits por segundo -un número bastante asombroso. Le doy gracias a Dios por esa red espejo, porque no me imagino el ancho de banda que tendríamos sin ella.

La otra razón que hace que la gente venga a SourceForge.net es que es el lugar más grande del mundo de desarrollo de software libre. También hay personas que vienen porque se dan cuenta de que tener su proyecto en SourceForge.net les permite estar conectados con la comunidad de desarrolladores y da exposición a sus proyectos.

Parece que la gente que viene a SourceForge.net ya sabe lo que está buscando. ¿Esto significa que utilizan el sitio como una fuente para continuar un proyecto que ya existe?

Parece que la gente que viene a SourceForge.net ya sabe lo que está buscando. ¿Esto significa que utilizan el sitio como una fuente para continuar un proyecto que ya existe?

Bien, creo que la mayoría de la gente quiere dar continuidad a algo que ya existe o tomar una idea y convertirla en realidad. Ya sea que hayan iniciado algo por su cuenta, estén desarrollando algo por ellos mismos y necesiten soporte para hacerlo o quieran una mayor visibilidad, hacer que el proyecto madure.

O es una persona o un grupo de personas que quieren crear una aplicación y acuden a SourceForge.net para iniciar y realizar toda la planificación. También hay algunos desarrolladores que vienen a SourceForge.net sin un proyecto específico en mente, sino para recorrer el sitio, buscar proyectos que necesitan alguien con sus habilidades o buscar un proyecto que les parece interesante. Entre otras cosas, queremos poner a los desarrolladores en contacto con otros desarrolladores.

¿Con qué frecuencia vienen las entidades comerciales a SourceForge.net y con qué objetivo?

Por mi experiencia en el funcionamiento de los niveles más altos del sitio, puedo decirte que eso es cada vez más común. Hace algunos años, cuando una entidad comercial recurría a nosotros para incluir algo en SourceForge.net, quería hablar de lo que era relativamente notable. Pero ahora, se ha convertido en una actividad bastante común. Por ejemplo, hace poco migramos, creo que 35 proyectos en total, que IBM tenía en su propio sitio, llamado DeveloperWorks.com. Se dieron cuenta de que, aún IBM no era bueno manejando el tiempo, la energía y todo lo relacionado con el funcionamiento de estos proyectos. No todos sus desarrolladores venían de la comunidad de desarrolladores, así que decidieron migrar todos los proyectos a SourceForge.net.

Están usando el sitio público principal... Porque ustedes también realizan instalaciones personalizadas en SourceForge.net, ¿cierto?

Correcto, la empresa [SourceForge.net] tiene dos ramas. La otra vende un software de clase empresarial llamado SourceForte.net Enterprise Edition. También hacemos creaciones personalizadas, gracias a la experiencia que tenemos en crear sitios como Slashdot, SourceForge.net y freshmeat... Bluetooth.org es un ejemplo de un sitio que utiliza ese tipo de código para el portal.

¿Cree que el ejemplo de IBM ilustra una forma mejor para lanzar un proyecto comercial? Ya habían trabajado mucho en él cuando decidieron traer el proyecto a SourceForge.net. ¿O cree que es mejor cuando alguien no ha iniciado el trabajo en el proyecto pero ya ha pensado en el concepto y quiere basar su negocio en él, así que lanza el proyecto en SourceForge.net?

Para quienes están buscando iniciar un producto de software comercial -de hecho hemos tenido muchos que inician en SourceForge.net-, creo que es la forma correcta de hacerlo, ya que, según las personas del área DeveloperWorks de IBM, el tiempo que lo mantuvieron en su sitio resultó perdido. Pasaron mucho tiempo sin tener exposición ante la comunidad, hasta que llegaron a SourceForge.net. No lograron obtener la tracción que querían, ni tantos usuarios, descargas, etc., si los comparo con sistemas como JBPSS, que se encuentra en SourceForge.net, o ComPiere, que es una solución de CRM (gestión de las relaciones con los clientes)/ERP (planificación de los recursos de la empresa) que se encuentra en SourceForge.net y que realmente inició ahí y utiliza los recursos del sitio. Creo que esas son las ventajas principales de SourceForge.net, sobre todo para quienes inician un producto comercial.

Tiene sentido, especialmente porque muchos proyectos de software libre -hasta comerciales- no le dedican mucho tiempo a la mercadotecnia o la publicidad. ¿Cómo se involucra el líder del proyecto? Vuelvo a la idea de la entidad comercial que inicia su proyecto en SourceForge.net. ¿Cuáles cree que son algunas cualidades o ideas para que el líder del proyecto genere interés por parte de los desarrolladores?

Creo que es lógico que lo dividamos en distintos tipos de interés. Existe el interés por parte de la comunidad de usuarios, es decir, de los que serán los clientes potenciales. También está el interés por parte de otros desarrolladores que colaborarán con el proyecto. Al final, creo que la respuesta se bifurca un poco porque, en la comunidad de usuarios, una gran parte son las mismas actividades estándar de la industria de ventas -participar de forma activa en las discusiones, tener la capacidad para explicarles las cosas a las personas-, que hacen que el producto se instale, utilice y funcione fácilmente. Al hacer desarrollo de software, se tienen los mismos estándares. Es decir, hacer que el producto sea fácil de usar y de instalar, que tenga un buen nivel de soporte o recursos que la gente pueda aprovechar.

Pero la respuesta es un poco distinta cuando se pretende que los desarrolladores colaboren.

Creo que existe la idea de que, para iniciar una empresa y ofrecer software, sólo hay que publicarla y en poco tiempo habrá miles de desarrolladores de software libre que estarán trabajando en ella. No me parece que sea tan simple.

Creo que es una subestimación. Lo que pasa es que en la comunidad de software libre -que tiene los proyectos correctos- hay todo tipo de gente que mostrará interés, pero realmente se trata de escoger los proyectos. Los demás desarrolladores están buscando a alguien que tenga la tenacidad y esté dispuesto a escuchar y hablar con otras personas, alguien que se involucre en discusiones generales acerca de esa tecnología en particular.

Supongamos que alguien está trabajando en sistemas de gestión de contenido. Si se sabe que esa persona está hablando con la comunidad de software libre acerca de los sistemas, si los demás saben que conoce el tema, podrá lograr mucho. Una arquitectura elegante o alguien que está haciendo cosas nuevas con la tecnología harán que la gente se interese mucho. El mundo del software libre está formado por una sociedad competitiva.

¿Qué puede decir de involucrar a quienes serán sus competidores? Este es ahora un asunto a tratar, y estoy seguro de que en SourceForge.net tiene muchos proyectos que se enfocan en lo mismo o que son ramificaciones del mismo trabajo. ¿Cómo logra que se involucren?

Es una situación muy interesante, porque puede tener muchos resultados. A veces se da una ramificación amigable, donde el desarrollador principal de un proyecto dice, "no me interesa mucho ese problema, pero si a usted le interesa, adelante". Creo que la gente debe tratar los asuntos de forma inteligente, tratando de expresar que es un proyecto que les interesa y que quieren verlo realizado. Gran parte de esto es el resultado de las raíces del software libre, de cuando los desarrolladores abordaban ese asunto.

Asimismo, con esta sociedad competitiva, cuando alguien ve un proyecto que no tiene la función que quiere, lo primero es ver cómo puede participar en él; puede crear una reparación para que cierto software haga lo que se quiere. La gente puede trabajar en esa infraestructura, pero si quienes están involucrados en ese proyecto se dedican a otra cosa, tendrán otras prioridades, y es ahí donde se origina la ramificación. Esta opción para ramificarse es una de las glorias del software libre. En algunos casos, esta ramificación será amigable y en otros será negativa, pero en general es bastante positiva, porque a la mayoría de los desarrolladores y los usuarios de software libre no les importa si hay una ramificación, ya que al final vencerá el mejor sistema. Es una situación de supervivencia.

Así que aunque no sea una ramificación amigable, la fuente original de ese proyecto puede seguir aprovechando la situación.

Estoy completamente de acuerdo con eso. Y por eso, aún cuando un proyecto sea una ramificación de otro, siempre habrá una comunicación entre ellos.

Siguiendo con esa idea, volvamos a hablar de la persona que inicia una empresa. ¿Cómo cree que podría usar esta metodología o este sistema para involucrar a sus VAR (revendedores de valor agregado) y a las demás personas que creen derivaciones del proyecto? ¿Qué se puede hacer para mejorar la forma en que los VAR y los otros tipos de personas que participan en el proyecto de software libre compartan el desarrollo?

Es interesante que preguntes eso, porque estamos en proceso de -bueno, en los próximos nueve o doce meses- escribir gran parte del sitio [SourceForge.net] y agregar muchas funciones nuevas. Hay un conjunto de funciones que explora cómo obtener soporte para los productos de software libre, porque vemos mucha gente que viene y quiere consumir productos de software libre en su empresa, pero también quiere tener una cadena de soporte. Por eso, estamos tratando de conectar a las empresas de servicio con estos productos. También estamos trabajando para responder a tu pregunta: ¿Cómo hacer que las comunidades trabajen entre sí? Hemos creado comunidades en algunas áreas, como cómputo de alto desempeño, por ejemplo, pero una de las áreas que lanzaremos en SourceForge.net se enfoca particularmente en áreas tecnológicas...

El software libre ha adquirido importancia y los VAR están ahora involucrados. Ahora la pregunta es ¿cómo los integra a todo este ciclo? Creo que una de las formas que utilizan algunos de los proyectos más exitosos es mantener varias sucursales de su CVS... Xaraya es un sistema de gestión de contenido que tiene una arquitectura muy modular. Dicha arquitectura permite que las demás personas que la usan puedan desarrollar estos módulos por sí mismos y decirle a la gente de Xaraya, "creé este módulo para esto", para que ellos puedan incluirlo [en su proyecto].

La pregunta se vuelve más confusa para cada producto de software, porque una parte depende de la tecnología misma... Responderé a esta pregunta usando el futuro, ya que nos enfocaremos en ciertas áreas tecnológicas, mediante conversaciones entre usuarios y el uso de las mejores soluciones dentro de esas áreas tecnológicas. En SourceForge.net existen muchos proyectos que no están listos para ser lanzados, están en etapa beta o de planificación, o lo que sea. Así que hay que tratar de crear un espacio web independiente dedicado a estos proyectos que pueden usarse en la empresa o en la computadora de un usuario y conectarse. Así que se lanzan algunos de los proyectos de mayor incubación y ser crea un ambiente en el que los proyectos más grandes pueden comunicarse entre sí.

¿Cree que es necesario que sucedan algunas cosas críticas para que el software deje de ser una versión beta y se convierta en un sistema de producción?

Sí, cuando pasan del estado beta a producción, es necesario poder crear una infraestructura de soporte, es decir la gente que pueda venir para trabajar en conjunto en estos proyectos. Aún cuando se trate de un foro o una lista de envío, o en cualquier caso, pero creo que uno de los aspectos críticos para el éxito de los proyectos de software libre son los desarrolladores o la gente de soporte que se involucra y que participa de forma activa en las discusiones. Si no tienes eso, fracasarás. Debes tener un plan para tus objetivos, poder decir "este es el programa de lanzamiento, esto es lo que estamos haciendo ahora, quienes quieran, pueden revisar el código si quieren, y para quienes no quieran, hemos publicado este plan de desarrollo de lo que estamos haciendo ahora". Creo que ese tipo de comunicación es muy importante porque promoverá el interés de los desarrolladores... Ya sea que se trate de desarrolladores o usuarios, estarán interesados cuando vean que alguien inteligente está creando todo esto... si quieres impulsar una comunidad más amplia, debes poner la información al alcance de la gente y hacérselo saber.

Antes mencionó que uno de los problemas es que la gente se aburre y abandona la comunidad de un proyecto. Digamos que su proyecto o su producto ha llegado al nivel de producción y todo va muy bien, ¿qué debe hacer para cambiar la forma en que se dirige a su comunidad y lograr que esta mantenga su interés?

La comunidad de usuarios sólo va a estar interesada en la estabilidad y el lanzamiento de funciones nuevas... Afortunadamente, existe una sincronía entre lo que hace feliz a la comunidad de usuarios y lo que hace feliz a la comunidad de desarrolladores. Porque, en general, la mayoría de los desarrolladores estarán interesados en poder hacer algo nuevo y diferente... Creo que una de las cosas principales para la comunidad de desarrolladores es dar a la gente la libertad para experimentar, con el fin de mantenerlos involucrados. Si no les das esa libertad, eventualmente se irán porque querrán hacer las cosas por ellos mismos.

La otra parte es reconocimiento. Si tienes desarrolladores que son muy activos, sólo tienes que decir "esta persona es un miembro oficial de este equipo, está haciendo estas actividades...". No tiene que tratarse de recompensas financieras o algo así. Las personas somos animales sociales, y si recibimos reconocimiento por lo que estamos haciendo y se nos valora por ello, vamos a responder -sobre todo cuando se trata de gente que escribe buen código, sólo tienes que decirle lo bueno que es su código, y con eso bastará.

¿Podría dar uno o dos ejemplos de alguna empresa que realmente ha hecho, según usted, un trabajo ejemplar desde que empezó a crear su comunidad, hasta que creó un proyecto que pudo comercializar con éxito -hay algo que sobresalga?

Hay dos ejemplos particularmente interesantes, probablemente hasta tres. Uno de ellos es JBOSS... Ellos han hecho un buen trabajo con su comunidad y han creado una empresa viable alrededor de ella. Si tienes tecnología buena que la gente necesita en un ambiente corporativo o estás creando un buen conjunto, puedes contar con que vendrán varios desarrolladores para trabajar en él, porque lo necesitan para su trabajo.

Creo que los otros dos ejemplos interesantes son MySQL y PostgreSQL. La mayoría del trabajo de desarrollo de MySQL depende de la empresa misma, pero han logrado crear una comunidad de usuarios que les ha proporcionado mucha información valiosa, no necesariamente código. Es decir, usamos MySQL en Slashdot, por ejemplo, y no contribuimos con código, pero les decimos las funciones que vamos a necesitar y les avisamos de los problemas que surgirán con el funcionamiento. Al final, ellos tienen información valiosa sobre lo que ellos, como empresa, deben hacer para mantener su competitividad y ganar ventas.

Esto funciona para ambos, porque al final tienen una imagen pública para su producto. Nosotros estamos dispuestos a probar los conjuntos de funciones para que ellos vean los resultados antes de ofrecerlo a sus clientes comerciales.

PostgreSQL es la otra base de datos importante con quien tenemos una situación similar. Usan SourceForge.net y han hecho un excelente trabajo con sus comunidades de usuarios y desarrolladores, que también dan soporte a los revendedores independientes o que dan soporte, haciendo que sea un producto comercialmente viable.

Con esto termina la segunda de cuatro partes que conforman esta nota. La primera parte habló de los antecedentes de lo que es la comunidad de software libre y de la forma para involucrarla. La tercera parte contiene una entrevista con Karl Fogel, que trabaja para CollabNet y es uno de los desarrolladores fundadores de l proyecto Subversion. Karl habla de lo que se necesita para desarrollar un proyecto de software libre desde cero y revisa las cualidades de un líder de proyecto. La cuarta parte presenta una entrevista con Louis Suárez-Potts, gerente de desarrollo de comunidad del proyecto OppenOffice.org. También trabaja para CollabNet.

 
comments powered by Disqus

Búsquedas recientes:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Others