Nunca creo que mi código sea lo suficientemente bueno y debido a esto, siempre vuelvo a rehacer proyectos y termino sin hacer nada. ¿Hay alguna manera de superar esto?

Creo que todos luchan con esto, e incluso si no lo hacen, su código se volverá “viejo” en algún momento de todos modos.

Hay múltiples formas de combatir esto. La mayoría de ellos probablemente estén relacionados con su proceso para su proyecto paralelo. También tengo algunas anécdotas que deberían darte un buen equilibrio.

Anécdotas:
– “Enviado es mejor que perfecto”
– “Se llama barco, no mierda”.
– “Una base de código que se da vuelta con frecuencia es una base de código saludable”

Formas de combatir:
– Estructura y planifica tu proyecto. No solo desarrolle, sino que ponga un poco de rigor detrás de su proyecto paralelo y haga un plan. Ordenar tareas por importancia. Haz un MVP. Convierta las decisiones en decisiones comerciales, no en las necesidades del desarrollador ¿De quién son los problemas que realmente estás tratando de resolver?
– Suelte antes. ¿Realmente necesitas esas 20 características adicionales? Liberar antes evitará que refactorices antes de que lo necesites.

Finalmente, todos los desarrolladores somos culpables de escribir características para otros desarrolladores y para nosotros mismos. ¡Deberíamos pensar en el usuario final y realmente pensar en resolver problemas del mundo real!

Parece que los proyectos en los que está trabajando ya están en producción y proporcionan funciones útiles para las personas. También parece que te estás aplicando a una buena práctica conocida como reducir o eliminar la deuda técnica. Lo que está haciendo es algo bueno que también forma parte del proceso de mejorar su conocimiento del diseño del sistema. Siempre hay margen de mejora y lo estás abordando de la manera correcta.

Si solo más proyectos verían la eliminación de la deuda técnica, podría ver menos brotes como Heartbleed o situaciones anómalas como Windows 10 Latest Updates Crashing PC. Este último caso es una situación que involucra la mejora del código completo en una etapa tardía, por lo que no todo es malo, pero es muy inconveniente. Sus esfuerzos para reducir la deuda técnica no garantizan un mejor código o una mejor solución. En cualquier caso, está dando un paso en la dirección correcta.

El enfoque que está adoptando solo sería un problema si tuviera prioridades más importantes que deben abordarse, pero que no están atendidas. Lo que puede ayudar en esa situación es crear un plan de proyecto personal en el que pueda entrelazar los esfuerzos técnicos de reducción de la deuda mientras avanza en otros esfuerzos. Tarda más, pero le brinda un progreso que podría no tener si descarta la reducción técnica por completo. Es una elección y, a menudo, es la correcta cuando tienes tiempo.

Si se suscribe a una metodología, incluso para pequeños proyectos personales, puede ser útil.
Haga una lista de su trabajo en una cartera de pedidos para saber qué debe hacerse.
Elija algunas cosas que desea codificar.
Date algún tipo de plazo para terminar las piezas.
Una vez que lo tenga funcionando, deje de llamarlo al 100% y envíelo a la fase de prueba.

El desarrollo iterativo y ágil aún puede funcionar, incluso para pequeños proyectos que pueden demorar meses en su tiempo libre.

No te preocupes Todos nos atascamos en escribir código perfecto, en lugar de código que simplemente funciona.

Refinar viene después. Después de que su producto funcione.

La parálisis del análisis es real. Puede seguir refactorizando su código hasta que sea perfecto, pero luego pensará en una mejor manera.

En algún momento solo tienes que decidir que es lo suficientemente bueno. Escriba lo suficiente para que su código se ejecute sin muchas características que “podría” desear más adelante. Tiene el código básico trabajando con la menor cantidad posible en el camino de cruft. Ahora suéltalo.

Hecho. Ahora puede agregar una función y liberarla. No debería llevar mucho tiempo agregar solo una función. Siga haciendo eso y en poco tiempo tendrá un producto lanzado con muchas características. Claro que puede que no sea perfecto, pero ya está disponible. Este es también el corazón de varias metodologías ágiles. Suelte temprano y suelte a menudo.

Si. Aprendí a codificar para resolver problemas Una vez que se resolvió el problema, seguí adelante. Volvería solo si tuviera que modificar para resolver otro problema, como una nueva característica o para acelerar el código.

Sigue haciéndolo después de entregar. Realmente solía hacer esto, pero eventualmente te quedarás sin tiempo