9 Janvier 2022. Bip. Bip. Bip. 🤜⏰ BAM. 6h00...
6h00. Encore une nouvelle journée qui ne sera pas sous le signe du repos.
Allez Jeff, fais bouger ta carcasse, soulève tes kilos comme dirait l’autre, il ne s’agirait pas d'arriver en retard au taf.
6h30. Premier bus.
Sans doute le moment le plus zen de la journée; tout le monde ici tient le silence … comme un hommage endeuillé à ce qui aurait pu être une grasse matinée.
Une pensée vient parasiter mon esprit. Bien que je m'impose dorénavant de ne plus les regarder qu'à des moments précis de la journée, je sais que j'ai reçu plusieurs mails durant la nuit… je le sais !
Même si je me force à ne pas en prendre connaissance, je ne peux m'empêcher d'y penser.
7h30. Arrivée au travail.
Pour bien démarrer, je prends vite un café.
Je profite du plateau vide pour avancer sur les tâches qui demandent le plus de concentration, avant l'arrivée de la foule, des appels Teams en open space et des pauses qui parasitent la concentration profonde nécessaire.
9h. Fin de l'état de grâce, c'est l'heure de la réunion "stand up" quotidienne.
- “Jeff, ton statut ?”
- “Alors, hier j'étais sur le projet de migration complexe qui m'est assigné et aujourd'hui, je continue sur la migration” … comme depuis 1 mois et pour encore quelques semaines pensais-je.
- “Des problèmes particuliers à remonter ? Des risques pour la deadline ?”
- “Non, ça avance plutôt bien”
- “Ok merci Jeff. Antoine ?”…
9h15. Bon allez, il est temps de revenir à mes tâches si je veux avoir un peu plus de diversité pour mes prochains statuts.
Je replonge dans mes notes, essayant de me concentrer sur cette fonctionnalité tentaculaire qui semble conceptuellement impossible à détacher du reste du code legacy.
Me perdant dans des réflexions architecturales tout en tapotant mon crayon sur mon carnet de note, je ressens le besoin de relever mes mails.
"Bon, allez, une petite pause perso me permettra peut-être d'avoir de meilleures idées par la suite". C'est beau de se mentir à soi-même !
J'ouvre mes mails et constate que j'ai reçu une dizaine de notifications sur GitHub pour "AwesomeLib.js". Cette librairie open-source, ma librairie open-source ! Je l'ai créée il y a des années sur mon temps libre, quand j'avais encore l'énergie de la passion qui me poussait à coder le soir après le boulot.
Au début, je l'ai partagée au monde "parce qu'on ne sait jamais, cela pourrait servir à d'autres”! Il est d'ailleurs suffisamment rare de mener un projet perso jusqu'à ce niveau d’achèvement. J'avais donc envie de le montrer au monde.
Rapidement, j'ai reçu une étoile, puis un fork puis une issue pour un petit bug associé avec un message de remerciement.
Je me souviens encore combien il était agréable de recevoir de la reconnaissance pour un petit projet modeste. 🙂
Mais au fil du temps, ce projet nourri par la passion est devenu, je le reconnais, un projet uniquement motivé par les boosts de dopamine reçus au fil de la progression des métriques GitHub ou des messages de félicitations et de remerciements.
Et maintenant ?
Maintenant, c'est juste une source de stress supplémentaire.
Là par exemple, dans mes mails de cette nuit : entre les bugs que l'on me demande de corriger immédiatement et les demandes de fonctionnalités extrêmement spécifiques au domaine business du demandeur, j'ai vraiment l'impression que les gens me prennent pour leur larbin personnel.
À croire que les gens ont moins de respect pour ce qu'ils obtiennent gratuitement…
10h00. Quoi déjà ? Vite m'y remettre. Euuuuh, je faisais quoi déjà ?
Midi. Pause déj’. Sandwich triangle jambon-beurre avalé en vitesse devant mon écran, en répondant aux différents tickets de bugs, Merge Requests et autres questions.
Heureusement, la majorité des bugs n'en sont pas vraiment : soit cela demande une fonctionnalité qui dépasse le scope de ma librairie, soit c'est une mauvaise utilisation de celle-ci.
Bien que cela ne demande pas de modification de code, cela me prend quand même à chaque fois quelques minutes pour répondre aux utilisateurs maladroits.
Ting ! Quoi ? QUOI ?! Un type n'a pas aimé ma réponse concernant cette fonctionnalité qui est hors scope et ne doit donc pas être développée. Tout d'un coup, ma librairie est "mal codée" et "mal documentée" et, selon lui, je ne réponds "pas assez vite" ?! Quand je lui dis que je n'accepterais pas non plus une Merge request en ce sens, il me répond :
"Si tu n'es pas capable de maintenir un projet open-source, ne le fais pas !"
Espèce de %$°~µ !!!
Mais c'est qui ce type ? Il sait combien d'heures j'ai passé sur “AwesomeLib.js” ? Combien de nuits blanches j'ai sacrifiées pour que son application (et toutes les autres !) puisse en profiter ? Et maintenant il ose venir m'insulter ?
J'hallucine !
14h00. Je suis toujours furieux. Impossible de me concentrer sur le boulot. Je n'arrête pas de penser à ce message, à l'ingratitude des gens. Tiens, d'ailleurs qui est cette personne ?
“Lead Senior Developer at E-Corp”. Ah, d'accord... Donc, le gars bosse pour le conglomérat le plus puissant du monde, est certainement bien payé pour développer des applications rentables, et vient me critiquer parce que je ne lui permets pas de gagner du temps et donc de l'argent dans son travail !
À l'ingratitude des gens s'ajoute l'injustice de la situation : je bosse gratos, et ce sont ceux qui récoltent les fruits de mon travail qui viennent me mettre la pression ! Si j'accède à sa requête, lui, il aura sa fonctionnalité et une avancée dans son projet, mais moi… qu'est-ce que j'y gagne ? Des nuits blanches ? Du stress ?
16h00. Je craque. Je n'en peux plus. Je décide de faire une chose que je n'aurais jamais cru faire… Je vais me débarrasser d'AwesomeLib.js !
Mais comment ?
Il y a quelques mois, j'avais déjà écrit un post sur le repo du projet pour dire que je ne voulais plus bosser gratuitement.
Bosser gratuitement. Deux mots donc deux options que je laissais ouvertes : soit je ne bossais plus et un repreneur n'avait qu'à me contacter soit ceux qui voulaient des avancées sur le projet me rémunéraient à l'heure.
Mais comme toujours quand on demande des volontaires, les salles pleines deviennent incroyablement silencieuses. Un silence qui aujourd'hui encore me crie “débrouille toi ! … mais délivre du code”.
En tant que mainteneur, il parait que j'ai une dette envers la communauté, que je dois répondre aux questions, corriger les bugs, faire évoluer la librairie. Mais qu'est-ce que j'y gagne en retour ?
16h02. Je sais. Je sais enfin comment me libérer de ce qui est devenu un fardeau, je vais introduire des bugs !
C'est tellement simple maintenant que j'y pense ! Si je rends ma librairie inutilisable, ils n'auront pas d'autre choix que d'aller voir ailleurs ou de résoudre ce problème eux-mêmes.
Ting. Un message en plus sur GitHub. Qu'importe ! Qu'ils aillent se faire voir !
16h40. J'ai fini. J'ai poussé les modifications sur GitHub.
J'avoue que ça m'a fait drôle, c'est sans doute la première fois que je fais des tests pour être sûr que quelque chose ne fonctionne pas.
Je me sens étrange, envahi par des émotions contradictoires. Parmi elles, une que je n'ai plus ressentie depuis longtemps mais que je reconnais d'emblée : une sensation de liberté !
J'ai repris le contrôle. C'est mon projet open-source, mon repository GitHub et ma propriété intellectuelle.
Conceptuellement, je n'ai rien fait d'illégal. J'ai juste introduit un changement majeur dans une version mineure. C'est certes contraire aux bonnes pratiques, mais je m'en fiche. Je suis enfin libéré de la responsabilité, des attentes et de la pression constante.
Oui, ce soir, je suis libre !
17h00. Je quitte le bureau. Je rentre chez moi, la tête vide. J'ai catégorisé comme spam les notifications de GitHub.
Ce soir, je ne réponds plus aux questions.
Ce soir, je ne corrige plus vos bugs.
Ce soir, je n'ai plus de dette.
Ce soir, je suis libre !
Cette histoire, c'est celle de Marak Squires.
Si son action était clairement malveillante, elle a néanmoins relancé les questions relatives à l'épuisement des développeurs open source bénévoles ainsi que du difficile équilibre à trouver dans un métier-passion qui est celui du développement.
Et pour éviter d'en arriver au même point que Marak, suivez ces 8 conseils pour vous aider à trouver un équilibre.
À bientôt et surtout, prenez soin de vous !