clean-code · burnout · side-project
Por qué los side projects siguen sin terminar: el burnout explicado
A todos nos ha pasado: tenemos esa idea revolucionaria para un side project o startup. Empezamos a escribir código, creamos el repo y armamos la arquitectura. Pasamos horas buscando las tecnologías más de moda. Pasan dos o tres días y ese impulso inicial de energía empieza a desvanecerse. Entonces empezamos a procrastinar. Nos distraemos. Las tres horas que le dedicábamos por día se convierten en una, hasta que de repente caen a cero. Y abandonamos el proyecto.
Entonces llega la siguiente idea y sentimos otra vez esa subida de adrenalina: “esta vez sí voy a terminar el proyecto. Este va a funcionar.” Pero nos estamos mintiendo a nosotros mismos, porque dijimos exactamente lo mismo con los últimos tres proyectos y ninguno está terminado todavía.
Divide y vencerás
En México existe algo llamado “misiles”. Son vasos enormes que contienen entre dos y tres litros de alcohol. A veces es solo cerveza, a veces cerveza preparada, y a veces una mezcla de distintas bebidas.
El detalle está aquí: la gente intenta tomárselo todo de un solo trago. ¿El resultado obvio? Terminan con un nivel absurdo de alcohol en el cuerpo, completamente borrachos y hasta con lagunas mentales. El cuerpo no puede procesar tanto alcohol de una sola vez.
¿No sería mejor tomarlo a sorbos y disfrutar toda la noche? Lo mismo pasa con los side projects. La gente intenta terminarlo todo en un fin de semana, termina quemada y abandona.
Marcar el rumbo con objetivos claros
¿Para qué intentar terminarlo todo de golpe? Mejor planificar y entregar por partes.
Conviene armar un plan incluso antes de escribir la primera línea de código. Definir a dónde se quiere llegar y cómo se va a llegar ahí. Una vez que se tiene el panorama completo, puede que la idea no sea tan original como se pensaba, ni tan sencilla, ni siquiera lo que se imaginaba.
¿Se quiere crear el próximo Facebook? Empezar por el flujo de creación de posts. Una vez que funcione y esté deployado, seguir con los perfiles de usuario. Después agregar fotos, historias, reels, etc. La idea queda clara.
Ojo con el overengineering
Por favor, por favor. Por el amor de Dios. NO SE NECESITA UNA ARQUITECTURA DE NETFLIX para una startup.
Que se olviden los microservicios, Kubernetes y Kafka. No hacen falta, al menos no todavía.
Hay que evitar ese código complejo que se genera solo a partir del nombre de una entidad: lo único que agrega es complejidad y acoplamiento. Como se viene diciendo a lo largo de este artículo: es mejor entregar algo simple que no entregar nada.
Esto no significa que nunca haya que pensar en escalar, ni que no vaya a hacer falta. Pero no al principio, no ahora.
¿Vale la pena validar la idea antes de pensar en microservicios?
Va una historia:
Con unos amigos nos juntamos con la idea de armar una app para romper el sistema y ser nuestros propios jefes. Empezamos a planear la arquitectura. Yo definí el backend con microservicios en Node.js para garantizar velocidad. El de frontend propuso Flutter para compilar tanto para iOS como para Android. El de infraestructura propuso usar Gorilla y Kubernetes para mantener los microservicios siempre disponibles.
¿Y saben cuál era la idea? Un Tinder para perros… Sí, ya sé. Éramos jóvenes, y en ese momento la idea sonaba genial. Pero cuando se la presentamos a alguien más, nos miró como diciendo “¿qué?”
¿Para qué necesitábamos Kubernetes para algo que la gente ni siquiera iba a usar? ¿Se entiende el punto?
No se trata de motivación, se trata de disciplina
Tal vez se esté pensando: “Qué fraude, este tipo no me va a decir cómo lograr las cosas.” Pero el reto está en nombrar más de diez personas que hayan creado algo únicamente a base de fuerza bruta.
Todos tenemos ideas. Entonces, ¿por qué no logramos convertirlas en algo tangible? Porque perdemos la motivación en el camino.
Entonces, ¿cómo mantener la motivación? Bueno, el secreto no está en mantener la motivación, sino en construir disciplina.
Como dijo Uncle Bob: “La dedicación y el profesionalismo tienen más que ver con la disciplina que con las horas.” Hay que respetar el propio tiempo y energía. Parafraseando a Uncle Bob otra vez: “El peor código que escribí fue el que escribí a las 3 AM.”
Esto nos regresa al principio. Se intentó con todas las fuerzas terminar ese side project o esa idea de SaaS a las carreras, a fuerza bruta, pero cuando la motivación se desvanece, se abandona.
Conclusión: convertirse en Super Saiyajin
¿Se acuerdan de la saga de Namek? Goku se recuperó de su batalla contra Vegeta y empezó a entrenar para alcanzar a sus amigos en Namek.
Su nave espacial tenía ajustes de gravedad de hasta 300G. Pero no empezó ahí: arrancó con 20G. Una vez que se adaptó, subió a 50G, y así fue progresando poco a poco. Si hubiera saltado directo a 300G, se habría lesionado y habría fracasado. Nunca habríamos visto la transformación en Super Saiyajin, uno de los momentos más icónicos de la cultura anime.
Entonces, ¿por qué seguir tratando de apurar un proyecto o trabajar solo cuando llega la motivación? Vale la pena tomarse el tiempo para pensarlo. Nos vemos en el próximo artículo.