Inicio
 > Informes e investigaciones > Blog de TEC > Únase a la interrupción concertada

Únase a la interrupción concertada

Escrito por: josh chalifour
Publicado: julio 25 2005

Introducción

Los movimientos de software libre siguen cambiando mucho la industria del software, incluso hay quienes afirman que “la ha trastornado mucho”. Estamos reconsiderando la interconexión de estos elementos, desde los procesos de desarrollo, pasando por la demanda y el soporte de los clientes; los modelos del negocio; la innovación y la invención, hasta las consecuencias sociales, políticas y legales. Todo inició con la aparición de ciertos conceptos, licencias y programas de software. Sin embargo, la comunidad que ellos habilitan es lo que permite que dure ese impacto y adquiera cada vez más importancia.

La comunidad, un término que se discute en casi todas las conversaciones o los artículos sobre software libre, carece de credibilidad cuando se trata de discusiones sobre el verdadero poder y la utilidad del software libre. Con esta serie de artículos, espero dilucidar un poco lo que significa la comunidad y explicar la forma para aprovechar o, mejor aún, formar parte de su potencial.

Para iniciar, hablaré de lo que es una comunidad de software libre. De forma concreta, quiénes la componen, lo que implica y por qué las prácticas del software libre permiten que exista. La segunda parte del artículo cubrirá el significado que tiene la comunidad para el usuario de software, las empresas que participan en una implementación de software libre y las causas de su poder. Finalmente, hablaré de la empresa de software que patrocina el proyecto de software libre. ¿Cómo puede un patrocinador establecer, mantener y aprovechar su comunidad?

Primera parte de la serie Únase a la interrupción concertada.

¿Quién conforma la comunidad?

No es difícil ver que la comunidad está conformada por desarrolladores que escriben programas y otras personas que crean material de soporte, pero también incluye usuarios finales, empresas de servicios empresariales o software, consultores y revendedores, entre muchos otros. Cualquiera de estas personas o grupos puede acceder a las entrañas de un proyecto de software libre y contribuir a él. En el contexto del software libre, las distinciones entre vendedores de software, empresas de consultoría y empresas de clientes no son exactamente iguales a lo que normalmente comprenderíamos con las fronteras entre compradores y revendedores en la industria del software. Además, la idea de las empresas que aumentan sus procesos de desarrollo para incluir la información de los clientes, no puede ser un acuerdo falso, ya que el cliente puede contribuir a un proyecto de software y ver cómo esta contribución se incorpora al lanzamiento del software.

Me gustaría afirmar una distinción nueva: la básica y amplia taxonomía de las entidades de la industria del software ha cambiado; hace un tiempo comprendía categorías como proveedor de software, cliente y consultor (o algún tercero que, por ejemplo, ayuda a seleccionar o implementar el software). Actualmente, incluye un proveedor de software, un consumidor, un consultor y un equipo central del proyecto.

Veremos que este equipo central del proyecto tiene un papel de vital importancia en el mundo del software libre. En este contexto, este equipo coordina su comunidad y se encarga de establecer la dirección que tomará su proyecto específico de software libre. La comunidad puede haber sido formada por una empresa de software o puede haber surgido de forma independiente; no obstante, generalmente prospera gracias al trabajo de los desarrolladores de la empresa, los revendedores, los consultores, los clientes de una empresa patrocinadora y otros individuos.

Lo que implica desde el principio

La ventaja de las comunidades de software libre son los medios de colaboración intrínseca que deben utilizar para obtener sus resultados. Empecemos por hablar del programador -más adelante hablaré de las empresas completas. Un programador que trabaja solo puede lograr muchas cosas, pero no puede hacerlo todo. Cuando otros programadores tienen acceso a la fuente de un programa, pueden hacerle mejoras, reparar los errores de funcionamiento o desarrollar por completo usos nuevos e innovadores para el proyecto, que probablemente el programador original no habría contemplado.

Comparémoslo, por ejemplo, con lo que los artistas han sabido por mucho tiempo: la inspiración puede tener varias fuentes. Por lo tanto, resulta vital para el trabajo propio estar expuesto e interactuar con las ideas que surgen del trabajo de distintas personas. Lo mismo sucede al escribir código: un programador puede estudiar el código que ha creado otro programador y aprender técnicas. Si el programador que mencionamos antes capta la atención de una persona que tiene un problema similar, podrá aprovechar la colaboración con ella para resolverlo. Del mismo modo, si el proyecto de software no satisface por completo las necesidades de una persona, esta podrá adaptarlo para que lo haga.

Por naturaleza, las entrañas de un proyecto de software libre se exponen al público. Cuando un programador obtiene una licencia de software libre para su código, está reconociendo la posibilidad de que otras personas estudien, modifiquen o utilicen de otro modo el código que ha escrito. Si no le importara dar a otros programadores esa posibilidad, no tendría que esforzarse por obtener la licencia de software libre para su código. No hay que olvidar esto, ya que sólo podemos empezar a pensar en por qué la comunidad de software libre es lo que es, cuando un programador reconoce que otros programadores pueden interesarse en sus esfuerzos. Concretamente, se trata de una comunidad que trabaja en los proyectos en una forma que va más allá de las fronteras de la industria del software (califiqué estas fronteras previamente, en lo que denominé taxonomía).

Asimismo, existen distintas habilidades que participan en este proceso. Por ejemplo, la documentación –un programador puede ser muy hábil para escribir código, pero probablemente no es capaz de escribir un manual para la gente que usará el programa, o no tiene el tiempo para hacerlo. Es posible que alguien más, probablemente un usuario, decida redactar la documentación para su uso propio, pero podría usarla para contribuir a la fuente del proyecto. Así, en caso de que hubiera un error, las demás personas podrían descubrirlo y colaborar con sus conocimientos y sus habilidades para resolverlo. Esta es sólo una parte de la colaboración que caracteriza a una comunidad de software libre. Recuerde que, debido a que la comunidad es un superconjunto de empresas e individuos que deseen participar, su tamaño potencial sobrepasa por mucho el de cualquiera de las empresas más grandes de software. Veamos cómo esta comunidad puede desarrollarse con el hecho de que el programador de nuestro ejemplo reconozca lo que sus homólogos pueden hacer con su código permite que se desarrolle esta comunidad.

El software libre galvaniza las comunidades

¿Por qué el software libre galvaniza las comunidades? No sólo permite, sino que promueve la libertad para que las personas se ocupen del software en formas que no serían posibles sin una licencia de software libre. Esto significa que el proceso de desarrollo abarca una amplia gama de personas que normalmente no podrían contribuir. Con frecuencia, las licencias de software libre tienen condiciones para garantizar que las modificaciones que se hagan al software mantendrán la naturaleza de libertad de acceso al código fuente del software. Cuanta más gente trabaje con dichos proyectos, mayor será la forma en que dichas licencias contribuyan al crecimiento del proyecto.

La Internet es el medio de comunicación y colaboración, por lo tanto, el desarrollador de software libre cuenta con una reserva inmensa de partes que pueden estar interesadas (o desinteresadas, según el caso). Esto también implica ciertas peculiaridades tanto en la gestión como en la promoción de las comunidades de software libre. Hablaré de ellas conforme vayan surgiendo en las entrevistas que presentaré durante esta serie.

Establecimiento de una comunidad

Exploremos esto desde el punto de vista de una empresa que quiere ofrecer software libre. Dicha empresa quiere desarrollar una solución de software que aborde algún problema que sus fundadores no han sido completamente capaces de manejar porque tienen poca experiencia en el asunto. Los fundadores se hacen preguntas como las siguientes:

  • ¿Qué puedo hacer para introducir mi producto en el merado rápidamente?

  • ¿Cómo puedo presentar mi solución al mayor número posible de clientes potenciales?

  • ¿Cómo puedo competir con las empresas que ya están establecidas?

  • ¿Cómo puedo aprovechar los principales métodos de desarrollo y soporte?

Una forma para mitigar muchas de las preocupaciones anteriores es establecer y alimentar una comunidad de software libre exitosa. Sin embargo, puede tener sus desventajas, y si no se hace con cuidado, puede provocar dificultades en la coordinación o hasta la autodestrucción del proyecto. Por otro lado, cuando se hace bien, el proyecto puede captar la atención de los desarrolladores que tienen conocimientos prácticos. Esto puede representar un paso más hacia la presentación del proyecto ante los clientes, que puede hacerse con una estrategia masiva de distribución y mercadotecnia viral –resultado del infinitamente reproducible software libre.

Una empresa que se dedica a proporcionar o dar servicio a soluciones de software abierto, participa en una comunidad que le permite presentar su producto ante más clientes que otros métodos, y utilizar ese superconjunto de desarrolladores potenciales y personal de aseguramiento de la calidad. Puede distribuir su producto sin incurrir en costos demasiado altos. El uso de licencias de software libre promueve una distribución amplia y poco costosa de las soluciones de software, ya que todo el mundo tiene la libertad de redistribuirlas. Así, la distribución no está limitada por puntos de contacto como vendedores propietarios o redes de revendedores, sino que se traspasa esas fronteras e incluye a toda su base de usuarios como distribuidores potenciales.

Las ventajas que este método de distribución puede representar para una empresa que trata de darse a conocer en una industria madura de software, son bastante evidentes. Un buen ejemplo son las estadísticas que publica Sourceforge.net. Este eje de desarrollo de software libre expone las estadísticas en su página de inicio ante más de un millón de usuarios (cifra obtenida durante la redacción de este artículo). Durante los últimos años, las empresas de software libre favoritas acumularon una enorme cantidad de descargas de sus productos, como Compiere, que registra 80,000 y SugarCRM con 200,000. La serie de productividad de oficina OpenOffice.org ha registrado más de 40 millones de descargas de su software y su código desde que se creó en 2003. La mayoría de las distribuciones de Linux contienen cientos de aplicaciones de este tipo, y sería difícil encontrar una distribución importante que no incluyera OpenOffice.org. Con toda esta información sólo pretendo decir que existen muchas personas y empresas en el mundo que están en contacto con estos sistemas, y que los están utilizando. No trataré la relación entre este método de distribución y los ingresos, pero existen numerosos ejemplos (consulte los modelos del negocio de Red Hat, SugarCRM, ComPiere o IBM).

Algo similar sucede con el soporte. Están surgiendo empresas que dan soporte, implementan y personalizan las soluciones de software libre. Dichos servicios se pueden adquirir con la experiencia de empresas como Red Hat. Estos negocios se habilitan mediante la metodología de distribución y desarrollo, que es una de las funciones de la comunidad –esta proporciona las ideas y la mano de obra. Y el hecho es que las personas que practican el soporte y la implementación no están en deuda con la comunidad de software libre, sino que son parte de ella.

Al dar soporte a una solución que a) promueve la libertad para participar en crear el software que el cliente necesita y b) generalmente puede adquirir y utilizar cualquier cliente sin tener que superar el obstáculo de los costos prohibitivos, una empresa que proporciona un servicio relacionado con software libre sabe que al buscar prospectos de negocios, sus clientes no han usado solamente una muestra de su software, sino que lo han adoptado –seguros de las necesidades existentes.

Suponiendo que la noción de ofrecer un producto como software libre resulta atractivo para una empresa, aprovechar las ventajas de formar parte de una comunidad de software libre implica participar con cierta conciencia. ¿Cómo atrae a los desarrolladores a este proyecto? Una vez que el proyecto empieza a marchar, ¿cómo se mantiene el interés de la gente que contribuye a él y se asegura que este mantendrá su paso? ¿Qué sucede cuando los competidores deciden participar en el proyecto? ¿Qué puede hacer la empresa que lo inició para lograr que los clientes formen parte de su comunidad y dar soporte a un producto más completo? Si una empresa decide que su proyecto será software libre, ¿quiere decir que atraerá cantidades astronómicas de programadores que quieran hacerle modificaciones y mejoras? La respuesta a esta última pregunta es un no definitivo. El software libre está muy lejos de ser la fórmula mágica para crear software. En cuanto a las respuestas a las demás preguntas, podemos obtenerlas de la experiencia de la comunidad misma.

Es el momento de recordar la idea que expuse al principio de este artículo sobre la taxonomía de las entidades de la industria del software, es decir, la distinción de un equipo central del proyecto. En el contexto de la comunidad de software libre, se trata del equipo que coordina a los participantes en el proyecto. La existencia de dicho equipo del proyecto y el administrador de la comunidad parece haber evolucionado de los requisitos de desarrollo de grupos que están dispersados físicamente y que tienen objetivos distintos con respecto a la colaboración en un proyecto. Esta persona o este equipo tienen varias responsabilidades que serán clave para asegurar el éxito del proyecto. Las empresas que no pongan atención a estas cosas no podrán dar vida a sus proyectos de software libre o cosechar las recompensas.

  1. Incluya a los desarrolladores o las personas que den soporte o contribuyan en una discusión constante y significativa acerca de su trabajo y la dirección del proyecto.


    Esta parece ser la medida más importante para mantener el interés de los desarrolladores. Las personas con quienes hablé para crear este artículo, estuvieron de acuerdo en afirmar que un proyecto en crecimiento necesita tanto comunicación constante como reconocimiento entre sus participantes. Ellos deben formar parte del proceso de toma de decisiones. El proyecto necesita que sus administradores respeten los esfuerzos que realiza su comunidad. Cuando estos administradores no incluyen a la comunidad de desarrolladores con retos interesantes, retroalimentación constructiva y, sobre todo, reconocimiento positivo o críticas de calidad, estos perderán el interés y abandonarán el proyecto, afectando la actividad de su comunidad.

  2. Asegúrese de que existen pocos obstáculos para la participación


    Cuanto más fácil sea para los desarrolladores comprender un proyecto y contribuir con él, mayor interés demostrarán. Esto implica requisitos técnicos básicos para la infraestructura que hagan posible y fácil que una persona se involucre en el proyecto. Comprende un acceso útil a cosas como depósitos de archivos, detectores de errores, listas de distribución de discusiones y otras herramientas relacionadas con un proceso de desarrollo que se realice por Internet.


    Hay que recordar que el desarrollo de software libre obtiene la masa crítica que necesita, en gran parte gracias a la colaboración, que no existiría sin la conectividad mundial que proporciona la Internet. Es decir que quienes pretenden actuar como desarrolladores tienen la responsabilidad de descubrir los métodos que emplea la comunidad de cierto proyecto para contribuir a él. Si no pueden comprenderlos y usarlos fácilmente, es muy probable que abandonen el proyecto.

  3. Cree una conciencia de los planes del proyecto en la comunidad

    Parece simple, pero no siempre se cumple. El plan que contiene los objetivos y los logros del proyecto, da a los desarrolladores una idea de los problemas, las tareas y los retos que deben ser objeto de su interés. Asimismo, es importante para el usuario final. Cuando los usuarios comprenden la dirección que busca seguir el desarrollo de software, son capaces de decidir si más adelante se alineará con sus necesidades, si será una buena opción para ellos. De hecho, los usuarios deben contar con un medio para ejercer algún tipo de influencia sobre este mapa. Después de todo, los usuarios, como los desarrolladores, son parte de la comunidad, y su retroalimentación ayudará a controlar las mejoras que se hagan al software.

  4. Siembre credibilidad estableciendo una comunicación clara y honesta entre los grupos que participan en el proyecto (como las empresas patrocinadoras, los desarrolladores, los usuarios finales, el personal de soporte, etc.)


    Cuando una empresa patrocinadora inicia el proyecto, una comunicación clara y una participación ayudan a demostrarles a los desarrolladores que están fuera del alcance de la empresa que, aunque el proyecto es guiado por un grupo activo que pertenece a la empresa, no pretende aprovecharse del trabajo de otros. Los usuarios y el soporte externo deben estar seguros de que su participación en el proyecto tiene dos sentidos. Por ejemplo, si una empresa de usuarios finales despliega el software del proyecto de forma interna, con la comprensión de que una de sus fortalezas es su comunidad de software libre, la decisión de la empresa será reforzada cuando se mantenga dicha comunidad de forma sana y constructiva y no sea ignorada al punto de desaparecer.


    Cuando una empresa inicia un proyecto de software libre como punto central de su negocio, no puede permitirse marginar una parte de su comunidad, porque se arriesgaría a perder también a sus clientes. Hasta podría perder a sus competidores, ya que es posible que formen parte de la comunidad. Los competidores estarán interesados en contribuir de alguna forma con el proyecto –están interesados, como todos los demás, en que el proyecto mejore. Este sería un caso en que el equipo central del proyecto o el administrador de la comunidad actuarían como enlace. Las licencias de software libre se caracterizan porque perpetúan la apertura de los cambios, las adiciones, las mejoras, etc. en el software, por lo tanto, la fuente de dichos cambios, ya sea un competidor, un cliente o un desarrollador, está fuera de toda cuestión.


    Una forma para demostrar esto es que la empresa patrocinadora no dé a los desarrolladores ventajas especiales que no da a los demás miembros de la comunidad. Por ejemplo, Karl Fogel mencionó que CollabNet no da a sus propios desarrolladores derechos para realizar cambios al proyecto Subversion de software libre, sin que pasen por el mismo proceso que debe seguir la comunidad, es decir, “registrar las soluciones, recibir las revisiones, recibir nominaciones para acceso y estar sujeto al voto de todos los comités existentes”.

  5. Verifique que el software sea importante

    Una empresa que inicia o patrocina un proyecto de software libre, lo hace generalmente por una de dos razones. Puede ser que necesite una solución de software o algún tipo de adición personalizada para utilizar un sistema que ya ha sido desarrollado, o que pretenda crear o mantener un negocio alrededor del suministro, la implementación, la consultoría o la oferta de algún otro servicio relacionado con el software.

    En el primer caso, la tecnología es importante para la empresa misma. Sin embargo, aunque a nadie más le importe, puede resultar difícil para la empresa crear una comunidad. Existen muchas razones que los pueden haber llevado a desarrollar un sistema de software libre. Por ejemplo, si los requisitos de desarrollo del software están fuera del enfoque real de la empresa, es posible que no quiera invertir los esfuerzos de sus empleados en el desarrollo interno del software. El software puede ser útil para otras personas, por eso, la idea de tener una comunidad amplia que contribuya a mejorarlo sugiere, al menos, las ventajas que la obtención del software puede tener para los costos. En otras palabras, la empresa puede dedicar sólo algunos recursos de desarrollo al proyecto y hacer que dé resultados gracias a la ayuda de la comunidad, sin buscar un tercero a quien comprarle el software.

    En el segundo caso, las consecuencias pueden ser mayores. Si la empresa pretende mantener o crear su negocio alrededor del suministro o la oferta de servicios basados en el software, es mejor que se asegure de que el software será importante para su público. Si nadie se interesa, la empresa no podrá atraer desarrolladores, usuarios y competidores para crear su comunidad.

La entidad usuario/consumidor

Finalmente, de todas las ventajas que creemos que el software libre trae al mundo empresarial –reducciones en los costos, ausencia de bloqueo de los vendedores, seguridad, confiabilidad y, probablemente, una probabilidad menor de que surjan problemas de soporte, el aspecto fundamental y más importante es la comunidad.

Las empresas de usuarios finales no creen que un vendedor que le da acceso a su código fuente le esté dando software libre. Usted será un caso singular que está aislado del crecimiento en colaboración de una comunidad real. Será el conocido niño que crece con los lobos, que madura sin tener idea de cómo funcionar en una sociedad de humanos. ¿A qué me refiero? Existen vendedores que proporcionan software y permiten que sus clientes tengan acceso a una parte o la totalidad de su código fuente, restringidos por ciertos acuerdos que, en realidad, limitan su libertad para modificar, reutilizar, redistribuir o compartir dicho código con otras personas. Las licencias que imponen este tipo de restricciones evitan que las entidades formen una comunidad similar a la del software libre. En algunos casos, dichos vendedores utilizarán palabras que dan la impresión de que sus licencias son similares o “tan buenas como” sus contrapartes de software libre. A veces, ellos mismos dirán que muchos clientes no están interesados en modificar el código fuente, y que por ello, no es un asunto de importancia. Si embargo, esto no es más que evitar el problema, y no tiene mucho que ver con lo que realmente es importante acerca del acceso que da el software libre al código fuente.

La verdadera importancia es que la capacidad para examinar, modificar y redistribuir el código fuente alimenta la interacción de las ideas y las innovaciones en el desarrollo, y promueve una colaboración de mano de obra poco costosa en una comunidad global sin fronteras (aún cuando el ímpetu para estas cosas no provenga del usuario final). Permite que quienes están involucrados gocen de una mayor capacidad para tratar sus objetivos, gracias al acceso que tienen a mayores fuentes de soporte. El tipo disruptivo de la disponibilidad del código fuente del software libre, como base para crear la comunidad, ha puesto las soluciones de software al alcance de las empresas de usuarios. Y es algo que cualquier consumidor de software debería apreciar.

Con esto concluye la primera de cuatro partes que conforman esta nota. La segunda parte presenta una entrevista con Jeff Bates, vicepresidente de operaciones editoriales del Open Source Technology Group (OSTG). Su experiencia en el desarrollo y la administración de las comunidades de SourceForte.net y Slashdot esclarece la forma para mantener el interés de los participantes y la tecnología, que es de gran utilidad para los esfuerzos de desarrollo. La tercera y cuarta partes presentan a dos personas de CollabNet, Karl Fogel, uno de los desarrolladores fundadores del proyecto Subversion, y Louis Suárez-Potts, gerente de desarrollo de comunidad para el proyecto OpenOffice.org.

 
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