Comment contribuer qualitativement à la communauté Open Source ?

En 2020, la contribution à des projets Open Source a augmenté de 25 % par rapport à l’année précédente, selon une étude de la plateforme Github.⁣ La généralisation du télétravail et les différents confinements ont probablement favorisé ces contributions.⁣ Le développement et l’utilisation de projets Open Source suscitent donc un fort intérêt et sont en plein développement.

CBTW
L’Actualité Tech — Blog CBTW
10 min readJan 14, 2021

--

Plateforme de partage Open Source Github

Que vous souhaitiez vous lancer en tant que contributeur ou conforter votre contribution à cette communauté, nous vous partageons les notions de base de l’Open Source (OSS), les avantages à y contribuer et les éléments à prendre en compte pour le faire de manière qualitative.

Qu’est-ce que l’Open Source ?

Vers la fin des années 1970, Richard Stallman lance le concept de ‘Logiciel Libre’ qui ouvre la voie à la naissance du développement Open Source.
Depuis on distingue le Logiciel Libre, considéré comme un mouvement, une philosophie, de l’Open Source qui est une méthodologie de développement.
Les adeptes du Logiciel Libre revendiquent en effet une valeur morale en faveur de la liberté d’utilisation.

“Le logiciel libre est, à la manière de la connaissance scientifique, une forme de patrimoine de l’humanité, un bien commun que nous enrichissons collectivement, pour le bien-être de tous”.

Aujourd’hui l’Open Source ne concerne plus uniquement le domaine de la Tech et du développement Web.
L’Open Source représente alors une pratique de partage, qui consiste à donner accès à ses documents de travail (code source, plans, méthodologie appliquée, résultats de recherches, recette, …) afin de permettre à d’autres de comprendre ses réalisations, de les réutiliser et de les améliorer. Ainsi l’entraide, l’amélioration continue et l’innovation sont favorisées.

Par exemple, la société à but non lucratif Time for The Planet a pour ambition de financer et de créer 100 entreprises pour lutter contre le dérèglement climatique. Elle a annoncé que l’ensemble des découvertes de ces entreprises, seront rendues publiques selon le principe de l’Open Source. Elle espère ainsi que d’autres entreprises se développent en reprenant, voire en améliorant, les découvertes faites, afin de les essaimer de par le monde et ainsi que ses innovations bénéficient au bien commun.

Appliqué au développement web, l’Open Source définit des logiciels dont le code source est mis à disposition pour lecture, modification et redistribution. L’accès et la réutilisation du code source sont donc libres (mais pas nécessairement les services, produits et prestations autour), en opposition aux logiciels propriétaires, qui ne donnent pas accès à leur code source.

Les logiciels OSS sont publiés sous des licences d’utilisation qui respectent les principes de l’Open Source Initiative (OSI), dont entre autres :

  • libre redistribution du logiciel,
  • le code source doit être fourni ou être accessible gratuitement,
  • les dérivés des œuvres doivent être permis,
  • l’intégrité du code doit être préservée,
  • pas de discrimination entre les personnes ou les groupes et entre les domaines d’application
  • etc.

Le développement Open Source rassemble donc une communauté d’adeptes, qui travaillent de manière collaborative et décentralisée entre pairs, ce qui comporte de nombreux avantages.

Pour quelles raisons contribuer à des projets Open Source ?

Que ce soit sur des projets personnels ou professionnels, il y a tout autant de bénéfices à apporter, qu’à retirer de la contribution Open Source.

Knowledge management

L’acquisition de connaissances et leur partage sont complémentaires et se nourrissent l’un de l’autre.
Et le développement et l’utilisation de logiciels libres permettent à la fois d’apprendre et de monter en compétences, mais aussi de transmettre.

L’étude de codes sources disponibles permet en effet de développer sa compréhension technique, d’intégrer des bonnes pratiques et d’apprendre de nouveaux procédés. De plus un code manipulable permet également de s’exercer en tentant de reproduire ou de faire évoluer une fonctionnalité ou un projet.

Il est également possible de s’atteler à la résolution de tickets ouverts ou de bugs débusqués, pour se challenger et tenter de trouver et de proposer des correctifs. Cela permet de rester actif et d’entretenir et développer ses compétences.
Mais outre l’aspect technique, le partage de connaissances est aussi humain. En cas de blocage, de questions ou demande d’aide, il y a toute une communauté de développeuses et développeurs passionnés qui sont susceptibles d’apporter leur assistance.

Vous pouvez donc à la fois vous baser sur l’Open Source pour pratiquer l’apprentissage continu, mais aussi pour contribuer en tant que sachant
afin de partager vos connaissances au plus grand nombre.
Un cercle vertueux de mise en pratique et de mise en réussite est alors mis en place.

Productivité

L’utilisation et le développement de logiciels OSS peuvent vous apporter un véritable gain de temps sur le long terme.

À la fois en vous permettant d’industrialiser certains process et en réduisant le temps de code nécessaire si vous réutilisez certains outils ou fonctionnalités entre les projets.
Il faut bien sûr veiller à les réadapter si nécessaire, mais ce sera nécessairement moins chronophage que de repartir from scratch.

Et à la fois en vous permettant de vous appuyer sur d’autres pairs, que ce soit pour des échanges, des corrections ou la maintenance sur des outils utilisés ou mis à disposition.

Qualité et pérennité

Rendre son code disponible et contribuer à des projets collaboratifs pousse davantage à faire preuve de rigueur, en prenant soin d’écrire un code de qualité, testé et documenté et en respectant les standards en vigueur.
De plus d’autres contributeurs pourront compléter la documentation et vous faire remonter d’éventuels bugs ou axes d’amélioration, ou redistribuer eux-mêmes une version améliorée.
Votre code est ainsi audité et bénéficie d’un processus d’amélioration continue, qui rend sa maintenance plus aisée et donc le projet flexible et plus pérenne.

Globalement, grâce à l’intelligence collective l’Open Source augmente le niveau technique des contributions et donc des contributeurs.

Image et notoriété

La mise en avant de vos réalisations et de vos contributions Open Source permet de démontrer concrètement votre savoir-faire et votre savoir-être.
Au-delà d’un gage de qualité et d’expertise, c’est une preuve de votre capacité à collaborer et de votre investissement.

Vous pouvez ainsi développer votre notoriété dans la communauté Tech, mais aussi auprès des recruteurs IT.

Émulation et innovation

L’ Open Source permet de créer des synergies et de trouver de nouvelles manières d’adresser et de résoudre des problématiques.
Il s’agit d’un vivier fertile à l’innovation, qui a d’ailleurs déjà permis le développement de nombreux projets aujourd’hui mondialement utilisés (Linux, Mozilla Firefox, Apache, PHP, …).

Comment contribuer à l’Open Source de manière qualitative ?

Dans votre intérêt et celui de la communauté, vos contributions devront respecter certains standards et faire preuve de qualité. Nous vous partageons donc six points à prendre en compte pour une participation qualitative.

Outils

L’Open Source est basé sur un modèle de développement collaboratif international. Outre les outils que vous utilisez déjà dans le cadre de vos développements, vous devrez donc vous appuyer sur des outils spécifiques de collaboration.

La principale plateforme de développement Open Source utilisée est GitHub. Elle permet l’hébergement du code, la création de profil utilisateur et de contrôle d’accès, la gestion de tâches et d’équipes, mais également la gestion de la documentation, du code review et un suivi de tickets.

Afin de suivre les ajouts et modifications dans le code, vous devrez également utiliser un logiciel de versioning. Bien que vous ayez le choix entre différents logiciels, Git, le logiciel de gestion de versions de Github, est l’un des plus couramment utilisés. Il permet de mentionner les caractéristiques de chaque version pour retrouver facilement l’auteur, la raison et l’apport de chaque modification. On peut ainsi aisément tester une nouvelle fonctionnalité et revenir à une version précédente sans risquer de porter atteinte à la stabilité du projet.

Temps et budget

Il faudra nécessairement vous poser la question du temps que vous pourrez allouer à vos contributions, et ne pas négliger l’aspect financier inhérent.
Il ne faut d’ailleurs pas sous-estimer le temps qui peut être nécessaire aux échanges et à la maintenabilité.

Le code partagé correspond à autant de développeurs qui entretiennent souvent leurs projets Open Source sur leur temps personnel, bien que les entreprises soient de grandes consommatrices de logiciels OSS.

Pour les freelances qui utilisent l’Open Source dans leur projet client, il est important de les sensibiliser à votre fonctionnement. Il faudra en effet leur expliquer que le prix final comporte à la fois une prestation de services mais également les éventuelles licences à acquérir (propriétaires ou open source) et les cessions de droits de propriété intellectuelle de votre travail à leur profit.
Vous pourrez vous appuyer sur les avantages de l’OSS décrits ci-dessus pour leur démontrer les bénéfices à utiliser des briques OSS.

Pour les collaborateurs en entreprise, n’hésitez pas également à promouvoir les bénéfices de l’utilisation de l’OSS (Cf partie précédente) afin que du temps dédié y soit alloué sur votre temps de travail.

Maintenabilité et dette technique

Si vous mettez à disposition votre code source publiquement, vous restez tout de même propriétaire et responsable du code source d’origine.
Bien que d’autres contributeurs puissent vous aider à le maintenir en vous faisant remonter des bugs, en vous proposant des corrections ou des améliorations, il vous revient d’étudier leurs requêtes et de les prendre en compte ou de les décliner.
Et inversement, vous pouvez reprendre et modifier un code source pour votre propre usage, et proposer votre modification au propriétaire pour qu’elle soit intégrée dans le code source d’origine. Celui-ci pourra alors accepter ou refuser l’intégration.

Dans tous les cas il est important que le propriétaire, et donc le mainteneur du code, soit identifié.
S’il s’agit de vous, vous pouvez également choisir de partager cette responsabilité avec d’autres membres volontaires de votre équipe ou de la communauté. Toutefois il faudra veiller à ce que vous partagiez la même vision du projet pour maîtriser son évolution et limiter les risques d’engendrer de la dette technique.
S’il s’agit d’autres utilisateurs, jetez un œil à l’activité autour du projet concerné et aux délais de réactivité autour des échanges. Il vaut par exemple mieux éviter de perdre du temps à rédiger des requêtes auprès d’un projet inactif ou qui refuse régulièrement les propositions de modifications.

Cadre légal

Les logiciels OSS relèvent du droit de la propriété intellectuelle (PI) et des droits d’exploitation de l’auteur (PI) et sont régis par des licences d’utilisation. L’auteur d’un logiciel libre consent à céder une partie de ses droits sur le logiciel à des tiers, sous des conditions définies dans les termes d’une licence.
Il existe une multitude de licences, que l’on peut classifier selon leur degré de permissivité.
On distingue notamment les licences permissives, peu restrictives, et les licences dites Copyleft, avec des obligations à suivre et qui permettent un meilleur contrôle des réutilisations.

Il faut donc veiller à la licence choisie pour votre projet ou ceux auxquels vous souhaitez contribuer ou que vous souhaitez réutiliser.
Pour vous aider à comprendre puis choisir les licences les plus appropriées au contexte et à votre projet, Github met à disposition une page dédiée : https://choosealicense.com/

Concernant les contributions faites dans le cadre de vos projets d’entreprises, leur propriété et responsabilité doivent être définies selon la politique Open Source de l’entreprise.
Il est alors d’autant plus capital de garantir une utilisation conforme aux termes des licences correspondantes utilisées et d’opter pour des licences adaptées à la stratégie de l’entreprise.

Rôles et types de contributions

Plusieurs développeurs peuvent participer à la création et à l’évolution d’un logiciel OSS. Pour chaque projet un processus d’organisation est alors défini avec l’attribution de différents rôles :

  • Auteur : créateur du projet,
  • Propriétaire : responsable administratif,
  • Responsable(s) : garant(s) de la vision du projet avec droit de modification,

Les rôles d’auteur, propriétaire et responsable peuvent être endossés par une personne unique.

  • Contributeur(s) : ensemble des membres ayant apporté une contribution au projet,
  • Membre(s) de la communauté : ensemble des utilisateurs du projet, actifs ou non dans les échanges.

Vous pouvez donc avoir différents rôles selon les projets auxquels vous participez. Et vous pouvez également participer de différentes manières :

  • Publication et maintenance de code source
  • Contribution communautaire : amélioration de documentation, traduction, pull request ou revue de soumissions, résolution ou création de tickets, intervention dans des échanges, etc.

Les manières de contribuer sont donc variées et ne sont pas uniquement constituées de lignes de code.

Valorisation

De nombreux projets et contributions sont publiés chaque jour. Pour éviter que les vôtres se noient dans la masse des publications et passent inaperçus, outre leur qualité, vous pouvez également travailler leur mise en avant :

  • Premièrement, en soignant la présentation de votre profil et les informations associées à vos releases.
    Sur Github, vous pouvez par exemple choisir les projets que vous souhaitez mettre en avant sur votre profil.
    Mais aussi, les utilisateurs ont besoin de comprendre vos contributions afin de les prendre en compte ou de les réutiliser. Une description détaillée avec des exemples sous forme de code ou cas d’usage facilitera la compréhension des utilisateurs et montrera que vous avez pris du temps au service de votre code et de son utilisation.
  • Deuxièmement, en relayant l’information via vos réseaux sociaux, des forums ou sous la forme d’un article de blog didactique.
    Vous pouvez également communiquer sur le volume de votre investissement global à des projets Open Source en publiant une vue d’ensemble de vos contributions.
    En effet Github cartographie la quantité des contributions individuelles annuelles avec un code couleur, permettant de visualiser le niveau d’activité sur leur plateforme jour après jour. Il s’agit d’un indicateur visuel percutant pour démontrer votre engagement sur le long terme.
Exemple de résumé individuel de contributions sur Github
  • Et enfin en alimentant votre réseau professionnel afin d’augmenter votre visibilité et celles de vos contributions.

Nous publions régulièrement des articles sur des sujets de développement produit web et mobile, data et analytics, sécurité, cloud, hyperautomatisation et digital workplace.
Suivez-nous pour être notifié des prochains articles et réaliser votre veille professionnelle.

Retrouvez aussi nos publications et notre actualité via notre newsletter, ainsi que nos différents réseaux sociaux : LinkedIn, Twitter, Youtube, Twitch et Instagram

Vous souhaitez en savoir plus ? Consultez notre site web et nos offres d’emploi.

L’auteur

Joy Schlienger
Content Producer @Linkvalue
Learning addict with strong curiosity
#Protectourplanet 🌱🌍

Je remercie également pour leur temps et leurs commentaires constructifs les Partners qui ont participé à la relecture de cet article.

--

--

CBTW
L’Actualité Tech — Blog CBTW

Nos experts partagent leur vision et leur veille en développement web et mobile, data et analytics, sécurité, cloud, hyperautomation et digital workplace.