Y es que para mi el software libre lo ha supuesto todo profesionalmente. En el año 2010 me encontraba trabajando para el software privativo. A modo ilustrativo diría que hasta hace poco era la época profesional en la que más dinero ganaba y también la época más frustrante/desilusionadora a nivel de evolución personal.

Un gran resumen en sí mismo del software privativo... pero hay 10 razones más:

1.- Ya está disponible

Efectivamente, el software libre ya está ahí esperando ser usado. No hacen falta meses de trabajo. Posiblemente gran parte de lo que quieras desarrollar ya esté inventado. ¿Por qué no centrarte en lo que de verdad te va a diferenciar de otros en lugar de reinventar la rueda?

2.- Documentación y comunidad

Además de estar ahí el software libre ya tiene disponible para ti una estupenda documentación y una comunidad a la que puedes recurrir en caso de bloqueo. Con suerte incluso en español.

Otros desarrolladores te ayudarán a alcanzar el punto al que quieres llegar.

3.- Buenas prácticas

La mayoría de proyectos opensource tienen guías de estilo para su código, con sus validadores para Code Sniffer, JSLint o similares. Sistemas de build, pruebas unitarias, control de versiones... Si crees que todo esto te puede hacer falta recuerda que ya hay una comunidad y manuales a disposición para poner tu entorno de programación a punto.

Si tu negocio sale mal habrás adquirido un conocimiento enorme que redundará en ti mismo desde el primer día. Porque si aspiras a trabajar en una empresa decente hay herramientas que necesitas dominar en cualquier caso.

4.- Velocidad de aprendizaje

En el software libre tu código está expuesto cada día. Abierto a que lo critiquen y a que lo cuestionen. La gran barrera de humo que frena a muchos.

¿Que critiquen tu código es malo? Para nada. Piensa que las personas que critican y cuestionan tu código son gente que ha llegado a administrar el software libre tras años de experiencia. ¿Imaginas a los mejores programadores de tu sector diciéndote en qué te has equivocado y sugiriéndote lo que tienes que mejorar? ¿Cuánto crees que cuesta eso?

Tu primera lección será aprender a aceptar las críticas y a crecer con ellas.  Vital para un desarrollador. Cualquier persona puede enseñarte algo. Si ves tu código de hace un mes y no piensas que puedes mejorarlo deberías empezar a buscar otra profesión.

5.- Seguridad

Cabeza de avestruz escondida

Otro de los grandes tabús del software libre es la seguridad. ¿Qué es más seguro un sistema cerrado cuyos puntos débiles no están expuestos o un sistema abierto que expone sus entrañas a los peores ataques y corrige las vulnerabilidades lo antes posible?

"No hombre, es que mi código es bueno pero no lo enseño!"  Pues si no me lo enseñas no me lo creo :-P

Pregunta a cualquier experto en seguridad y te dirá que meter la cabeza debajo de la tierra no te hace estar más seguro.

6.- Reconocimiento

Tu primer bug reportado, tu primer parche enviado, el agradecimiento de alguien a quien has ayudado, saber que algo que tú has creado lo tienen miles de sitios web. Estar expuesto tiene retorno y es increíblemente gratificante.

Si contribuyes asiduamente a un proyecto del que viven otras empresas no es raro que contacten contigo para ofrecerte un puesto en sus filas. Y aunque no sea así recuerda que si buscas un trabajo decente más vale que tengas un buen perfil de Github. Con cada contribución lo estás mejorando.

7.- Sostenibilidad

Imagina un sistema en el que otros mejoran tus productos, generan nuevas funcionalidades y mandan sugerencias. Tener un grupo de desarrolladores con tu mismo objectivo en todo el mundo te ayudará con las actualizaciones y a evolucionar hacia nuevas tecnologías más acordes al mercado actual.

Si no evolucionas estás muerto.

8.- Gestión de proyectos

Imagina tener un proyecto con un equipo de más de 100 personas distribuídas a lo largo del mundo. ¿Cómo será llevar eso? El software libre también te enseñará cómo se gestiona el propio proyecto. ¿Qué equipos hay detrás? ¿Qué jerarquía hay? ¿Qué herramientas usan? ¿Cómo se controla el código?

9.- Reclutamiento

Has tenido suerte. Tu empresa va viento en popa y ahora necesitas crecer. Veamos ¿dónde pongo el anuncio? ¿qué pido? ¿cuánto tiempo le llevará a la nueva persona adaptarse?

Con el software libre reclutar es fácil: necesito a alguien que controle de Symfony. Esa persona estará produciendo para ti en un tiempo récord porque ya conocía la tecnología antes de trabajar para ti.

10.- Cartera de clientes

La mayoría de proyectos de software libre ya te ofrecen un acceso al mercado. Unos tienen un market de extensiones, otros un sitio donde ofrecer tus servicios... Cosas que estarán dándote un retorno en cuanto te pongas en marcha. Cuanto más involucrado estés y más mejore tu reputación normalmente más feeds te llegarán.

Conclusión

El software libre como opción de negocio existe. Sólo hay que fijarse un objetivo, analizar el mercado y llenar un hueco.

En mi caso en tan sólo dos años y medio pasé de mi primer contacto con el software libre (Joomla!) a contribuir activamente a Joomla! CMS y ser miembro del Production Leadership Team.

En el plano laboral pasé de tener que explicar lo que era un control de versiones a mi jefe a liderar el equipo de desarrollo de una empresa internacional a la que tuve acceso gracias a la repercusión de mis contribuciones al proyecto.