Article original : A Guide to a Successful Open Source Journey – Lessons from Real-Life Experience

Le parcours pour devenir un contributeur open source réussi peut être intimidant, frustrant ou déroutant selon votre niveau de confiance, d'engagement et d'expertise.

J'ai eu ma part d'émotions en contribuant à l'open source durant les un an et demi (au moment de la rédaction de cet article) où j'ai contribué à l'open source, et je suis inspiré de partager certaines de ces perspectives avec vous.

Certaines des perspectives ici sont pertinentes même au-delà de l'open source et de la technologie, et pourraient être appliquées dans votre vie quotidienne tout en faisant des choix et des stratégies.

Commençons !

Une analogie utile

Le monde est un village global. Je peux me déplacer entre les continents en quelques heures grâce au transport aérien. Je peux être dans ma chambre et savoir ce qui se passe dans une ville à des milliers de kilomètres en temps réel grâce à Internet. De plus, quelqu'un peut en savoir plus sur moi sans que nous ayons à nous rencontrer physiquement, selon la quantité d'informations publiques qu'il a sur moi.

Faites une pause, ouvrez un nouvel onglet, recherchez votre nom (ou nom d'utilisateur numérique) et voyez quels résultats sont retournés en premier. Sont-ils un reflet de la manière dont vous voulez que le monde, votre employeur potentiel, votre prochaine opportunité commerciale ou votre prochain client potentiel vous voit ?

Si vous êtes un développeur, un designer, un gestionnaire de communauté ou un rédacteur de documentation, les résultats de recherche reflètent-ils cela ?

Saviez-vous que chaque fois que vous faites une contribution open source, cela laisse une trace numérique de vous sur Internet qui se traduit plus tard par un résultat de recherche ?

La plupart du temps, lorsque les gens commencent dans un domaine ou une carrière, ils ont peur de construire ou de grandir en public par crainte de la critique, de l'ego, du syndrome de l'imposteur ou même du manque de plateforme.

Plus vous vous éloignez du regard public, plus il est probable que votre propre travail vous surprenne une fois que vous le laissez sortir. Comment ? Pendant que vous construisez seul, vous pensez être le meilleur parce que vous avez créé votre propre monde, mais dans le monde réel, vous n'êtes probablement pas le meilleur dans ce que vous faites.

Plus vous mettez ce que vous construisez à la disposition du public, plus vous créerez rapidement une concurrence saine, recevrez des critiques constructives et serez challengé par ceux qui font ce que vous faites mieux que vous.

Je ne suis pas un grand fan de la construction de projets personnels qui vont rester sur ma machine locale ou mon ordinateur personnel, car alors, ils ne seront disponibles que dans mon monde et non pour le monde extérieur.

La meilleure façon de me challenger avec un nouvel outil technologique est de chercher une communauté open source utilisant cet outil et de faire une contribution. J'obtiens une meilleure connaissance de la manière dont l'outil que j'apprends est utilisé sur un projet réel et, en fin de compte, je contribue à mon empreinte numérique et j'augmente mes résultats de recherche significatifs.

Permettez-moi de créer une autre analogie ici. Si nous allons tous les deux à un entretien et que vous n'avez que des projets personnels sur votre ordinateur ou votre compte GitHub, et que moi, je n'ai que des commits qui ont été fusionnés dans des projets utilisés par des milliers de personnes, qui, selon vous, suscitera l'intérêt d'un responsable de recrutement ayant un bagage technique ?

Expériences et leçons de mon parcours dans l'open source

J'ai quitté un emploi dans une startup technologique locale parce que je ne voyais plus de croissance dans ma carrière. À cette époque, je savais ce que je voulais mais je ne savais pas où le trouver. Je voulais être challengé pour grandir et expérimenter des choses plus stimulantes dans ma carrière technologique et obtenir de meilleures opportunités.

J'avais aussi des collègues qui avaient fait des stages rémunérés qui avaient changé leur vie pour le mieux et je ne pouvais pas m'empêcher de penser à la manière dont je pourrais réaliser des accomplissements similaires. J'ai une fois décidé de chercher toute communauté ou projet qui correspondait aux compétences que je voulais maîtriser. À ce moment-là, j'ai commencé à apprendre beaucoup sur la manière de naviguer dans le monde de l'open source, et voici mes conclusions :

Cherchez une communauté ou un projet auquel contribuer

L'une des méthodes les plus rapides que j'ai utilisées pour trouver des communautés ou des projets open source ouverts aux contributeurs a été de vérifier les sites qui offrent des stages et qui recherchent des organisations participantes, passées et présentes. Les ressources les plus courantes et les plus faciles sont Google Summer of Code (GSoC), Google Season of Docs (GSoD), et Outreachy.

Une fois que vous avez trouvé une communauté/projet auquel vous souhaitez contribuer, faites une étude de fond pour vous assurer que la communauté est active.

Note : Certaines communautés sont open source mais ne sont pas ouvertes aux nouveaux contributeurs.

Découvrez quand ils ont fusionné des commits pour la dernière fois, combien de problèmes sur leurs dépôts sont ouverts et quand le dernier a été fermé. Combien de contributeurs ont-ils ?

Plus important encore, vérifiez s'ils ont une communauté active qui interagit en temps réel via des canaux de communication comme Discord, Slack, Discourse, GitHub Discussions, IRC et des listes de diffusion.

Allez plus loin et vérifiez s'ils ont un calendrier de réunions et assistez à certaines de ces réunions. La plupart du temps, les réunions publiques ont toujours des comptes-rendus publics et si vous pouvez creuser dans ces ressources et consulter les discussions qu'ils ont eues, cela vous donnera une perspective sur les réunions avant même d'y assister.

Une communauté distribuée qui travaille à distance mais qui n'a pas de moyen de synchronisation est souvent un signal d'alarme.

Les communautés qui communiquent activement sont plus faciles à naviguer plus rapidement que celles qui ne le font pas, car vous avez la chance de poser des questions aux experts. Cela permet de gagner beaucoup de temps dans la recherche d'un sujet particulier dans la communauté et la compréhension d'une grande base de code, et vous donne un sentiment d'être accueilli.

Une fois que vous avez trouvé cette communauté, faites une "entrée dramatique". Faites du "bruit" pour montrer que vous êtes là, que vous êtes arrivé. Présentez-vous dans les bons canaux et parlez de vous (mais seulement les informations importantes). J'aime appeler cela l'"entrée dramatique".

Ils ne vous verront pas à moins que vous ne vous montriez et ne vous fassiez remarquer.

La plupart des communautés ont beaucoup de personnes (souvent plus de 500 ou 1000) dans leurs canaux de communication, provenant de différents fuseaux horaires. Si vous ne faites pas de "bruit", personne ne vous remarquera. Et ce n'est pas une chose de présentation ponctuelle. Continuez à faire du "bruit", mais assurez-vous de ne pas déranger les membres de la communauté.

Cela pourrait être une mise à jour hebdomadaire ou bi-hebdomadaire sur la manière dont vous progressez dans la configuration du projet et son exécution sur votre machine locale, le partage d'articles que vous avez trouvés sur Internet et qui correspondent à la description du canal de la communauté, ou même en remerciant quelqu'un dont le travail ou les efforts vous ont été utiles ou à la communauté en général. Assurez-vous qu'ils n'oublient pas que vous êtes là — loin des yeux, loin du cœur.

Faire le bruit nécessaire ne suffit pas

Vous vous êtes maintenant installé sur un dépôt/communauté/organisation. Vous devriez faire des contributions significatives au projet. Parfois, cela prend plus de temps que vous ne l'imaginez, mais vous devez montrer des efforts.

Je me souviens lorsque j'ai rejoint CHAOSS, il m'a fallu plus de 3 mois pour faire une contribution réussie en corrigeant une faute de frappe dans une documentation. Juste une faute de frappe ! Principalement parce que le processus de construction de la documentation et le processus de contribution étaient un peu plus abstraits que ceux avec lesquels j'avais interagi auparavant.

Mais pendant que je m'y consacrais, je me suis assuré que les mainteneurs savaient que je n'étais pas silencieux pendant cette période et que je faisais des efforts pour comprendre la grande base de code et la procédure de contribution, et ils étaient prêts à aider.

Les aimants attirent les matériaux magnétiques. Les seniors, les experts et les mainteneurs sont plus disposés à aider lorsque vous montrez que vous faites des efforts personnels et que vous vous engagez à faire avancer les choses. Et c'est une règle générale dans la vie.

Personne n'est responsable de vous et tout le monde est occupé à faire autre chose, mais vous devez montrer que vous faites les efforts nécessaires. Cela suffit à attirer l'attention de ceux qui devraient vous aider.

Maintenant que vous faites les efforts nécessaires, il est important que vous mettiez ces efforts dans des contributions significatives. Au fur et à mesure que vous progressez et que vous vous intégrez dans la communauté, vous comprendrez leur base de code, leur base de connaissances, le fonctionnement interne de la communauté et vous développerez votre réseau.

Avec le temps, vous pouvez vous attaquer à des tâches, des problèmes ou des rôles plus difficiles. Vous pouvez être un contributeur non-code et travailler avec la documentation, le design ou la gestion de communauté. À un certain moment, vous deviendrez familier avec la direction de toute la communauté et vous pourrez faire une suggestion pour changer un processus, un design, un flux de travail, introduire de nouvelles connaissances ou même faciliter une réunion hebdomadaire.

Quoi que vous fassiez, assurez-vous que cela ajoute de la valeur à la communauté. N'oubliez pas, un bon travail ne passe jamais inaperçu.

Si vous devez montrer votre travail plus qu'il ne se montre lui-même ou que d'autres personnes le montrent, alors ce n'est pas encore un bon travail. Pour ceux qui font des contributions de code, écrire du code dans la communauté ne suffit pas. Il y a plus dans la communauté que les commits et les fusions. Les communautés ont besoin de designs, de marques, de facilitateurs de réunions, de gestionnaires de médias, de mentors pour les nouveaux arrivants et les stagiaires, d'équipes de publicité et d'équipes d'assurance qualité.

Il y a généralement plus de choses qu'une communauté forte fait en plus d'écrire du code. Regardez autour de vous et impliquez-vous dans plus d'initiatives communautaires. J'ai fait la plupart des choses que j'ai mises en évidence ci-dessus lors de ma première année de participation à l'open source.

Ce n'est pas tout

J'en suis venu à apprécier que faire des efforts ne suffit pas. Travailler dur n'est pas tout ce qu'il y a pour réussir.

Il y a toujours un pourcentage de chance et d'opportunité dans chaque histoire de réussite.

Pendant que vous faites les efforts nécessaires, vous devez vous positionner délibérément sur le chemin des opportunités. Construisez des réseaux sains avec des seniors, des membres du conseil d'administration ou, en général, des personnes qui prennent les décisions dans les communautés ou les projets. Vérifiez leurs messages directs, mentionnez-les et créditez-les pour leurs travaux significatifs dans la communauté lorsque cela est nécessaire.

La manière la plus facile pour que votre nom soit mentionné dans une salle d'opportunités est lorsqu'il est dans l'esprit de quelqu'un.

Si vous rejoignez des communautés avec l'intention d'être un stagiaire potentiel pour des programmes de stage, assurez-vous que la communauté à laquelle vous vous joignez participe fréquemment à ces programmes de stage.

Vous voudrez probablement aussi vous joindre avant les périodes de stage, créer des réseaux et des liens communautaires. Cherchez les projets qui sont généralement sélectionnés pour les stages et montrez des efforts autour de ceux-ci. Au moment où une tâche dans l'un de ces projets est listée pour le stage, vous serez déjà un initié et pourrez même influencer les décideurs à orienter leur choix vers vous. C'est travailler intelligemment et dur en même temps.

Conclusion

Le chemin pour devenir un contributeur open source réussi peut être différent pour chacun de nous, mais je crois qu'il y a des choses qui sont communes à tous.

Le succès a un effet domino. Une tâche, un stage, un emploi ou une solution réussie crée une opportunité pour la suivante.

Je vous souhaite bonne chance dans votre parcours et si vous êtes déjà arrivé, partagez cette information avec quelqu'un qui pourrait en avoir besoin.