Les statistiques ont montré que 70% des projets en informatique échouaient pour les raisons suivantes:
-Complexité
-Prolème de sizing (personne, temps etc.)
-Non adapté aux besoins du clients.
Ce chiffre date des année 90, mais je pense pas qu'il ait beaucoup baissé entre temps.
Tout cela pour dire que vous êtes normaux
Les méthodes de développement de logiciels qui fournissent les meilleurs résultats sont des méthodes itératives. En gros commencer par faire les petites briques pour les assembler et en faire d'autres (mots clées: lean scrum cristal XP).
Elles apportent de nombreux concepts importants tels que l'intégration continue, une mise en valeur de la communication, mais aussi de la qualité du code via certaines métriques.
Pour les projets perso, sincèrement je pense pas qu'il y a besoin de se prendre la tete, il faut que ca reste avant tout fun

Il y a aussi 90% des problèmes qui sont résolus du fait que vous soyez seuls, votre propre client etc.
Après niveau développement, il suffit de savoir subdivisionner sont projet en petites étapes réalisables (ne pas perdre son temps a tout planifier car c'est iréaliste

)
Pour la programmation, il faut respecter certains principes pour eviter d'effacer du code, creer des bugs etc. (Single responsability Principle, Open Close principle, Inversion dependency Principle...).
Mais il faut surtout rester simple dans une première étape quite à revenir aux optimisations apres (bouffer 90% de son énergie à optimiser par exemple une recherche d'op code peut aboutir a un projet non fini car manque de motivation pour le reste

).