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

Commits Github

Tags : , ,