Mi cuento sobre cómo logré contribuir a un proyecto de Software Libre

David Jimenez
4 min readMay 10, 2018

--

¿Te has preguntado alguna vez cómo ser un mejor desarrollador de software?

(versión en inglés)

Photo by Alex Holyoake on Unsplash

En mi carrera de más de 15 años lidiando con código, hace unos 7 años empecé a hacerme esa pregunta. Una de las primeras recomendaciones que me dieron para lograrlo fue: contribuye a un proyecto de software libre.

En ese momento semejante pensamiento me sonó muy lejano, incluso hasta temible, pensé: ¿Y cómo hago eso? No me consideraba preparado para eso, le pregunté a otros desarrolladores avanzados sobre otras recomendaciones pero la mayoría me recomendó lo mismo.

El Software Libre domina el mundo actual, incluso sus críticos de otro tiempo (por ejemplo: Microsoft) ahora lo apoyan y contribuyen activamente con proyectos como TypeScript o VSCode.

Contribuir para proyectos de Software Libre no es sólo una deber moral, también te permite exponerte a un ambiente altamente competitivo donde otros desarrolladores independientes pueden ver, evaluar y si aprueban tu trabajo, aceptarlo como parte del proyecto… para luego continuar modificándolo.

El Software Libre también permite ver y analizar la manera en que otra gente soluciona problemas, y te permite estudiar cómo puedes ayudarles a lograr sus objetivos específicos.

Pues bien, con un objetivo a largo plazo me dediqué por varios años a mejorarme en áreas de la informática que notaba que los desarrolladores avanzados siempre mencionaban: AWS, TDD (Test Driven Development), linux, bash, Patrones de Diseño, ¡hasta obtuve dos certificaciones en Java de Oracle! Al mismo tiempo empecé a codearme con otros desarrolladores avanzados fuera del trabajo que tenía en ese momento a través de meetups técnicos.

Yendo a estos meetups mejoré mis objetivos, me di cuenta que los mejores desarrolladores eran usualmente los más amigables, estaban siempre al día con las tendencias en tecnología y los expositores, cuando eran de los mejores, solían ser contribuyentes de Software Libre.

Con el tiempo, luego de mejorar profesionalmente, me decidí a dejar mi viejo trabajo.

Fue difícil. Yo creía que estaba preparado, en mi cabeza tenía cubiertas todas las cosas necesarias para salir bien en las entrevistas, pero en realidad los entrevistadores se afincaban en temas que, aunque me eran familiares, no tenía la profundidad que ellos buscaban.

Aún así mejoré y mejoré con muchas de estas entrevistas, gracias a ellas me guié en las áreas de desarrollo de software en las que necesitaba afilarme.

Y así con el tiempo un día me encontré formando parte de una compañía jóven: Momenton, me fue muy bien en la entrevista y las pruebas prácticas de código fueron moderadamente difíciles, lo justo para disfrutar resolviéndolas.

Los muchachos y muchachas de mi equipo eran todos guerreros del desarrollo, un grupo lo suficientemente grande como para poder escoger personalidades de las que aprender pero al mismo tiempo lo suficientemente pequeño como para sentirme parte de un grupo de amigos.

Gracias a ellos subí mi nivel en javascript, BDD (Behavior Driven Development) y descubrí TypeScript.

Entonces entendí que el cliente principal que teníamos sufría una falla muy grande en sus baterías de automatización de pruebas, y gracias a lo que había aprendido recientemente me decidí a mejorar su situación.

Me puse a buscar en la internet sobre ejemplos de BDD con TypeScript y a través de Medium conseguí este proyecto: https://medium.com/@igniteram/e2e-testing-with-protractor-cucumber-using-typescript-564575814e4a

Resultó ser un proyecto muy bueno, fácil de correr y con una buena documentación.

Lo instalé y jugué bastante con él ajustandolo a las necesidades de nuestro cliente, y fue entonces cuando pensé que podía retribuirle al autor original mis mejoras en su proyecto.

¡Fue entonces el momento cuando estaba en capacidad de contribuir al Software Libre!

Así que cree un fork, luego una rama en el repositorio y cuando la tenía lista le mande mi Pull Request al proyecto original…

Un par de días más tarde recibí este correo:

Me aceptaron en el proyecto original.

Y con eso me convertí, oficialmente, en un contribuyente a un proyecto de Software Libre.

En conclusión, me tomó un tiempo muy largo en convertirme en un contribuyente de Software Libre, pero hay muchas maneras más expeditas de lograr esto. Por ejemplo, mientras preparaba este artículo, conseguí este sitio (en inglés): https://www.firsttimersonly.com/ que rápidament te da una idea de lo que tienes que hacer, y este otro: https://dev.to/bormod/how-to-choose-an-open-source-project-to-contribute-to que es mucho más detallado sobre el proceso.

¿Y ahora qué hago?

Me gustaría contribuir a otro proyecto más grande y conseguí este que me parece genial:

Este proyecto consiste en crear centros de educación sobre desarrollo para adolescentes en todo el mundo, y el repositorio de su sitio web contiene muchos problemas listos para ser resueltos por voluntarios.

Entonces, estimado lector, no te va a tomar tanto tiempo como me tomó a mi para que logres contribuir a un proyecto de Software Libre.

Es una sensación muy agradable, y te ayudará a ser un un mejor desarrollador, así como también ayudar a la comunidad de desarrolladores.

--

--