miércoles, marzo 07, 2007

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

miércoles, marzo 07, 2007 por Martín

Crear tu propio proyecto

En mi anterior post comentaba que una de las nuevas formas para encontrar un trabajo hoy en día es iniciar un proyecto Open Source. En realidad no se trata sólo de una forma de encontrar trabajo sino que puede convertirse en una forma de ganarse la vida, aunque para eso hace falta sobre todo suerte. Suerte para encontrar la idea adecuada, en el momento adecuado, en el lugar adecuado, y seguramente sobre todo con los amigos e inversores adecuados.

De cualquier modo, jamás ha sido tan fácil emprender en la red como lo es hoy en día. Cualquiera puede ir a sourceforge.net y crear su proyecto. No sólo eso, muchas empresas ofrecen servicios gratuitos para todo el que desee desarrollar Open Source, como por ejemplo Atlassian o JetBrains por citar algunos.

De cualquier modo, crear un proyecto es el camino más difícil. Es el camino que seguí yo. Aunque realmente aquí tendría que corregir mis palabras: crear un proyecto sólo es el camino más complicado. Al principio, trabajar sólo es muy cómodo ya que tienes toda la libertad del mundo para dirigir los pasos de tu proyecto, pero la realidad es que conforme la idea va madurando, conforme empiezan a aparecer los usuarios y conforme empiezas a tener menos tiempo, entonces te das cuenta que ir en solitario es un error. De todos modos, discutir esto no es el objeto de este artículo, pero si alguien escoge el camino de crear un proyecto entonces tiene una oportunidad fenomenal para involucrar gente e intentar navegar en grupo.

Sea como sea, además de ser la opción más complicada, es fácil comprender que es la opción que más satisfacción personal crea. El crear un proyecto es algo que conlleva muchos sufrimientos pero también muchas alegrías. Unas pequeñas, otras más grandes: ver que la gente se descarga tu creación; ver que empiezan a preguntar cosas sobre como funcionan; ver que te llegan cumplidos de partes recónditas del mundo; o ver que tras pasados varios meses te comentan que lo han implantado en una empresa y lo llevan usando durante un año. Todo eso son pequeñas recompensas.

Todo esto está muy bien, pero ¿cómo me ayuda a encontrar trabajo? Buena pregunta. En mi opinión no es algo que sea inmediato, y requiere cierto sacrificio. Sobre todo no se empieza a ver el fruto hasta que tienes una base de usuarios decente (al menos cientos), comienza a haber movimiento en los foros o listas de correos, y la cantidad de descargas es respetable. En ese momento comenzará todo el proceso de interacción social, o networking, y empiezan a surgir las oportunidades.

Elegir la tecnología adecuada

Para maximizar la cantidad de oportunidades, o incluso para intentar saborear la fama, lo mejor es crear un proyecto que sea innovador. Es decir, siempre será más sencillo el llamar la atención creando un proyecto con alguna tecnología o API novedosa que el irse a algo tradicional. Por poner un ejemplo, seguramente tenga mayor posibilidad de éxito el crear una red social para desarrolladores de Ruby on Rails que un lector RSS de noticias en Java. A fin de cuentas, la realidad es que pocos desarrolladores pueden permitirse el adoptar nuevas tecnologías y APIs, así que los que tienen tiempo para crear algo con esas tecnologías siempre estarán mucho mejor posicionados.

Voy a poner un ejemplo personal que muchos ya conoceréis, y que es el que utilizaré en adelante. jLibrary. jLibrary no es la mejor aplicación del mundo, de hecho tiene muchas cosas que ahora mismo las veo y se me suben los colores. Sin embargo puedo decir que ha tenido mucha repercusión en su pequeño entorno. Este proyecto nació como un reto personal para aprender tecnologías interesantes (hibernate, lucene, axis, etc.) y en su momento decidí que podía ser una buena idea el orientar el producto hacia el escritorio (por llevar la contraria) así que escogí Eclipse RCP. Eclipse RCP por esas fechas estaba en beta!!

Tras mas o menos un año, todo el mundo de la comunidad Eclipse conocía jLibrary, simplemente porque era la única aplicación de un tamaño considerable desarrollada con el nuevo API. Todo esto le dio visibilidad al proyecto, le dio contribuidores, le dio personas que se interesaron por él y lo comenzaron a utilizar. En fin, le dio por decirlo de algún modo "familla". Si hubiera escogido Swing, no habría pasado lo mismo, porque hay miles y miles de aplicaciones Swing. Pasado otro año, decidí cambiar el backend del sistema para usar Apache Jackrabbit, la implementación de referencia del JSR-170, y nuevamente volvió a suceder lo mismo. Otra vez esta aplicación era de las pocas que utilizaban Jackrabbit, y nuevamente volvió a coger bastante familla, hasta el punto que incluso la gente lo utilizaba porque era la única herramienta que les permitía navegar por repositorios de Jackrabbit de una forma visual y más o menos sencilla.

Lo más importante de todo esto es tener en mente que aunque fracases, siempre habrás aprendido tecnologías nuevas, lo que significa por si mismo un retorno del tiempo que has invertido en forma de conocimiento.

Ahora bien, imaginémonos que escogemos una tecnología novedosa, que obtenemos una base de usuarios y que el producto coge cierta familla. ¿Qué oportunidades pueden aparecer?

Oportunidades: convertirte en tu propio jefe

Probablemente la mejor es que tu producto se haya vuelto tan popular que al final puedas dedicarle todo tu tiempo. Esto es lo que sueñan todas las personas que arrancan un proyecto. Unas veces se cumple, y otras no. Cuanto más tiempo le puedas dedicar, más posibilidades tendrás ya que podrás desarrollarlo mejor y tendrás tiempo para promocionarlo. Quien sabe, a la larga te puedes convertir en el nuevo Linus Torvalds o Marc Fleury.

Oportunidades: que te contrate alguien que utilice tu producto

Esto no es tampoco una opción descabellada. Si las empresas comienzan a utilizar tu producto, y lo ven útil, es probable que quieran invertir su dinero en obtener soporte de primera mano. Y quien mejor va a dar soporte que el creador del producto en sí. Otra posibilidad alternativa a esta es que la empresa directamente absorba tu producto y lo integre en su stack de aplicaciones. Ahora bien, llegado este momento cabe preguntarse: ¿es realmente esto lo que quieres? Porque a veces esto significará que perderás todo el control sobre algo en lo que has gastado tu tiempo.

Seguro que muchos conocéis ejemplos de ambos casos, ya que es muy habitual verlos en el mundo Open Source. En su momento, un proveedor Open Source de software de portales (está en lista pública, pero tampoco quiero poner nombres de estas cosas aquí) me ofreció la posibilidad de unir jLibrary a su producto, pero tras analizar las repercusiones yo decidí rechazar la oferta. ¿Decisión adecuada? Nunca lo sabré. Estoy contento con que jLibrary siga siendo un único producto, pero seguramente si hubiese aceptado sería mucho más importante en estos momentos. Pero la cuestión es, ¿seguiría siendo algo tuyo o sería algo que ha perdido toda su identidad?

Oportunidades: que un compañero te ofrezca trabajo

Esto también es muy habitual. Si muestras dedicación y las personas que forman tu grupo ven que eres trabajador te saldrán oportunidades. Estas oportunidades pueden estar asociadas a tu producto o simplemente pueden ser oportunidades para trabajar en otros productos de otras compañías. Por ejemplo, durante el año pasado mis compañeros en jLibrary me hicieron varias ofertas. Todas ellas muy interesantes, y alguna realmente importante. Estas ofertas suelen ser realmente buenas porque son muy seguras, tienes un contacto dentro de la empresa, y en resumen que la integración es mucho más sencilla.

Oportunidades: que vengan de miembros de las comunidades en las que participas

También es bastante probable. Una vez que te integras en alguna comunidad comenzarás a hacer amistades. Se empiezan con preguntas, se sigue con charlas, acabas realizando parches y contribuyendo a esos productos, y al final acabas por obtener cierta relación de confianza. Esas relaciones pueden derivar en ofertas de trabajo.

Oportunidades: que la competencia te quiera fichar

Esto puede parecer extraño, pero suele pasar. Especialmente cuando la competencia son compañías importantes que por cualquier razón se han quedado atrás, o tienen productos retrasados, o que simplemente desean tener gente con experiencia en una cierta área. En mi caso personal me llegó alguna oferta de ese estilo. La verdad es que nunca podría decir que eran mis competidores, porque se trataba de empresas que juegaban en otras divisiones. Sea como sea lo importante es que te ven, llamas su atención, y te pueden intentar contratar.

Oportunidades: que vengan de terceras partes

Quizás incluso más común que las anteriores. Si las tecnologías que usas son pioneras y hay pocas personas en el mercado que las conozcan, es realmente muy fácil que algún cazatalentos se ponga en contacto contigo ofreciéndote trabajo o preguntándote si conoces alguien que pueda trabajar con esa tecnología. Personalmente me ha pasado en varias ocasiones. La razón es que al no haber personas en el mercado, los recruiters se tienen realmente que esforzar para buscar gente así que terminan buscando en google, en blogs, en comunidades de desarrolladores, etc. A ellos les interesa porque normalmente las tarifas para este tipo de tecnologías novedosas son muy buenas, y las comisiones son mejores, así que hacen esfuerzos adicionales.

Conclusiones

Conclusión: menudo rollo que ha soltado. No, ahora en serio. Este post puede parecer realmente pedante, ya que me utilizo sólo a mi mismo como ejemplo, pero es que ciertamente es el caso más normalucho que puedo encontrar. Podría hablar de Rod Johnson o de Gavin King, pero no tendría demasiado sentido ya que lo que quiero expresar con estos artículos es que las personas normales disponen hoy por hoy de oportunidades para encontrar trabajo que antes no existían.

Crear un proyecto en alguna tecnología interesante es algo arriesgado pero que como mínimo te va a aportar conocimientos en esa tecnología. Sólo por eso, ya vale la pena. Pero además tienes la ventaja de que pueden aparecer oportunidades. No siempre aparecerán, pero lo que está claro es que al que nunca le aparecen es al que nunca lo intenta. Así que ánimo si alguien decide seguir este camino.

El siguiente será el último post de esta serie.

comments

0 Respuestas a "Sobre Software Libre y las nuevas formas de encontrar trabajo (II)"