Les Logiciels Libres et l’Enseignement
Les Logiciels Libres et l’Enseignement
Table des matières
Des Logiciels Libres dans l’Enseignement ?
Je n’avais jamais participé à un projet libre avant que l’on me propose des projets libres au cours de ma scolarité. Par participer, j’entendais la production de code inclus plus ou moins directement dans une version stable d’un logiciel libre [1]. Utilisateur de GNU/Linux depuis maintenant plus de 7 ans, je n’utilise que des Logiciels Libres sur mon ordinateur [2].
Ma première participation (au sens "écrire du code"), aura été mon stage ingénieur. Pendant 4 mois, j’ai été intégré à l’équipe de développement de MarkUs [3]. J’ai toujours "rêvé" d’avoir un projet libre auquel je serai rattaché et reconnu. Aujourd’hui, MarkUs est déployé à l’École Centrale de Nantes et je continue à le développer. Je fais partie de l’équipe des Core
developers [4]. Pour moi, ma production lors de ce stage à l’étranger (à Toronto, au Canada), non rémunéré, ne devait pas être "perdue" après mon départ. J’ai volontairement choisi un projet libre (ici sous MIT) pour garantir
que mon code ne serait pas la propriété d’une entreprise.
Aujourd’hui, je ne réduis plus la participation à un projet libre à la production de code. En effet, au cours de mon stage, j’ai découvert toutes les autres manières de contribuer à un projet libre, sans pour autant connaître le code du logiciel. Par exemple, la rédaction d’une documentation à jour, la traduction de l’application ne demandent aucune compétence particulière. Ensuite viennent le support aux utilisateurs, la gestion du serveur de développement, la sortie de versions stables qui vont demander plus de compétences, sans pour autant demander d’écrire du code. Puis vient enfin la programmation, partie la plus technique.
Toutes ces manières de contribuer forment un tout cohérent nécessaire à la pérennité du projet.
Ma première participation à un Logiciel Libre m’a permis de découvrir en profondeur toutes les contributions annexes nécessaires au projet. J’ai intégré une équipe de développement pointue, dans laquelle chacun aide et est aidé.
Contribuer ? Oui mais pourquoi ?
Utilisateur de GNU/Linux depuis 7 ans, j’ai toujours eu cette impression de prendre le travail de la communauté, sans donner en échange. C’est un sentiment totalement différent de l’utilisateur qui télécharge ou crack des versions payantes de logiciel.
Comment rendre à la communauté ce qu’elle partage ?
En partageant moi-même mes contributions. Chacun est libre de contribuer à sa manière, durant le temps qu’il le souhaite. Qui peut mieux connaître les Logiciels Libre qu’une personne qui prend elle-même part au développement de ces derniers ? Chaque développeur de Logiciel Libre est confronté à des problématiques de licence, de copyright. La plupart des développeurs de Logiciels Libres vont aussi s’attacher à la propreté du code. Le code sera relu par d’autres : il doit être correctement écrit et bien commenté.
De plus, pour avoir maintenant participé à plusieurs Logiciels Libres au cours de ma scolarité, je peux maintenant dire avec certitude que cela m’a beaucoup plus apporté que d’écrire du code scolaire. Par scolaire, j’entends que tous les professeurs disposent d’exercice ou de projets types pour l’évaluation et l’entraînement des étudiants. Mais finalement, plutôt que de plancher sur des sujets qui auront une durée de vie limitée à l’enseignement, pourquoi ne pas travailler sur des bugs ou une fonctionnalité d’un Logiciel Libre ?
Quels en sont les avantages ?
Pour moi, les avantages sont multiples.
- de la fierté et de la motivation de l’étudiant :
- d’avoir contribué à un Logiciel qui existait avant qu’il ne s’y intéresse et qui continuera à exister après la fin de son projet (par exemple
MarkUs). - de participer à un Logiciel qu’il utilisait ou qu’il connaissait de nom (par exemple OpenOffice.org)
- de voir son nom parmi la liste des personnes ayant contribué au Logiciel
- de pouvoir valoriser son projet directement sur son CV et auprès d’un futur employeur.
- qui ne fait pas du code uniquement pour une note à la fin du semestre
- qui est obligé de communiquer avec les développeurs pour demander de l’aide et expliquer en quoi consiste son travail.
- d’avoir contribué à un Logiciel qui existait avant qu’il ne s’y intéresse et qui continuera à exister après la fin de son projet (par exemple
- de l’intérêt du professeur :
- qui ne donnera pas chaque année le même sujet
- qui doit s’intéresser de près aux problématiques sur lesquelles il veut faire travailler ses élèves
- du développeur du Logiciel Libre :
- voyant des étudiants s’intéresser à son travail et qui le mettront en valeur
- dont les étudiants vont augmenter la visibilité de son projet
- dont les étudiants vont augmenter les contributions
- pour l’École de l’étudiant :
- qui lui permet de rayonner et d’ajouter son nom en tant que contributeur à des projets libres [5] .
Certes, il n’y a pas uniquement des avantages. Cela demande plus de travail aux étudiants, car ils n’écrivent plus du code à partir de zéro. Le code doit s’intégrer dans un environnement déjà existant. De plus, il leur faudra respecter les règles liées au projet dans lequel ils s’intègrent : assurance qualité (QA), outils de versionnement, … Cela peut demander un certain temps d’adaptation. Enfin, tous les développeurs sont ils prêts à aider des étudiants ? Dans la plupart des cas, oui, car c’est une passion !
C’est plus professionnalisant, puisque c’est représentatif du cadre de travail dans lequel les étudiants seront amenés à évoluer.
Valorisation professionnelle et personnelle
Il est évident que je me suis empressé de supprimer les lignes mentionnant le "Puissance 4" et le "Jeu de la Vie" de mon Curriculum Vitæ pour les remplacer par des lignes concernant les Logiciels Libres auxquels j’avais participé. Et bien sûr, en entretien, tout recruteur est plus intéressé par notre contribution à un Logiciel Libre plutôt que la réalisation d’un "Puissance 4". Le recruteur a la possibilité d’aller vérifier directement notre contribution dans l’arbre des contributions dudit Logiciel.
Au cours d’entretiens, il m’a été plus facile d’expliquer comment et pourquoi ma contribution s’est insérée dans le Logiciel pour lequel j’avais contribué. De plus, les outils découverts au cours de ma participation au projet ont été appréciés par le recruteur, lui même utilisant la technologie ou souhaitant l’intégrer à son processus de développement.
Travailler sur un Logiciel Libre de renommée internationale oblige les étudiants à réaliser des documents en anglais. La communication avec les développeurs est souvent faite sur des canaux IRC anglais !
Enfin, contribuer à des projets Libres peut permettre aux étudiants d’étoffer leurs réseaux, voire même décrocher des stages !
Contributions futures à un/des projets libres?
Oui, je pense continuer à contribuer (sans forcément écrire du code) à un projet libre. Mais ce sentiment est personnel et limité aux passionnés, à mon avis. Je pense qu’il faut un temps certain pour saisir l’enjeu philosophique qu’il y a derrière le simple envoi de lignes de code. Bâtir un monde où la connaissance peut circuler librement n’est pas visible au premier abord. C’est souvent la gratuité du Logiciel qui prime [6].
Participer à un Logciel Libre m’a permis d’acquérir des compétences sur de nombreux outils libres utilisés par les développeurs. Les développeurs de solutions libres, en tant que passionnés, s’amusent à tester les derniers outils disponibles sur la toile. Ce processus de veille technologique est un plus par rapport à du développement en entreprise [7].
Comment améliorer le processus de contribution ?
Les étudiants participant à des Logiciels Libres sont plus sensibles aux licences qui régissent ces Logiciels. C’est une façon d’approfondir le cours de droit. "Puis-je ré-utiliser cette bibliothèque distribuée sous licence GPL dans mon application sous licence MIT ?" est une questions que les élèves se posent.
Pour moi, il est primordial que l’enseignant se fixe des projets auxquels participer et essaye de maintenir une certaine cohérence entre les années. En effet, les développeurs qui doivent gérer l’arrivée d’étudiants sont disposés à aider et préfèrent travailler dans la durée avec une École. Ce sera à l’enseignant responsable de la matière de garder ce lien avec le ou les développeurs en charge du projet. En effet, les contributions des étudiants sont parfois difficiles à gérer : les étudiants sont disponibles sur de courtes périodes. Il sera parfois difficile de faire un patch puis de l’amener au bout du processus qualité du projet ! Attention à ne pas frustrer les étudiants. Il faut être attentif à ce point [8]!
Il est évident que les Logiciels Libres ont un grand rôle à jouer dans l’enseignement de l’informatique dans le Supérieur. Aujourd’hui, le Logiciel Libre s’introduit dans la salle de classe comme outil. Dès demain, il aura aussi son rôle à jouer dans l’enseignement de l’informatique. L’enseignement en informatique, qui nécessite un état de veille technologique permanent, peut s’appuyer sur des ressources libres, qui ne demandent qu’à être améliorées !
| [1] | Par Logiciel Libre, j’entends tout logiciel soumis à une licence considérée libre par la Free SoftWare Fondation |
| [2] | À l’exception des pilotes graphiques jusqu’à cet été (été 2010 – Migration de Nvidia à Nouveau) |
| [3] | http://markusproject.org |
| [4] | http://github.com/MarkUsProject |
| [5] | On pensera à l’École Centrale de Paris associée à l’image de VLC |
| [6] | RMS n’aurait pas dit mieux |
| [7] | C’est par exemple de cette manière que j’ai découvert Git, Ruby on Rails, … |
| [8] | Une liste de bugs à corriger sera peut-être plus simple à mettre en oeuvre et tout autant instructive qu’une nouvelle fonctionnalité qui ne pourra être menée à terme. |
Bel article. Attention la question suivante N’EST PAS un troll : quel impact sur ta vie perso/sociale ? (ça prends pas mal de temps quand on commence à vraiment s’intéresser/s’investir, il faut quasiment que ça devienne un hobby non ?)
Salut,
Participer au Logiciel Libre, ça a clairement un impact sur ma vie perso/sociale. Pour arriver à gérer les deux, il faut faire quelques concessions, des deux côtés. Je ne suis plus célibataire, et j’ai la chance d’être avec une personne très compréhensive
qui me laisse du temps pour contribuer.
C’est sûr que contribuer à un Logiciel Libre, quand c’est fait de manière régulière, c’est souvent une passion : on y passe du temps, il n’y a pas forcément de retour positif. On le fait parce qu’on pense que c’est bien et que l’on se fait plaisir, pas pour de l’argent et/ou de la reconnaissance.
Après, je pense qu’on peut aussi contribuer de manière plus ponctuelle, comme l’envoi d’un patch, ce qui ne demande pas une implication trop importante. Mais parfois, quand on y a goûté, on ne s’arrête plus