Contribuer à un projet open source: comment démarrer

Les projets open source ont donné naissance à une gamme de logiciels utiles au fil des ans. La plupart des technologies que nous utilisons aujourd'hui sont issues du développement open source! Android, Firefox, lecteur multimédia VLC, MongoDB, Linux, Docker et Python pour n'en nommer que quelques-uns.

Même de nombreux géants de la technologie réalisent les avantages et permettent à leurs employés de prendre un jour de congé et de consacrer leur temps à des projets open source. En fait, beaucoup ont eux-mêmes des projets open source.

Cependant, la grande majorité des contributeurs à des projets open source ne travaillent pas pour des géants de la technologie; Tout le monde peut laisser sa marque sur un logiciel ouvert important ou créer son propre «prochain grand projet». Faire partie d'un projet open source peut également vous aider à améliorer vos compétences, à apprendre quelque chose de nouveau, à obtenir du mentorat ou à nouer des amitiés à vie. Contribuer à des projets open source devrait être mutuellement bénéfique à court et à long terme. De nombreuses entreprises recrutent activement des développeurs à temps plein parmi ceux qui contribuent le plus à un projet. Cela peut donc être un excellent moyen de montrer vos compétences tout en en apprenant de nouvelles.

Cet article combine quelques conseils que nous partageons avec ceux qui cherchent à s'impliquer dans MindsDB. Bien que chaque projet soit différent, ces idées vous aideront à participer à tout projet open source.

Page GitHub de MindsDB

Avant de faire votre première contribution

1. Évaluez-vous:

La première étape consiste à évaluer les compétences techniques ou non techniques que vous avez ou que vous souhaitez améliorer. Demandez-vous où puis-je ajouter le plus de valeur? Cela pourrait aider directement à écrire du code, à tester des bogues ou même à améliorer la documentation afin que d'autres puissent utiliser le logiciel plus efficacement.

2. Apprenez à connaître GitHub

Presque tous les projets open source utilisaient un système de contrôle de version, un outil permettant de fusionner le nouveau code dans le projet (le «référentiel» principal). Généralement, la collaboration est centrée sur un site Web hébergeant le référentiel central. Ces sites Web incluent Github, Bitbucket et Gitlab, bien que Github soit de loin le plus populaire et celui que nous utilisons ici à MindsDB.

De manière générale, les systèmes de contrôle de version permettent de garder une trace de toutes les modifications d’un projet sans enregistrer plusieurs fichiers. Créez un compte sur Github, connectez-vous et explorez les différents onglets en haut du site. Vous y trouverez des informations sur Github, des guides de développement, des projets open source, des événements, des conférences, etc. Vous pouvez en apprendre davantage sur les bases d'un GitHub en suivant ce guide ici.

3. Recherchez des projets pertinents et rejoignez la communauté

Recherchez des projets pertinents sur Github en fonction de vos compétences. Vous pouvez utiliser Github Explore à cet effet ou vous inscrire à Code Triage pour recevoir chaque jour un courrier électronique sur un problème différent. Lorsque vous choisissez un projet, commencez par rechercher un projet activement géré (de nombreux commits) et présentant de nombreux problèmes. Une fois que vous avez trouvé vos projets pertinents, commencez le projet Star & Fork, abonnez-vous à sa liste de diffusion et à son canal interactif. C’est le meilleur moyen d’obtenir de l’aide si vous êtes coincé dans l’installation du projet ou si vous apportez votre première contribution.

Faire votre première contribution

1. Jouez avec le logiciel: Find Bugs

Premièrement, essayez le logiciel, installez-le et jouez, essayez de le casser, voyez s'il fait ce qu'il dit sur la boîte. C'est un excellent endroit où vous pouvez commencer à ajouter de la valeur très facilement, en signalant tous les problèmes que vous rencontrez. Chaque projet est susceptible de comporter un modèle légèrement différent pour signaler les problèmes, mais ils contiennent tous essentiellement des informations similaires. (Vous pouvez trouver le modèle de question de MindsDB ici)

2. Explorer les problèmes existants

Une fois que vous avez déterminé le projet auquel vous souhaitez contribuer, explorez son référentiel Github, lisez les documents et accédez à l'onglet "Problèmes". Vous trouverez ici toutes les questions en suspens sur lesquelles vous pouvez travailler. Ces problèmes peuvent aller du niveau débutant au niveau avancé. Si le référentiel est correctement géré, les problèmes sont identifiés par les mots “débutant”, “débutant”, “recherché”, etc. afin que vous puissiez travailler sur les tâches les plus simples pour gagner en confiance et en expérience du projet.

3. Aidez à améliorer la documentation

Cependant, vous n’avez pas à coder tout de suite. Vous pouvez contribuer à la documentation, créer le guide du développeur, aider d'autres personnes à résoudre leurs problèmes, etc. Lisez la documentation et, si vous pensez qu'il manque quelque chose, vous pourrez commencer par contribuer. Vous pouvez soit soulever un problème, soit ajouter les parties manquantes vous-même si vous êtes suffisamment en confiance. Vous pouvez consulter les documents de MindsDB ici.

4. Proposer de nouvelles fonctionnalités

Si vous aimez le projet et le trouvez utile, vous pouvez également commencer à demander de nouvelles fonctionnalités pour l’améliorer. (Vous pouvez trouver notre modèle ici) ou mieux encore, vous pouvez essayer de les ajouter vous-même.

La cathédrale et le bazar

Un livre classique sur l'OSS est La cathédrale et le bazar. Il explore le développement de style «bazar», une approche ascendante qui donne du pouvoir aux développeurs et aux utilisateurs. En le comparant au style «cathédrale», une approche descendante où le pouvoir revient aux gestionnaires et aux propriétaires de produits.

Ce sont ces idées qui ont donné lieu à des approches de travail telles que celle décrite dans le Manifeste Agile. Mais peu importe le nombre de sociétés qui ont essayé d’imiter une approche de développement «bazar», elles ne peuvent pas le faire aussi bien que des projets open source.

Dans le monde des projets d'entreprise, les architectes, les gestionnaires et les propriétaires de produits ouvrent la voie. Dans le monde de l’open source, ce sont les utilisateurs et les développeurs qui définissent les spécifications.

Les logiciels open source sont intéressants car ils exploitent «l'intelligence collective» de leurs développeurs et utilisateurs. La plupart des développeurs dans un projet open source proviennent de sa base d'utilisateurs principale, la plupart des «leaders» dans un projet open source sont simplement les développeurs qui ont mis le plus d'idées et de code.

Cette approche de «bazar» n’est pas nécessairement meilleure que celle de «cathédrale», mais c’est un système qui vaut la peine d’être essayé. Cela peut donner à un nouveau développeur beaucoup de pouvoir sur un logiciel, quels que soient les critères externes tels que l'âge ou l'ancienneté dans l'entreprise. Le code d'échange est le seul élément d'échange.

Si rien d'autre, vous devriez travailler sur des projets open source pour expérimenter ce style de conception de logiciel ascendant.

Objectifs suivants en tant que développeur open source

1. Assister à des conférences

En tant que développeur open source, vous pouvez assister à des conférences et à des événements liés au codage et à la technologie. Vous pouvez consulter différents événements sur Github Explore et essayer d’assister à ces événements proches de vous. MindsDB organisera des rencontres tout au long de 2019; Si vous souhaitez rester au courant de tout ce que vous avez sur MIndsDB, vous pouvez vous inscrire à notre liste de diffusion ici.

2. Faites-vous payer pour le développement open source

De manière générale, vous n'êtes pas payé pour faire du développement open source car la majeure partie du travail effectué est bénévole. Toutefois, si vous ne pouvez pas vous permettre de consacrer du temps non rémunéré au développement open source, vous pouvez parler à votre employeur et lui proposer un projet pouvant également l'intéresser, ou bien trouver un projet rémunérant son développeur open source. Vous pouvez en apprendre plus en consultant le guide de Github sur le fait d’être payé pour le développement open source. De nombreuses entreprises (y compris MindsDB) embauchent ou paient également les meilleurs contributeurs pour leur travail.

3. Montrez votre CV, soyez un mentor et postulez à des concours open source

Vous devez mentionner tous les projets auxquels vous avez contribué sur votre CV ou ajouter un lien vers votre compte GitHub sur votre CV ou dans une lettre de motivation. La plupart des employeurs sont impressionnés par ces distinctions et préfèrent ces candidats à l’embauche.

Vous pouvez également devenir un mentor pour les personnes novices dans le développement open source. Il est temps de redonner à la communauté et de guider ceux qui viennent juste de commencer. Il existe plusieurs programmes dans lesquels vous pouvez choisir de devenir un mentor, par exemple: Google Summer of Code, Rails Girls Summer of Code, Outreachy, etc., ou tout simplement en aidant les gens en répondant à leurs questions sur les listes de diffusion ou StackOverflow.

Adam Carrigan est cofondateur de MindsDB, un outil facile à utiliser pour ajouter l'apprentissage automatique à vos projets et résoudre les problèmes de données. Suis moi sur Twitter

Vous pouvez également suivre notre projet sur GitHub et Twitter