Article original : Common Open Source Contribution Myths – Debunked

De nombreux développeurs hésitent à contribuer à l'open source, car cela peut être intimidant et difficile au début. Même si vos contributions peuvent sembler insignifiantes au départ, elles peuvent potentiellement avoir un impact énorme sur votre carrière.

Dans cet article, nous aborderons certaines idées reçues courantes qui pourraient vous empêcher de contribuer à l'open source. Je vous montrerai ce que vous manquez et je vous donnerai quelques conseils pour vous aider à commencer.

Table des matières

  1. Qu'est-ce que l'open source ?

  2. Facteurs clés influençant les contributions à l'open source

  3. Pourquoi les gens hésitent à contribuer

  4. Commencez à contribuer à l'open source aujourd'hui

Qu'est-ce que l'open source ?

L'open source fait référence aux logiciels dont le code est publiquement disponible pour consultation, modification et utilisation. Le code est généralement hébergé sur des plateformes comme GitHub, où les développeurs peuvent contribuer à la codebase et partager leur expertise avec le projet.

Bien que le code d'un logiciel open source soit accessible au public, cela ne signifie pas que le logiciel doive être gratuit. Les créateurs du logiciel peuvent gagner de l'argent en facturant des services comme des plugins optionnels, du conseil technique, et ainsi de suite.

Nginx est un exemple de logiciel open source qui facture des frais pour des plugins supplémentaires mais optionnels. NestJS est également open source, mais propose un cours officiel payant (et ses mainteneurs facturent des frais de consultation pour des utilisations plus complexes du logiciel).

Facteurs clés influençant les contributions à l'open source

En 2023, environ 10 % de l'effectif à temps plein d'Alphabet a contribué activement à des projets open source. Et selon l'enquête GitHub 2024 Open Source Survey, les répondants ont indiqué que les cinq principaux facteurs ayant influencé leur contribution aux projets open source, par ordre d'importance, étaient :

  • Si le projet possède une licence open source ou non. Avoir une licence open source est considéré comme favorable.

  • La réactivité des mainteneurs du projet. Des réponses rapides et positives sont encourageantes.

  • Une communauté accueillante, indiquant le soutien des mainteneurs et des autres contributeurs du projet.

  • Le niveau d'activité sur le projet – beaucoup d'activité signifie un projet activement maintenu (ce qui est plus gratifiant et utile à travailler).

  • Si le projet dispose d'un guide de contribution qui aide les développeurs à s'initier facilement à la contribution.

Enquête GitHub 2024 Open Source Survey - Facteurs clés influençant les contributions à l'open source

Mais même si de nombreux projets sont attractifs et que leurs mainteneurs sont accueillants, certaines personnes hésitent encore à contribuer pour des raisons non liées aux projets eux-mêmes.

Pourquoi les gens hésitent à contribuer

Après avoir examiné les réponses de diverses discussions, j'ai découvert qu'il existe trois barrières principales auxquelles les développeurs sont confrontés lorsqu'ils envisagent de contribuer à l'open source :

  • Vous vous sentez comme un imposteur

  • Vous devez le faire gratuitement

  • Vous avez un emploi du temps chargé

La suite de cet article abordera (et, je l'espère, déconstruira) ces barrières. J'espère qu'à la fin, vous serez encouragé à contribuer à l'open source.

Vous vous sentez comme un imposteur

Beaucoup de gens pensent qu'il faut en savoir énormément sur un projet pour y travailler, mais cette idée reçue est l'une des plus grandes barrières qui empêchent les développeurs de contribuer à l'open source. Certains se disent : « Je n'ai pas l'expérience », « Je n'ai rien à apporter », « Et si je cassais quelque chose ? », « Je n'en sais pas assez ».

Voici quelques conseils tirés de Comment surmonter le syndrome de l'imposteur qui peuvent vous aider :

  • Arrêtez d'être obsédé par l'idée de ne pas être assez bon. C'est improductif.

  • Tout le monde excelle dans des domaines différents. Vous excellez probablement dans des choses que d'autres ne maîtrisent pas.

  • Ne vous comparez pas aux autres qui sont plus expérimentés que vous. En fait, arrêtez de vous comparer à n'importe qui d'autre. Vous êtes unique.

Essayez de contribuer à des projets que vous avez utilisés. Vous les comprenez déjà mieux que des projets que vous n'avez jamais touchés. En tant que débutant, travailler sur des tickets étiquetés « good first issue », « up-for-grabs », « beginner-friendly », etc., est un excellent point de départ. Si vous trouvez un problème qui vous intéresse, lisez les discussions s'il y en a pour mieux le comprendre. Indiquez que vous êtes intéressé pour y travailler et un contributeur expérimenté vous répondra probablement pour vous dire si vous pouvez continuer. Il pourra également vous fournir plus d'informations si nécessaire.

Issues avec des labels auxquels les débutants peuvent contribuer

Faites l'effort de résoudre le problème par vous-même d'abord, et si vous rencontrez des difficultés, posez alors des questions. Lorsque vous essayez de résoudre un problème par vous-même avant de demander de l'aide, cela montre aux mainteneurs que vous avez fait l'effort nécessaire et ils seront plus enclins à vous aider. Cela rend également vos questions plus réfléchies et directes.

« Les trois motifs les plus puissants sont la curiosité, le plaisir et le désir de faire quelque chose d'impressionnant. »

— How to Do Great Work par Paul Graham

J'ai partagé mon expérience dans un article intitulé Vous n'avez pas besoin de tout savoir pour contribuer où j'ai découvert que l'auteur d'un projet JavaScript populaire n'était pas celui qui avait écrit la partie TypeScript du projet, et il était ravi de recevoir ma contribution.

Si vous avez toujours l'impression de ne pas être assez bon, essayez de voir cela comme une opportunité d'apprendre d'une codebase construite par des développeurs ayant un large éventail d'expériences et d'expertises. Si vous plongez dans le code et essayez de l'améliorer, vous apprendrez des choses que vous ne trouverez pas dans les tutoriels en ligne ou les articles de blog.

Gardez à l'esprit que vous ne devez pas toujours contribuer du code. Bien que la majorité des contributions soient basées sur le code, d'autres domaines nécessitent de l'attention et sont souvent négligés. Que se passe-t-il si la documentation est inexistante ou obsolète ? Que se passe-t-il quand les issues ne sont pas triées ? Vous pouvez aider sur ces points en :

  • En discutant avec les mainteneurs du projet et d'autres contributeurs pour clarifier et améliorer la documentation et d'autres ressources.

  • En donnant des retours sur les pull requests.

  • En ajoutant des labels pour organiser les tickets dans les bonnes catégories.

En faisant cela, vous apportez de la valeur à ces projets. Ce qui compte, c'est votre intérêt pour la résolution de problèmes et votre capacité à effectuer les recherches nécessaires.

Vous devez le faire gratuitement

Une autre idée reçue est que les développeurs font toujours de l'open source sans être payés. Mais ce n'est pas vrai dans tous les cas. Certains dépôts open source récompensent les contributeurs via des bounties, par exemple. Avec les bounties, une somme d'argent est placée sur un ticket et celui qui le résout reçoit le prix ou la récompense. J'ai gagné de l'argent de cette manière lors de ma première contribution à Remotion.

Et il existe d'autres avantages à contribuer à des projets open source en dehors de la rémunération. Souvent, les gens contribuent principalement pour ces autres raisons.

Par exemple, pour les développeurs débutants, il n'y a pas beaucoup d'occasions d'acquérir une expérience pratique sur de « vrais » projets, ou d'apprendre à quoi ressemble réellement le travail dans une équipe technique.

Mais en contribuant à un projet open source et en faisant partie de cette communauté, vous pouvez pratiquer le travail d'équipe, contribuer à un code qui change et évolue constamment, et résoudre des problèmes concrets. Cela vous donne une expérience précieuse qui vous aidera à vous préparer pour le marché du travail (et que vous pourrez mettre sur votre CV). L'image ci-dessous est une capture d'écran de deux personnes ayant reçu une bourse de la Linux Foundation pour leurs contributions à l'open source.

Capture d'écran des lauréats de bourses open source

Comme vous pouvez le voir, même si vous ne recevez pas de récompenses monétaires, contribuer à l'open source présente de nombreuses autres opportunités. Vous pouvez :

  • Travailler avec des personnes de cultures diverses.

  • Développer des compétences de communication technique écrite claire.

  • Améliorer vos connaissances sur divers outils/Frameworks.

  • Prouver que vous êtes un développeur motivé et autonome.

  • Travailler de manière asynchrone avec des personnes sur plusieurs fuseaux horaires.

Vous avez également l'opportunité de réseauter avec d'autres développeurs et de renforcer votre réputation et votre crédibilité dans le domaine du développement logiciel. Prosper Otemuyiwa et Anthony Fu sont d'excellents exemples et bénéficiaires de ce type de croissance de carrière.

Vous avez un emploi du temps chargé

Avoir d'autres engagements pressants est une barrière raisonnable pour contribuer à l'open source. Nous sommes tous humains, et nos ressources (temps et énergie) sont limitées – nous devons donc les gérer judicieusement.

Mais avez-vous considéré ce qui se passerait si le projet open source que vous utilisez présentait un bug sérieux affectant vos performances ou vos livrables au travail ? Que se passe-t-il lorsque le problème que vous essayez de résoudre nécessite une connaissance experte de ce projet open source dont vous dépendez fortement ?

Contribuer aux projets open source par de petits moyens vous donnera un aperçu de leur fonctionnement. Comme vous devez maintenir un rapport avec d'autres développeurs sur le projet, vous formerez un lien professionnel avec eux et ils seront ravis de vous aider si vous avez des questions ou si vous avez besoin d'avis d'experts. Si vous devenez un contributeur majeur, vous pourriez même avoir la chance d'influencer la feuille de route (roadmap) du projet.

Continuer à développer vos compétences est primordial pour vous en tant que développeur. Si vous pouvez dégager du temps pour améliorer vos compétences, alors vous pouvez dégager du temps pour contribuer à l'open source, car cela offre plus de récompenses que la simple amélioration des compétences. Vous pouvez commencer petit – par exemple, en dédiant une heure par semaine avant le travail, ou quelques heures le week-end. Ensuite, vous pourrez augmenter la cadence une fois que vous aurez pris le rythme et trouvé plus de temps. Contribuer à l'open source n'a pas besoin d'être excessivement exigeant.

Vous résolvez déjà des problèmes. Pourquoi ne pas les résoudre de manière visible, afin d'aider les autres tout en renforçant votre propre crédibilité ?

Commencez à contribuer à l'open source aujourd'hui

Nous devrions tous contribuer à l'open source d'une manière ou d'une autre. Si vous avez l'impression de ne pas en savoir assez, gardez simplement à l'esprit que d'autres personnes ressentent (ou ont ressenti, avant de commencer) la même chose. Et sachez que personne ne peut prétendre tout savoir – pas même le fondateur du projet. Alors ne laissez pas le sentiment du syndrome de l'imposteur vous freiner.

Rappelez-vous également que Rome ne s'est pas construite en un jour. Elle n'a pas non plus été bâtie par une seule main – mais par d'innombrables ouvriers au cours de nombreux siècles et millénaires. Vous pourriez participer à la construction du prochain grand projet open source (ou aider à maintenir les nombreux projets formidables qui existent déjà et qui ont besoin de votre aide).

Envisagez donc de contribuer dès aujourd'hui en visitant l'onglet des tickets (issues) de n'importe quel projet open source que vous utilisez intensivement et choisissez quelque chose. Vous pouvez trouver des liens vers des problèmes de niveau débutant sur les sites suivants :

Si vous voyez un ticket qui vous intéresse, suivez ces étapes en tant que nouveau contributeur :

  • Cherchez un fichier CONTRIBUTING.md et lisez-le pour obtenir des conseils sur la manière de contribuer.

  • Clonez le dépôt et installez-le localement.

  • Indiquez votre intention de travailler sur le ticket en laissant un commentaire sur celui-ci.

Posez une question si un problème ne vous semble pas clair et vous recevrez des conseils.

Bonne chance dans votre aventure open source !