Este artículo explora una tendencia común en proyectos personales: la parálisis por análisis, o 'overthinking'. El autor describe cómo, a menudo, se enfrenta a dos caminos al iniciar un proyecto: o simplemente lo ejecuta, o se sumerge en una investigación exhaustiva de soluciones existentes. El segundo camino, aunque motivado por la búsqueda de la mejor solución, suele llevar a una espiral de complejidad, investigación interminable y, finalmente, a la inacción.
La clave, según el autor, reside en la claridad de los criterios de éxito. Cuando estos son definidos de manera simple y enfocada (como en el ejemplo de construir un estante con un amigo, donde el éxito era simplemente disfrutar de la actividad), el proyecto avanza sin complicaciones. Sin embargo, cuando los criterios son vagos o ambiciosos (como intentar reemplazar herramientas CAD comerciales o crear un lenguaje de programación), la investigación se vuelve abrumadora y el progreso se estanca. El autor reconoce el valor del aprendizaje a través de la investigación, pero enfatiza que la verdadera comprensión y el progreso significativo se obtienen a través de la 'acción' y la experimentación.
El artículo ilustra este punto con un ejemplo concreto: el intento de crear una herramienta de búsqueda de archivos similar a Finda, inicialmente planeado como una tarea sencilla supervisada con la ayuda de un LLM. Sin embargo, la búsqueda de una biblioteca existente (Nucleo) desencadenó una serie de complicaciones relacionadas con características adicionales y la necesidad de adaptar el código, lo que llevó a un esfuerzo considerable y, finalmente, a descartar parte del trabajo realizado. El autor concluye que, a veces, la eficiencia en la programación puede verse contrarrestada por la complejidad innecesaria y la distracción, y aboga por abrazar la simplicidad y la acción, incluso si eso implica cometer errores.
Finalmente, el artículo introduce el concepto de 'diffing' estructural, explicando cómo las herramientas tradicionales de comparación de archivos (diffs) se basan en líneas de código y no consideran la estructura subyacente del código (funciones, tipos, etc.). Herramientas como difftastic intentan mejorar esto utilizando árboles de sintaxis concretos, pero aún pueden fallar en el mapeo de entidades entre versiones. El autor invita a la comunidad a compartir ideas y referencias sobre el tema del 'diffing' estructural.
