viernes, marzo 09, 2007

Sobre Software Libre y las nuevas formas de encontrar trabajo (y III)

viernes, marzo 09, 2007 por Martín

Este es el último post de la serie, y prometo que va a ser muy rápido :-)
Posts anteriores:
Sobre Software Libre y las nuevas formas de encontrar trabajo (I)
Sobre Software Libre y las nuevas formas de encontrar trabajo (II)

Unirse a un proyecto

La otra forma de encontrar trabajo de la que quería hablar es unirse a un proyecto. Unirse a un proyecto es una opción más fácil y que realmente conlleva menos responsabilidades. A día de hoy existen miles y miles de proyectos Open Source que buscan desarrolladores y contribuidores de todo tipo. Desde cracks que puedan dedicarse a tiempo completo al proyecto hasta personas que sólo le puedan dedicar una hora a la semana. Cualquiera puede unirse de algún modo a un proyecto Open Source e intentar ayudar. Eso sí, es importante dejar claro en un principio el nivel de involucración que se va a tener en el mismo. De hecho, lo ideal es comenzar poco a poco, y no prometer maravillas para después dejar a la gente colgada. A pesar de que haya muchos proyectos Open Source, y de que no te normalmente nadie te vaya a exigir cuentas, lo cierto es que debe mantenerse una cierta ética a la hora de involucrarse en este tipo de proyectos, de otro modo nuestra reputación puede salir malparada.

Muchos de los puntos que comenté en el post anterior son igualmente aplicables a este. Es decir, se puede encontrar trabajo a través de compañeros, te pueden ofrecer trabajo porque hayan visto que participas en ese proyecto, etc. Así que estos puntos ya no los mencionaré.

A la hora de unirnos a un proyecto debemos tener en cuenta los puntos de los que hablaba también en el post anterior. Nos conviene apuntarnos a un proyecto que tenga una tecnología novedosa, de modo que como mínimo siempre tendremos esos conocimientos que hemos adquirido, y a mayores podremos poner en nuestro curriculum una tecnología que esté poniéndose de moda. Por ejemplo, si pensamos que queremos aprender Ruby, podemos directamente leernos un libro y listo, o leernos un libro e intentar ayudar en algún proyecto Open Source. Lo primero nunca irá al curriculum, lo segundo si que irá. O por decirlo de otro modo, si pones en el curriculum "conocimientos de Ruby" una persona se lo puede o no se lo puede creer; sin embargo, si a mayores pones miembro del proyecto Ruby on Acme, entonces ya tienes una referencia que demuestra que al menos algo sabes.

Aún así no os vayáis a pensar que unirse a un proyecto Open Source es siempre sencillo. La mayoría de proyectos Open Source serios no aceptan que alguien llegue y se ponga directamente a modificar el producto. Por ser un proyecto Open Source no implica que sea un proyecto incontrolado. Normalmente suele haber un ciclo de vida oficioso para lo que sería la incorporación al proyecto:

  • Documentarse sobre el proyecto. Descargárselo. Aprender a utilizarlo.

  • Descargar el código fuente. Construirlo. Entender su estructura. Es importante no molestar al resto de desarrolladores con cuestiones que suelen ser triviales.

  • Comenzar a participar en los foros y listas de usuarios. Exponer opiniones. Hacer pruebas de lo que se comenta, tests, estadísticas, etc.

  • Comenzar a desarrollar los primeros parches. Esos parches serán aplicados por otras personas que controlarán su calidad. Eventualmente pueden ser rechazados si no cumplen su objetivo.

  • Poco a poco se irá cogiendo confianza con el proyecto, los desarrolladores te conocerán, confiarán en ti y finalmente es muy probable que pases a ser un desarrollador oficial del proyecto.


Este camino puede variar según muchos factores, pero se podría decir que este es un camino tipo.

Aún así, yo recomendaría realmente el mantenerse alejado de determinados proyectos que por su madurez y porque se han empresarializado (por inventarse una palabra) no van a permitir realmente que contribuyas. Como comenté antes, Software Libre no significa software sin control. Hay proyectos que en lugar de estar gestionados por comunidades están gestionados por empresas. Estos proyectos no van a permitir que un desarrollador se una, de hecho va a ser difícil incluso que publiquen parches realizados por un desarrollador externo, por muy buenos que sean, ya que pueden no encajar con sus objetivos comerciales. Ejemplos típicos en el mundo de Java serían Hibernate, JBoss, etc.

A continuación expongo algunas de las oportunidades que pueden surgir al colaborar en proyectos Open Source. Recalco de nuevo que muchas ya han sido comentadas en el post anterior así que ya no las nombraré aquí.

Oportunidades: Obtener un trabajo gracias a mejoras en tu CV

Si colaboras en proyectos Open Source, estás siempre aprendiendo cosas. Un proyecto Open Source es como un trabajo, que aunque puede que muchas veces no te proporcione dinero (nunca se sabe) siempre te proporcionará referencias. Esas referencias van en forma de proyectos en los que has participado y además certifican que tienes determinados conocimientos. De hecho, en muchas comunidades como Apache tu nombre quedará para siempre en la lista de contribuidores para determinado producto, lo que además no deja de ejercer un efecto placebo :-)

Si vas avanzando en la jerarquía del proyecto puede que llegaras a adquirir incluso conocimientos de management y dirección de proyectos, ya que los proyectos Open Source son proyectos de software (esto era evidente, verdad) y como tales necesitan también su dirección, su gestión de recursos, su gestión de tareas y problemas, su gestión de timeline y releases, etc. Resulta en cierto modo sorprendente pero la triste realidad es que si tu compañía no te da las oportunidades para ser manager, entonces el Open Source te las puede dar. Obviamente que el Open Source te de esta oportunidad no quiere decir que vayas a ser un buen manager :-)

Oportunidades: Obtener un trabajo porque se crea una compañía

Siempre que un proyecto tiene mucho éxito acaban creándose empresas a partir de él. Obviamente, esas empresas contratarán a las personas que han están trabajando con el proyecto. Normalmente estos trabajos suelen ser muy buenos y a menudo a distancia, ya que es la forma en la que siempre se ha estado trabajando.

Oportunidades: Obtener un trabajo porque una empresa adquiere el proyecto

A menudo, si el proyecto es exitoso puede que entre en los planes de alguna compañía. Para una empresa interesada en un producto es mucho más atractivo el absorber directamente el proyecto que el contratar desarrolladores para que trabajen con él. Absorbiendo el proyecto adquieren el control sobre su ciclo de vida y eso significa que lo pueden adaptar mejor a sus necesidades. Sea como sea, si una compañía adquiere un proyecto en el que estás trabajando tienes todos los boletos para convertirte en trabajador de su plantilla.

Oportunidades: Crear tu propia empresa

Esto enlaza un poco con el post anterior. Simplemente decir que una vez que te conviertes en experto en un determinado proyecto, en especial si es novedoso, es muy posible que te surjan novedades para crear tu propia empresa, ya sea de consultoría, ya sea creando tu propio proyecto, etc. Muy a menudo también, si el proyecto es muy exitoso, es común que se creen centros de soporte locales, con consultores locales que cubren determinadas zonas del mundo. Es otra forma de encontrar trabajo.

Oportunidades: Crear tu propio proyecto

Trabajar en proyectos Open Source te permite ganar experiencia, conocer nueva gente y hacer amistades. De todo eso suelen surgir nuevas ideas, nuevos proyectos, nuevas mejoras o extensiones, etc. Tu propio proyecto te puede llevar a nuevas oportunidades (ver post anterior).

Oportunidades: Participar en alguna iniciativa remunerada

Otra opción interesante es unirse a alguna iniciativa remunerada alrededor del mundo del Open Source. Sin duda la más importante en estos momentos es el Google Summer of Code. Este tipo de iniciativas no dejan de ser trabajos en si mismos, ya que te están pagando, y a mayores te permiten introducirte en una comunidad, en la que probablemente seguirás involucrado cuando termines la beca. Definitivamente, es algo muy recomendable si todavía estás estudiando.

Bueno, creo que no olvido nada. Espero que os haya gustado todo este tema y no os haya aburrido demasiado :-)

Suerte a todos los que se animen a seguir por el camino del Open Source. Como ya he dicho, a veces está bien darse un respiro e intentar algo diferente, aunque sea por eso de decir que lo has intentado. Como he explicado, creo que es una forma de aprender tan buena como cualquier otra y que además puede reportar beneficios muy interesantes. Así que .... ánimo!!

comments

1 Respuestas a "Sobre Software Libre y las nuevas formas de encontrar trabajo (y III)"
jyr dijo...
6:37

Muy buenos, entretenidos y sobre todo aportan bastante los articulos.

Saludos

http://jyr.ath.cx