Más de 25 años de #Linux ¿Qué lecciones se pueden aprender de este hecho?

El kernel Linux ha cumplido 26 años este 2017. De todo este tiempo se pueden extraer algunas lecciones importantes de lo que se ha aprendido.

El proceso de desarrollo y mantenimiento del kernel Linux es un caso con pocas similitudes en su especie. Empezó como un proyecto personal y se ha convertido en un proyecto de software colaborativo que no ha parado de crecer en sus más de 25 años de vida.

Cada vez más desarrolladores, más empresas y más líneas de código se han sumado al kernel Linux. Un kernel creado por cientos de personas dedicadas cada una en un área concreta, pero todas desarrollando algo en común de manera conjunta.

El soporte de empresas al kernel Linux ha sido vital. Muchas empresas colaboran para beneficio propio, ya que usan o implementan soluciones tecnológicas basadas en Linux. Esas mejoras son compartidas por muchas otras empresas y pequeños usuarios.

Pocos proyectos de desarrollo de software tienen esa historia y muchos de ellos se han situado en un estatus de que están “casi completos” y donde los cambios son pocos y muy espaciados en el tiempo.

El kernel Linux es diferente, después de más de 25 años, este proyecto es más vital y activo que en cualquier tiempo pasado de su historia.

Hay muchos estudios académicos sobre la comunidad que lo desarrolla, pero todavía pasarán muchos años hasta que entendamos completamente las claves para su éxito.

Pero con todo esto, hay algunas lecciones que han quedado claras en todo este tiempo, y que pueden ser estudiadas para aplicarse en otros proyectos.

Imagen: Ondiz Zárraga

 

Los ciclos cortos de lanzamientos son importantes

En los comienzos del proyecto Linux, sólo había un lanzamiento mayor del kernel cada pocos años. Eso significaba retrasos considerables para que los usuarios tuvieran nuevas mejoras, lo que era frustrante tanto para los usuarios como los distribuidores.

Pero, lo más importante, los ciclos largos de lanzamientos significaban que había una gran presión para llevar al código hasta el siguiente lanzamiento, incluso sin estar preparado.

Los ciclos cortos de lanzamientos resuelven esos problemas. Nuevo código es rápidamente puesto a disposición en lanzamientos estables. La integración de un nuevo código casi de manera constante hace posible introducir cambios incluso fundamentales con una interrupción mínima.

Y los desarrolladores saben eso, si se perdieron un ciclo de lanzamiento, habrá otro en apenas dos meses, así que hay pocas razones para intentar incluir código de manera prematura.

Un proceso escalable necesita de un modelo de desarrollo distribuido y jerárquico

Hubo un tiempo en el que todos los cambios iban a parar directamente a Linus Torvalds, pero ni siquiera un desarrollador con su talento puede manejar un proyecto que se mueve tan rápido como es el kernel Linux.

Delegando responsabilidades para revisar el código  y la integración en 100 o más mantenedores le da al proyecto la posibilidad de hacer frente con decenas de miles de cambios sn sacrificar la revisión o la calidad del código.

Las herramientas importan

El desarrollo del kernel Linux luchó para crecer hasta la llegada de BitKeeper, un sistema de gestor de código abierto cambió los procedimientos de la noche a la mañana, que antes se utilizaban en la comunidad.

El cambio a Git trajo otro salto importante hacia adelante. Sin las herramientas adecuadas, un proyecto como el kernel Linux simplemente sería imposible que funcionara sin caer bajo su propio peso.

El modelo del kernel fuertemente orientado al consenso es importante

Como regla general, un cambio propuesto no será incluido si un desarrollador respetado se opone a el. Esto puede ser muy frustrante para los desarrolladores que se encuentran con que el código en el que han empleado meses es bloqueado en las listas de correo.

Pero también asegura que el kernel sigue siendo adecuado para una amplia gama de usuarios y problemas. No hay usuarios particulares de la comunidad que puedan realizar cambios a expensas de otros grupos.

Como resultado de esto, tenemos un kernel que sirve tanto para pequeños sistemas como para grandes supercomputadoras y que es adecuado para un gran rango de usos y aplicaciones.

Un factor relacionado con esto es la regla de oro de “no regresiones” del kernel.

Si un kernel funciona con unos ajustes específicos, todos los kernels subsiguientes deben funcionar también de la misma manera. La implementación de esta regla no siempre es perfecta, pero da a los usuarios la seguridad que las actualizaciones no echarán a perder sus sistemas.

Como consecuencia de esto, están dispuestos a seguir desarrollando el kernel mientras desarrollan nuevas capacidades.

La participación de empresas en los procesos es crucial

No habría habido una rápida progresión del proyecto como se menciona aquí sin la implicación de empresas. Pero también es importante que no haya una sola compañía que domine el desarrollo del kernel.

Mientras que cualquier compañía puede mejorar el kernel para sus necesidades específicas, ninguna compañía puede dirigir el desarrollo en direcciones que dañen a otras o restrinjan lo que puede hacer el kernel.

No debe haber límites internos dentro del proyecto.

Los desarrolladores del kernel Linux están necesariamente orientados en partes específicas del kernel, pero cualquier desarrollador puede realizar cambios en cualquier parte del kernel si el cambio está justificado.

Como resultado, los problemas se resuelven donde se originan en lugar de ser manipulados, los desarrolladores tienen una visión más amplia del kernel como un todo, e incluso el mantenedor más recalcitrante no puede detener indefinidamente el progreso necesario en un subsistema dado.

Más de 26 años de historia del kernel Linux muestran que el esfuerzo sostenido y cooperativo puede generar recursos comunes que ningún grupo habría sido capaz de desarrollarse por sí mismo.


Este texto es un extracto del la publicación del Informe anual del desarrollo del kernel Linux 2017 que ha publicado la Linux Foundation bajo licencia CC-by-sa 4.0.

La traducción que he hecho está publicada bajo la misma licencia. He creído que podría ser interesante divulgarlo para la comunidad hispana. Me alegro si lo encuentras interesante.

—————————————————

6 pensamientos en “Más de 25 años de #Linux ¿Qué lecciones se pueden aprender de este hecho?

  1. Que proyecto más interesante, y que importante es para el mundo, y no exagero para todo el mundo, aunque no lo sepan. Gracias como siempre por tan buenos artículos. Un abrazo

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s