Mi proyecto de LatamQChallenge se lo presente a mis 2 stakeholders (nada sorprendente 2 gatos) hace ya 5 meses y llevo desde ese entonces día tras día agregándole funcionalidades.
Ha sido un camino muy difícil y de aprendizaje que al menos pueden dar seguimiento con algunos de mis artículos anteriores.
Mi deadline para este proyecto era 1 de octubre y no lo logré, estoy muy lejos de terminar; para mí es una derrota personal. Por esto me gustaría compartirte como se siente, mis puntos de falla y cuál es mi 'mindset' para sobrellevarlo.
Establece un objetivo
Puede parecer trivial, pero siempre hace falta tener un objetivo claro y profundo, para algunos es aprender X tecnología para aplicar a un nuevo puesto, mejorar alguna habilidad, emprender o algún otro.
Lo importante es que sea un objetivo que realmente te impulse a continuar; en mi caso es empezar a construir mi marca fuera de una empresa armando un portafolio con proyectos de mi calibre (hay uno que otro objetivo, pero me lo reservo).
Redacta cada una de las funcionalidades
Esto es una de las primeras cosas que hago, redacto que voy a hacer en el README justo para pensar todas las piezas que componen el proyecto y si necesito incluir alguna configuración lo incluyo de inmediato, simple documentación y asumir que lo olvidaré.
Timeboxea tus funcionalidades
En esta parte fallé y es bastante complicada de manejar. Mientras el proyecto es tuyo y quieres aprender, te pierdes en un rabbit hole de algunas tecnologías y no avanzas (lo que me pasó con Firebase y los queues).
Por un lado no me arrepiento porque aprendí una barbaridad, pero ya sé mi punto de falla e incluso que tecnologías usar por si quiero sacar otro proyecto.
Establece un deadline
Algunos casos los proyectos tienen como objetivo un evento (mi caso) o emprendimiento y tratas de ubicar una fecha para poder lanzarlo.
Al fallar en los tiempos de cada funcionalidad, estimé a ciegas 6 meses y todo se derrumbó en conjunto, todos los tiempos deben ser bien calculados.
Life Balance
Si tienes sueño, duerme; si estás estresado, relájate... Esta bien que quieres mejorar, estudiar y avanzar.. pero que no te cueste la vida, disfrútalo y vuélvelo parte de tu rutina. Todos terminaremos en un cajón al fin y al cabo...
No todos estamos diseñados para llevar está pequeña presión de tener que avanzar en tu side project; depende de tu forma de ser y tu tiempo.
Yo disfruto de la mejora continua y aún así no es fácil sacrificar mi tiempo libre por leer documentación; ya de por sí el explorar nuevas tecnologías es complicado y estresa cuando no sabes porque no compila.
Si entre tus objetivos está el querer mejorar, te recomiendo que empieces con proyectos realmente pequeños para probar; y si tu perseverancia y tiempo te lo permite ve por más.
El proyecto LatamQChallenge es en parte la unión de varios proyectos pequeños de hecho, no me lancé a algo totalmente desconocido.
Crea el dominio cuando termines
Un clásico de los desarrolladores, temes que te roben el nombre o la idea y compras dominios que ni terminas usando.
Siempre considera que es más importante la ejecución que la idea.
No divulgues todo lo que haces
Hay un viejo dicho que estaba pegado en la pared de mi alma mater: "Que no sepa tu mano izquierda, lo que hace tu derecha" y me ha servido de mucho; este dicho va más orientado a hacer buenas acciones sin esperar nada a cambio.
En este contexto puede ser aplicado para evitar prometer deadlines que no estas seguro que podrás cumplir; de igual modo, el estar divulgando provoca que tu mente asuma que ya lo lograste y saboreas el éxito antes de tiempo.
Cabe destacar que yo mencione las funcionalidades del proyecto en este mismo blog, mas no he prometido nada.
Primero termina y luego mejóralo
Que no te gane el perfeccionismo, siempre trata de completar tus proyectos, no importa si no es todo lo eficiente que podría ser.
Este consejo me lo dijo un conocido al hacer un juego en un Game Jam; ya te estás imaginando que lo vas a lograr, pero es lo más difícil de todo... terminar y entregar.
Palabras Finales
Me gustaría aprovechar para mencionar que no estoy haciendo un Hello World o un CRUD sencillito para un fin de semana, realmente estoy desafiando mis límites e ideando cada unas de mis funcionalidades desde cero.
Este ha sido el proyecto más demandante que he hecho y seguro iré por mas luego de este, me siento un poco agobiado por lo profundo que estoy llegando en las tecnologías; pero esto es a lo que debo aspirar al hacer un proyecto de mi nivel.
Por otro lado, me motiva que justo estoy usando todo ese conocimiento al instante en mi trabajo y se nota muchísimo el cambio. Además, el resto del proyecto son funcionalidades que domino.