fil-educavox-color1

Tout récemment, le développeur de Notepad++, un éditeur de textes et environnement de programmation bien connu sur Windows, a dédié la dernière version de son logiciel aux « utilisateurs insatisfaits ». Cela fait suite à un mail insultant reçu d’un utilisateur mécontent, auquel il a répondu avec beaucoup d’humour en lui proposant de le rembourser.

Le gag est là car Notepad++ est en effet un logiciel libre disponible gratuitement. Le développeur souligne ainsi le caractère bénévole de son action et sa lassitude à devoir gérer des utilisateurs qui se comportent comme de simples consommateurs.

Mais qu’est ce qui définit un logiciel libre ? Bien souvent on associe à tort gratuité et liberté alors que cela n’a rien à voir comme on le verra ci-dessous.

Comment définir un logiciel libre

J’avais en 2013 pondu sur le Framablog une présentation du logiciel libre en ch’ti, sobrement intitulé « Le logiciel libre expliqué à Cafougnette », toujours d’actualité. Libre à vous de vous y plonger.

Je reprendrai ici les simples quatre libertés qui définissent le caractère libre d’un logiciel.

  1. la liberté d’exécuter le programme, pour tous les usages ;
  2. la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ;
  3. la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;
  4. la liberté d’améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.

Comme on peut le voir, nulle part n’est mentionné un quelconque caractère gratuit et il ne faut donc pas confondre avec les logiciels dits « freeware » qui sont simplement gratuits mais non libres. C’est l’accès au code-source, soit la recette du logiciel, qui prévaut dans tous les cas.

Le secret du logiciel libre est donc dans le code (les instructions, la recette qui construit le logiciel). Si vous ne comprenez rien à ceci :

public class HelloWorld
{
   public static void Main() {
      MessageBox.Show("Hello, world!");
   }
}

Ou à cela :

section .data
       helloMsg:     db 'Hello, world!',10 
       helloSize:    equ $-helloMsg
section .text
       global _start
_start:
       mov eax,4
       mov ebx,1
       mov ecx, helloMsg
       mov edx, helloSize
       int 80h
       mov eax,1
       mov ebx,0
       int 80h

Respectivement « comment afficher le message ‘Hello world’ à l’écran » en C# et en Assembleur, pas de soucis. C’est en effet l’un des premiers écueils lorsque l’on parle de contribution au logiciel libre. « Mais je ne sais pas coder ! » Le secret est dans le code mais tout ne réside pas dans le code et il existe bien des manières de contribuer au logiciel libre.

Coder

Je reviens à la base. Certes, l’action principale que l’on imagine pour contribuer au logiciel libre est bien évidemment de coder. Encore faut-il connaître un langage spécifique. Mais j’ai pu voir sur certains projets importants aux cotés de l’équipe de développement des personnes n’ayant pas de véritables compétences en programmation mais plus sur le plan mathématique ou scientifique qui contribuait en aidant à la création des alogorithmes du logiciel ou à l’apport de contenu.

Documenter

On l’oublie trop souvent : un logiciel sans documentation, c’est comme une madeleine sans Proust (certes, cela ne veut rien dire mais j’aime bien cette formulation ;-) ). Beaucoup de logiciels souffrent d’un manque de documentation. À qui la faute ? Ne la rejettons pas trop hâtivement sur les développeurs/développeuses (voire le développeur/la développeuse).

En effet, lorsque l’on a le nez dans le guidon, il est parfois difficile d’expliquer simplement et efficacement les rouages de notre création. Qui plus est, documenter est un vrai métier, une tâche totalement différente du développement et l’on aura besoin de personnes faisant preuve de pédagogie, sachant se mettre à la place de l’utilisateur.rice, voire rédigeant des documentations à destination de publics dédiés. J’ai ainsi rencontré il y a quelques années aux Rencontres Mondiales du Logiciel Libre un groupe d’utilisateurs.trices séniors rédigeant pour des séniors.

Traduire

Qui dit documentation dit aussi parfois traduction si celle-ci est existante mais non disponible dans votre langue et il y a d’ailleurs fort à faire dans ce domaine. De nombreuses communautés existent autour de logiciels libres célèbres, moins sur de plus petits projets mais rien ne vous empêche de vous proposer pour la traduction, tant pour l’interface que pour la documentation.

Rapporter les bugs

Quand on a le nez dans le guidon, difficile de repérer les erreurs de code éventuelles. Il y a en effet les gros bugs qui sautent aux yeux mais aussi des choses plus subtiles qui n’arrivent que dans certains cas de figure bien précis. L’aide des utilisateurs s’avère donc précieuse pour repérer, communiquer et documenter les bugs rencontrés. Encore faut-il le faire soigneusement en envoyant le maximum d’informations disponibles et en expliquant clairement l’erreur rencontrée. Imaginez que vous alliez chez le médecin et lui indiquiez que vous êtes malades sans plus d’explications et surtout en refusant d’en dire plus car « ce n’est pas votre boulot ». Dur d’établir un diagnostic. ;-)

Cela me rappelle une anecdote quelque peu amusante. Lors de la réalisation d’un mini-jeu avec une classe de CM2, nous avions, l’enseignant et moi-même, organisé une session de débugage. Objectif : tester le jeu et recenser toutes les erreurs rencontrés. Pour cela, nous avions soigneusement expliqué aux élèves comment rapporter le bug et je recevais au fur et à mesure des mini-rapports plutôt bien documentés jusqu’à ce qu’un élève nous amène une fiche indiquant en gros « Il y a un bug ». Ok… Nous lui avons réexpliqué le principe en lui demandant de compléter. Il a soigneusement repris sa tâche et a déposé son rapport en fin d’heure de classe : « Il y a trop de bugs. » :-)

Aider à améliorer l’expérience utilisateur

Pour compléter la partie débugage, il y a aussi l’expérience utilisateur. Inutile de dire que « cela ne correspond pas à ce que vous voulez faire », autant en discuter et voir s’il y a possibilité d’adapter le logiciel, d’y apporter des améliorations.

Racontez, expliquez ce que vous souhaitez faire, ce qui vous a gêné, bloqué. Proposez des solutions, des méthodes. Tout n’est pas forcément possible mais cela ne pourra qu’enrichir le projet. Un.e développeur.euse n’imagine pas toujours tous les usages possibles d’un logiciel et c’est donc avec un grand intérêt que sont accueillies ces indications.

Financer

L’argent, bien que non lié directement au logiciel libre, reste le nerf de la guerre. Difficile de consacrer du temps à ces projets technologiques intenses quand on a d’autres échéances, d’autres contraintes en tête. Il est donc important de soutenir les développeurs/développeuses et nombre de projets proposent de participer financièrement via diverses options :

  • financement direct par des dons réguliers ou ponctuels,
  • achat du logiciel compilé (c’est-à-dire directement utilisable), les sources restant accessibles gratuitement,
  • vente de services,
  • vente de goodies.

Les pistes sont nombreuses et accessibles le plus souvent à toutes les bourses.

Évangéliser

Évangéliser enfin comme je suis en train de le faire au travers de cet article, en faisant connaître le mouvement, les logiciels ou un logiciel en particulier. Toutes les occasions sont bonnes, à titre personnel, professionnel ou associatif, dans votre entreprise, votre école… Le logiciel libre a sa place partout et il saura vous en être reconnaissant.

Dernière modification le mercredi, 13 juillet 2022
Cauche Jean-François

Docteur en Histoire Médiévale et Sciences de l’Information. Consultant-formateur-animateur en usages innovants. Membre du Conseil d'Administration de l'An@é.