Défi 2016 redéfinit
Par Laurentj le vendredi, mai 20 2016, 16:57 - Geek-log - Lien permanent
En début d'année, je m'étais lancé un défi : un commit par jour sur des projets open-sources.
Ça fonctionné... pendant 86 jours. Au bout de 86 jours j'ai arrêté de vouloir commiter tous les jours, pour plusieurs raisons.
- Même si je suis un indécrottable geek dans l'esprit, et que je ne peux pas m’empêcher de coder même pendant les vacances, il y a des jours où je n'ai pas envie, où je suis trop fatigué, ou que l'emploi du temps (en particulier celui relatif à la vie familiale) ne me permet pas d'avoir du temps à consacrer au code. Il y a des jours comme ça où ce n'est pas possible. Cela serait possible si je vivais seul, sans ami, dans une cave coupée du monde. Mais ce n'est pas le cas. C'est le souci que j'avais crains en me lançant ce défi, et j'ai eu raison.
- Il y a des commits qui demandent plusieurs heures de travail. Je parle des vrais commits, ceux qui apportent un plus, des fonctionnalités complètes. Pas des commits "WIP", "WIP", "WIP", "DONE!!". Et donc il était très compliqué certains jours de produire un commit, faute d'avoir plusieurs heures devant soi à consacrer aux projets open-source.
- Il m'arrivait des jours où j'avais du temps, mais que j'oubliais (carrément) d'aller contribuer sur un de mes projets, et du coup je m'y mettais dans l'urgence à 23h. Pas vraiment l'heure idéale pour avoir les idées claires et pour produire du bon code.
Vers la fin de cette série de 86 jours, je commençais donc à avoir de plus en plus de mal à avoir ce commit quotidien, voir même à avoir d'envie de le faire. Je commençais alors à ruser : si je savais que le lendemain je n'allais pas avoir de temps, mais que j'en avais le jour même, je préparai un patch et le lendemain je n'avais plus qu'à lancer la commande commit. Et j'avais ainsi mon petit carré vert sur github pour la journée, même si je n'avais finalement contribué que 30 secondes. Il m'arrivait aussi de bosser sur un long truc sur un projet précis, sur plusieurs jours, et je prenais alors 5-15 minutes chaque jour pour aller committer un truc facile sur un autre projet, afin d'avoir mon petit carré vert du jour. Ça faisait avancer (un tout petit peu) cet autre projet, mais ça m'obliger à me concentrer au final sur 2,3 4 projets à la fois.
Vous trouvez peut-être cela ridicule ? Je vous rassure, moi aussi. Limite honte d'ailleurs de vous avouer tout ça. C'est pourquoi j'ai arrêté cette idée d'avoir un carré vert tous les jours. D'autant plus qu'au final, ça me mettais autant de pression, sinon plus, que lorsque je ne faisais rien. Durant ces 86 jours, j'ai fini par oublier l'objectif premier (celui de faire avancer les projets) et me suis finalement focaliser sur la manière de dérouler le tapis vert github.
Bref, au bout de 86 jours, c'est à dire le 26 mars, j'en ai eu marre. J'ai même fait une pause de quelques jours avant de m'y remettre plus sagement.
La reprise s'est faite attendre, mais c'est reparti depuis disons fin avril. Sans me mettre la pression du "un commit par jour".
Cette expérience a quand même eu un gros bénéfice de mon point de vue : j'ai vraiment avancé sur les projets qui me tiennent à cœur. Par exemple, j'ai pu sortir enfin une nouvelle version de SlimerJS pour le plus grand bonheur de ses utilisateurs. J'ai sorti aussi une version de maintenance de Jelix.
Le "un commit par jour" n'est finalement qu'une métrique permettant de se rendre compte que "ça avance". Mais ça n'indique pas si ça avance bien et vite. Et au final, il n'y a que le résultat qui compte.
Il faut donc trouver un juste milieu et trouver la motivation pour faire avancer les choses.
L'objectif "avancer sur mes projets open-source" est un peu vague. Changeons donc l'objectif en un objectif plus précis : sortie de Slimerjs 1.0, Jelix 1.7 et WikiRenderer 4.0 avant décembre 2016. Voilà. C'est à priori atteignable sans trop me mettre la pression.
Les retours des utilisateurs reste une motivation importante, mais il faut leur montrer que le projet vit. Faire des releases plus souvent, en causer plus sur twitter ou ailleurs, répondre rapidement à leurs questions.
Et peu importe le nombre de commit pour y arriver. En gardant en tête que le tapis vert de Github n'est qu'un indicateur, pas un objectif. De toute façon, ils viennent de supprimer l'affichage du "streak", le nombre de jours contribués contiguës :-)