5 years of Github
Edit : J’en suis désormais à plus de 5 ans !
—
Il y a 500 jours, l’envie m’a pris de me livrer à une expérience. Et si j’essayais de publier au moins un commit intéressant par jour sur Github ?
Spoiler : j’ai tenu bon. Voici quelques retours en vrac :
Organisation
Les gains en terme d’auto-discipline sont incroyables. Les premiers jours sont amusants à tenir, les semaines suivantes devenant assez difficiles, mais passé un mois, c’est devenu une habitude. Au bout de quelques mois, j’ai même commencé à ressentir une certaine dépendance, m’aidant à ne pas lâcher ce défi.
J’ai fait plusieurs Road-Trips (dont un en camping-car), et pourtant j’ai tenu le rythme. Git n’a pas besoin d’une connexion pour créer un commit et mon défi n’implique pas plus de 15 minutes en moyenne par jour, donc je n’ai jamais eu d’obstacle autre que le décalage horaire.
Il est important d’éviter de repousser ce commit quotidien jusqu’au soir et de le commencer le plus tôt possible dans la journée. Les rendez-vous imprévus ou les soirées qui se prolongent peuvent nuire à la bonne tenue de ce défi.
Commencer la journée avec une réalisation claire, qu’on a choisi et qui nous plaît permet de se motiver plus simplement pour des tâches plus longues et potentiellement moins agréables.
Inspiration
Il y a toujours quelque chose à ajouter, à enlever, à corriger, à optimiser, à créer, à préciser. Les idées viennent très simplement, que ce soit dans votre travail quotidien, dans les tâches récurrentes ou même dans les précédents commits effectués.
Je note tout dans l’application Todoist, en triant par ordre de priorité ou d’intérêt.
Bonnes pratiques
Il est important d’apprendre à se limiter : je préfère « garder » des idées pour le lendemain, car il ne me semble pas nécessaire de trop en faire.
Il faut apprendre à diviser son travail : une petite fonctionnalité terminée vaut mieux qu’une fonctionnalité abandonnée au lendemain, ou pire, bâclée.
J’ai eu la tentation de me laisser du code non envoyé pour le lendemain, mais le gain apporté est faible face à l’impact sur l’habitude. En règle général, quand il me restait du code de la veille, je préférais rajouter une petite fonctionnalité à côté.
Il est néanmoins intéressant de préparer un algorithme pour la prochaine fois, car ça permet d’y repenser pendant la journée, de l’optimiser ou de l’invalider le cas échéant.
Je me suis autorisé quelques expérimentations : des frameworks inconnus, des langages peu maîtrisés, des commits sur des projets open-source, des directions que je ne pouvais pas explorer au travail, etc.
Gains
- R&D automatisée : je peux tester et assimiler assez rapidement une nouvelle technique si elle est nécessaire, ou anticiper une fonctionnalité future.
- Métier : j’ai des frameworks et librairies testés dans tous les domaines que je vends. J’ai besoin de beaucoup moins de motivation pour travailler, une partie de mon travail consistant désormais à assembler et configurer des éléments tous prêts, me laissant du temps pour me concentrer sur du vrai conseil client et des fonctionnalités plus solides. J’évite ainsi d’être un énième freelance front-end/WordPress/newsletters.
- Niveau général : j’ai pu approfondir des technologies que je pensais maîtriser, préparer en amont les parties simples de mon travail pour investir plus de temps sur les parties complexes, en les simplifiant par la suite. Les nombreux contributeurs (ou simplement retours) m’aident à m’améliorer tout en profitant du code open-source qu’ils peuvent récupérer pour leurs projets.
- Patience : Apprendre à faire évoluer progressivement mais inexorablement un produit, jour après jour.
- Plaisir : explorer des technos loin des problématiques de tous les jours, mettre en production des fonctionnalités, optimiser tous les jours son métier, c’est assez clair, non ? 😉
Tous ces commits sont effectués sur mon compte Github
Impressionnant ! C’est aussi ultra chouette de partager tout cela !
Super! Merci pour le partage c’est inspirant
Très intéressant cet article, merci pour le retour d’xp 🙂
Quelle belle initiative et surtout, quelle ténacité ! Par contre, c’est pas un peu… Lourd, de ne pas avoir une seule journée sans PC ? Pas de vacances de l’esprit ?
Bel exemple de rigueur et de motivation.
Etant développeur débutant ne demandant qu »à apprendre et évoluer, ce genre d’expérience me tente fortement. 🙂
Merci pour le partage !
Voilà, c’est vraiment ce qui me soucie, de ne jamais pouvoir « déconnecter » complètement. Vu que ce défi est quand même poussé par le plaisir, ça ne me gène pas encore trop.
Et merci Guirec, Thierry et Emilien 🙂
Intéressant, n’y a-t-il pas un risque de faire des modifications inutiles parce qu’on est pas motivé ou qu’il est tard, juste pour tenir ce défi ? J’avais commencé la même chose (j’ai tenu 70 jours), mais au bout d’un moment j’en ai eu assez et j’ai arrêté, je préfère avoir des trous dans mon tableau de contributions sur GitHub mais ne faire que des contributions intéressantes et motivées (je fais ~3k contributions par an sur GitHub), et savoir prendre des pauses et ne rien faire pendant plusieurs jours. Un avis là-dessus ?
Oui, c’est sûr que certains jours, j’ai des ratés, mais le fait de se limiter et de garder des fonctionnalités pour plus tard permet d’avoir toujours une modif simple et utile sous la main. Ensuite, ce défi aide mon business en freelance, ce qui me motive à le continuer. Je sais que si j’arrive à trouver en 15 minutes une fonctionnalité qui m’économisera 5min par jour ou 15min par projet, ça vaut entièrement le coup.
Je viens de voir ton tweet pour ton 700eme jour. Félicitations, c’est franchement porno comme streak *.*
Tu me fais penser à ce mec qui à bossé 120h une semaine : http://blog.nickwinter.net/the-120-hour-workweek-epic-coding-time-lapse
Aha merci 🙂
[…] C’est une bonne façon de démarrer un #commitdujour. […]