Apprendre à déléguer (Libres conseils 19/42)

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

Traduction Framalang : Nyx, lamessen, Sphinx, peupleLà, lerouge, Sky, Julius22, Astalaseven, Alpha, HgO, michel, Sputnik, goofy, HanX, KoS

Ne vous inquiétez pas, faites confiance

Shaun McCance

Shaun McCance est impliqué dans la documentation de GNOME depuis 2003 en tant que rédacteur, chef de la communauté et développeur d’outils. Il a passé la plupart de ce temps à se demander comment inciter davantage de personnes à écrire une documentation de meilleure qualité, avec un certain succès à long terme. Il propose son expérience de la documentation communautaire à travers sa société de conseil, Syllogist.

Alors que je m’apprêtais à écrire cet article, il s’est passé quelque chose d’énorme : GNOME 3 est sorti. C’était la première version majeure de GNOME depuis neuf ans. Tout était différent et toute la documentation existante devait être réécrite. Au même moment, nous changions notre façon de l’écrire. Nous avions jeté nos vieux manuels et étions repartis sur une nouvelle base, avec un système d’aide dynamique par sujet, en utilisant Mallard.

Quelques semaines avant la sortie, une partie d’entre nous s’est réunie pour élaborer la documentation. Nous passions nos journées à travailler, à planifier, à écrire et à réviser. Nous avons écrit des centaines de pages malgré les changements incessants liés aux ultimes modifications du logiciel. Nous avions des contributeurs en ligne qui proposaient de nouvelles pages et corrigeaient ce qui existait déjà. Je n’avais jamais vu notre équipe de documentation aussi productive.

À quoi avons-nous finalement abouti ? Beaucoup de facteurs sont entrés en jeu, et je pourrais écrire un livre entier sur les nuances de la documentation open source. Mais ce que j’ai fait de plus important a été de m’effacer et de laisser les autres faire le travail. J’ai appris à déléguer ; et à déléguer dans les règles de l’art.

Revenons huit ans en arrière. J’ai commencé à m’impliquer dans la documentation de GNOME en 2003. Je n’avais pas vraiment d’expérience en tant que rédacteur technique à cette époque. Mon emploi m’amenait à travailler sur des outils de publication et j’ai commencé à travailler sur les outils et sur le visualiseur d’aide utilisés par la documentation de GNOME. Peu de temps après, je me suis retrouvé à la rédaction de la documentation.

En ce temps-là, la majeure partie de notre documentation était entre les mains de rédacteurs techniques professionnels de chez Sun. Ils s’occupaient d’un manuel, l’écrivaient, le relisaient et l’envoyaient sur notre dépôt CVS. Après quoi nous pouvions tous le regarder, y apprendre quelque chose et lui apporter des corrections. Mais il n’existait pas d’efforts concertés pour impliquer les gens dans le processus d’écriture.

Ce n’est pas que les rédacteurs de Sun essayaient de protéger ou de cacher quoi que ce soit. Ils étaient avant tout rédacteurs techniques. Ils connaissaient leur travail et le faisaient bien. D’autres personnes auraient pu les remplacer pour d’autres manuels mais ils auraient écrit leurs travaux d’une manière habituelle. Utiliser un groupe de collaborateurs novices, aussi enthousiastes soient-ils, pour chaque page, revient à perdre un temps inimaginable sur des détails. C’est tout simplement contre-productif.

De manière inévitable, le vent a tourné chez Sun et leurs rédacteurs techniques ont été affectés à d’autres projets. Cela nous a laissés sans nos rédacteurs les plus prolifiques, ceux qui disposaient des meilleures connaissances. Pire que cela, nous étions laissés sans communauté et personne n’était là pour ramasser les morceaux.

Il y a des idées et des processus standards dans le monde de l’entreprise. J’ai travaillé dans le monde de l’entreprise. Je ne crois pas que quiconque remette ces idées en cause. Les gens font leur travail. Ils choisissent des missions et les terminent. Ils demandent aux autres de faire une relecture, mais ils n’ouvrent pas leur travail aux nouveaux venus et aux rédacteurs moins expérimentés. Les meilleurs rédacteurs écriront sans doute le plus.

Ces idées sont d’une plate évidence, mais elles échouent lamentablement dans un projet communautaire. Vous ne développerez jamais une communauté de contributeurs si vous faites tout vous-même. Dans un projet de logiciel, vous pouvez avoir des contributeurs compétents et suffisamment impliqués pour contribuer régulièrement. Dans la documentation, cela n’arrive presque jamais.

La plupart des gens qui s’essayent à la documentation ne le font pas parce qu’ils veulent être rédacteur technique ni même parce qu’ils aiment écrire. Ils le font parce qu’ils veulent contribuer. Et la documentation est la seule manière qu’ils trouvent accessible. Ils ne savent pas coder. Ils ne sont artistiquement pas doués. Ils ne maîtrisent pas assez une autre langue pour faire de la traduction. Mais ils savent écrire.

C’est là que les rédacteurs professionnels lèvent les yeux au ciel. Le fait que vous soyez instruit ne signifie pas que vous puissiez écrire une bonne documentation pour l’utilisateur. Il ne s’agit pas simplement de poser des mots sur le papier. Vous devez comprendre vos utilisateurs, ce qu’ils savent, ce qu’ils veulent, les endroits où ils cherchent. Vous avez besoin de savoir comment présenter l’information de façon compréhensible et savoir où la mettre pour qu’ils puissent la trouver.

Les rédacteurs techniques vous diront que la rédaction technique n’est pas à la portée de tous. Ils ont raison. Et c’est exactement pourquoi la chose la plus importante que les rédacteurs professionnels puissent faire pour la communauté est de ne pas écrire.

La clé pour construire une communauté efficace autour de la documentation, c’est de laisser les autres prendre les décisions, faire le travail et en récolter eux-mêmes les fruits. Il ne suffit pas de leur donner du travail en continu. La seule solution pour qu’ils s’intéressent suffisamment et s’accrochent au projet, c’est qu’ils se sentent investis personnellement. Le sentiment de faire partie intégrante d’un projet est une source puissante de motivation.

Mais si vous ne travaillez qu’avec des rédacteurs débutants et que vous leur donnez tout le travail à faire, comment pouvez-vous avoir l’assurance que la documentation ainsi créée sera de qualité ? Une participation massive mais incontrôlée n’aboutit pas à de bons résultats. Le rôle d’un rédacteur expérimenté au sein de la communauté est d’être un professeur et un mentor. Vous devez leur apprendre comment rédiger.

Commencez par impliquer les gens tôt dans le planning. Planifiez toujours du bas vers le haut. La planification du haut vers le bas n’incite pas à la collaboration. Il est difficile d’impliquer les gens dans la réalisation d’une vue d’ensemble de haut niveau si tous n’ont pas la même perception de cette vue d’ensemble. Mais les gens sont capables de travailler sur des segments. Ils peuvent réfléchir à des sujets particuliers d’écriture, à des tâches que les gens réalisent, à des questions que les gens peuvent se poser. Ils peuvent regarder les forums de discussion et les listes de diffusion afin de voir ce que les utilisateurs demandent.

Écrivez vous-même quelques pages. Cela donne un exemple à imiter. Il faut ensuite répartir tout le reste du travail. Laissez à d’autres la responsabilité de rubriques ou de chapitres entiers. Précisez-leur clairement quelles informations ils doivent fournir, mais laissez-les écrire. C’est en forgeant qu’on devient forgeron.

Soyez constamment disponible pour les aider ou répondre aux questions. Au moins la moitié de mon temps consacré à la documentation est passée à répondre à des questions afin que les autres puissent effectuer leur travail. Quand des brouillons sont soumis, relisez-les et discutez des critiques et des corrections avec leurs auteurs. Ne vous contentez pas de corriger vous-même.

Cela vous laisse tout de même le gros du travail à faire. Les gens complètent les pièces du puzzle, mais c’est toujours vous qui les assemblez. Au fur et à mesure qu’ils acquièrent de l’expérience, les gens s’occuperont de pièces de plus en plus grandes. Encouragez-les à s’impliquer davantage. Donnez-leur davantage de travail. Faites en sorte qu’ils vous aident à aider plus de rédacteurs. La communauté fonctionnera toute seule.

Huit ans plus tard, GNOME a réussi à créer une équipe de documentation qui se gère elle-même, résout les problèmes, prend des décisions, produit une bonne documentation et accueille constamment de nouveaux contributeurs. N’importe qui peut la rejoindre et y jouer un rôle. Telle est la clé du succès pour une communauté open source.




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.




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!




Tour de France du Numérique pour l’Éducation ou pour Microsoft ?

Nous sommes en 2013 et nous n’avons toujours pas réussi à éradiquer ce triste symptôme qui frappe depuis des années l’Éducation nationale française, à savoir la marchandisation Microsoft de nos écoles et son malheureux corollaire : le déni volontaire du logiciel libre et de sa culture.

Dernier exemple en date, cette initiative qui de prime abord semble tout aussi innocente que louable : le « Tour de France du Numérique pour l’Éducation ».

Elle est ainsi présentée sur le site du projet :

Le Café Pédagogique et le réseau SCEREN (CNDP-CRDP) sont heureux de vous inviter à l’étape du Tour de France du Numérique pour l’Éducation qui se tiendra dans votre région.
Ce rendez-vous sera l’occasion de rencontres et d’échanges sur des pratiques pédagogiques innovantes autour du numérique. Venez rencontrer des enseignants innovants.
Découvrez leurs projets et leurs usages des nouvelles technologies numériques en classe de l’école au lycée.
Venez tester les nouveautés dans les domaines des équipements, solutions et contenus numériques pour l’enseignement.
Nous vous attendons nombreux !

Si vous êtes un lecteur régulier de longue date du Framablog, vous savez qu’il faut se méfier de la marque déposée « enseignants innovants » du Café Pédagogique et de son principal bailleur de fonds Microsoft (cf tous ces billets passés mais aussi ce remarquable article de feu OWNI Microsoft programme l’école). Et pourtant nous aurions tant aimé qu’il n’en aille pas de même cette fois-ci…

Déjà observons le look du site (Edit : Comme cela a été signalé dans les commentaires, l’image de la page en question a, tiens, tiens, changé depuis. On n’y voit plus que deux enfants derrière un écran anodin, fini l’ostensible tablette Windows 8 !) :

Tour de France du Numérique pour l'Éducation

Quelles jolies couleurs, quelle jolie typographie et surtout quelle jolie tablette, n’est-ce pas ! Dans la mesure où nous avons tous été matraqués (sans le souhaiter) de publicités Windows 8 depuis la rentrée, il n’y a plus qu’à faire le rapprochement. Et, en effet, on apprend tout en bas que Microsoft est partenaire de l’opération.

Le principe, si j’ai bien compris, c’est donc de parcourir la France avec un programme identique qui se déroule au cours d’un après-midi. Des ateliers sont proposés. Extraits :

Atelier 1 : Les tablettes pour l’Education : Lors de cette session nous vous présenteront les nouvelles tablettes sous Windows 8 : le meilleur de la tablette et du PC pour l’équipement des enseignants et des élèves.

Atelier 4 : Les outils de gestion de la classe pour les enseignants : Avec Multipoint Server les enseignants disposent d’un outil de gestion de classe, à fin de monitorer à tout instant le travail des élèves.

Et un peu plus loin :

Opportunité d’échanger avec les enseignants de l’académie retenus pour la présentation de leurs projets innovants, de découvrir de nouvelles ressources éducatives numériques développées ou identifiées par le réseau Scérén (CNDP-CRDP), d’assister aux démonstrations de dernières innovations technologiques : tablettes Windows 8, plateformes de communication et collaboration (visio conférence, chat, réseaux sociaux…), des expériences immersives grâce à nouveaux terminaux comme la table PixelSense, des outils de gestion de la classe…

Windows 8 est donc le dernier système d’exploitation de Microsoft (qui joue gros sur ce coup-là, ceci expliquant certainement cela). Multipoint Server est évidemment une solution « simple et économique » de Microsoft « qui permet à davantage d’étudiants et d’enseignants d’accéder aux nouvelles technologies, tout en améliorant l’apprentissage et en aidant les étudiants à relever les défis d’une économie globale ». Quant à PixelSense, je ne sais pas trop ce que c’est (et je m’en fous) sauf que c’est encore et toujours du Microsoft.

Franchement, de qui se moque-t-on ? Je serais d’ailleurs assez curieux de savoir comment une telle manifestation est financée.

Il y a un formulaire, au format .DOC bien sûr, qui invite les enseignants à s’inscrire pour proposer leur projet pédagogique (à aucun moment il ne va leur être demandé de placer leurs travaux sous une licence Creative Commons bien sûr).

Ce qui m’attriste le plus dans cette histoire, ce sont tous ces enseignants que l’on va brosser dans le sens du poil (bravo, vous êtes « innovants ») sans se rendre compte qu’ils sont involontairement complices d’une manœuvre commerciale qui va à l’encontre même de leurs principes. Ils vont se contenter de penser être modernes sur une technologie neutre.

Des années que nous affirmons péremptoirement que ces principes éducatifs ont tout pour s’épanouir dans le logiciel libre (les ressources libres, les formats ouverts…) et non le logiciel propriétaire, dont Microsoft en est l’emblématique symbole. Mais il faut croire que nous continuons de prêcher dans le désert…

On ne peut pas trop leur en vouloir remarquez puisque le « couple habituel » Café Pédagogique / Microsoft a réussi à embarquer dans la galère le (fort peu lucide) SCEREN (CNDP-CRDP) qui apporte si ce n’est la bénédiction tout du moins la caution de l’institution.

Une fois de plus la marque et les produits Microsoft se seront placés l’air de rien et en toute discrétion dans un projet qui donne confiance et reconnaissance aux enseignants. Et c’est un peu à désespérer.

Fleur Pellerin peut bien déclarer sa flamme au logiciel libre, Jean-Marc Ayrault nous pondre une explicite circulaire en direction de l’administration ou, encore plus fort, entendre Gilles Braun, conseiller numérique de Vincent Peillon, souhaiter que « les enseignants produisent des ressources pédagogiques libres avec des logiciels libres », rien ne semble vraiment bouger du côté du Mammouth.

Que faire ? On pourrait dire (avec courtoisie) notre façon de penser au SCEREN. On pourrait s’en aller tracter sur le passage du Tour (première date : Paris, le 6 février), mais je doute de l’efficacité réelle de telles actions.

Le plus sûr est de continuer patiemment notre libre chemin en se remémorant l’actuel épilogue d’un autre Tour, bien plus célèbre cette fois. Il nous en aura en effet fallu du temps pour nous apercevoir que nous avions été trompés, mais aujourd’hui Lance Armstrong reconnaît la supercherie et se retrouve contraint à rendre des comptes…

Tour de France du Numérique pour l'Éducation




Liberté pour les utilisateurs, pas pour les logiciels, par Benjamin Mako Hill

Un article fort intéressant de Benjamin Mako Hill (que nous traduisons souvent) qui apporte un éclairage nouveau à la différence importante entre « logiciel libre » et « open source ».

C’est bien la question de la liberté des utilisateurs qui est fondamentale ici. À mesure que la technologie avance et que de plus en plus de domaines expérimentent « le Libre », elle rejoint tout simplement la liberté des citoyens…

Remarque : C’est d’ailleurs pourquoi nous regrettons « l’abus d’open source » dans les premiers États Généraux de l’Open Source qui se déroulent actuellement à Paris (cf ce tweet ironique).

David Shankbone - CC by

Liberté pour les utilisateurs, pas pour les logiciels

Freedom for Users, Not for Software

Benjamin Mako Hill – 23 octobre 2011 – Blog personnel
(Traduction : Munto, VifArgent, aKa, KarmaSama, Lycoris, aaron, PeupleLa, bruno + anonymous)

En 1985, Richard Stallman a fondé le mouvement du Logiciel Libre en publiant un manifeste qui proposait aux utilisateurs d’ordinateurs de le rejoindre pour défendre, développer et diffuser des logiciels qui garantissent aux utilisateurs certaines libertés. Stallman a publié la « Définition du Logiciel Libre » (Free Software Definition ou FSD) qui énumère les droits fondamentaux des utilisateurs concernant les logiciels.

  • La liberté d’exécuter le programme, pour n’importe quel usage ;
  • la liberté d’étudier le fonctionnement du programme et de l’adapter à ses besoins ;
  • la liberté d’en redistribuer des copies pour aider les autres ;
  • la liberté d’améliorer le programme et de rendre publiques les améliorations, afin que la communauté entière puisse en bénéficier.

Stallman est informaticien. Il avait compris que la manière dont les programmeurs concevaient les logiciels pouvait influer sur les possibilités des utilisateurs à interagir avec eux. Par exemple, des programmeurs pourraient concevoir des systèmes qui espionnent les utilisateurs, vont à leur encontre ou créent des dépendances. Dans la mesure où les ordinateurs occupent une place de plus en plus importante dans la communication des usagers, et dans leur vie toute entière, leur expérience est de plus en plus sous le contrôle de la technologie, et par conséquent de ceux qui la maîtrisent. Si le logiciel est libre, les utilisateurs peuvent désactiver les fonctionnalités cachées ou abusives et travailler ensemble à l’amélioration et au contrôle de leurs technologies. Pour Stallman, le logiciel libre est essentiel à une société libre.

Hélas, beaucoup de personnes qui entendent « logiciels libres » (NdT : free software en anglais) pensent que le mot libre (free) veut dire qu’il peut être distribué gratuitement – une confusion bien naturelle puisque les logiciels libres peuvent être, et sont le plus souvent, partagés sans permission expresse ni paiement. Dans des tentatives concertées pour démêler cette confusion, le slogan « free as in free speech not as in free beer » (free comme dans la liberté de parole et non comme une bière gratuite), et la référence à la distinction que l’on fait en français entre libre et gratuit, sont devenus des clichés dans la communauté du logiciel libre. Une biographie de Stallman est d’ailleurs intitulée « Free as in Freedom » (NdT : Libre comme dans Liberté, biographie traduite et publiée par Framasoft dans sa collection Framabook).

À la fin des années 90, un groupe de passionnés de logiciels libres a suggéré un nouveau terme : « open source ». À l’instar de Stallman, ce groupe était agacé par l’ambiguïté autour du mot « free ». Cependant, la principale préoccupation du groupe open source était l’utilité du logiciel libre pour les entreprises.

Plutôt que de mettre en avant la « liberté », qui pouvait, selon eux, rebuter des entreprises commerciales, les promoteurs de l’open source décrivaient les bénéfices techniques que l’« ouverture » du développement de logiciels libres pourrait apporter, grâce à la collaboration de nombreux utilisateurs mis en réseau. Ces appels ont trouvé un écho au sein des entreprises high-tech à la fin du millénaire au moment où le système d’exploitation libre GNU/Linux gagnait en popularité et où le serveur web Apache dominait un marché bondé de concurrents propriétaires. Le concept « open source » prit un nouvel élan en 1998 quand Netscape rendit public le code source de son navigateur web Navigator.

Malgré des différences rhétoriques et philosophiques, les logiciels libres et les logiciels open source font référence aux mêmes programmes, aux mêmes communautés, aux mêmes licences et aux mêmes pratiques. La définition de l‘open source est presque une copie conforme des directives du logiciel libre publiées par la communauté Debian qui sont elles-mêmes une tentative de redéfinir la déclaration de Stallman sur la Définition du Logiciel Libre. Stallman a décrit cette distinction entre « logiciel libre » et « logiciel open source » comme étant le contraire d’un schisme. Dans un schisme, deux groupes religieux auront des cultes séparés, souvent à cause de désaccords mineurs sur des points de liturgie ou de doctrine. Dans le logiciel libre et l‘open source, les deux groupes se sont articulés autour de philosophies, de principes politiques et de motivations qui sont fondamentalement différentes. Et pourtant les deux parties continuent de travailler en étroite collaboration au sein des mêmes organisations.

Les conversations autour du libre et du gratuit dans les communautés du logiciel libre et de l‘open source ont occulté un second niveau d’ambiguïté dans le terme « logiciel libre », bien moins discuté : le terme a conduit à croire qu’il fallait interpréter les quatre libertés comme des déclarations sur les qualités que les programmes eux-mêmes devraient posséder. Stallman se fiche du logiciel libre en tant que tel, ce qui lui importe c’est la liberté des utilisateurs. Les slogans « free as in freedom » et « free speech not free beer » n’aident en rien à résoudre ce second type d’ambiguïté, et créent même de la confusion. « Free as in freedom » ne dit rien sur ce qui devrait être libre, tandis que « free speech not free beer », reproduit un problème similaire : les défenseurs de la liberté de parole ne défendent pas tant la liberté d’expression en tant que telle que la liberté des individus dans leur parole. Quand pour l’essentiel le discours des promoteurs du logiciel libre insiste sur les caractéristiques des programmes, certains en viennent à considérer la liberté de l’utilisateur comme un problème de second ordre – c’est tout simplement ce qui se produit lorsque le logiciel est libre.

Quand le logiciel est libre, mais pas les utilisateurs

La liberté de l’utilisateur ne découle pas toujours de la liberté du logiciel. En effet, le logiciel libre a pris de l’importance dans les domaines économique et politique : cela a suscité l’intérêt de certaines personnes qui souhaitaient en récolter les bénéfices tout en maintenant l’action et l’indépendance des utilisateurs dans des limites.

Google, Facebook, et autres titans de l’économie du Web ont bâti leur entreprise sur les logiciels libres. En les utilisant ils n’agissent pas seulement en passagers clandestins, dans de nombreux cas ces firmes partagent gratuitement, au minimum, une partie du code qui fait fonctionner leurs services et investissent des ressources conséquentes dans la création ou l’amélioration de ce code. Chaque utilisateur d’un réseau basé sur des logiciels libres peut posséder une copie du logiciel qui respecte les quatre libertés de la FSD. Mais à moins que ces utilisateurs n’exécutent le service web eux-mêmes- ce qui peut s’avérer techniquement ou économiquement infaisable – ils restent sous la coupe des firmes qui, elles, font bel et bien fonctionner leurs copies. Le « Logiciel en tant que Service » (Software as a Service, ou SaaS) – ou logiciel fourni via « le cloud » – est à priori entièrement compatible avec le principe d’un logiciel libre. Toutefois, du fait que les utilisateurs du service ne peuvent pas changer le logiciel ou l’utiliser comme ils le souhaitent sans l’autorisation et la surveillance de leur fournisseur de service, les utilisateurs de SaaS sont au moins aussi dépendants et vulnérables qu’ils le seraient si le code était fermé.

Chrome OS de Google est une tentative pour construire un système d’exploitation qui pousse les utilisateurs à être constamment en ligne et à utiliser des services comme Google Docs pour réaliser la plupart de leurs tâches informatiques. Quand Google a annoncé Chrome OS, nombreux étaient ceux qui ont applaudi dans la communauté du logiciel libre ; Chrome OS est en effet basé sur GNU/Linux, il s’agit presque entièrement de logiciel libre, et il avait l’appui de Google. Mais le but réel de Chrome OS est de changer l’endroit où les utilisateurs réalisent leurs tâches informatiques, en remplaçant les applications que l’utilisateur aurait fait tourner sur sa machine par des SaaS sur Internet. Chaque fois qu’on remplace un logiciel libre du bureau par un SaaS, on passe d’une situation où l’utilisateur avait le contrôle sur ses logiciels à une situation où il n’a pratiquement plus aucun contrôle. Par exemple, l’utilisation que fait Google des logiciels libre dans les services SaaS lui permet de surveiller tous les usages et d’ajouter ou retirer des fonctionnalités selon son bon vouloir. Ainsi, en se concentrant sur la liberté des logiciels et non sur celle des utilisateurs, bien des partisans du logiciel libre n’ont pas su anticiper cette inquiétante dynamique.

TiVo – le pionnier des magnétoscopes numériques – présentait un défi différent. Son système se basait sur GNU/Linux et, conformément à la licence « copyleft » sous laquelle sont distribués la plupart des logiciels libres, la société TiVo autorisait l’accès complet à son code source. Mais TiVo utilisait le chiffrage pour verrouiller son système afin qu’il ne s’exécute que sur des versions approuvées de Linux. Les utilisateurs de TiVo pouvaient étudier et modifier le logiciel TiVo, mais ils ne pouvaient pas utiliser ce logiciel modifié sur leur TiVo. Le logiciel était libre, les utilisateurs ne l’étaient pas.

Les SaaS, Chrome OS et la Tivoisation sont des sujets qui continuent de remuer le milieu des logiciels libres et open source et mettent à jour des lignes de fracture. Il n’est guère surprenant que les partisans de l‘open source ne voient aucun problème avec les SaaS, Chrome OS et la Tivoisation ; ils ne sont pas engagés dans la liberté des utilisateurs ou du logiciel. Toutefois chacun de ces exemples a été facteur de division, y compris parmi les personnes qui pensaient que le logiciel devrait être libre. La Fondation du Logiciel Libre (Free Software Foundation, FSF) a pris explicitement position contre chacun des sujets ci-dessus. Mais il a fallu du temps avant d’identifier chacune de ces menaces et ce fut laborieux de réussir à faire passer le message aux sympathisants. Aujourd’hui, il semble probable que Google et son modèle d’entreprise orienté service représentent une plus grande menace pour la liberté des futurs utilisateurs d’ordinateur que ne l’a été Microsoft. Mais comme Google se conforme scrupuleusement aux termes de la licence du logiciel libre et contribue aux projets de logiciels libres par une grande quantité de code et d’argent, les partisans du logiciel libre ont mis du temps à l’identifier comme une menace et à réagir.

Même la Free Software Foundation continue à se battre avec sa propre mission axée sur le logiciel. Stallman et la FSF ont travaillé ces dernières années pour déplacer du code non-libre qui s’exécute sur les périphériques internes des ordinateurs (par exemple, une carte wifi ou une carte graphique intégrée à l’intérieur d’un portable) depuis le disque dur principal de l’ordinateur vers les sous-processeurs eux-mêmes. L’idée derrière ces efforts est d’éliminer le code non-libre en le basculant vers les composants matériels. Mais les utilisateurs des logiciels sont-ils plus libres si les technologies propriétaires, qu’ils ne peuvent changer, existent dans leur ordinateur sous une forme plutôt qu’une autre ?

La clé pour répondre à cette question – et à d’autres -, c’est de rester concentré sur ce qui distingue libre et ouvert. Les promoteurs du logiciel libre doivent revenir à leur objectif premier : la liberté des personnes, et non celle des logiciels. L’apport fondamental de Stallman et du mouvement libre a été de relier les questions de la liberté et de l’autonomie personnelle à d’autres considérations, quoique ce lien ne soit pas évident pour beaucoup. La manière dont les utilisateurs resteront libres évoluera avec les changements de nature de la technologie. Et alors que certains adaptent les principes du logiciel libre à de nouveaux domaines, ils vont se retrouver confrontés à des problèmes de traduction comparables. Selon le soin que portera notre communauté à distinguer entre les différents mode d’ouverture et à mettre en évidence les questions de contrôle, de politique et de pouvoir, la philosophie du logiciel libre restera pertinente dans toutes ces discussions plus générales autour des nouveaux et différents biens communs – dans les logiciels et au delà.

Crédit photo : David Shankbone (Creative Commons By)




Non à la privatisation du domaine public par la Bibliothèque nationale de France !

L’association COMMUNIA, l’Open Knowledge Foundation France, La Quadrature du Net, Framasoft, Regards Citoyens, Veni Vidi Libri, le Parti Pirate, Libre Accès et SavoirsCom1 publient ce jour un communiqué dénonçant la signature par la BNF, le Commissariat aux investissements d’avenir et le ministère de la Culture et de la communication d’accords qui privatisent l’accès numérique à une part importante de notre patrimoine culturel.

Massimo Barbieri

Paris, le 18 janvier 2013 — Le ministère de la Culture a annoncé hier la conclusion de deux accords, signés entre la Bibliothèque nationale de France et des firmes privées, pour la numérisation de corpus de documents appartenant pour tout (livres anciens) ou partie (78 et 33 tours) au domaine public. Les fonds concernés sont considérables : 70 000 livres anciens français datant de 1470 à 1700, ainsi que plus de 200 000 enregistrements sonores patrimoniaux. Ces accords, qui interviennent dans le cadre des Investissements d’avenir et mobilisent donc de l’argent public, vont avoir pour effet que ces documents ne seront pas diffusés en ligne, mais uniquement sur place à la BnF, sauf pour une proportion symbolique.

Ces partenariats prévoient une exclusivité de 10 ans accordée à ces firmes privées, pour commercialiser ces corpus sous forme de base de données, à l’issue de laquelle ils seront mis en ligne dans Gallica, la bibliothèque numérique de la BnF. Les principaux acheteurs des licences d’accès à ces contenus seront des organismes publics de recherche ou des bibliothèques universitaires, situation absurde dans laquelle les acteurs du service public se retrouveront contraints et forcés, faute d’alternative à acheter des contenus numérisés qui font partie du patrimoine culturel commun.

Les conditions d’accès à ces éléments de patrimoine du domaine public seront restreintes d’une façon inadmissible par rapport aux possibilités ouvertes par la numérisation. Seule la minorité de ceux qui pourront faire le déplacement à Paris et accéder à la BnF seront en mesure de consulter ces documents, ce qui annule le principal avantage de la révolution numérique, à savoir la transmission à distance. Partout enFrance et dans le monde, ce sont les chercheurs, les étudiants, les enseignants, les élèves, les amateurs de culture, les citoyens qui se trouveront privés de l’accès libre et gratuit à ce patrimoine.

La valeur du domaine public réside dans la diffusion de la connaissance qu’il permet et dans la capacité à créer de nouvelles œuvres à partir de notre héritage culturel. Sa privatisation constitue une atteinte même à la notion de domaine public qui porte atteinte aux droits de chacun. Ces pratiques ont été condamnées sans ambiguïté par le Manifeste du domaine public, rédigé et publié par le réseau européen COMMUNIA financé par la Commission européenne :

Toute tentative infondée ou trompeuse de s’approprier des œuvres du domaine public doit être punie légalement. De façon à préserver l’intégrité du domaine public et protéger ses usagers de prétentions infondées ou trompeuses, les tentatives d’appropriation exclusive des œuvres du domaine public doivent être déclarées illégales.

Les institutions patrimoniales doivent assumer un rôle spécifique dans l’identification efficace et la préservation des œuvres du domaine public. (…) Dans le cadre de ce rôle, elles doivent garantir que les œuvres du domaine public sont accessibles à toute la société en les étiquetant, en les préservant et en les rendant librement accessibles.

À titre de comparaison, les partenariats validés par le ministère de la Culture aboutissent à un résultat encore plus restrictif pour l’accès à la connaissance que celui mis en œuvre par Google dans son programme Google Livres, dans lequel les ouvrages restent accessibles gratuitement en ligne sur le site des institutions partenaires. La mobilisation de l’emprunt national n’aura donc en aucun cas permis de trouver une alternative acceptable aux propositions du moteur de recherche.

Le ministère de la Culture affirme dans son communiqué que ces partenariats sont compatibles avec les recommandations du Comité des sages européens « A New Renaissance ». C’est à l’évidence faux, le rapport du Comité des sages admettant que des exclusivités commerciales puissent être concédées à des firmes privées pour 7 ans au maximum, mais insistant sur la nécessité que les documents du domaine public restent accessibles gratuitement en ligne, y compris dans un cadre transfrontalier. Plus encore, les accords sont en flagrante contradiction avec la Charte Europeana du Domaine Public (pdf) alors même que l’un de ses signataires occupe aujourd’hui la présidence de la fondation Europeana.

Par ailleurs, le rapport du Comité des sages énonce comme première recommandation que les partenariats public-privé de numérisation soient rendus publics afin de garantir la transparence, ce qui n’est pas été fait ici. L’opacité a régné de bout en bout sur la conclusion de ces partenariats, au point qu’une question parlementaire posée au ministère de la Culture par le député Marcel Rogemont est restée sans réponse depuis le 23 octobre 2012, alors même qu’elle soulevait le problème de l’atteinte à l’intégrité du domaine public. Enfin, les partenariats publics-privés ont été récemment dénoncés par l’Inspection générale des finances dans un rapport commandé par le ministre de l’Économie, Pierre Moscovici, et par celui du Budget, Jérôme Cahuzac. Ces partenariats sont jugés trop onéreux, trop risqués, trop complexes et trop profitables aux seuls intérêts privés.

Nous, associations et collectifs signataires de cette déclaration, attachés à la valeur du domaine public et à sa préservation comme bien commun, exprimons notre plus profond désaccord à propos de la conclusion de ces partenariats et en demandons le retrait sans délai. Nous appelons toutes les structures et personnes partageant ces valeurs à nous rejoindre dans cette opposition et à manifester leur désapprobation auprès des autorités responsables : BnF, Commissariat général à l’investissement et ministère de la Culture. Nous demandons également la publication immédiate du texte intégral des accords.

Contacts presse

  • L’Open Knowledge Foundation France L’Open Knowlegde Foundation (OKFN) est une organisation à but non lucratif fondée en 2004 à Cambridge qui promeut la culture libre sous toutes ses formes. Ses membres considèrent qu’un accès ouvert aux informations associé aux outils et aux communautés pour les utiliser sont des éléments essentiels pour améliorer notre gouvernance, notre recherche, notre économie et notre culture.
  • La Quadrature du Net La Quadrature du Net est une organisation de défense des droits et libertés des citoyens sur Internet. À ce titre, la Quadrature du Net intervient notamment dans les débats concernant la liberté d’expression, le droit d’auteur, la régulation du secteur des télécommunications ou encore le respect de la vie privée. Contact : Philippe Aigrain, co-fondateur et conseiller stratégique pa@laquadrature.net +33 6 85 80 19 31
  • Framasoft Réseau d’education populaire au Libre en général et au logiciel libre en particulier. Contact : Alexis Kauffmann, fondateur de Framasoft
  • Regards Citoyens est un collectif transpartisan qui vise à utiliser un maximum de données publiques pour alimenter le débat politique tout en appliquant les principes de la gouvernance ouverte. En plus de faire la promotion de l’OpenData et l’OpenGov en France, il réalise des projets web n’utilisant que des logiciels libres et des données publiques pour faire découvrir et valoriser les institutions démocratiques françaises auprès du plus grand nombre.
  • Le Parti Pirate est un mouvement politique ralliant celles et ceux qui aspirent à une société capable de : partager fraternellement les savoirs culturels et scientifiques de l’humanité, protéger l’égalité des droits des citoyens grâce des institutions humaines et transparentes, défendre les libertés fondamentales sur Internet comme dans la vie quotidienne.
  • Veni, Vidi, Libri a pour objectif de promouvoir les licences libres ainsi que de faciliter le passage de créations sous licence libre.
  • Libre Accès a pour objet de sensibiliser le plus grand nombre aux enjeux de l’art libre et de défendre les droits de ses amateurs et auteurs.

Crédit photo : Massimo Barbieri (Creative Commons By-Sa)




Remue-ménage dans le triage (Libres conseils 14/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, goofy, Astalaseven, okram, KoS, Lycoris, 4nti7rust, peupleLa + Julius22

Penser/Classer

Andre Klapper

Dans la vraie vie, Andre Klapper est maître ès débogage. Pendant sa pause déjeuner ou sa sieste, il travaille à divers trucs sur GNOME (bugsquad, équipe de release, traduction, documentation, etc.), ou Maemo, étudie ou mange de la crème glacée.


Au tout début, je n’avais qu’une seule et unique question : comment imprimer seulement une partie du courriel que j’ai reçu dans Evolution, le client de messagerie GNOME ? J’ai donc demandé sur la liste de diffusion.

Ça faisait exactement un an que j’étais passé sous Linux, frustré de ne pouvoir faire fonctionner mon modem après avoir réinstallé un OS propriétaire plutôt populaire à l’époque.

La réponse à ma question fut : « impossible ». Des petits génies auraient parcouru le code, l’auraient compilé, l’auraient bidouillé pour qu’il se comporte comme voulu, puis auraient soumis un correctif joint au rapport de bogue. Bon. Comme vous l’aurez deviné, je n’étais pas un petit génie. Mes talents de programmeur sont plutôt limités, donc sur le moment je suis resté coincé sur une solution de contournement plutôt lourde pour mon impression. La réponse que j’avais reçue sur la liste de diffusion signalait également que cette fonctionnalité était prévue, et qu’on avait complété pour moi un rapport de bogue — sans préciser où, mais je m’en fichais, j’étais content d’apprendre qu’il était prévu de corriger mon problème prochainement.

Il se peut que je sois resté abonné à la liste de diffusion par simple paresse. Certains mentionnaient le rapporteur de bogues de temps en temps, souvent comme une réponse directe aux demandes de fonctionnalités, alors j’y ai finalement jeté un coup d’œil. Mais les rapporteurs de bogue, en particulier Bugzilla, sont d’étranges outils avec beaucoup d’options complexes. Un domaine que vous préférez normalement éviter à moins que vous ne soyez masochiste. Ils contiennent maints tickets décrivant des bogues ou des demandes de fonctionnalités émanant d’utilisateurs et de développeurs. Il semblait également que ces rapports aient été en partie utilisés pour planifier les priorités (appeler cela « gestion de projet » aurait été un euphémisme ; moins d’un quart des problèmes qui étaient planifiés pour être résolus ou implémentés dans une version spécifique étaient réellement corrigés au bout du compte).

Au-delà d’une vision intéressante sur les problèmes du logiciel et sur la popularité de certaines demandes, ce que j’ai découvert, c’est beaucoup de choses incohérentes et pas mal de bruit, comme des doublons ou des rapports de bogues manquant d’éléments pour pouvoir être traités correctement. J’ai eu envie de nettoyer un peu en « triant » les rapports de bogues disponibles. Je ne sais pas bien ce que cela vous dit sur mon état d’esprit — ajouter ici des mots-clés bidon pour une caractérisation aléatoire, comme organisé, persévérant et intelligent. C’est assez ironique quand on pense à mon père qui se plaignait toujours du bordel dans ma chambre. Donc à cette époque lointaine de modems commutés, j’avais pour habitude de rassembler mes questions et de les faire remonter sur IRC une fois par jour afin de mitrailler de questions le responsable des bogues d’Evolution, qui était toujours accueillant, patient et soucieux de partager son expérience. Si jamais à l’époque il y avait un guide de triage qui couvrait les savoirs de base pour la gestion des bogues et qui exposait les bonnes pratiques et les pièges les plus courants, je n’en avais pas entendu parler.

Le nombre de signalements baissa de 20% en quelques mois, bien que ce ne fût bien évidemment pas grâce à une unique personne qui faisait le tri des tickets. Il y avait manifestement du travail en attente, comme diminuer le nombre des tickets attribués aux développeurs pour qu’ils puissent mieux se concentrer, parler avec eux, définir les priorités, et répondre aux commentaires non-traités de certains utilisateurs. L’open source accueille toujours bien les contributions une fois que vous avez trouvé votre créneau.

Bien plus tard, j’ai pris conscience qu’il y avait de la documentation à consulter. Luis Villa, qui fut probablement le premier des experts en bogues, a écrit un essai titré « Pourquoi tout le monde à besoin d’un expert en bogue » et la majorité des équipes anti-bogues sur les projets open source ont publié au même moment des guides sur le triage qui ont aidé les débutants à s’impliquer dans la communauté. De nombreux développeurs ont débuté leur fantastique carrière dans l’open source en triant les bogues et ont ainsi acquis une première expérience de gestion de projet logiciel.

Il y a aussi de nos jours des outils qui peuvent vous épargner beaucoup de temps quand arrive l’abrutissant travail de triage. Du côté serveur, l’extension « stock answers » de GNOME fournit les commentaires courants et fréquemment usités afin de les ajouter aux tickets en un clic pendant que, du côté client, vous pouvez faire tourner votre propre script  GreaseMonkey ou l’extension Jetpack de Matej Cepl, appelée  « bugzilla-triage-scripts » [2].

Si vous êtes un musicien moyen ou médiocre mais que vous aimez tout de même la musique par-dessus tout, vous pouvez toujours y travailler en tant que journaliste. Le développement de logiciels possède également ce genre de niches qui peuvent vous donner satisfaction, au-delà de l’idée première d’écrire du code. Cela vous prendra un peu de temps pour les trouver, mais ça vaut la peine d’y consacrer vos efforts, votre expérience et vos  contacts. Avec un peu de chance et de talent, cela peut même vous permettre de gagner votre vie dans le domaine qui vous intéresse personnellement… et vous éviter de finir pisse-code.

[1] http://tieguy.org/talks-files/LCA-2005-paper-html/index.html

[2] https://fedorahosted.org/bugzilla-triage-scripts

Crédit photo : Doug DuCap Food and Travel (CC BY-NC-SA 2.0)