Vrai Logiciel Libre - Pourquoi l'Open Core et les doubles licences sont trompeuses

mai 03 2012

En tant qu'utilisateur ou client de Logiciel Libres, on ne sait pas toujours qu'il en existe plusieurs types. La licence est un point clé de différentiation par le fait qu'elle donne des droits différents aux utilisateurs. Je ne vais pas rentrer dans le détail des licences en elles-mêmes dans ce billet, mais plutôt m'intéresser aux différents modèles de business qui en découlent pour les entreprises qui créent du logiciel libre.

Il est très clair pour les personnes qui analysent les modèles de business de logiciel libre, que distribuer son logiciel sous forme libre est une très bonne façon de se faire connaître et de créer l'adoption pour le logiciel en question, et ce d'autant plus que la licence est plus permissive. Ceci est bien entendu vrai uniquement si le logiciel lui-même est intéressant.

Maintenant, si vous créez une entreprise, vous ne pouvez pas juste vivre de la création du logiciel et de sa distribution gratuite. Il faudra trouver le modèle de financement du logiciel et des employés de l'entreprise. J'ai séparé les deux, car le financement du développement du logiciel ne passe pas forcément entièrement par l'entreprise. Plus la communauté de développeurs sera importante, plus une part importante du développement du logiciel sera supportée sans lien financier avec l'entreprise.

Je m’intéresse ici aussi aux modèles de business où tout le business de l'entreprise est dédié à un unique logiciel open source. Il y a d'autres modèles où une entreprise travaille avec une multitude de logiciels libres, et ces modèles sont différents d'une entreprise où son seul revenu est lié à un logiciel unique.

Il y a plusieurs modèles possibles pour les entreprises qui veulent vivre d'un logiciel libre :

  • proposer des services et du support pour un logiciel libre avec une licence permissive et en téléchargement gratuit,
  • proposer une version du logiciel libre sous la marque de l'entreprise (qui ne soit pas téléchargeable gratuitement, mais toujours sous licence libre) similaire au modèle de Redhat,
  • proposer le logiciel libre sous double licence,
  • proposer une version améliorée du logiciel libre (appelée Open Core),
  • ou bien une combinaison des modèles précédents.

Chacun de ces modèles a ses avantages et défauts quand il s'agit d'adoption ou de revenus.

Dans le modèle de service, tout le logiciel est libre, la source étant disponible et le logiciel téléchargeable. Le revenu est alors généré par les services y compris les services "Cloud".

Dans le modèle Redhat, l'adoption est réduite car il n'y a pas de téléchargement (Redhat dispose de la communauté Fedora où il y a des téléchargements) mais il est plus difficile pour les utilisateurs d'utiliser les produits Redhat gratuitement, ce qui génère plus de revenus.

Le principe de la double licence est de limiter l'usage du logiciel par une licence moins permissive (GPL ou AGPL), d'utiliser l'adoption du libre tout en générant des revenus en limitant les possibilités d'ajouts de modules non-libres en permettant au créateur original d'offrir une version payante qui lève les restrictions et aussi permet au créateur du logiciel de combiner son logiciel avec des logiciels propriétaires. Ainsi ce modèle est souvent utilisé de façon combinée avec le modèle Open Core.

Le modèle Open Core permet d'avoir une version "light" sous licence Open Source, pendant que le développeur principal du logiciel propose une version avancée qui est propriétaire. La version avancée peut aussi être proposée en mode "Cloud".

Tous ces modèles peuvent être qualifié de "logiciel  libre" car au moins une partie du logiciel est du logiciel libre. Cependant une analyse de l'histoire récente des entreprises de logiciel libre, montre qu'il y a une tendance à démarrer avec le modèle le plus ouvert, pour que l'adoption soit importante, et ensuite se déplacer progressivement vers un des modèles moins ouverts. Ceci n'est pas très différents avec les services Cloud qui sont dans un premier temps offerts gratuitement et sans publicité pour ensuite offrir des services additionnels payants ou même réduire ou arrêter l'offre gratuite.

Si vous êtes un utilisateur qui prévoit d'investir en installant un logiciel libre, ou même un développeur qui souhaite participer à une communauté de logiciels libres, vous devez vous assurer que vous faites le bon investissement, c'est-à-dire un investissement qui soit protégé. Ceci veut dire qu'il faut vous assurer de l'importante probabilité que dans le futur, le logiciel existe toujours, soit toujours libre, soit toujours en développement actif et avec une communauté active.

Il est normal qu'une entreprise fasse évoluer son modèle. Cependant il n'est pas correct de tromper les utilisateurs en leur faisant penser que le modèle "libre" va être maintenu. Les utilisateurs doivent être informés des options qui seront considérées dans le futur pour monétiser le logiciel libre. Les entreprises ne sont pas des associations et il est normal qu'elles recherchent le profit, mais il n'est pas éthique de chercher l'optimisation des revenus à tout prix et en particulier au prix de décevoir les utilisateurs. Il est à noter que si la survie du logiciel ou de l'entreprise est en jeu, c'est une autre histoire, mais dans la plupart des cas, il s'agit avant tout d'optimisation et ce plan était prévu dès le départ.

Personnellement, je pense que les modèles Open Core et Double Licence ont, en eux-mêmes, un risque important de voir les entreprises diriger leurs investissements vers le code propriétaire. Avec le modèle Open Core, la maximisation du profit va pousser l'entreprise à minorer l'importance de la version Open Core et la rendre moins prête à l'emploi, pour que la valeur relative de la version propriétaire soit augmentée. Même si les modules propriétaires sont petits et sont des ajouts sur le produit de base, il y a des risques de glisser progressivement vers le propriétaire.
Avec le modèle double licence, les revenus viennent d'OEM et cela peut générer des revenus importants (comme pour MySQL par exemple). Malheureusement le shift vers l'Open Core est facile comme cela a été montré par les dernières décisions d'Oracle (http://monty-says.blogspot.com/2011/09/oracle-adding-close-source-extensions.html). Il est intéressant de voir que dans ce cas il y avait un pacte d'actionnaires chez MySQL, mais que celui-ci n'a pas survécu aux fusions successives. Dans ce cas, comme le code est entièrement la propriété du détenteur de la licence double, il ne s'agit même pas d'une version "au-dessus" de la version "Open Core" mais c'est un "fork" (un dérivé du code) et cela réduit d'autant plus la concurrence.

En plus, en choisissant un modèle plus fermé, les contributeurs externes vont soit quitter la communauté soit faire un "fork" séparé. En gardant une approche plus ouverte, on aura toujours plus de contributeurs.

Les deux autres modèles que j'ai décrits n'ont pas ce problème de la dérive vers le modèle propriétaire à condition que la licence utilisée ne permette pas la fermeture du code (la licence GPL ou LGPL sans double licence sont dans ce cas, tandis que les licences BSD ou Apache permettent de fermer le code). Je dirais que ces modèles sont du "vrai logiciel libre", même si dans ce cas "vrai" est plutôt une question de durabilité du modèle.

Comme je l'ai indiqué il n'y a rien de mal à se décider pour ces modèles, mais ce qui est incorrect est de changer de modèle progressivement. C'est pourquoi les utilisateurs doivent être informés du modèle choisi par les entreprises et leur engagement vis-à-vis de ces modèles, ainsi que des possibilités pour les entreprises de "fermer" le logiciel. Cela ne garantira pas le futur à 100% car l'entreprise peut aussi échouer, mais au moins on ne sera pas déçu de voir une entreprise fermer le code d'un logiciel qui était pour autant tout à fait viable. Malheureusement, beaucoup d'entreprises utilisent le buzz-word "logiciel libre" pour se donner un air "plus ouvert" quelle que soit la quantité de code réellement libre et quelles que soient les intentions dans le futur. Comme le "greenwashing", c'est de "l'open source washing". Pour le combattre il serait intéressant que le niveau d'engagement soit public.

Pour ces raisons, XWiki SAS a choisi de publier son code sous licence LGPL, sans licence double, d'avoir des binaires téléchargeables de notre logiciel utilisables en production et de nous engager sur ce modèle par notre Manifesto ainsi que de supporter la réversibilité de notre offre Cloud (on peut retrouver en Open Source la même version que notre version Cloud). Ces engagements font d'XWiki SAS une entreprise qui utilise le premier modèle de business décrit. Pour autant nous n'excluons pas le modèle Redhat pour des modules additionnels ainsi que de faire une version sous notre marque de la version libre, mais nous nous engageons à ce que notre logiciel reste libre.

Ludovic Dubost
Fondateur d'XWiki et Président d'XWiki SAS