J'aime beaucoup le côté petit nègre du titre
De mon côté, j'ai trop de projets perso, mais qui pour la plupart ont un but assez concret, ce sont plutôt des outils (et souvent du web, un peu à contrecœur).
Ce sont souvent des petits projets, que je peux faire d'un bloc, et j'arrête de bosser dessus quand ils font ce dont j'ai besoin.
Si je résume mes derniers projets :
* site sur l'aviation (fait maison), forum (phpbb avec des modifs manuelles) et galeries photo (uniquement la CSS) : j'ai fait ça d'un bloc sur quelques mois et je m'y replonge de temps en temps pour de petits changements
* site pour uploader des documentations avec quelques bonus (flux RSS générés pour des liens favoris et pour les docs les plus utilisées) : 95% du boulot fait en deux jours, avec quelques petites améliorations plus tard. ça évite d'avoir à chercher sur Google des infos que j'utilise souvent et ça me permet de les avoir en local
* un petit utilitaire pour générer un squelette de code Python : il est fonctionnel, et je mets à jour quand j'améliore ma qualité de code et pour incorporer de nouveaux outils
* une bibliothèque Python/Django qui me permet de factoriser plein de code que je devais écrire à chaque fois pour faire des sites Django (configuration, système de signal/slot en JS/Python) : il est fonctionnel mais j'améliore par petites touches quand j'ai une nouvelle idée
* une série de scripts utilisant Ansible pour réinstaller automatiquement mon serveur et tous les services associés. Ça fait longtemps que j'y réfléchis, je n'ai quelques idées couchées sur le papier pour l'instant et j'attends d'avoir du temps. Je dois travailler sur le sujet une heure par mois environ.
* site pour servir de miroir applicatif (à la fois Debian, Java, Python) : ça permet d'avoir un miroir par projet et d'y uploader mes projets afin de les réinstaller plus facilement : il est fonctionnel, mais j'aurais des trucs à améliorer. Je m'y replongerais une fois pendant quelques jours à mon avis afin de le finaliser et d'ajouter des types de miroir (sûrement CentOS et Ruby) vu qu'il sera nécessaire pour le projet précédent. J'ai travaillé dessus par petites touches pendant un mois environ.
* un projet récent qui me trotte depuis longtemps dans la tête : un code pour lancer des tests, qui permette de mettre en place facilement un environnement (genre créer une base Redis/MySQL avec un nom aléatoire, remplir un fichier de conf avec son nom, lancer les tests, supprimer les bases), avec un résultat sous forme texte/HTML/image, défini par un simple fichier de conf' dans le projet lui-même, lançable en ligne de commande ou via un site web. Je compte passer une petite semaine dessus.
* un projet perso de plus longue haleine, ça fait un an que je bosse dessus environ 10-20h / semaine (dans le train et le soir), avec quelques petites pauses. j'ai fait au début une longue liste de choses à faire, et je les supprime peu à peu. Ça prend du temps (beaucoup de refactoring pour avoir le truc le plus propre possible, pas mal de tests de non-régression à écrire, toussa)
Bref, pour la plupart des projets, je réfléchis longtemps sur papier (souvent sur plusieurs mois) je fais d'un bloc pendant quelques jours/semaines histoire d'avoir quelque chose de fonctionnel et qui fasse ce dont j'ai besoin, puis je mets de côté et j'améliore par petites touches quand j'ai une nouvelle idée.
En général, ce sont des choses dont j'ai besoin, ça motive pour faire avancer ^^ En revanche, ça conditionne un peu les technos (beaucoup de Python vu que je n'ai pas trop besoin de perfs). Heureusement, j'ai commencé à réfléchir à un projet qui demanderait plus de perfs et que je ferais en C++, C, Rust, Swift ou Go.