L’éducation utilise une licence Creative Commons défectueuse, par R. Stallman

Nous vous proposons ci-dessous la traduction d’un récent article de Richard Stallman sur l’usage des licences Creative Commons dans l’éducation.

Et c’est bien le pluriel de ces licences Creative Commons qui pose problème. Le choix majoritaire de la fameuse clause non commerciale NC serait contre-productive voire toxique dans le champ considéré ici.

« J’exhorte Creative Commons à prendre position et à déclarer que les œuvres censées être utilisés en pratique, y compris la documentation pédagogique et les œuvres de référence soient, comme les logiciels, diffusés uniquement sous des licences libres… Les licences CC BY-NC et CC BY-NC-SA, telles qu’elles existent aujourd’hui, doivent être évitées. »

L’occasion également pour Stallman de rappeler que cohabitent au sein des Creative Commons des licences libres et d’autres non libres, et que ces dernières sont tout à fait acceptables voire légitimes lorsqu’il s’agit d’œuvres artistiques ou d’opinion (ce qui n’est donc pas le cas pour l’éducation).

Un article à confronter avec celui de Calimaq sur Owni : Le non commercial, avenir de la culture libre.

Preliminares 2013 - CC by-sa

L’éducation en ligne utilise une licence Creative Commons défectueuse

On-line education is using a flawed Creative Commons license

Richard Stallman – version du 14 janvier 2013 – Site personnel
(Traduction du 28 janvier 2013 : albahtaar, Vrinse, goofy, MdM, aKa, KoS, FirePowi, Thérèse, Penguin, revue et corrigée par Richard Stallman)

Des universités de premier plan utilisent une licence non-libre pour leurs ressources d’enseignement numérique. C’est déjà une mauvaise chose en soi, mais pire encore, la licence utilisée a un sérieux problème intrinsèque.

Lorsqu’une œuvre doit servir à effectuer une tâche pratique, il faut que les utilisateurs aient le contrôle de cette tâche, donc ils ont besoin de contrôler l’œuvre elle-même. Cela s’applique aussi bien à l’enseignement qu’au logiciel. Pour que les utilisateurs puissent avoir ce contrôle, ils ont besoin de certaines libertés (lisez gnu.org), et l’on dit que l’œuvre est libre. Pour les œuvres qui pourraient être utiles dans un cadre commercial, les libertés requises incluent l’utilisation commerciale, la redistribution et la modification.

Creative Commons publie six licences principales. Deux sont des licences libres : la licence « Partage dans les mêmes conditions » CC BY-SA est une licence libre avec gauche d’auteur (en anglais, « copyleft ») forçant l’utilisation de la même licence pour les œuvres dérivés, et la licence « Attribution » (CC BY) qui est une licence libre sans gauche d’auteur. Les quatre autres ne sont pas libres, soit parce qu’elles ne permettent pas de modification (ND) soit parce qu’elles ne permettent pas d’utilisation commerciale (NC).

Selon moi, les licences non libres qui permettent le partage sont légitimes pour des œuvres artistiques ou de divertissement. Elle le sont également pour des œuvres qui expriment un point de vue (comme cet article lui-même). Ces œuvres ne sont pas dédiés à une utilisation pratique, donc l’argument concernant le contrôle par l’utilisateur ne s’y applique pas. Ainsi, je ne vois pas d’objection à ce qu’elles soient publiées sous licence CC BY-NC-ND, qui ne permet que la redistribution non commerciale de copies identiques à l’original.

L’utilisation de cette licence pour une œuvre ne signifie pas qu’il soit totalement impossible de la publier commercialement ou avec des modifications. La licence n’en donne pas la permission, mais vous pouvez toujours demander la permission au détenteur du droit d’auteur, peut-être avec un contrepartie, et il se peut qu’il vous l’accorde. Ce n’est pas obligé, mais c’est possible.

Cependant, deux des licences non libres CC mènent à la création d’œuvres qui, en pratique, ne peuvent pas être publiées à des fins commerciales, car il n’existe aucun moyen d’en demander l’autorisation. Ce sont les licences CC BY-NC et CC BY-NC-SA, les deux licences CC qui autorisent les modifications mais pas l’utilisation de manière commerciale.

Le problème survient parce que, avec Internet, les gens peuvent facilement (et légalement) empiler les modifications non-commerciales les unes sur les autres. Sur des décennies, il en résultera des œuvres avec des centaines, voire des milliers de contributeurs.

Qu’arrive-t-il si vous voulez utiliser commercialement l’une de ces œuvres ? Comment pouvez-vous en obtenir l’autorisation ? Il vous faut demander aux principaux titulaires de droits. Peut-être que certains d’entre eux ont apporté leur contribution des années auparavant et sont impossibles à retrouver. D’autres peuvent avoir contribué des décennies plus tôt, ou même sont décédés, mais leurs droits d’auteur n’ont pas disparu avec eux. Il vous faut alors retrouver leurs descendants pour demander cette autorisation, à supposer qu’il soit possible de les identifier. En général, il sera impossible de se mettre en conformité avec les droits d’auteur sur les œuvres que ces licences incitent à créer.

C’est une variante du problème bien connu des « œuvres orphelines », mais en pire, et ce de manière exponentielle ; lorsque l’on combine les œuvres de très nombreux contributeurs, le résultat final peut se trouver orphelin un nombre incalculable de fois avant même d’être né.

Pour éliminer ce problème, il faudrait un mécanisme impliquant de demander l’autorisation à quelqu’un (faute de quoi la condition NC devient sans objet) mais pas de demander l’autorisation à tous les contributeurs. Il est aisé d’imaginer de tels mécanismes ; ce qui est difficile, c’est de convaincre la communauté qu’un de ces mécanismes est juste et d’obtenir un consensus pour l’accepter.

Je souhaite que cela puisse se faire, mais les licences CC BY-NC et CC BY-NC-SA, telles qu’elles existent aujourd’hui, doivent être évitées.

Malheureusement, l’une d’entre elle est très utilisée. La CC BY-NC-SA, qui autorise la publication non commerciale de versions modifiées sous la même licence, est devenue à la mode dans le milieu de la formation en ligne. Les Open Courseware (didacticiels « ouverts ») du Massachusetts Institute of Technology (MIT) l’ont lancée, et de nombreux autres établissements d’enseignement ont suivi le MIT dans cette mauvaise direction. Alors que, pour les logiciels, « open source » signifie « probablement libre mais je n’ose pas communiquer à ce sujet donc tu dois vérifier toi-même », dans la plupart des projets d’enseignement en ligne « open » veut dire « non libre, sans aucun doute ».

Quand bien même le problème posé par les CC BY-NC-SA et BY-NC serait résolu, elles continueront de ne pas être la bonne façon de publier des œuvres pédagogiques censées servir à des tâches pratiques. Les utilisateurs de ces œuvres, enseignants et étudiants, doivent avoir le contrôle de leur travail, et cela requiert de les rendre libres. J’exhorte Creative Commons à prendre position et à déclarer que les œuvres censées être utilisés en pratique, y compris la documentation pédagogique et les œuvres de référence doivent être, comme les logiciels, diffusés uniquement sous des licences libres.

Éducateurs, enseignants, et tous ceux qui souhaitent contribuer aux œuvres de formation en ligne : s’il vous plaît, veillez à ce que votre travail ne devienne pas non libre. Offrez votre aide et vos textes à des œuvres pédagogiques qui utilisent des licences libres, de préférence des licences de gauche d’auteur de façon à ce que toutes les versions de l’œuvre respectent la liberté des enseignants et des étudiants. Ensuite, invitez les projets éducatifs à utiliser et redistribuer ces œuvres sur ces bases de respect de la liberté, s’ils le souhaitent. Ensemble, nous pouvons faire de l’éducation un champ de liberté.

Copyright 2012 Richard Stallman
Publié sous licence Creative Commons Attribution – Pas de Modification 3.0 (CC BY-ND 3.0)

Crédit photo : Preliminares 2013 (Creative Commons By-Sa)




Pour ou contre l’iPad à l’école ? Le cas de la Corrèze

Fin 2010, François Hollande annonçait (sans cacher sa fierté pour son département) que la Corrèze avait décidé de mettre un iPad entre les mains de tous les élèves de Sixième dans le cadre du projet Ordicollège.

On peut voir ici en vidéo l’intégralité de son allocution. On y parle d’« égalité », de « meilleur outil pour réussir », on y parle aussi d’un « coût de 1,5 million d’euros ».

Cette opération ayant été reconduite cette année, l’association P.U.L.L.CO (Promotion de l’Utilisation des Logiciels Libres en COrrèze) a décidé de réagir en convoquant la presse et surtout en publiant une lettre ouverte au président du Conseil Général. Ce dernier y a répondu en apportant ses propres arguments.

Cet échange nous a semblé suffisamment intéressant et révélateur pour que nous décidions de le reproduire ci-dessous.

Brad Flickinger - CC by

iPads au collège : lettre ouverte au président du Conseil Général

URL d’origine du document

Association P.U.L.L.CO – 26 janvier 2013

Lettre ouverte adressée au Président du Conseil Général de la Corrèze Gérard Bonnet.

Monsieur le Président,

C’est avec une grande déception et une pointe de colère que nous apprenons que le Conseil Général a reconduit la distribution d’iPad aux collégiens corréziens dans le cadre de l’opération Ordicollège.

Lors de son lancement en 2008, l’opération Ordicollège avait fait le choix courageux et intelligent d’équiper les collégiens en matériel informatique fonctionnant grâce à des logiciels libres. Ce choix est depuis 3 ans remis en cause par l’arrivée des iPads, un produit sans clavier, dont les qualités pédagogiques restent à démontrer.

Les logiciels libres reposent sur les libertés que confère la licence d’un logiciel à ses utilisateurs. Ils sont alors libres de les utiliser, de les copier, de les étudier, de les adapter et de les redistribuer, en version originale ou modifiée. Les logiciels libres mettent le plus souvent en œuvre des standards ouverts qui garantissent l’accessibilité aux données et leur réutilisation à des fins d’interopérabilité entre systèmes et logiciels actuels et futurs.

Ce modèle revêt de nombreux intérêts. Tout d’abord il permet une libre circulation des logiciels et le partage du savoir. Chacun peut ainsi s’approprier la connaissance accumulée et l’enrichir de son propre savoir, faisant du logiciel libre un bien commun. Ce modèle rend de fait la distribution de logiciels gratuits possible, ce qui permet leur diffusion au plus grand nombre. Ainsi, avec le modèle du logiciel libre, nul ne peut être exclu de l’accès au savoir, ni de l’accès aux ressources numériques.

Par ailleurs, ce modèle favorise la relocalisation du développement du logiciel au plus près des utilisateurs finaux. Ainsi, l’investissement dans l’économie du logiciel libre permet des retombées économiques locales au lieu de les transférer vers les principaux éditeurs propriétaires, souvent installés aux États-Unis. ll existe des solutions libres à la plupart des usages informatiques. Si elles n’existent pas encore, il suffit d’en financer le développement pour que chacun en profite. Il est donc possible de remettre en cause les positions dominantes d’éditeurs propriétaires à l’origine de situation de dépendance technologique. Pour un investisseur institutionnel tel qu’une collectivité territoriale comme le Conseil Général, ces préoccupations nous semblent prioritaires.

C’est d’ailleurs en ce sens que va la récente réponse du Ministère des PME, de l’innovation et de l’Économie numérique, à une question écrite du député Jean-Jacques Candelier. Cette dernière rappelle les principaux avantages du logiciel libre. D’abord pour les individus, car « chacun peut s’approprier la connaissance » et « nul ne peut être exclu de l’accès au savoir » avec le logiciel libre ; mais aussi pour l’État, pour lequel le logiciel libre « constitue une opportunité qu’il convient de saisir », et pour les industries européennes enfin, notamment en raison de l’indépendance technologique qu’il permet. La position du ministère de Fleur Pellerin fait d’ailleurs suite à la circulaire de Jean-Marc Ayrault sur l’usage des logiciels libres dans les administrations allant dans le même sens.

En choisissant d’équiper les collégiens d’iPad, en plus d’enrichir une entreprise privée américaine avec nos impôts, le Conseil Général de la Corrèze se rend coupable d’enfermer l’ensemble des collégiens corréziens dans le carcan d’Apple. Les usages sont ainsi limités à ce que l’entreprise a décidé ou permis. L’utilisateur n’a pas la possibilité d’explorer l’outil pour le comprendre, ni de l’adapter à ses besoins. Il est contraint d’adapter ses besoins à l’outil. Par exemple le choix volontaire d’Apple d’interdire l’usage de certaines technologies comme Flash et Java sur ses tablettes rend impossible l’accès à certaines ressources éducatives mises à disposition sur les sites web de Sesamath (en Flash) et de Geogebra (en Java).

Par ailleurs, Apple utilise des Mesures Techniques de Protection (MTP ou DRM) pour restreindre les libertés des utilisateurs de diverses manières. Pour ne citer que deux exemples, il est impossible d’installer un logiciel ne provenant pas de l’AppStore officiel, qui n’est contrôlé que par l’intérêt commercial de la firme, et l’usage des films achetés sur iTunes est surveillé. De plus, le contournement de ces restrictions est interdit et considéré par Apple comme un acte criminel.

Plus grave : les données personnelles de tous les collégiens sont menacées. En effet, l’usage de l’iPad contraint ses utilisateurs à enregistrer des données personnelles dans des bases de données détenues par Apple aux États-Unis, c’est-à-dire en dehors du pouvoir de contrôle de la CNIL, censée protéger les données personnelles des citoyens français. De plus, l’usage de ces tablettes, de par leur manque de capacité de stockage, contraint les utilisateurs à enregistrer leurs données ailleurs, souvent dans le « Cloud », en utilisant des services comme Dropbox. Là encore, les données des utilisateurs échappent à leur contrôle au profit d’intérêts commerciaux étrangers et soumises à des lois qu’ils ne connaissent pas.

En outre, la société Apple exerce un filtrage arbitraire sur les logiciels (les « apps ») téléchargeables sur les dispositifs sans clavier qu’elle commercialise (tablettes, téléphones, baladeurs numériques…). La gestion des mises à jour des-dits logiciels est elle aussi particulièrement problématique : les anciennes versions des logiciels ne sont pas accessibles au téléchargement, ce qui a pour conséquence de provoquer une obsolescence artificiellement accélérée des dispositifs qui les accueillent. Ainsi, alors qu’un ordinateur sous GNU/Linux n’est limité dans le temps que par la durée de vie du matériel, un iPad deviendra obsolète lorsque les applications seront déclarées comme n’étant plus installables.

Enfin, ce contrôle monopolistique forcément intéressé est déjà un problème pour les consommateurs de technologies aisés, mais c’est un désastre pour les moins nantis. Le fossé se creuse entre ceux qui ont les moyens d’acheter des applications sur le magasin en ligne d’Apple et ceux qui ne les ont pas. Est-ce le rôle de l’école que d’exacerber les inégalités économiques et sociales des familles ? Est-ce le rôle du Conseil Général de financer ce choix discriminant ? Est-ce le rôle du Conseil Général d’apprendre aux élèves à être les consommateurs d’Apple ?

L’objectif est-il de mettre un appareil connecté dans les mains de chaque collégien, quel qu’en soit le prix et en dépit de leur liberté ? Ou devrions-nous plutôt fournir des outils qui encouragent les élèves et les enseignants au partage de la connaissance en mettant à leurs disposition un environnement dans lequel ils ont la possibilité de résoudre eux-mêmes leurs problèmes ? Pour nous, l’éducation c’est de la créativité, de l’ingéniosité et du partage ; toutes ces caractéristiques étant bien plus puissantes dans le monde du libre que dans celui, verrouillé et rigide, de la tablette numérique du géant américain.

En choisissant de distribuer des iPad aux collégiens, le Conseil Général de la Corrèze a fait le choix politique de suivre un effet de mode, en privilégiant le paraître au bon sens. Ce choix démagogique a un prix, celui de l’aliénation des élèves et des enseignants ainsi que l’évaporation de l’investissement public au seul profit des intérêts d’une entreprise commerciale étrangère.

Ce choix aurait pu être différent, il aurait pu être celui de la liberté, de l’égalité et de la fraternité en choisissant un autre modèle de société, celui, globalisé du nord au sud, du bien commun et du logiciel libre. Les moyens investis depuis de nombreuses années l’auraient été de façon bien plus pérenne en aidant à concevoir une tablette et des ressources numériques libres. De nombreux projets existent déjà et sauraient profiter de l’aide des collectivités territoriales et de la puissance publique pour le bénéfice de tous.

Nous restons à votre entière disposition pour vous apporter plus de précisions sur nos positions et vous faire part de nos propositions pour l’avenir de l’opération Ordicollège.

Librement.

L’association Pullco

Devon Christopher Adams - CC by

Réponse à l’association Pullco

URL d’origine du document

OrdiCollège – 30 janvier 2013

Mettre en avant que la tablette est un produit sans clavier tout en argumentant sur la nécessité de faire le choix de tablettes françaises comme le fait l’association Pullco (« il existe des tablettes françaises compétitives », La Montagne, 29/01/13), (« Pourquoi utiliser des tablettes Apple alors que nous avons des tablettes françaises, Archos », L’Echo de la Corrèze, 28/10/13) interroge : la tablette Apple serait donc un produit de moindre qualité que la tablette Archos (également fabriquée en Chine), alors qu’aucune des deux n’a de clavier physique ?

Les collectivités locales sont soumises à une réglementation précise et contraignante dans le cadre des marchés publics. Pour Ordicollège, il s’agit d’un appel d’offres européen, qui a été remporté par une société française et non par Apple. Aucune offre de matériel « français » n’a été déposée, pas plus que d’offres sous environnement « libre ».

Le budget engagé par le Conseil général n’est pas uniquement destiné à l’acquisition du matériel, il revient pour une bonne part à la société française qui a remporté le marché. La chaîne de préparation, la logistique, la gestion administrative, représentent des emplois. La fabrication de la coque de protection a été confiée à une société française, les équipes techniques du constructeur le sont également.

L’association Pullco défend le logiciel libre selon quatre principes : la liberté d’exécuter le programme sans restrictions, la liberté d’étudier le fonctionnement du programme, la liberté de redistribuer des copies du programme, la liberté d’améliorer le programme et de publier ses améliorations. Cette approche, parfaitement recevable, ne répond pas pour autant aux objectifs fixés dans le cadre d’Ordicollège.

Le Conseil général de la Corrèze a fait le choix, depuis 2008, d’équiper les collégiens dans le but de favoriser les apprentissages et la réussite scolaire, notamment pour les élèves en difficulté, et de réduire la fracture numérique. Sans conditions de ressources, ni contraintes liées à la nécessité d’un abonnement internet au domicile. Objectif atteint, comme en atteste le rapport réalisé par la mission d’évaluation de l’Inspection générale de l’Education nationale. Rapport qui souligne également le choix judicieux de la tablette.

Pédagogiquement, cette opération s’inscrit dans la mise œuvre au Collège des compétences définies par le référentiel Education nationale B2i (brevet informatique et internet, mis à jour en décembre 2011).

Le B2i porte sur les pratiques, « les évolutions d’Internet et le développement des usages pédagogiques du numérique afin de mieux préparer les élèves à un usage responsable de ces technologies » ; les objectifs sont les suivants : acquérir, stocker et traiter des informations pour produire des résultats, être un utilisateur averti des règles et des usages de l’informatique et de l’internet, composer un document numérique, chercher et sélectionner l’information demandée, communiquer, échanger.

L’informatique n’est pas une matière enseignée au collège. Ce sont ses usages qui sont au programme et le logiciel (ou application) ne représente qu’une infime part dans ce contexte. Il convient au passage de ne pas faire d’amalgame entre logiciels et ressources pédagogiques, ces dernières pouvant fonctionner avec un logiciel ou de façon autonome.

A partir de ce constat, il est facile de comprendre que les objectifs défendus par l’association Pullco sont éloignés du contexte d’Ordicollège.

L’exclusion de l’accès au savoir n’est pas un argument recevable, chaque collégien étant destinataire du même matériel, des mêmes logiciels. Pas plus que l’idée d’un « enfermement dans le carcan » d’un constructeur. Les fonctionnalités d’un navigateur internet, d’un traitement de texte ou d’un tableur sont identiques, quel que soit l’environnement système.

Au collège, ce sont les bases nécessaires à l’utilisation et à la compréhension de ces outils qui sont enseignées, sachant que plus tard, l’utilisateur sera libre de faire le choix de son environnement personnel, mais qu’il devra aussi s’adapter à l’environnement mis en œuvre dans son cadre professionnel.

L’association Pullco met en avant l’impossibilité d’utiliser les ressources en Flash, en oubliant qu’il ne s’agit pas d’une technologie libre et que celle-ci est aujourd’hui en voie de remplacement par le HTML5. Elle avance également des arguments erronés concernant les données personnelles des élèves : les informations nécessaires sont gérées via des adresses génériques (ex. : tab2019@ordicollege), un alias nominatif étant uniquement ajouté sur le compte de messagerie.

Concernant le téléchargement de logiciels (apps) sur les tablettes, bon nombre sont gratuites et utilisées dans le cadre d’Ordicollège. Par contre, il n’a jamais été question de faire payer des apps aux parents, l’utilisation de cartes bancaires étant interdite dans le cadre de la mise à disposition des tablettes.

Face aux arguments développés par l’association Pullco, il y a la réalité du monde des technologies. Qu’un matériel soit davantage plébiscité qu’un autre ne relève pas uniquement de la communication mise en œuvre par son fabricant. Les utilisateurs savent également faire preuve de discernement.

L’association Pullco comprend parmi ses adhérents des spécialistes des programmes informatiques et c’est tout à son honneur. Mais l’immense majorité des usagers du numérique ne sont pas des passionnés des systèmes ou des entrailles des matériels et des logiciels, ce qui ne signifie pas pour autant que l’on puisse parler pour eux d’alinéation. Cela dit, il est dommage que Pullco n’ait jamais engagé la moindre démarche envers Ordicollège ou pris contact avec ses animateurs pour se renseigner à la source sur l’opération.

Les dirigeants de l’association auraient pu recueillir des informations vraies et précises, notamment sur le travail de recherche et de développement effectué dans le cadre d’Ordicollège. Ainsi, les responsables d’Unowhy, société française ayant remporté l’appel à projets du Ministère de l’Education, qui développent une tablette française (pour l’assemblage seulement) sur la base d’un environnement Linux, étaient en Corrèze le 28/01/2013 pour une réunion de travail sur Ordicollège. Pour eux, la Corrèze est le département le plus en avance dans les usages pédagogiques du numérique et même loin devant les opérations engagées ailleurs en France.

Crédit photos : Brad Flickinger et Devon Christopher Adams (Creative Commons By)




Documenter c’est s’enrichir (Libres conseils 18/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : lamessen, lerouge, Kalupa, Sky, Astalaseven, Alpha, LuD-up, CoudCoudpeupleLa, goofy

La documentation et moi, avant et après

Anne Gentle

Anne Gentle est une rédactrice technique acharnée et la coordinatrice de la documentation communautaire à Rackspace pour OpenStack, un projet open source d’informatique dans le nuage. Avant de rejoindre OpenStack, Anne travaillait en tant que consultante de publication communautaire, en donnant une direction stratégique aux rédacteurs professionnels qui veulent produire du contenu en ligne sur des wikis contenant des pages et des commentaires générés par les utilisateurs. Sa passion pour les méthodes communautaires de documentation l’a amenée à écrire un livre sur les techniques de publication collaborative pour la documentation technique intitulé Conversation et communauté : la documentation dans le web social. Elle s’occupe aussi bénévolement de la maintenance de la documentation pour les manuels FLOSS qui proposent de la documentation open source pour les projets open source.

Voilà une prémisse bien étrange : vider mes tripes sur ce que j’aurais voulu savoir de l’open source et de la documentation. Plutôt que de vous dire ce que je veux que vous sachiez sur l’open source et la documentation, je dois vous dire ce que j’aurais aimé que mon moi antérieur sache. Cette demande suscite un sentiment de nostalgie ou de remords voire cette horrible énigme : « à quoi pouvais-je bien penser ? ».

En ce qui me concerne, avec juste cinq ans de moins, mon moi antérieur était une trentenaire bien installée dans sa vie professionnelle. D’autres, au contraire, se souviennent qu’ils n’étaient qu’adolescents lors de leurs premières expériences open source. Jono Bacon dans son livre L’art de la Communauté, raconte comment il s’est tenu devant la porte d’un appartement, le cœur battant, alors qu’il était sur le point de rencontrer quelqu’un à qui il n’avait jamais parlé que sur le réseau, par le biais d’une communauté open source. J’ai moi aussi fait cette expérience de la première rencontre physique de gens que j’avais découverts en ligne, mais ma première incursion dans le monde de la documentation open source s’est produite lorsque j’ai répondu à une demande d’aide par courriel.

Le courriel provenait d’un ancien collègue qui me demandait de l’aide pour la documentation de l’ordinateur portable XO, le projet fondateur de l’organisation One Laptop Per Child (un portable pour chaque enfant). J’ai réfléchi à ce que je pensais être une proposition intéressante, j’en ai parlé à mes amis et à mon époux en me demandant si ce n’était pas une bonne occasion d’expérimenter de nouvelles techniques de documentation et d’essayer une chose que je n’avais jamais faite auparavant : une documentation basée sur un wiki. Depuis cette première expérience, j’ai rejoint OpenStack, un projet open source sur une solution d’informatique dans le nuage, et je travaille à plein temps sur la documentation et le support communautaires.

Je pense immédiatement aux nombreuses contradictions que j’ai rencontrées tout au long de la route. J’ai découvert que pour chaque observation il existe des champs et contre-champs surprenants. Par exemple, la documentation est absolument indispensable pour l’aide aux utilisateurs, l’éducation, la possibilité de choisir ou bien la documentation promotionnelle qui amène à adopter un logiciel. Pourtant, une communauté open source pourra continuer d’avancer malgré le manque de documentation ou de la doc complètement défectueuse. Voici une autre collision apparente de valeurs : la documentation pourrait être une très bonne tâche pour démarrer, un point de départ pour les nouveaux volontaires, pourtant les nouveaux membres de la communauté savent si peu de choses qu’il ne leur est pas possible d’écrire ni même d’éditer de manière efficace. En outre les petits nouveaux ne sont pas bien familiers des différents publics auxquels doit servir la documentation.

Ces derniers temps on entend dire un peu partout : « les développeurs devraient écrire la doc de développement » parce qu’ils connaissent bien ce public et par conséquent cela lui serait aussi utile qu’à eux-mêmes. D’après mon expérience, un regard frais et neuf est toujours le bienvenu sur un projet et certaines personnes ont la capacité d’écrire et de partager avec d’autres ce regard frais et empathique. Mais vous n’allez sûrement pas vous mettre à créer une culture « réservée aux novices » autour de la doc parce qu’il est important que des membres essentiels de la communauté technique apportent leur contribution aux efforts de documentation, et qu’ils encouragent aussi les autres à y participer.

Une partie du vilain petit secret sur la documentation des projets open source est qu’il n’existe qu’une frontière pour le moins floue entre leur documentation officielle et leur documentation officieuse. Si seulement j’avais su que les efforts de documentation devraient être sans cesse renouvelés et que de nouveaux sites web pourraient apparaître là où il n’y en avait pas… Une documentation extensive n’est pas le moyen le plus efficace pour s’initier à des projets ou des logiciels mais un parcours sinueux dans les méandres de la documentation sur le Web peut s’avérer plus instructif pour ceux qui veulent lire entre les lignes et avoir ainsi une idée de ce qui se passe dans la communauté grâce à la documentation. Avoir beaucoup de forks(1) et des publics variés peut indiquer que le produit est complexe et qu’il est très suivi. Cela peut aussi signifier que la communauté n’a mis en place aucune pratique quant à la documentation de référence ou que les efforts désorganisés sont la norme.

À mes débuts, j’aurais aimé avoir la capacité de ressentir la « température conviviale » d’une communauté en ligne. Quand vous entrez dans un restaurant rempli de tables nappées de blanc, de couples qui dînent et de conversations feutrées, l’information visuelle et auditive que vous recevez détermine l’ambiance et vous donne quelques indices sur ce que vous vous apprêtez à vivre lors de votre repas. Vous pouvez tout à fait transposer ce concept de température conviviale à une communauté en ligne.

Une communauté open source vous donne quelques indices dans ses listes de discussion, par exemple. Une page de présentation de la liste qui commence par de nombreuses règles et conventions sur la manière de poster indique une gouvernance très stricte. Une liste de discussion qui contient de nombreuses publications mettant l’accent sur le fait qu’il « n’y a pas de question bête » est plus accueillante pour de nouveaux rédacteurs de documentation.

J’aurais aussi aimé connaître un moyen de faire non seulement de l’audit de contenu, c’est-à-dire lister le contenu à disposition pour le projet open source, mais aussi de l’audit de communauté, donc lister les membres influents de la communauté open source, qu’il s’agisse ou non de contributeurs.

Pour terminer, une observation à propos de l’open source et de la documentation que j’ai pu vérifier avec plaisir, c’est l’idée que la rédaction de la documentation peut s’effectuer via des « sprints » — grâce à des de brusques dépenses d’énergie avec un public ciblé et un but précis, pour aboutir à un ensemble documentaire de référence.

J’ai été très contente d’entendre lors d’une conférence à SXSW Interactive que les sprints sont tout à fait acceptables pour la collaboration en ligne, qu’il faut s’attendre à des fluctuations du niveau d’énergie de chacun et que c’est OK. La documentation des logiciels est souvent faite à l’arrache dans les moments d’accalmie d’un cycle de release(2) et ça ne pose aucun problème dans la documentation open source qui est basée sur la communauté. Vous pouvez adopter une approche stratégique et coordonnée et continuer tout de même de proposer des évènements de grande intensité autour de la documentation. Ce sont des moments exaltants dans l’open source et mon ancien moi les a pleinement ressentis. C’est une bonne chose que vous continuiez à passer de votre moi antérieur à votre moi actuel avec un paquet de conseils en poche.

(1) Un fork est un nouveau logiciel créé à partir du code source d’un logiciel existant.

(2) La release est la publication d’un logiciel.




Restons courtois ! (Libres conseils 17/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : peupleLa, goofy, lamessen, SaSha_01, lerouge, Kalupa, RavageJo, lenod, Sky, Astalaseven, Alpha, KoS, purplepsycho +tala

De L’importance des bonnes manières

Rich Bowen

Rich Bowen a travaillé dans le domaine du logiciel libre et open source pendant près de quinze ans. La majeure partie de son travail a porté sur le serveur HTTP Apache ; il a également travaillé sur Perl, PHP et diverses applications web. Il est l’auteur de Apache Cookbook, The Definitive Guide to Apache et divers autres livres. Il fait également de fréquentes apparitions dans diverses conférences sur les technologies.

J’ai commencé à travailler sur le projet de documentation du serveur HTTP Apache en septembre 2000. Du moins, c’est à ce moment-là que j’ai réalisé mon premier commit dans les docs. Auparavant, j’avais présenté quelques corrections par courriel, et quelqu’un d’autre les avait appliquées.

Depuis cette période, j’ai réalisé un peu plus d’un millier de modifications de la documentation du serveur HTTP Apache, ainsi qu’une poignée de modifications du code lui-même. Ceux qui s’impliquent dans les logiciels libres et open source le font pour tout un tas de raisons différentes. Certains tentent de se faire un nom. La plupart essaient de « gratter là où ça les démange » comme ils disent, s’efforçant d’ajouter une fonctionnalité, ou de créer une nouvelle brique logicielle pour satisfaire un de leurs besoins.

Je me suis impliqué dans l’écriture de la documentation sur des logiciels parce que j’avais été enrôlé pour aider à l’écriture d’un livre et que la documentation existante était vraiment horrible. Donc, pour rendre le livre cohérent, j’ai dû discuter avec différentes personnes du projet afin qu’elles contribuent à donner du sens à la documentation. Lors de la rédaction de l’ouvrage, j’ai amélioré la documentation, avant tout pour me faciliter la tâche. À peu près à la même époque, Larry Wall, le créateur du langage de programmation Perl, promouvait l’idée selon laquelle les trois principales qualités d’un programmeur étaient la paresse, l’impatience et l’arrogance. Selon moi, Larry avançait des arguments fondés et avec un sens de l’humour certain. Néanmoins, une partie non négligeable de la communauté des programmeurs a pris ses paroles comme un permis de connerie.

La paresse

Nous écrivons de la documentation pour ne pas avoir à répondre aux mêmes questions tous les jours pour le restant de notre vie. Si la documentation est insuffisante, les gens auront des difficultés à utiliser le logiciel. Bien que cela puisse être la source d’une activité lucrative de consultant, il s’agit aussi du meilleur moyen de faire avorter un projet, car les gens abandonneront, frustrés, et se tourneront alors vers d’autres choses qu’ils n’auront pas à passer des heures pour comprendre.

Ainsi, la paresse est la première vertu d’un rédacteur de documentation. Quand un client pose une question, nous devrions répondre à cette question en profondeur. Et même, de la façon la plus complète possible. Nous devrions alors enregistrer cette réponse pour la postérité. Nous devrions l’enrichir avec des exemples et si possible des diagrammes et des illustrations. Nous devrions nous assurer que le texte est clair, grammaticalement correct et éloquent. Nous devrions alors l’ajouter à la documentation existante dans un endroit facile à trouver et largement référencé partout où quelqu’un pourrait le chercher.

La prochaine fois que quelqu’un posera la même question, nous pourrons lui répondre avec un lien vers la réponse. Et les questions que l’on pourrait poser après l’avoir lue devraient être la source d’améliorations et d’annotations à ce qui a déjà été écrit. C’est la vraie paresse. La paresse ne signifie pas simplement se dérober au travail. Cela veut aussi dire faire le travail si bien qu’il n’aura pas à être refait.

La patience

ll existe une tendance dans le monde de la documentation technique à être impatient et querelleur. Les sources de cette impatience sont nombreuses. Certaines personnes pensent que, comme elles ont dû travailler dur pour comprendre ces choses, vous le devez aussi. Beaucoup d’entre nous dans le monde du technique sommes des autodidactes et nous avons peu de patience pour ceux qui viennent après nous et veulent accéder rapidement au succès. J’aime appeler ça le comportement du « tire-toi de mon chemin ». Ce n’est pas vraiment constructif.

Si vous ne parvenez pas à être patient avec le client, alors vous ne devriez pas être impliqué dans le service clientèle. Si vous vous mettez en colère quand quelqu’un ne comprend pas, vous devriez peut-être laisser quelqu’un d’autre gérer la question.

Bien sûr, c’est très facile à dire, mais beaucoup plus difficile à faire. Si vous êtes un expert sur un sujet particulier, les gens vont inévitablement venir à vous avec leurs questions. Vous êtes obligé d’être patient, mais comment allez-vous y parvenir ? Cela vient avec l’humilité.

L’humilité

J’ai fait de l’assistance technique, en particulier par liste de diffusion, pendant à peu près deux ans, quand j’ai commencé à suivre des conférences techniques. Ces premières années ont été très amusantes. Des idiots venaient sur une liste de diffusion et posaient des questions stupides que des milliers d’autres perdants avaient posées avant eux. Et si seulement ils avaient regardé, ils auraient trouvé toutes les réponses déjà données auparavant. Mais ils étaient trop paresseux et trop bêtes pour le faire.

Ensuite, j’ai assisté à une conférence, et j’ai constaté plusieurs choses. Tout d’abord, j’ai découvert que les personnes qui posaient ces questions étaient des êtres humains. Ils n’étaient pas simplement un bloc de texte écrit noir sur blanc, à espacement fixe. Il s’agissait d’individus. Ils avaient des enfants. Ils avaient des loisirs. Ils connaissaient beaucoup plus de choses que moi sur une grande variété de sujets. J’ai rencontré des gens brillants pour qui la technologie était un outil qui servait à accomplir des choses non techniques. Ils souhaitaient partager leurs recettes avec d’autres cuisiniers. Ils souhaitaient aider les enfants d’Afrique de l’Ouest à apprendre à lire. Ils étaient passionnés de vin et voulaient en apprendre davantage. Ils étaient, en bref, plus intelligents que moi, et mon orgueil était le seul obstacle sur la route de leur succès.

Quand je suis revenu de cette première conférence, j’ai regardé les utilisateurs de listes de diffusion sous un tout autre jour. Ce n’étaient plus des idiots posant des questions stupides, simplement des gens qui avaient besoin d’un peu de mon aide pour pouvoir accomplir une tâche. Pour la plupart, la technologie n’était pas une passion. La technologie était seulement un outil. Il était donc compréhensible qu’ils n’aient pas passé des heures à lire les archives de la liste de diffusion de l’année passée et choisissent plutôt de reposer des questions.

Bien entendu, si un jour les aider devient pénible, la chose la plus polie à faire est de prendre du recul et de laisser quelqu’un d’autre répondre à la question plutôt que de leur dire que ce sont des imbéciles. Mais il faut aussi se rappeler toutes les fois où j’ai eu à poser des questions stupides.

La Politesse et le Respect

En fin de compte, tout cela se résume à la politesse et au respect. J’ai principalement abordé la question de l’assistance technique, mais la documentation n’est rien d’autre qu’une forme statique d’assistance technique. Elle répond aux questions que vous attendez des gens et elle offre des réponses dans une forme semi-permanente à titre de référence.

Lorsque vous écrivez cette documentation, vous devriez essayer de trouver le juste équilibre entre penser que votre lecteur est un idiot et penser qu’il devrait déjà tout savoir. D’un côté, vous lui demandez de s’assurer que l’ordinateur est branché, de l’autre, vous utilisez des mots comme « simplement » et « juste » pour faire comme si chaque tâche était triviale, laissant au lecteur l’impression qu’il n’est pas tout à fait à la hauteur.

Cela implique d’avoir beaucoup de respect et d’empathie pour votre lecteur, en essayant de vous rappeler ce que c’est que de débuter ou d’avoir un niveau intermédiaire dans l’apprentissage d’un nouveau logiciel. Cependant, les exemples de mauvaise documentation sont si répandus qu’il ne doit pas être difficile de s’en souvenir. Il y a des chances que vous en ayez fait l’expérience au cours de la dernière semaine.

J’aurais aimé…

J’aurais aimé être moins arrogant quand j’ai commencé à travailler sur la documentation open source. Quand je relis ce que j’ai pu écrire sur des listes de diffusion archivées publiquement, gravées à jamais dans le marbre d’Internet, j’ai honte d’avoir été aussi grossier.

La plus grande vertu humaine est la politesse. Toutes les autres vertus en découlent. Si vous ne pouvez pas être poli, tout ce que vous accomplirez importera peu.




RTFM ? — mais où est-il, votre manuel ? (Libres conseils 16/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : lamessen, Sputnik, lerouge, RavageJo, Sky, Astalaseven, goofy, KoS, peupleLa + Julius22

Une bonne documentation change la vie des débutants

Atul Jha

Atul Jha utilise des logiciels libres depuis 2002. Il travaille en tant que spécialiste des applications au CSS Corp, à Chennai en Inde. Il aime parcourir les universités, rencontrer des étudiants et propager la bonne parole du logiciel libre.

En 2002, on naviguait sur Internet dans des cybercafés en raison du coût important des accès par lignes commutées. À l’époque, la messagerie instantanée de Yahoo était très populaire et j’avais pris l’habitude de discuter sur le canal #hackers. Il y avait quelques fous furieux là-dedans qui prétendaient qu’ils pouvaient pirater mon mot de passe. J’étais très impatient d’en savoir plus sur le piratage et de devenir l’un d’eux. Le lendemain, je suis retourné au cybercafé et j’ai tapé « comment devenir un hacker » sur le moteur de recherche Yahoo. La toute première URL dirigeait sur le livre d’Eric S. Raymond. J’étais fou de joie à l’idée d’entrer dans le cercle des initiés.

J’ai commencé à lire le livre et à ma grande surprise la définition de hacker était « quelqu’un qui aime résoudre les problèmes et dépasser les limites ». Il y est également écrit : « les hackers construisent des choses, les casseurs les brisent »(1). Hélas, je cherchais le côté obscur, celui des crackers, et ce livre m’a mené de l’autre côté de la force, celui des hackers. J’ai continué à lire le livre et à rencontrer divers termes nouveaux tels que GNU/Linux, liste de diffusion, groupe d’utilisateur Linux, IRC, Python et bien d’autres encore.

En poursuivant mes recherches, j’ai pu trouver un groupe d’utilisateurs de Linux à Delhi et j’ai eu l’opportunité de rencontrer de vrais hackers. J’avais l’impression d’être dans un autre monde quand ils parlaient de Perl, RMS, du noyau, des pilotes de périphériques, de compilation et d’autres choses qui me passaient bien au-dessus de la tête.

J’étais dans un autre monde. J’ai préféré rentrer à la maison et trouver une distribution Linux quelque part. J’avais bien trop peur pour leur en demander une. J’étais loin de leur niveau, un débutant totalement idiot. J’ai réussi à en obtenir une en payant 1 000 Roupies indiennes [NdT : environ 13,92 €] à un gars qui en faisait le commerce. J’en ai essayé beaucoup mais je n’arrivais pas à faire fonctionner le son. Cette fois-là, je décidai de consulter un canal IRC depuis le cybercafé. Je trouvai #linux-india et lançai : « g ok1 son ». Des injonctions fusèrent alors : « pas de langage SMS » et « RTFM ». Ça m’a fait encore plus peur et j’ai mis du temps à faire la relation entre « RTFM » et « read the fucking manual » [NdT : « lis le putain de manuel » dans la langue de Molière].

J’étais terrifié et j’ai préféré rester à l’écart de l’IRC pendant quelques semaines.

Un beau jour, j’ai reçu un courriel qui annonçait une réunion mensuelle de groupes d’utilisateurs Linux. J’avais besoin de réponses à mes nombreuses questions. C’est là que j’ai rencontré Karunakar. Il m’a demandé d’apporter mon ordinateur à son bureau, où il avait l’intégralité du dépôt de Debian. C’était nouveau pour moi, mais j’étais satisfait à l’idée de pouvoir enfin écouter de la musique sur Linux. Le lendemain, j’étais dans son bureau après avoir fait le trajet avec mon ordinateur dans un bus bondé, c’était génial. En quelques heures, Debian était opérationnel sur mon système. Il m’a aussi donné quelques livres pour débutants et une liste des commandes de base.

Le lendemain, j’étais à nouveau au cybercafé, et je lisais un autre essai d’Eric S. Raymond, intitulé Comment poser les questions de manière intelligente. Je continuais de fréquenter le canal #hackers sur Yahoo chat où je m’étais fait un très bon ami, Krish, qui m’a suggéré d’acheter le livre intitulé Commandes de références sous Linux. Après avoir passé quelque temps avec ces livres et en utilisant tldp.org (The Linux Documentation Project) comme support, j’étais devenu un utilisateur débutant sous Linux. Je n’ai jamais regardé en arrière. J’ai aussi assisté à une conférence sur Linux où j’ai rencontré quelques hackers de Yahoo ; écouter leurs conférences m’a beaucoup inspiré. Quelques années plus tard, j’ai eu la chance de rencontrer Richard Stallman qui est une sorte de dieu pour beaucoup de gens dans la communauté du logiciel libre.

Je dois reconnaître que la documentation d’Eric S. Raymond a changé ma vie et sûrement celle de beaucoup d’autres. Après toutes ces années passées dans la communauté du logiciel libre, je me suis rendu compte que la documentation est la clé pour amener des débutants à participer à cette extraordinaire communauté open source. Mon conseil à deux balles à tous les développeurs serait : s’il vous plaît, documentez votre travail, même le plus petit, car le monde est plein de débutants qui aimeraient le comprendre. Mon blog propose un large éventail de publications, qui vont des plus simples comme l’activation de la vérification orthographique dans OpenOffice à celles, plus complexes, traitant de l’installation de Django dans un environnement virtuel.

[1] NdT : Un hacker sait où et comment bidouiller un programme pour effectuer des tâches autres que celles prévues par ses concepteurs alors qu’un cracker est un pirate informatique spécialisé dans le cassage des protections dites de sécurité.




Geektionnerd : #mot-dièse #fail

Geektionnerd - Simon Gee Giraudot - CC by-sa-2013-01-25-16h

Simon Gee Giraudot - CC by-sa-

Source : Il ne faut plus dire ”hashtag” mais « mot-dièse » (Numerama)

Crédit : Simon Gee Giraudot (Creative Commons By-Sa)




Lettre ouverte à Skype (et donc Microsoft)

Depuis 2011, date du fracassant rachat de Skype par Microsoft pour plusieurs milliards de dollars, la situation des données collectées par l’application est encore plus floue que par le passé. D’autant que quand on débourse une telle somme on attend un certain retour sur investissement !

C’est ce qui a poussé un collectif d’auteurs à écrire une lettre ouverte demandant rapidement des éclaircissements.

PS : Sauf bien sûr si on s’en passe et en passe par une solution libre 😉

Mike Licht - CC by

Lettre ouverte à Skype

Open Letter to Skype

Lettre collective – 24 janvier 2013
(Traduction : Skydevil, toto, RavageJo, Progi1984, lmnt, Metal-Mighty, ehsavoie, Alpha, arcady, Penguin, Zilkos + anonymous)

De la part des défenseurs des libertés personnelles et de la vie privée, de militants d’Internet, de journalistes et de diverses organisations

À l’attention :
du Président de la division Skype, Tony Bates
du Directeur en charge de la vie privée du groupe Microsoft, Brendon Lynch
de l’avocat général du groupe Microsoft, Brad Smith

Chers MM Bates, Lynch et Smith,

Skype est une plateforme de communication vocale, vidéo et textuelle qui compte plus de 600 millions d’utilisateurs à travers le monde, ce qui en fait de facto une des plus grandes entreprises de télécommunication au monde. Nombreux sont les utilisateurs qui comptent sur la sécurité des communications via Skype, que ce soit des activistes dans des pays gouvernés par des régimes totalitaires, des journalistes communiquant avec des sources confidentielles ou de simples utilisateurs qui souhaitent parler, en privé, à leurs associés, leur famille ou leurs amis.

Il est préjudiciable que ces utilisateurs, ainsi que ceux qui les conseillent en terme de sécurité informatique, se trouvent en permanence face à des déclarations obscures et ambiguës quant à la confidentialité des conversations Skype, en particulier en ce qui concerne la possibilité pour des gouvernements ou des personnes tierces d’accéder à leur données personnelles et leurs communications.

Nous comprenons que la transition engendrée par le rachat de Microsoft, et les modifications légales ainsi que celles de l’équipe dirigante en découlant, puissent avoir levé des questions auxquelles il est difficile de répondre officiellement, quant à l’accès légal, à la collecte des données des utilisateurs et au degré de sécurité des communications via Skype. Cependant nous pensons que depuis l’annonce officielle du rachat en Octobre 2011, et à la veille de l’intégration de Skype dans plusieurs de ses logiciels et services clefs, il est temps que Microsoft documente publiquement les pratiques de Skype en termes de sécurité et de respect de la vie privée.

Nous demandons à Skype de publier et de mettre à jour régulièrement un rapport de transparence comprenant les élements suivants :

  1. Des données quantitatives concernant la délivrance des informations des utilisateurs Skype à des tierces parties, décomposées selon le pays d’origine de la requête, incluant le nombre de requêtes faites par gouvernement, le type de données demandées, la proportion de requêtes accordées – et les raisons de rejet des requêtes en désaccord.
  2. Des détails précis sur toutes les données utilisateurs collectées actuellement par Microsoft et Skype, et leurs conditions de conservation.
  3. Une meilleur connaissance des données que les tierces parties, incluant les opérateurs réseaux ou les éventuelles parties malveillantes, peuvent intercepter ou récuperer.
  4. Une documentation décrivant les relations opérationnelles entre Skype d’une part, TOM Online en Chine et des éditeurs tiers ayant acquis une license des technologies Skype d’autre part, incluant la compréhension qu’a Skype des capacités de surveillance et de censure dont les utilisateurs peuvent être sujets en utilisant ces produits alternatifs.
  5. Le point de vue de Skype quant à ses responsabilités envers la Communications Assistance for Law Enforcement Act (CALEA)[1], ses conditions quant à la mise à disposition des méta-données sur les appels en réponse aux subpoenas et aux Lettres de Sécurité Nationales (National Security Letters, NSL), et, globalement, les conditions et les lignes directrices suivies par les employés lorsque Skype recoit et répond aux requêtes de transfert de données utilisateurs à l’application de la loi et à directon des agences de renseignement aux États-Unis et le reste du monde.

D’autres entreprises telles que Google, Twitter et Sonic.net publient d’ores et déjà des rapports de transparence détaillant les requêtes d’accès aux données des utilisateurs émanant de tierces parties, et cela deux fois par an. Nous pensons que ces informations sont vitales pour nous permettre d’aider les utilisateurs de Skype les plus vulnérables, qui s’appuient sur votre logiciel pour assurer la confidentialité de leurs communications et, dans certains cas, protéger leurs vies.

Cordialement,
Les personnes soussignées.

Crédit photo : Mike Licht (Creative Commons By)

Notes

[1] Loi exigeant des points d’entrée pour les écoutes par les services de sécurité et de contre espionnage des communications, il n’y a pas un acte global regroupant toutes les lois concernants les écoutes et interceptions légales ni harmonisation européenne mais plusieurs lois françaises permettent l’écoute et l’interception légale des communications sur un réseau public.




Faire un test à la fois vous met sur la bonne voie (Libres conseils 15/42)

Chaque jeudi à 21h, rendez-vous sur le framapad de traduction, le travail collaboratif sera ensuite publié ici même.

Traduction Framalang : lamessen, Sky, Kalupa, ga3lig, Wxcafe, goofy, Astalaseven, Slystone, okram, KoSLycoris, peupleLa, Julius22

La Voie des tests conduit à la Lumière

Jonathan “Duke” Leto

Jonathan Leto, dit « Le Duc » est un développeur de logiciel, un mathématicien dont les travaux sont publiés, un ninja de Git et un passionné de cyclisme qui vit à Portland, en Oregon. C’est l’un des développeurs principaux de la machine virtuelle Parrot et le fondateur de Leto Labs LLC.

Lorsque j’ai commencé à m’impliquer dans le logiciel libre et open source, je n’avais aucune idée de ce que pouvaient être les tests ni de leur importance. J’avais travaillé sur des projets personnels de programmation auparavant, mais la première fois que j’ai réellement travaillé sur un projet collaboratif (c’est-à-dire en faisant un peu de commit) c’était pour Yacas, acronyme de Yet Another Computer Algebra System, (NdT : encore un autre logiciel de calcul algébrique similaire à Mathematica).

À ce stade de mon parcours, les tests ne venaient qu’après coup. Mon méta-algorithme général était : bidouiller du code > voir si ça fonctionne> écrire (éventuellement) un test simple pour démontrer que ça fonctionne. Un test difficile à écrire n’était généralement jamais écrit.

C’est le premier pas sur la voie qui mène à la Lumière grâce aux tests. Vous savez que les tests sont probablement une bonne idée, mais vous n’en avez pas vu clairement les bénéfices, alors vous vous contentez de les écrire de temps en temps.

Si je pouvais ouvrir un trou de souris dans l’espace-temps et donner à mon moi plus jeune un conseil plein de sagesse sur les tests, ce serait :

« Certains tests sont plus importants, sur le long terme, que le code qu’ils testent. »

Il y a sans doute quelques personnes qui pensent en ce moment même que je mets mon casque de protection psychique (NdT : il s’agit d’un chapeau pour se protéger contre la manipulation à distance du cerveau) quand je m’assois pour écrire du code. Comment les tests pourraient-ils être plus importants que le code qu’ils testent ? Les tests sont la preuve que votre code marche réellement ; ils vous montrent le chemin vers l’écriture d’un code propre et vous apportent aussi la souplesse qui vous permettra de modifier le code tout en sachant que les fonctionnalités seront toujours là. En effet, plus votre code source grossit, plus vos tests sont importants, car ils vous permettent de changer une partie dudit code en sachant que le reste fonctionnera.

Une autre raison essentielle qui justifie l’écriture de tests est la possibilité de spécifier que quelque chose est un souhait explicite et non une conséquence imprévue ou un oubli. Si vous avez un cahier des charges, vous pouvez utiliser des tests pour vérifier qu’il est respecté, ce qui est très important, voire indispensable dans certaines industries. Un test, c’est comme quand on raconte une histoire : l’histoire de votre conception du code et de la façon dont il devrait fonctionner. Soit le code change et évolue, soit il mute en code infectieux (1).

Très souvent, vous écrirez des tests une première fois pour ensuite remettre totalement en cause votre réalisation voire la réécrire à partir de zéro. Les tests survivent souvent au code pour lesquels ils ont été conçus à l’origine. Par exemple, un jeu de tests peut être utilisé quel que soit le nombre de fois où votre code est transformé. Les tests sont en fait l’examen de passage qui vous permettra de jeter une ancienne réalisation et de dire « cette nouvelle version a une bien meilleure structure et passe notre jeu de tests ». J’ai vu cela se produire bien des fois dans les communautés Perl et Parrot, où vous pouvez souvent me voir traîner. Les tests vous permettent de changer les choses rapidement et de savoir si quelque chose est cassé. Ils sont comme des propulseurs pour les développeurs.

Les charpentiers ont un adage qui dit quelque chose comme ça :

« Mesurer deux fois, couper une fois. »

Le code serait la coupe, le test serait la mesure.

La méthode de développement basée sur les tests fait économiser beaucoup de temps, parce qu’au lieu de vous prendre la tête à bricoler le code sans but défini, les tests précisent votre objectif.

Les tests sont aussi un très bon retour d’expérience. Chaque fois que vous faites une nouvelle passe de test, vous savez que votre code s’améliore et qu’il a une fonctionnalité de plus ou un bogue de moins.

Il est facile de se dire « je veux ajouter 50 fonctionnalités » et de passer toute la journée à bricoler le code tout en jonglant en permanence entre différents travaux. La plupart du temps, peu de choses aboutiront. La méthode de développement basée sur les tests aide à se concentrer sur la réussite d’un seul test à la fois.

Si votre code échoue devant ne serait-ce qu’un seul test, vous avez pour mission de le faire réussir. Votre cerveau se concentre alors sur quelque chose de très spécifique, et dans la plupart des cas cela produit de meilleurs résultats que passer constamment d’une tâche à une autre.

La plupart des informations relatives au développement basé sur les tests sont très spécifiques à un langage ou à une situation, mais ce n’est pas une obligation. Voilà comment aborder l’ajout d’une nouvelle fonctionnalité ou la correction d’un bogue dans n’importe quel langage :

  1. Écrivez un test qui fait échouer votre code, mais qui, selon vous, sera passé quand la fonctionnalité sera implémentée ou que le bogue sera corrigé. Mode expert : pendant l’écriture du test, pensez à l’exécuter de temps en temps, même s’il n’est pas encore fini, et tentez de deviner le message d’erreur effectif que le test renverra. À force d’écrire des tests et de les faire tourner, cela devient plus facile ;
  2. Bidouillez le code ;
  3. Exécutez le test. S’il marche, passez au point 4, sinon retournez au point 2 ;
  4. C’est fini ! Dansez le sirtaki.

Cette méthode fonctionne pour n’importe quel type de test et n’importe quel langage. Si vous ne deviez retenir qu’une seule chose de ce texte, souvenez-vous des étapes ci-dessus.

Voici maintenant quelques directives plus générales de conduite de tests qui vous serviront bien et fonctionneront dans n’importe quelle situation :

  1. Comprendre la différence entre ce qu’on teste et ce qu’on utilise comme un outil pour tester autre chose ;
  2. Les tests sont fragiles. Vous pouvez toujours écrire un test qui contrôle la validité d’un message d’erreur. Mais que se passera-t-il si le message d’erreur change ? Que se passera-t-il quand quelqu’un traduira votre code en catalan ? Que se passera-t-il lorsque quelqu’un exécutera votre code sur un système d’exploitation dont vous n’avez jamais entendu parler ? Plus votre test est résistant, plus il aura de valeur.

Pensez à cela quand vous écrivez des tests. Vous voulez qu’ils soient résistants, c’est-à-dire que les tests, dans la plupart des cas, ne devraient avoir à changer que quand les fonctionnalités changent. Si vous devez modifier vos tests régulièrement, sans que les fonctionnalités aient changé, c’est que vous faites une erreur quelque part.

testing-comicmatics

Types de tests

Bien des personnes sont perdues quand on leur parle de tests d’intégration, tests unitaires, tests d’acceptation et autres tests à toutes les sauces. Il ne faut pas trop se soucier de ces termes. Plus vous écrirez de tests, mieux vous en distinguerez les nuances et les différences entre les tests deviendront plus apparentes. Tout le monde n’a pas la même définition de ce que sont les tests, mais c’est utile d’avoir des termes pour décrire les types de tests.

Tests unitaires contre tests d’intégration

Les tests unitaires et les tests d’intégration couvrent un large spectre. Les tests unitaires testent de petits segments de code et les tests d’intégration vérifient comment ces segments se combinent. Il revient à l’auteur du test de décider ce que comprend une unité, mais c’est le plus souvent au niveau d’une fonction ou d’une méthode, même si certains langages appellent ces choses différemment.

Pour rendre cela un peu plus concret, nous établirons une analogie sommaire en utilisant des fonctions. Imaginez que f(x) et g(x) soient deux fonctions qui représentent deux unités de code. Pour l’aspect concret, supposons qu’elles représentent deux fonctions spécifiques du code de base de votre projet libre et open source.

Un test d’intégration affirme quelque chose comme la composition de la fonction, par exemple f(g(a)) = b. Un test d’intégration consiste à tester la façon dont plusieurs choses s’intègrent ou travaillent ensemble, plutôt que la façon dont chaque partie fonctionne individuellement. Si l’algèbre n’est pas votre truc, une autre façon de comprendre est de considérer que les tests unitaires ne testent qu’une partie de la machine à la fois, tandis que les tests d’intégration s’assurent que la plupart des parties fonctionnent à l’unisson. Un bel exemple de test d’intégration est le test de conduite d’une voiture. Vous ne vérifiez pas la pression atmosphérique, ni ne mesurez le voltage des bougies d’allumage. Vous vous assurez que le véhicule fonctionne globalement.

La plupart du temps, il est préférable d’avoir les deux. Je commence souvent avec les tests unitaires puis j’ajoute les tests d’intégration au besoin puisqu’on a besoin d’éliminer d’abord les bogues les plus basiques, puis de trouver les bogues plus subtils issus d’un emboitement imparfait des morceaux, à l’opposé de pièces qui ne fonctionnent pas individuellement. Beaucoup de gens écrivent d’abord des tests d’intégration puis se plongent dans les tests unitaires. Le plus important n’est pas de savoir lequel vous écrirez en premier, mais d’écrire les deux types de tests.

Vers la Lumière

La méthode de développement basée sur les tests est un chemin, pas un aboutissement. Sachez apprécier le voyage et assurez-vous de faire une pause pour respirer les fleurs si vous êtes égaré. 

(1) Équivalent approché du terme bitrot qui en argot de codeur désigne ce fait quasi-universel : si un bout de code ne change pas mais que tout repose sur lui, il « pourrit ». Il y a alors habituellement très peu de chances pour qu’il fonctionne tant qu’aucune modification ne sera apportée pour l’adapter à de nouveaux logiciels ou nouveaux matériels.

Comic strip réalisé avec le Face-O-Matic de Nina Paley et Margot Burns

Copyheart ? 2011 by Margo Burns and Nina Paley. Copying is an act of love. Please copy!