Les logiciels open source sont des logiciels dont la licence respecte des critères précisément établis par l'Open Source Initiative, c'est-à-dire les possibilités de libre redistribution, d'accès au code source et de création de travaux dérivés. Mis à la disposition du grand public, ce code source est généralement le résultat d'une collaboration entre programmeurs.
L'intérêt de l'open source est qu'il met en avant la qualité des logiciels produits. Le code source peut être relu et amélioré par tout le monde, ce qui peut permettre notamment la correction de problèmes de sécurité. Les logiciels open source intéressent beaucoup les pays nouvellement industrialisés et émergents (Chine, Brésil, Inde, etc.) car ces logiciels leur confèrent une indépendance technologique à moindre coût.
Voici un article que Thomas Stringer a écrit concernant la situation des développeurs open source :
Il est 23h43, un lundi soir. Mon fils de 6 semaines s'est endormi dans mon bureau afin que ma femme puisse se reposer sans interruption pendant la première moitié de la nuit. Il est enfin endormi, et je devrais l'être aussi après une journée de travail bien remplie. Mais je n'ai pas fini ma journée. Même si je suis ingénieur logiciel de métier, je suis aussi un programmeur informatique par hobby et par passion. Je fais donc ce que je fais depuis plus d'une décennie : Je démarre mon ordinateur pour écrire du code.
Que faire, que faire... Apprendre quelque chose de nouveau ? Peut-être. Écrire un article de blog ? Eh bien... me voilà. Mais... au fond de moi, je sais que j'ai des projets open source qui ont besoin d'attention. L'un d'entre eux est très utilisé. J'en suis à près de 3/4 millions de téléchargements, et c'est quelque chose dont les gens semblent penser qu'il a un certain niveau d'utilité. Ce sont les bons côtés. Les mauvais côtés sont qu'il y a une douzaine de problèmes que je n'ai même pas examinés, et encore moins triés, étudiés et corrigés. Il y a quelques PRs de la communauté que je dois examiner. Il y a des dépendances qui doivent être mises à jour. La liste est longue. Ce projet a atteint une étape OSS pas si rare : L'épuisement du mainteneur.
Ce qui motive tous les créateurs de logiciels
Je ne suis certainement pas le seul à vouloir écrire des logiciels. Et avec la crainte de trop généraliser un groupe massif d'artisans du logiciel, je pense que l'effort que nous mettons dans le logiciel est une équation simple :
Temps = Passion + ArgentChaque heure que nous passons à écrire du code est due à une combinaison de passion et d'argent. Ces deux éléments peuvent être nuls, mais l'autre partie doit être suffisamment importante pour compenser la valeur nulle. Prenons mon cas comme exemple :
Mon travail d'ingénieur logiciel est excellent. On me donne de l'argent pour écrire du code. J'ai aussi la chance d'avoir une grande passion pour le code que j'écris et les choses que je construis. Mon travail est également très demandé. C'est une grande victoire ! J'ai de la chance. D'autres peuvent être peu ou pas passionnés par leur travail, mais leur rémunération leur permet de revenir le lundi matin à 9 heures. C'est tout à fait normal !
Voyons quelques-uns de mes autres projets en cours. Mon blog, ce blog, est l'un d'entre eux. Je ne gagne pas d'argent, mais j'y mets un peu de passion et cela correspond assez bien à la demande. Ensuite, il y a le projet passion, qui ne me rapporte pas d'argent, mais qui me passionne et me motive beaucoup. Et comme il n'y a pas de demande, je vais à mon propre rythme et je prends la direction que je veux !
Et enfin, il y a mon projet OSS (logiciel open source) inintéressant (pour moi). Ce qui ressemblait autrefois à un projet passion est maintenant méconnaissable du point de vue de la motivation. Mais la demande est forte. Il y a beaucoup d'utilisateurs, dont beaucoup en entreprise, qui utilisent mon logiciel pour faire progresser leur organisation. Et la mauvaise nouvelle, c'est que je n'en tire aucun revenu. La motivation est donc essentiellement inexistante à ce stade. Là où la passion fait défaut, l'argent pourrait me motiver à travailler régulièrement sur ce produit.
Que se passe-t-il vraiment ?
Tout cela se résume à une situation dans laquelle de nombreuses entreprises génératrices de profits utilisent un logiciel qu'un programmeur s'est porté volontaire pour écrire. Ce logiciel permet à l'entreprise de gagner encore plus d'argent. Mais le développeur ne voit rien de tout cela parce qu'il n'est qu'un auteur sur quelques commits git, et qu'il ne fait pas partie du personnel de l'entreprise.
C'est ce qu'on appelle le volontariat en tant que service (Volunteering as a Service - VaaS). Il s'agit littéralement d'un repas gratuit aux dépens de personnes qui travaillent dur.
C'est assez sombre, alors permettez-moi de revenir un peu en arrière. Ce ne sont pas toutes les entreprises qui traitent les logiciels open source (OSS) de cette manière. Et même pour celles qui le font, je suis prêt à parier que 99 % d'entre elles ne négligent pas les compensations par malveillance. Le système des OSS n'est tout simplement pas équipé pour permettre à ces entreprises de rémunérer leurs contributeurs.
Quelle est la solution ?
L'énoncé du problème n'est pas nouveau. Elle a souvent été évoquée, sous de nombreuses formes. Quelle pourrait être la solution ? Les développeurs de logiciels libres devraient être rémunérés de la manière suivante :
Argent = Contributions * UtilisationSi vous contribuez activement à un produit très utilisé, la rémunération devrait en tenir compte. De même, si vous avez soumis quelques commits sur un produit que personne n'utilise, l'argent (ou l'absence d'argent) devrait en être le reflet. Mais ce n'est pas si simple, car il existe différents types de développeurs de logiciels open source. Certains écrivent du code OSS dans le cadre de leur emploi, auquel cas ils sont probablement déjà rémunérés pour leurs contributions. Cette rémunération leur est versée deux fois par mois. Mais l'autre type de développeur de logiciels open source est celui qui fait ces contributions en dehors de ses heures de travail et qui n'est pas affilié à une organisation.
Les entreprises utilisatrices de logiciels open source devraient financer ces projets. Après tout, ce sont elles qui les utilisent. Et même si elles ne sont pas obligées d'acheter des licences à SomeClosedSourceSoftwareCompany, cela ne signifie pas qu'elles ne devraient pas contribuer.
Comment les entreprises peuvent-elles contribuer ?
La réponse évidente est l'argent. La réponse moins évidente est le temps de travail des développeurs. Il s'agit d'une pratique assez courante. Les entreprises peuvent avoir des employés qui contribuent à temps plein ou partiel à des projets de logiciels open source. Kubernetes et tous les développeurs qui contribuent à Kubernetes sur leur temps de travail en sont un bon exemple. Les entreprises figurant sur cette liste (Google, Red Hat, VMware et Microsoft, pour ne citer que les plus importantes) contribuent à la réussite de ces projets. Elles donnent du temps aux développeurs.
Lorsqu'une entreprise ne consacre pas suffisamment de temps aux projets, elle devrait compléter sa contribution par de l'argent distribué aux développeurs OSS qui ne représentent pas leur entreprise. La rémunération des entreprises devrait ressembler à ce qui suit :
Rémunération = Développeurs + ArgentVoici une autre façon de voir les choses :
Ces trois entreprises contribuent de manière responsable au produit OSS, mais de différentes manières. L'entreprise 1 apporte de l'argent et du temps de développement, l'entreprise 2 n'envoie que de l'argent, et enfin l'entreprise 3 fournit les développeurs adéquats au projet.
Comment les dépendances sont-elles rémunérées ?
Vite, nommez toutes les dépendances de Kubernetes. Vous ne pouvez pas, et moi non plus. Il y en a tout simplement trop. Les produits destinés aux utilisateurs finaux ne devraient pas être les seuls à bénéficier d'une compensation appropriée. Ce devrait être ces produits qui envoient une partie de leurs contributions (argent et temps de développement) à ces dépendances dans un grand arbre heureux de contributions.
Pourquoi est-ce si difficile ?
Il y a beaucoup de défis à relever. Et ce ne sont que les choses auxquelles j'ai pensé. Je suis sûr qu'en réalité, c'est encore plus compliqué. C'est pourquoi je ne pense pas que la responsabilité morale incombe actuellement à ces entreprises. Il faut mettre en place un système qui gère les contributions des utilisateurs et les distribue aux projets et aux projets de dépendance. L'entreprise 2 peut se réveiller un jour et dire "Je veux faire ce qu'il faut et rémunérer les développeurs de logicielS open source". Mais... euhhh... où envoie-t-elle l'argent ? Je n'en ai aucune idée. Il n'y a personne à qui l'envoyer sans ajouter une tonne de frais généraux, ce qui n'est juste pour personne. Et non, je ne pense pas que les sponsors GitHub soient la solution à ce problème.
Résumé
J'espère qu'un jour nous trouverons le moyen de rémunérer équitablement les créateurs de logiciels open source. C'est la bonne chose à faire, et je ne connais personne (y compris ces entreprises) qui conteste ce point de vue. Nous sommes tous ensemble dans ce grand monde du logiciel.
Que faire, que faire... Apprendre quelque chose de nouveau ? Peut-être. Écrire un article de blog ? Eh bien... me voilà. Mais... au fond de moi, je sais que j'ai des projets open source qui ont besoin d'attention. L'un d'entre eux est très utilisé. J'en suis à près de 3/4 millions de téléchargements, et c'est quelque chose dont les gens semblent penser qu'il a un certain niveau d'utilité. Ce sont les bons côtés. Les mauvais côtés sont qu'il y a une douzaine de problèmes que je n'ai même pas examinés, et encore moins triés, étudiés et corrigés. Il y a quelques PRs de la communauté que je dois examiner. Il y a des dépendances qui doivent être mises à jour. La liste est longue. Ce projet a atteint une étape OSS pas si rare : L'épuisement du mainteneur.
Ce qui motive tous les créateurs de logiciels
Je ne suis certainement pas le seul à vouloir écrire des logiciels. Et avec la crainte de trop généraliser un groupe massif d'artisans du logiciel, je pense que l'effort que nous mettons dans le logiciel est une équation simple :
Temps = Passion + ArgentChaque heure que nous passons à écrire du code est due à une combinaison de passion et d'argent. Ces deux éléments peuvent être nuls, mais l'autre partie doit être suffisamment importante pour compenser la valeur nulle. Prenons mon cas comme exemple :
Mon travail d'ingénieur logiciel est excellent. On me donne de l'argent pour écrire du code. J'ai aussi la chance d'avoir une grande passion pour le code que j'écris et les choses que je construis. Mon travail est également très demandé. C'est une grande victoire ! J'ai de la chance. D'autres peuvent être peu ou pas passionnés par leur travail, mais leur rémunération leur permet de revenir le lundi matin à 9 heures. C'est tout à fait normal !
Voyons quelques-uns de mes autres projets en cours. Mon blog, ce blog, est l'un d'entre eux. Je ne gagne pas d'argent, mais j'y mets un peu de passion et cela correspond assez bien à la demande. Ensuite, il y a le projet passion, qui ne me rapporte pas d'argent, mais qui me passionne et me motive beaucoup. Et comme il n'y a pas de demande, je vais à mon propre rythme et je prends la direction que je veux !
Et enfin, il y a mon projet OSS (logiciel open source) inintéressant (pour moi). Ce qui ressemblait autrefois à un projet passion est maintenant méconnaissable du point de vue de la motivation. Mais la demande est forte. Il y a beaucoup d'utilisateurs, dont beaucoup en entreprise, qui utilisent mon logiciel pour faire progresser leur organisation. Et la mauvaise nouvelle, c'est que je n'en tire aucun revenu. La motivation est donc essentiellement inexistante à ce stade. Là où la passion fait défaut, l'argent pourrait me motiver à travailler régulièrement sur ce produit.
Que se passe-t-il vraiment ?
Tout cela se résume à une situation dans laquelle de nombreuses entreprises génératrices de profits utilisent un logiciel qu'un programmeur s'est porté volontaire pour écrire. Ce logiciel permet à l'entreprise de gagner encore plus d'argent. Mais le développeur ne voit rien de tout cela parce qu'il n'est qu'un auteur sur quelques commits git, et qu'il ne fait pas partie du personnel de l'entreprise.
C'est ce qu'on appelle le volontariat en tant que service (Volunteering as a Service - VaaS). Il s'agit littéralement d'un repas gratuit aux dépens de personnes qui travaillent dur.
C'est assez sombre, alors permettez-moi de revenir un peu en arrière. Ce ne sont pas toutes les entreprises qui traitent les logiciels open source (OSS) de cette manière. Et même pour celles qui le font, je suis prêt à parier que 99 % d'entre elles ne négligent pas les compensations par malveillance. Le système des OSS n'est tout simplement pas équipé pour permettre à ces entreprises de rémunérer leurs contributeurs.
Quelle est la solution ?
L'énoncé du problème n'est pas nouveau. Elle a souvent été évoquée, sous de nombreuses formes. Quelle pourrait être la solution ? Les développeurs de logiciels libres devraient être rémunérés de la manière suivante :
Argent = Contributions * UtilisationSi vous contribuez activement à un produit très utilisé, la rémunération devrait en tenir compte. De même, si vous avez soumis quelques commits sur un produit que personne n'utilise, l'argent (ou l'absence d'argent) devrait en être le reflet. Mais ce n'est pas si simple, car il existe différents types de développeurs de logiciels open source. Certains écrivent du code OSS dans le cadre de leur emploi, auquel cas ils sont probablement déjà rémunérés pour leurs contributions. Cette rémunération leur est versée deux fois par mois. Mais l'autre type de développeur de logiciels open source est celui qui fait ces contributions en dehors de ses heures de travail et qui n'est pas affilié à une organisation.
Les entreprises utilisatrices de logiciels open source devraient financer ces projets. Après tout, ce sont elles qui les utilisent. Et même si elles ne sont pas obligées d'acheter des licences à SomeClosedSourceSoftwareCompany, cela ne signifie pas qu'elles ne devraient pas contribuer.
Comment les entreprises peuvent-elles contribuer ?
La réponse évidente est l'argent. La réponse moins évidente est le temps de travail des développeurs. Il s'agit d'une pratique assez courante. Les entreprises peuvent avoir des employés qui contribuent à temps plein ou partiel à des projets de logiciels open source. Kubernetes et tous les développeurs qui contribuent à Kubernetes sur leur temps de travail en sont un bon exemple. Les entreprises figurant sur cette liste (Google, Red Hat, VMware et Microsoft, pour ne citer que les plus importantes) contribuent à la réussite de ces projets. Elles donnent du temps aux développeurs.
Lorsqu'une entreprise ne consacre pas suffisamment de temps aux projets, elle devrait compléter sa contribution par de l'argent distribué aux développeurs OSS qui ne représentent pas leur entreprise. La rémunération des entreprises devrait ressembler à ce qui suit :
Rémunération = Développeurs + ArgentVoici une autre façon de voir les choses :
Ces trois entreprises contribuent de manière responsable au produit OSS, mais de différentes manières. L'entreprise 1 apporte de l'argent et du temps de développement, l'entreprise 2 n'envoie que de l'argent, et enfin l'entreprise 3 fournit les développeurs adéquats au projet.
Comment les dépendances sont-elles rémunérées ?
Vite, nommez toutes les dépendances de Kubernetes. Vous ne pouvez pas, et moi non plus. Il y en a tout simplement trop. Les produits destinés aux utilisateurs finaux ne devraient pas être les seuls à bénéficier d'une compensation appropriée. Ce devrait être ces produits qui envoient une partie de leurs contributions (argent et temps de développement) à ces dépendances dans un grand arbre heureux de contributions.
Pourquoi est-ce si difficile ?
Il y a beaucoup de défis à relever. Et ce ne sont que les choses auxquelles j'ai pensé. Je suis sûr qu'en réalité, c'est encore plus compliqué. C'est pourquoi je ne pense pas que la responsabilité morale incombe actuellement à ces entreprises. Il faut mettre en place un système qui gère les contributions des utilisateurs et les distribue aux projets et aux projets de dépendance. L'entreprise 2 peut se réveiller un jour et dire "Je veux faire ce qu'il faut et rémunérer les développeurs de logicielS open source". Mais... euhhh... où envoie-t-elle l'argent ? Je n'en ai aucune idée. Il n'y a personne à qui l'envoyer sans ajouter une tonne de frais généraux, ce qui n'est juste pour personne. Et non, je ne pense pas que les sponsors GitHub soient la solution à ce problème.
Résumé
J'espère qu'un jour nous trouverons le moyen de rémunérer équitablement les créateurs de logiciels open source. C'est la bonne chose à faire, et je ne connais personne (y compris ces entreprises) qui conteste ce point de vue. Nous sommes tous ensemble dans ce grand monde du logiciel.
Et vous ?
Pensez-vous que l'avis de Thomas Stringer est crédible ou pertinente ?
Quel est votre avis sur la situation des développeurs de logiciels open source ?
Voir aussi :
L'Open Source serait en difficulté et ce n'est pas la faute des grandes entreprises technologiques, d'après Jan Kammerath
Pourquoi le développement des logiciels libres « ne serait pas durable », d'après André Staltz
L'open source souffre-t-il d'un problème du « travail gratuit » ? Oui, selon Havoc Pennington