Metodología y motivación de los desarrolladores de software libre - BiblogTecarios

Metodología y motivación de los desarrolladores de software libre

Ordenador encadenadoUno de los grandes argumentos a favor del software libre es la innovación tecnológica, ligada al desarrollo que implica la evolución económica y social para adaptarse a las necesidades y disponerlo en el mercado en condiciones atractivas para los clientes. La innovación tecnológica y la evolución económica de un país dependerán de la calidad de los productos y servicios desarrollados.

Esta capacidad de adaptación de servicios se denomina TCO (Total Cost os Ownership), referida al coste de desarrollo, de instalación, de adaptación y de mantenimiento de un sistema informático. Aspectos comentados en mi anterior post.

Por lo que el desarrollo del software libre no solo se limita al producto final, sino que también hay un valor añadido con su instalación, mantenimiento y formación, donde realmente se minimiza el TCO. Pero esto solo es posible si el desarrollo está orientado a un servicio integral de valor añadido.

El freno a la innovación lo ponen algunas empresas que obligan a firmar a sus trabajadores un acuerdo de no divulgación del código fuente. Pero el software libre ayuda a superar este problema, ya que gracias a sus condiciones y filosofía un programa libre no impone ninguna traba en la difusión del estudio científico y hace que el código fuente sea de dominio público.

Para que todo esto funcione tiene se ejecutarse mediante una metodología muy detallada. La principal obra de Eric S. Raymond (1998) The cathedral and the bazaar define dos metodologías de desarrollo de software:

  • La “Catedral” representa el modelo del mundo comercial. Es el modelo más tradicional de desarrollo, porque es el que más se da en todas las empresas. Hay un jefe de proyecto que determina quién y cuándo tiene que realizar las tareas, que están bien delimitadas en funciones y tiempo de duración. Su metodología se basa en seguir los pasos indicados respetando el diseño original y el tiempo fijado. Solo se publican versiones si el sistema está al menos un 90% acabado (nunca se publica una versión beta).
  • El “Bazar” representa el mundo GNU/Linux. Este modelo es el que se ejerce a través de un equipo de programadores coordinados, una comunidad de desarrolladores. Se requiere la figura de un desarrollador principal o jefe de proyecto para evaluar el resultado, resolver problemas y hacer nuevas propuestas. Este modelo es una metodología de trabajo diferente, requiere estar alerta de los errores al momento para publicar las versiones rectificadas rápidamente (versiones beta) para que sea revisada y/o mejorada por otros. El resultado se considera un desarrollo robusto y de calidad.

Estas metáforas de E. Raymond permiten definir dos estilos de metodologías de desarrollo de software, la catedral como la gran construcción de herramientas para comercializar y el bazar como el mercado libre de intercambio de conocimiento basado en prueba-error y mejora del software.

Sobre el desarrollo basado en prueba-error se habla en la Linu’s Law (llamada así por Linus Torvald, creador de Linux en 1991) donde dice lo siguiente:

Dado un número suficientemente elevado de ojos, todos los errores se convertirán en obvios.

Esta observación es la que hace entender de forma clara los dos modelos de desarrollo de E. Raymond (catedral y bazar), porque los errores de un software propietario necesita meses para su revisión y solución, esto hace alargar el tiempo de espera de nuevas versiones. En cambio, el software libre se basa en que los errores son evidentes y los pueden solucionar miles de programadores, es esta la razón por la que liberan rápidamente versiones beta para que sean probadas, se vean los errores y se solucionen en un tiempo mínimo.

Pero también en el desarrollo del software libre podemos encontrar diferentes metodologías de desarrollo:

  • Escrutinio público, se traba de disponer públicamente el código fuente para que sea revisado y modificado por parte de cualquier programador.
  • Puerta cerrada, el código fuente es público pero las modificaciones están centralizadas en un equipo concreto de programadores. De esta manera garantizan una calidad en el software y sus versiones, es el caso de la comunidad de desarrolladores de Firefox.

En general se puede decir que el desarrollo del software libre consiste en un método de cooperación de programadores que trabajan de forma coordinada para desarrollar y dar soporte al código fuente de una herramienta, el cual pasa por un procedo de revisión, corrección y publicación de mejoras.

¿Cuál es la motivación que mueve a un programador a contribuir a un proyecto sin recibir ninguna compensación? Diversos estudios revelan que el individuo se siente parte de una comunidad tecnológica y quiere mejorar sus habilidades en programación, beneficiarse del software y divertirse. La mayor motivación es el aprendizaje individual, la eficiencia en el trabajo y la diversión de crear. Aunque también son motivación la convicción de que el software libre es un derecho fundamental, su calidad técnica es superior a la de un programa comercial y sobre todo la mejora profesional y la diversión personal obtenidas con la actividad.

¿Cómo se coordina un equipo tan grande de personas trabajando en un mismo proyecto? Se traba de una coordinación disciplinada, se aplican sanciones públicas a aquellos miembros de la comunidad que no siguen las normas establecidas y vetan algunas decisiones que afectan al proyecto. Como en cualquier proyecto, hay una estructura formal, según el proyecto. Por contra, también hay estudios que demuestran que el aumento de programadores en un mismo proyecto dificulta la satisfacción del programa y por tanto es más vulnerable.

¿Cómo se gana la vida un desarrollador (empresa o persona) de software libre? Ofreciendo soluciones avanzadas y personalizadas, partiendo de una o diversas herramientas libras ya existentes, o creando una de cero. Richard Stallman (Fundador de la Free Software Fundation) está a favor de aprovechar la venta de software libre, ya que el coste de una distribución es una oportunidad de obtención de fondos para el propio desarrollo, aunque sin abusar y siempre que se respeten las condiciones de las licencias y se liberen las mejoras.

En resumen, cada proyecto de desarrollo tendrá sus particularidades pero mediante un método organizado de trabajo se puede conseguir mejores tiempos y mayores motivaciones del equipo. Se trata de un cambio en el modelo de desarrollo positivo, el proyecto cobra vida a través del equipo de programadores trabajando ordenadamente y de forma cooperativa a través de la Red, dispersos por cualquier territorio y en cualquier horario.

Lo que hace importante al software libre es la garantía de calidad y la amplia comunidad activa de usuarios y desarrolladores que hay detrás de cada desarrollo, para asegurar un servicio y evolución continuo de la herramienta.

The following two tabs change content below.

Patricia Russo

Este blog pretende dar a conocer herramientas, experiencias, bibliografia, etc. sobre software libre aplicado a bibliotecas, además de otros temas de interés general sobre la profesión.

Latest posts by Patricia Russo (see all)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *