En Agosto de 1991, Linus Torvalds, en aquel momento un estudiante más de Ingeniería del Software de la Universidad de Helsinki, envió un correo a la lista USENET advirtiendo de sus intenciones de desarrollar un nuevo sistema operativo:
" I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. "
En poco tiempo, un grupo de entusiastas formado por estudiantes y profesionales de la programación de todas partes del mundo, se fue involucrando compartiendo ideas y código. Este grupo de desarrolladores que trabajaban de forma altruista y motivados por crear algo que muchos otros como ellos pudieran usar y mejorar, pronto se convirtió en uno de los mayores ejemplos de proyecto colaborativo en la historia reciente de la Informática. Aunque es uno de los más famosos ejemplos, está bastante lejos de ser el único, aunque todos ellos han demostrado como un grupo de usuarios y tecnólogos con perfiles e intereses completamente distintos, han sido capaces, por si mismos, de dirigir proyectos de gran complejidad técnica.
Después de casi 25 años, hoy en día, Linux está presente en casi el 54% de los dispositivos móviles, en casi el 37% de los servidores web, en el 97% de las instalaciones de super computadores y en casi el 30% de los sistemas embebidos entre otros. Ha permitido además el desarrollo de multitud de empresas que directamente han utilizado Linux como la base de su negocio, tales como Red Hat y Ubuntu, poniendo de manifiesto un aspecto esencial: el software libre se puede monetizar.
En la actualidad, el Software Libre ha pasado de ser una actividad impulsada únicamente por una comunidad de hackers y activistas a convertirse en un modelo de distribución establecido globalmente que ha cambiado por completo la industria.
El papel del Software Libre en la Industria
La adopción global del Open Source como cultura y como modelo de negocio en la Industria del Software, ha tenido un papel determinante y catalizador en su desarrollo. Hoy en día, cuesta pensar en algún campo dentro del mundo de la computación en el que el Software Libre no tenga un papel relevante: cloud computing, Saas, bases de datos de nueva generación, dispositivos móviles y un largo etcétera. A la expansión del Software Libre han contribuido todos los agentes de la industria, desde Universidades y Centros Tecnológicos hasta empresas de todo tipo y tamaño, incluyendo también las grandes compañías de Internet como Google, Facebook, Twitter. En el contexto actual, por tanto, dónde la apuesta por el Software Libre se ha consolidado y dónde los viejos prejuicios de la comparación con el Software propietario se han vencido, cabe preguntarse cuáles han sido los factores que han llevado a la situación actual.
Industrialización del Software
Indudablemente, el Software Libre ha propiciado el cambio en el sector que ha permitido pasar de una actividad casi artesanal a una verdadera industria. Si nos paramos a pensar por un momento en los procesos productivos de cualquier otro tipo de industria, veremos que la mayoría de ellas se basan en el ensamblaje de pequeñas piezas que se van uniendo para construir sistemas más complejos. En los inicios de la industria del software, este concepto de ensamblado no existía, por lo que cada desarrollo se hacía desde el principio hasta el final de manera distinta, con costes elevados y sin posibilidad de producir en masa.
Aunque aún estamos muy lejos de ser una industria dónde la producción pueda asemejarse a una línea de ensamblado, si es cierto que en la actualidad cualquier desarrollo Software se realiza en base a componentes, herramientas, librerías y Frameworks ya existentes y disponibles de forma abierta. Una de las señales claras de que este hecho se ha producido es que en el desarrollo de software cada vez se habla más de Integración que de Implementación.
Adopción del Software Libre Vs Software Propietario
La adopción generalizada del Software Libre por parte de las empresas actuales de IT radican en cuatro aspectos clave: costes, libertad de elección, seguridad (calidad) y facilidad de uso. El coste, aunque pudiera parecer el más determinante de todos ellos y a diferencia de lo que mucha gente piensa, no es el aspecto más importante. Dejando a un lado el debate de las distintas licencias que existen y que toda empresa debería conocer antes de incorporar cualquier herramienta abierta, en la última encuesta sobre el Futuro del Software Libre realizada cada año por la consultora Black Duck en la que se pregunta a más de 800 empresas, tanto proveedoras como consumidoras de Software, sobre distintas cuestiones relacionadas con el Software Libre, revelaba que el primer motivo para adoptarlo por delante de soluciones propietarias era poder protegerse contra el "lock-in" de los proveedores. Al disponer del código fuente, las empresas puedan adaptar las herramientas a sus necesidades y no necesitan estar atadas a las decisiones de los proveedores.
El segundo motivo más repetido fue el de poder disponer de Software de calidad. Efectivamente, las herramientas de Software Libre más extendidas han sido probadas y usadas por una cantidad de desarrolladores de la que ninguna empresa del mundo puede disponer. Existe también transparencia en cuento al estado de los proyectos, listas de correo de soporte, bug trackers, documentación actualizada, etcétera. Si unimos esto a que el desarrollo de los proyectos suele estar guiado por las necesidades de la comunidad y de los usuarios, las empresas pueden tener una seguridad alta en la adopción de nueva tecnología con un nivel bajo de riesgo.
El concepto de Comunidad. Innovación abierta
Tradicionalmente, las innovaciones estratégicas han sido consideradas como uno de los activos competitivos más valiosos para las empresas y como una fuente de ventajas competitivas frente a la competencia que debe protegerse internamente. Este tipo de desarrollo propietario y de estrategia competitiva es característica de la innovación cerrada, dónde el progreso tecnológico se mantiene secreto o se protege intelectualmente esperando un retorno de la inversión.
En contrapunto, colaborar y compartir han sido siempre los principios claves dentro del mundo del Software Libre. Los beneficios de los principios de la innovación abierta (incorporar tecnologías innovadoras desde fuera de la organización, contribuir las invenciones desarrolladas internamente y hacerlas llegar al máximo número de personas posibles, trabajar colaborativamente con agentes externos a la organización, etcétera) han sido ampliamente aceptados desde sus inicios en las comunidades de Software Libre. Además, estas comunidades, son ejemplos perfectos de equipos de trabajo con una cultura que favorece la innovación: multidisciplinares, open-minded, horizontales, basados en meritocracia, etcétera.
En un entorno abierto, la estrategia de una compañía para permanecer competitiva pasa por intentar utilizar todos los recursos disponibles para el desarrollo continuo de nuevos productos y servicios. En los últimos años en la industria del Software, se está imponiendo la innovación abierta como estrategia para que comunidades de usuarios (agentes externos) permitan mejorar los desarrollos internos de una empresa.
A finales de 2014, Facebook contaba con 107 proyectos open-source en su cuenta de Github. Recientemente, el responsable de Software Libre de Facebook, James Pearce, daba tres razones principales por las que Facebook abría todos sus proyectos:
- Ideología: desde sus inicios, Facebook se construyó usando herramientas de Software Libre como Linux, Apache, MySQL, PHP, etcétera, por lo que sentían la obligación moral e ideológica de contribuir tecnología de vuelta.
- Innovación: quizás la principal razón por la que cualquier compañía o desarrollador Freelance contribuye su trabajo es por que puede escalar y mejorar más rápidamente cuando muchas mentes distintas trabajan en los mismos problemas. Según James, en Facebook "creemos que podemos ser más competitivos si la industria en conjunto es más competitiva y es capaz de innovar en el mismo tipo de problemas a los que nos enfrentamos día a día", es decir, lo que es bueno para la industria, es bueno para Facebook. Igualmente, cuando un desarrollador sabe que su código puede ser usado e inspeccionado por cualquier persona en todo el mundo, se esfuerza mucho más en hacerlo correctamente. En la actualidad, Facebook cuenta con más de 1.000 contribuciones externas a sus proyectos que suponen un porcentaje elevado del código con respecto a las contribuciones internas, resultando un claro caso de éxito en la innovación abierta.
- Beneficios para el negocio: la cultura Open Source que mantienen les permite atraer talento con mucha facilidad, mejorar su tecnología y ser un referente en muchos ámbitos tecnológicos dentro del Software.
Aunque hablamos de una de las grandes empresas tecnológicas de este siglo, como veremos a continuación, estas razones son extrapolables en gran medida a empresas de Software de cualquier tamaño.
Software Libre como Estrategia
Estratégicamente, Facebook no tiene ningún problema para liberar la mayoría de sus desarrollos tecnológicos principalmente por que el core de su negocio no se basa en ellos. Facebook no es una empresa de tecnología al fin y al cabo, es una empresa de contenidos. La tecnología es un medio para soportar su estrategia de negocio y su visión con respecto al Software Libre es la de liberar sus desarrollos para mejorarlos y hacerlos sostenibles. Evidentemente, esta estrategia no es válida para todas las empresas de la industria.
Desde sus inicios, han surgido distintas formas de monetizar el Software Libre. El pionero en este aspecto fue Red Hat, quien decidió por primera vez ofrecer de forma totalmente gratuita todos sus productos y cobrar por mantenimiento, soporte y servicios profesionales. MySQL optó por un sistema dual de licencias, ofreciendo su base de datos con licencias Open Source no comerciales y licencias comerciales. Las licencias no comerciales, impedían a otras empresas realizar desarrollos sobre MySQL sin distribuirlos con la misma licencia, mientras que la licencia comercial lo permitía a cambio de una cuantía económica. Otras empresas como Alfresco ofrecen dos versiones distintas de sus productos, una versión Open Source con menos funcionalidades y sin soporte y otra versión Enterprise licenciada que incluye soporte y otros beneficios. Esta estrategia es muy útil para que las posibles clientes puedan tener una idea inicial del producto.
En los últimos años, han surgido nuevas estrategias alrededor de los proyectos de Software Libre. Una de ellas es la de desarrollar versiones Enterprises, en la nube o nuevos productos encima de los proyectos que faciliten su uso a las empresas y reduzcan la complejidad de adopción. Podemos citar ejemplos famosos como Cloudera, principal compañía detrás de Hadoop o LucidWorks, detrás de Apache Solr. Estas empresas han conseguido que los consumidores de estas tecnologías hayan asociado el nombre de los proyectos o herramientas al nombre de la empresa. Muchas compañías no pueden contar con expertos en estas tecnologías o incluso contando con ellos, es muy probable que acaben comprando sus productos al reducir los costes de integración, mantenimiento y soporte.
Estrategia en las PYMES
En mi opinión, cualquier empresa de IT de cualquier tamaño debería contar con una estrategia de Software Libre adaptada a sus peculiaridades. La pregunta que surgirá en todas las ocasiones será: ¿qué podemos y qué no podemos abrir?. Aunque la respuesta puede tener muchos matices, está claro que siempre deberemos proteger aquellos desarrollos que directamente soporten nuestro modelo de negocio, nuestra diferenciación o valor añadido con respecto a la competencia. No tendría sentido liberar aquel código que permitiera a la competencia ofrecer los mismos servicios.
En general, a modo de conclusión, dependiendo de la actividad de la empresa, la estrategia de Software Libre a implantar podría seguir alguno de los siguientes supuestos:
- Liberar side-projects: en ocasiones las empresas realizan proyectos paralelos para cubrir alguna necesidad interna concreta o bien alguna funcionalidad exigida en un proyecto de cliente (por ejemplo, un plugin de alguna herramienta ampliamente usada en el mercado). Liberar estos proyectos y permitir que otros puedan usarlo y mejorarlo contribuye, por un lado, a mejorar la reputación de la empresa en cuento a su experiencia en una tecnología concreta y por otro a ir forjando una comunidad de colaboradores externos a la organización. Una empresa que demuestra públicamente que puede desarrollar código de calidad en una tecnología concreta tiene más posibilidades de encontrar clientes que aquellas que guardan sus desarrollos específicos en un cajón. Por ejemplo, en Athento, hemos liberado varios plugins del Gestor Documental Open Source Nuxeo, esperando, por un lado esperando un retorno tanto de la comunidad como de nuestros clientes y usuarios y demostrando nuestra experiencia con esta herramienta por otro.
- Liberar partes del producto: al igual que en el caso de Facebook, cualquier empresa que desarrolle productos Software, puede optar por liberar partes de sus desarrollos dentro de una estrategia de innovación abierta con el objetivo de mejorarlas. Habrá que seleccionar cuidadosamente que componentes queremos liberar. Por un lado deben ser importantes dentro de la estrategia tecnológica de la empresa y por otro no poner en peligro nuestra ventaja competitiva.
- Formar parte de la comunidad: si una empresa tiene amplia experiencia en el uso e integración de alguna herramienta de Software Libre, debe, por un lado, contribuir de vuelta las personalizaciones del proyecto realizadas y, por otro, intentar posicionar a sus desarrolladores como colaboradores oficiales o "committers" de los proyectos. Involucrarse activamente en la comunidad es una forma de obtener más experiencia en la herramienta y de que posibles clientes puedan relacionar a nuestra empresa con ella.