Inventons le logiciel dont vous êtes le héros

Comme beaucoup j’aimerais contribuer à rendre le monde meilleur mais je n’ai que quelques heures par jour à y consacrer et pas beaucoup d’argent à investir : alors que faire ? 

Source: https://www.goodthingsguy.com/

Si vous êtes dans ce cas, rassurez vous vous n’êtes pas seul ! Mon objectif à travers cette série d’articles est de vous montrer qu’en trouvant d’autres personnes avec les mêmes contraintes et les mêmes aspirations, et une organisation appropriée, beaucoup de choses deviennent possible. Ne vous attendez pas à devenir multi-millionnaire (j’espère que ce n’était pas votre objectif principal) mais vous pourriez même projeter d’en vivre.

Savez vous pourquoi l’on trouve des logiciels open source, et pas des voitures ou des appartements open source… (même s’il existe des plans ici et ) ? C’est que l’investissement nécessaire pour développer un logiciel est à plus de 90% constitué par les salaires des équipes, et il y a donc un effet de levier très important entre les moyens à investir (hors salaires) pour développer un logiciel, et les résultats qu’on peut en attendre. En d’autre terme si une équipe de bénévoles développe un logiciel et trouve un grand nombre d’utilisateurs, le coût de revient par utilisateur est minime.

Partant de cette constatation, il me semble que les 2 modèles d’organisation les plus fréquents dans l’industrie du logiciel ne sont pas idéaux, et qu’il en manque un troisième qui serait un mix entre eux. Le premier modèle le plus fréquent c’est celui de la société privée créée par des petits génies du logiciel et financée par des business angels (des personnes riches et qui aiment la tech) et/ou des fonds spécialisés (des organisations qui mutualisent l’argent des précédents et sont spécialisés dans la détection et l’accompagnement des pépites de la tech). C’est le modèle de toutes les sociétés du logiciel connues de Google ou Facebook à la majorité des start-ups technologiques. L’avantage de cette organisation est de permettre une croissance rapide aux sociétés qui réussissent et une part importante dans de nouveaux marchés. Le modèle est attractif pour les fondateurs et les investisseurs, qui peuvent s’enrichir rapidement à condition de prendre des risques (seul 10 à 15% des projets réussissent même si d’autres disent que c’est plus).

Le deuxième modèle d’organisation fréquent est celui des communautés éditrices de logiciels libre. Les plus connues bénéficient en général d’un noyau dur de petits génies, bientôt rejoint par un grand nombre de fan plus ou moins productifs. Le secret de la réussite réside dans la bonne organisation de la communauté pour arriver à faire converger toutes ces énergies. De plus bien qu’ils aient renoncé à la propriété des logiciels développés, et ainsi attiré toute une communauté de développeurs, les fondateurs peuvent en vivre en proposant des services aux utilisateurs des logiciels libre. C’est ainsi que WordPress, le logiciel libre qui gère le contenu de 30% à 40% des sites webs dans le monde, est divisé entre une fondation (WordPress.org) et une entreprise (Auttomatic) qui gère le site wordpress.com et a été récemment valorisée à plus d’1 Milliard de dollars.

Mais ces deux modèles ne sont pas idéaux. D’une part le premier enrichit surtout les plus riches qui peuvent investir énormément au départ pour accélérer le développement de start-ups, et qui peuvent se permettre de prendre le risque de perdre 8 ou 9 de leurs investissements en échange d’un ou deux succès. Pour la plupart des fondateurs qui investissent leur temps et leurs économies dans ces projets le jeu est beaucoup plus risqué, et leurs employés même s’ils sont bien payés ne récoltent en général que quelques miettes du succès de l’entreprise. Le deuxième modèle n’est pas idéal non plus : pourquoi renoncer par idéal à la propriété de ce qu’on crée ? Le principe fondateur que le logiciel est un bien commun qui doit n’appartenir à personne pour bénéficier à tous n’est pas si évident pour la plupart d’entre nous. Il semble plus naturel au contraire qu’un bien qui a nécessité l’effort de dizaines, voire de centaines de personnes, mérite de leur rapporter de quoi se consacrer entièrement à leur passion, à condition bien sur qu’il rencontre un large public. Si les voitures ou les immeubles ne coutaient que la force de nos bras pour être fabriqués, verrait-on des voitures ou des appartements gratuits offerts au plus grand nombre ?

Il est possible de créer des communautés d’entrepreneurs, qui souhaitent mettre leurs efforts en commun comme pour un logiciel libre, mais souhaitent conserver et se partager la propriété du logiciel qu’ils produisent

A l’intersection de ces deux modèles, il est possible même si cela ne s’est pas encore vu à ma connaissance, de créer des communautés d’entrepreneurs, qui souhaitent mettre leurs efforts en commun comme pour un logiciel libre, mais souhaitent conserver et se partager la propriété du logiciel qu’ils produisent. S’ils suivent de bons principes d’organisation — les mêmes principes que pour développer un logiciel libre — ils pourront faire baisser leur besoin en investissement considérablement, et ainsi se passer en grande partie de business angels ou de fonds d’investissement. Pour cela il suffit de reprendre l’organisation des communautés du logiciel libre, en changeant légèrement le contrat auquel tout développeur et tout utilisateur souscrit. Bien sur le logiciel ne sera plus gratuit pour l’utilisateur final, mais cela n’est pas un problème fondamental, sauf pour ceux qui ne souhaitent pas sortir de l’idéal du bien commun. Pour ceux-là le logiciel libre est l’organisation adéquate. 

La difficulté principale de ce nouveau modèle est de trouver un moyen simple et unanimement accepté de se répartir la propriété des résultats. Pour être efficace, ce partage doit s’appuyer sur une règle claire et facile à comptabiliser, donc sans ambiguïté, et une bonne dose de transparence. A ce sujet les outils utilisés dans les communautés du libre bien qu’ils privilégient la transparence, ne sont pas exempts de relations de pouvoir et parfois d’opacité entre les « responsables » (« maintainers » en anglais) et les autres contributeurs, car ce sont eux qui décident dans quelle direction doit aller le projet et d’accepter ou non une contribution. Ces relations de pouvoir semblent assez inévitables dans tous les modèles d’organisation, et justifient qu’on mette en place des règles de partage de la propriété claires et efficaces. 

Le bon mix entre le système des entreprises et celui des communautés me semble donc être le suivant : 

  • (1) s’appuyer sur des rôles bien définis dévolus à chacun (comme dans les 2 autres modèles)
  • (2) donner à tous le droit de proposer des contributions et décider collectivement des contributions prioritaires (modèle communautaire)
  • (3) rétribuer uniquement les contributeurs travaillant sur des contributions prioritaires (inspiré du modèle d’entreprise, sauf qu’ici on ne rétribue pas les contributeurs par un salaire mais par une ‘part’ du résultat attribuée au prorata du temps passé)

Par exemple dans ce modèle 3 amis peuvent lancer un projet nécessitant 1000 heures de travail, trouver 7 autres contributeurs, et se répartir la propriété en fonction du temps passé. Certains de ces contributeurs fournissent un effort plus important, et rejoignent en cours de projet les 3 fondateurs comme « responsables » ou même « propriétaires » du projet. A l’issue de 5 mois de travail ceux qui ont fait un effort important (40 à 50 heures par mois) peuvent retirer 20 à 25% des parts, tandis que ceux qui ont une contribution plus modeste (10 heures par mois) auront chacun 5% des parts. S’ils conviennent ensuite de donner le logiciel en gestion à une entreprise créée par deux d’entre eux, chaque contributeur se verra reverser des droits en fonction de ses parts. Si par la suite certains d’entre eux continuent à faire évoluer le produit, les parts évolueront dans le temps et la rétribution de tous également.

Pour réaliser un projet de ce type nos 3 amis et leurs contributeurs devront utiliser un environnement de collaboration similaire à celui des communautés open sources, c’est à dire d’une part un service qui stocke et permet de faire converger les réalisations de chacun (le plus connu de ces outils de « gestion de sources » en 2020 étant GitHub), et d’autre part un outil d’animation de leur groupe de travail (l’un des outils de ce type les plus connus en 2020 étant Slack). Beaucoup d’autres outils de ce type existent, et il est même possible de s’en tenir à des échanges par emails et réunions téléphoniques, mais aucun outil existant en 2020 ne permet d’exécuter facilement les process (1), (2) et (3) ci-dessus. Ils devront également utiliser un cadre contractuel qui n’existe pas aujourd’hui, mais qui peut s’inspirer fortement de contrats existants dans le monde du libre ou celui des entreprises. 

Pour résumer cette première idée, il est possible mettre en place des outils logiciels juridiques permettant de créer et d’administrer tout nouveau projet logiciel sans apport financier, et de rétribuer les contributeurs en parts au lieu d’un salaire en suivant les processus (1), (2) et (3) ci-dessus. Ces outils peuvent rester très simples s’ils s’appuient sur les fonctionnalités qui existent déjà comme GitHub et Slack. Il est même amusant de constater que le développement de ces outils pourra être géré lui-même comme un projet du même type, dès qu’il atteindra un niveau de maturité suffisant. On est devant un processus de développement itératif qui utilise son propre résultat ! Cet outil sera également utilisable pour produire des résultats autre que le logiciel proprement dit, comme des contrats, des documents,… 

VOIRE GRAND, COMMENCER PETIT

Pour débuter un projet de ce type, il vaut mieux commencer par de petits pas, sans perdre de vue la vision d’ensemble. On pourrait comparer l’ambition de ce projet à une autre transformation culturelle et sociétale voulue par un précédent président Français même si elle n’a pas forcément bien marché : « permettre à chaque ménage d’être propriétaire, parce que la propriété est le rêve de chacun d’entre nous« . Aujourd’hui les logiciels que nous utilisons sont soit libres, soit entre les mains d’un petit nombre de propriétaires. Le développement d’un nouveau modèle permettrait de libérer un grand nombre d’énergies en rétribuant mieux les entrepreneurs et les porteurs d’idées innovantes, voire d’apprendre à développer des logiciels pour ses propres besoins, tout en gagnant un petit peu d’argent avec. C’est un peu comme si des amis décidaient de se construire un immeuble ensemble pour y habiter, tout en laissant 80% des appartements en location pour se constituer un revenu. Attention toutefois dans le domaine du logiciel, contrairement à l’immobilier, il est assez facile pour des entreprises concurrentes et des communautés du logiciel libre de copier les bonnes idées et de séduire une large clientèle plus rapidement que nos petits entrepreneurs. Il faudra se protéger de cette menace : nous y reviendrons.

Commençons par de petits pas donc. En 2018 nous avons essayé de monter un premier projet Rebindme (qui fait l’objet de ce site web), et nous avons échoué à mettre ce premier projet sur le marché pour deux ou trois raisons principales. D’une part le projet s’est avéré plus complexe que prévu, car il consistait à mettre en relation plusieurs communautés (des consommateurs, des PMEs et des contributeurs au projet), et surtout parce que nous n’avons pas réussi à monter une équipe capable de développer les premières versions du produit et intéressée par des ‘parts’ de l’entreprise plutôt qu’un salaire.

Vu d’aujourd’hui en 2020, ce premier projet était probablement un trop grand pas, et la technologie à utiliser mal choisie. Un projet innovant de ce type doit pouvoir apporter des résultats à ses contributeurs en 6 mois (12 au maximum), pas forcément sous forme de résultats financiers, mais au moins en trouvant ses premiers utilisateurs. Pour cela il existe des outils de développement logiciel assez simples à utiliser et à apprendre, open source eux-mêmes la plupart du temps : par exemple pour développer des applications web, l’environnement Django — appuyé sur le langage Python — semble bien adapté car très simple à utiliser par des novices. Cela permet de former rapidement des gens intéressés par un projet et de les rendre rapidement productifs, plutôt que d’aller chercher des gens compétents mais déjà très bien payés dans des sociétés privées.

Par ailleurs il est possible d’identifier de petits projets pour entamer l’aventure : des choses utiles qu’un site web peut aider un particulier à résoudre et qu’il est prêt à payer quelques Euros : suivre ses dépenses, optimiser son ordinateur, retrouver ses archives, gérer ses dossiers administratifs, créer une liste partagée pour ses cadeaux de Noël… On retrouve néanmoins beaucoup de données personnelles au centre de ces applications, et il sera nécessaire de fournir aux utilisateurs une garantie du bon usage de leurs données. On pourra également leur permettre d’installer le site web directement chez eux pour qu’ils n’aient pas à partager les données avec nous.  

A suivre : chapitre 2 – L’âge d’or du développement web c’est maintenant

Une réponse sur “Inventons le logiciel dont vous êtes le héros”

Laisser un commentaire