viernes, 13 de enero de 2012

Liberar código ¿es un deber moral?


El software libre es fundamental en nuestra vida, pilas completas basadas en él hacen funcionar a nuestros cacharros, desde el router Wifi o TV hasta el iPhone o iPad (también tienen mucho software libre, el navegador Webkit/Safari desarrollado desde el KHTML de KDE, o el Darwin desarrollado a partir de BSD y Mach). Cada mensaje, email, tuit, apunte en G+, cada foto, cada fotograma de vídeo, cada paquete TCP/IP es manipulado por millones de líneas de software libre.
Salvo excepciones, es el software libre el que hace funcionar a las empresas más grandes en Internet. ¿Sobre qué funciona Google? GNU/Linux, Python, MySQL. ¿Facebook? GNU/Linux, MySQL, PHP, Erlang, Cassandra. ¿Tuenti? GNU/Linux, PHP (se sabe poco más). ¿Akamai? GNU/Linux. ¿Amazon? GNU/Linux, Xen. ¿Y Android?
También hay millones de empresas más pequeñas que dependen casi exlusivamente de software libre. Pero de todas estas empresas, son muy pocos las que liberan el código que desarrollan, incluso la mayoría tampoco documenta o relata sus experiencias, cómo desarrolló su arquitectura, o qué problemas tienen.
Hoy me preguntaba ¿no sienten nada de remordimiento de ser unos free riders? ¿de no devolver nada a esa comunidad que les permite desarrollar sus negocios?
Quizás es que nunca se lo plantearon, no se detuvieron a pensar qué es lo que tienen entre manos, y cómo lo usan. No está mal recordar que sin una enorme comunidad que colabora (individuos y empresas), muchisimas empresas no podrían existir, ni siquiera podrían haber sido concebidas (Amazon EC2, por ejemplo).
Hay miles de razones por las que no te interesa liberar nada del código de una empresa, que quizás no comparta, pero para colaborar no hace falta liberar todo el código, nadie lo pretende. Ayudará que liberes ese reproductor de vídeo o audio en HTML5 que has desarrollado. O esos módulos para hacer galerías de fotos o dibujos. Incluso ayudaría a mucha gente que cuentes cómo tienes tu arquitectura, cómo has integrado diferentes módulos, el uso creativo que haces del Javascript para tu módulo de chat, o el pequeño editor de texto. Siempre hay gente a la que podría ayudar, o enseñar.
Puedes colaborar de muchas formas, hasta la más tonta (¿liberar un juego de iconos que pueden ser útiles para otros sitios?), pero no hacerlo implica que no te importa nada el esfuerzo de mucha gente (y empresas) que han ayudado a que tu empresa exista, y funcione. El software es como un libro, pero con un componente adicional que lo hace especial. Además de ser portador de conocimiento pasivo como un libro, es activo, hace cosas que afectan al mundo real, que permiten dar servicios a tus clientes.
Así, el software libre beneficia a tu empresa de dos formas diferentes: por lo que es capaz de hacer, y fundamentalmente, por el conocimiento que transmite a tus programadores: les da las herramientas intelectuales para solucionar problemas. Analiza lo que hacen tus programadores y administradores de sistemas, pregúntales cómo han aprendido a hacer eso, cuánto ha ahorrado a la empresa, y cuánto trabajo tuvieron que invirtir centenares de miles de personas. ¿No sientes ganas de devolver una parte de ese esfuerzo? ¿o de colaborar aunque sea simbólicamente?
Hay dos cosas fundamentales que hay que cuidar:
  1. Tus clientes o usuarios (aunque no te paguen).
  2. La comunidad de desarrolladores y diseñadores que te obsequian sus herramientas.
Los buenos empresarios tienes muy claro el #1, pero me da la impresión que al #2 no se le da importancia. Es tan grande la dependencia en el trabajo de esa comunidad, que quizás ya es hora de tomarlo en serio. Ninguno de sus programadores te recriminará si respetas su licencias, lo hicieron con esa intención. Pero quizás los progamadores que necesites contratar sí empiecen a tener en cuenta esta variable. Muchos ya lo hacen, me consta.
Addendum: Usar software libre, o desarrollar sobre él, ya no tiene mérito (si es que alguna vez lo tuvo), ya es mainstream, aunque todavía hay algunas empresas que se publicitan de esa manera. Lo que tiene “mérito” es contribuir, no usar.