Desarrollar comunidades de software libre, con Jeff Bates
Josh Chalifour -
26/07/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.