La communication, sur Internet et ses médias sociaux comme dans la vie, doit rester dans le cadre des lois. Mais est-il normal qu’un puissant média comme Facebook s’arroge le droit de décider, le plus souvent sans explication ni recours, de quels sujets on parle de façon privée ?
Voici déjà le 15e article de la série écrite par Rick Falkvinge. Le fondateur du Parti Pirate suédois prend ici l’exemple de la censure exercée par Facebook, qui en quelque sorte se substitue aux lois en imposant la sienne et bride la liberté d’expression.
Le fil directeur de la série de ces 21 articles, comme on peut le voir clairement dans les épisodes précédents que nous vous avons déjà livrés, c’est la perte de certaines libertés dont nous disposions encore assez récemment, avant que le passage au tout-numérique ne nous en prive.
Les médias numériques interdisent à nos enfants d’aborder certains sujets.
Traduction Framalang : wyatt, draenog, goofy, et un⋅e anonyme
Dans le pire des cas il pouvait être interdit à nos parents de se rencontrer. Mais aujourd’hui, on empêche nos enfants de parler de certains sujets, une fois la conversation en cours. Cette évolution est effrayante.
Lorsqu’un lien vers The Pirate Bay est publié sur Facebook par nos enfants, une petite fenêtre fait son apparition à l’écran avec pour message « Le lien que vous venez de publier n’est pas approprié. Veuillez ne plus publier de tels liens ».
Oui, même dans les conversations privées. Particulièrement dans les conversations privées.
Cela peut paraître anodin, c’est véritablement inouï. Les discussions de nos enfants ne sont pas restreintes en soi, mais elles sont en revanche contrôlées si elles abordent les sujets sensibles dont le régime ne souhaite pas qu’on discute et on les empêche d’en discuter. C’est bien pire que de simplement interdire à certaines personnes de se rencontrer.
L’équivalent analogique de cette pratique serait une conversation téléphonique classique de nos parents dans laquelle une troisième voix menaçante interviendrait, parlant lentement sur un ton assez doux pour être perçu comme une menace : « Vous avez fait mention d’un sujet interdit. Veuillez ne plus discuter de sujets interdits à l’avenir. »
Nos parents auraient été effrayés si cela s’était produit — et à juste raison !
Mais dans le monde numérique de nos enfants, au lieu d’être conspuée, cette pratique est acclamée par les mêmes personnes qui la réprouveraient si elles venaient à en être les victimes.
Dans le cas de notre exemple bien sûr, n’importe lequel des liens vers The Pirate Bay est considéré comme sujet interdit, selon le postulat — le postulat ! — qu’ils mènent à la production de copies qui seraient décrétées en violation du droit d’auteur par un tribunal.
La première fois que j’ai vu la fenêtre Facebook m’enjoignant à ne pas discuter de sujets interdits, je tentais de partager via The Pirate Bay du contenu à caractère politique que j’avais créé. Cette façon de faire s’est avérée très efficace pour partager des gros fichiers, c’est exactement la raison pour laquelle le site est très utilisé (qui aurait pensé à ça, hein ?), notamment par des personnes qui comme moi veulent partager de vastes séries de documents politiques.
Il existe des canaux de communications privés, mais très peu de personnes les utilisent, et les politiciens (oui, nos parents analogiques inclus) s’en réjouissent, à cause du « terrorisme » et autres épouvantails.
La vie privée demeure de votre responsabilité.
Des routes et des ponts (15) – les institutions et l’open source
Voici le plus long des chapitres de Des routes et des ponts de Nadia Ehgbal que nous traduisons pour vous semaine après semaine (si vous avez raté les épisodes précédents). Il s’agit cette fois-ci des institutions (ici nord-américaines) qui par diverses formes de mécénat, contribuent au développement et au maintien des projets d’infrastructure numérique open source parce qu’elles y trouvent leur intérêt. Pas sûr qu’en Europe et en France ces passerelles et ces coopérations bien comprises entre entreprises et open source soient aussi habituelles…
Les efforts institutionnels pour financer les infrastructures numériques
Il existe des institutions qui s’efforcent d’organiser collectivement les projets open source et aider à leur financement. Il peut s’agir de fondations indépendantes liées aux logiciels, ou d’entreprises de logiciels elles-mêmes qui apportent leur soutien.
Soutien administratif et mécénat financier
Plusieurs fondations fournissent un soutien organisationnel, comme le mécénat financier, aux projets open source : en d’autres termes, la prise en charge des tâches autres que le code, dont beaucoup de développeurs se passent volontiers. L’Apache Software Foundation, constituée en 1999, a été créée en partie pour soutenir le développement du serveur Apache HTTP, qui dessert environ 55 % de la totalité des sites internet dans le monde.
Depuis lors, la fondation Apache est devenue un foyer d’ancrage pour plus de 350 projets open source. Elle se structure comme une communauté décentralisée de développeurs, sans aucun employé à plein temps et avec presque 3000 bénévoles. Elle propose de multiples services aux projets qu’elle héberge, consistant principalement en un soutien organisationnel, juridique et de développement. En 2011, Apache avait un budget annuel de plus de 500 000 $, issu essentiellement de subventions et de donations.
Le Software Freedom Conservancy, fondée en 2006, fournit également des services administratifs non-lucratifs à plus de 30 projets libres et open source. Parmi les projets que cette fondation soutient, on retrouve notamment Git, le système de contrôle de versions dont nous avons parlé plus haut et sur lequel GitHub a bâti sa plateforme, et Twisted, une librairie Python déjà citée précédemment.
On trouve encore d’autres fondations fournissant un soutien organisationnel, par exemple The Eclipse Foundation et Software in the Public Interest. La Fondation Linux et la Fondation Mozilla soutiennent également des projets open source externes de diverses façons (dont nous parlerons plus loin dans ce chapitre), bien que ce ne soit pas le but principal de leur mission.
Il est important de noter que ces fondations fournissent une aide juridique et administrative, mais rarement financière. Ainsi, être sponsorisé par Apache ou par le Software Freedom Conservancy ne suffit pas en soi à financer un projet ; les fondations ne font que faciliter le traitement des dons et la gestion du projet.
Un autre point important à noter, c’est que ces initiatives soutiennent le logiciel libre et open source d’un point de vue philosophique, mais ne se concentrent pas spécifiquement sur ses infrastructures. Par exemple, OpenTripPlanner, projet soutenu par le Software Freedom Conservancy, est un logiciel pour planifier les voyages : même son code est open source, il s’agit d’une application destinée aux consommateurs, pas d’une infrastructure.
Créer une fondation pour aider un projet
Certains projets sont suffisamment importants pour être gérés à travers leurs propres fondations. Python, Node.js, Django et jQuery sont tous adossés à des fondations.
Il y a deux conditions fondamentales à remplir pour qu’une fondation fonctionne : accéder au statut d’exemption fiscale et trouver des financements.
Réussir à accéder au statut 501(c), la loi américaine qui définit les organismes sans but lucratif, peut s’avérer difficile pour ces projets, à cause du manque de sensibilisation autour de la technologie open source et de la tendance à voir l’open source comme une activité non-caritative. En 2013, une controverse a révélé que l’IRS (Internal Revenue Service, service des impôts américain) avait dressé une liste de groupes postulant au statut d’exemption fiscale qui nécessiteraient davantage de surveillance : l’open source en faisait partie. Malheureusement, ces contraintes ne facilitent pas l’institutionnalisation de ces projets.
Par exemple, Russell Keith-Magee, qui était jusqu’à une époque récente président de la Django Software Foundation, a expliqué que la fondation ne pouvait pas directement financer le développement logiciel de Django, sans prendre le risque de perdre son statut 501(c). La fondation soutient plutôt le développement via des activités communautaires.
En juin 2014, la Fondation Yorba, qui a créé des logiciels de productivité qui tournent sous Linux, s’est vu refuser le statut 501(c) après avoir attendu la décision pendant presque quatre ans et demi. Jim Nelson, son directeur exécutif, a été particulièrement inquiété par le raisonnement de l’IRS : parce que leur logiciel pouvait potentiellement être utilisé par des entités commerciales, le travail de Yorba ne pouvait pas être considéré comme caritatif. Une lettre de l’IRS explique :
« Se contenter de publier sous une licence open source tous usages ne signifie pas que les pauvres et les moins privilégiés utiliseront effectivement les outils. […] On ne peut pas savoir qui utilise les outils, et encore moins quel genre de contenus sont créés avec ces outils. »
Nelson a pointé les failles de ce raisonnement dans un billet de blog, comparant la situation à celle d’autres biens publics :
« Il y a une organisation caritative ici à San Francisco qui plante des arbres pour le bénéfice de tous. Si l’un de leurs arbres… rafraîchit les clients d’un café pendant qu’ils profitent de leur expresso, cela signifie-t-il que l’organisation qui plante des arbres n’est plus caritative ? »
Les projets qui accèdent au statut 501(c) ont tendance à insister sur l’importance de la communauté, comme la Python Software Foundation, dont l’objet est de « promouvoir, protéger et faire progresser le langage de programmation Python, ainsi que de soutenir et faciliter la croissance d’une communauté diversifiée et internationale de programmeurs Python ».
En parallèle, certains projets candidatent pour devenir une association de commerce au sens du statut 501(c)(6). La Fondation jQuery en est un exemple, se décrivant comme « une association de commerce à but non-lucratif pour développeurs web, financée par ses membres ». La Fondation Linux est également une association de commerce.
Le deuxième aspect de la formalisation de la gouvernance d’un projet à travers une fondation est la recherche de la source de financement adéquate. Certaines fondations sont financées par des donations individuelles, mais ont proportionnellement de petits budgets.
La Django Software Foundation, par exemple, gère Django, le plus populaire des frameworks web écrits en Python, utilisé par des entreprises comme Instagram et Pinterest. La Fondation est dirigée par des bénévoles, et reçoit moins de 60 000 $ de donations par an. L’année dernière, la Django Software Foundation a reçu une subvention ponctuelle de la part de la Fondation Mozilla.
Parmi les autres sources habituelles de financement on trouve les entreprises mécènes. En effet, les entreprises privées sont bien placées pour financer ces projets logiciels, puisqu’elles les utilisent elles-mêmes. La Fondation Linux est l’un de ces cas particuliers qui rencontrent le succès, et ce grâce la valeur fondamentale du noyau Linux pour les activités de quasiment toutes les entreprises. La Fondation Linux dispose de 30 millions de dollars d’un capital géré sur une base annuelle, alimenté par des entreprises privées comme IBM, Intel, Oracle et Samsung – et ce chiffre continue d’augmenter.
Créer une fondation pour soutenir un projet est une bonne idée pour les projets d’infrastructure très conséquents. Mais cette solution est moins appropriée pour de plus petits projets, en raison de la quantité de travail, des ressources, et du soutien constant des entreprises, nécessaires pour créer une organisation durable.
Node.js est un exemple récent d’utilisation réussie d’une fondation pour soutenir un gros projet. Node.js est un framework JavaScript, développé en 2009 par Ryan Dahl et différents autres développeurs employés par Joyent, une entreprise privée du secteur logiciel. Ce framework est devenu extrêmement populaire, mais a commencé à souffrir de contraintes de gouvernance liées à l’encadrement par Joyent, que certaines personnes estimaient incapable de représenter pleinement la communauté enthousiaste et en pleine croissance de Node.js.
En 2014, un groupe de contributeurs de Node.js menaça de forker le projet. Joyent essaya de gérer ces problèmes de gouvernance en créant un conseil d’administration pour le projet, mais la scission eut finalement lieu, le nouveau fork prenant le nom d’io.js. En février 2015 fut annoncée l’intention de créer une organisation 501(c) (6) en vue d’extraire Node.js de la mainmise de Joyent. Les communautés Node.js et io.js votèrent pour travailler ensemble sous l’égide de cette nouvelle entité, appelée la Fondation Node.js. La Fondation Node.js, structurée suivant les conseils de la Fondation Linux, dispose d’un certain nombre d’entreprises mécènes qui contribuent financièrement à son budget, notamment IBM, Microsoft et payPal. Ces sponsors pensent retirer une certaine influence de leur soutien au développement d’un projet logiciel populaire qui fait avancer le web, et ils ont des ressources à mettre à disposition.
Un autre exemple prometteur est Ruby Together, une organisation initiée par plusieurs développeurs Ruby pour soutenir des projets d’infrastructure Ruby. Ruby Together est structuré en tant qu’association commerciale, dans laquelle chaque donateur, entreprise ou individu, investit de l’argent pour financer le travail à temps plein de développeurs chargés d’améliorer le cœur de l’infrastructure Ruby. Les donateurs élisent un comité de direction bénévole, qui aide à décider chaque mois sur quels projets les membres de Ruby Together devraient travailler.
Ruby Together fut conçue par deux développeurs et finance leur travail de : André Arko et David Radcliffe. Aujourd’hui, en avril 2016, est également rémunéré le travail de quatre autres mainteneurs d’infrastructure. Le budget mensuel en mars 2016 était d’un peu plus de 18 000 dollars par mois, couvert entièrement par des dons. La création de Ruby Together fut annoncée en mars 2015 et reste un projet récent, mais pourrait bien servir de base à un modèle davantage orienté vers la communauté pour financer la création d’autres projets d’infrastructure.
Programmes d’entreprises
Les éditeurs de logiciels soutiennent les projets d’infrastructure de différentes manières.
En tant que bénéficiaires des projets d’infrastructures, ils contribuent en faisant remonter des dysfonctionnements et des bugs, en proposant ou soumettant de nouvelles fonctionnalités ou par d’autres moyens. Certaines entreprises encouragent leurs employés à contribuer à des projets d’une importance critique sur leur temps de travail. De nombreux employés contribuent ainsi de manière significative à des projets open source extérieurs à l’entreprise. Pour certains employés, travailler sur de l’open source fait clairement partie de leur travail. L’allocation de temps de travail de leurs salariés est une des plus importantes façons de contribuer à l’open source pour les entreprises.
Les grandes entreprises comme Google ou Facebook adhèrent avec enthousiasme à l’open source, de façon à inspirer confiance et renforcer leur influence ; elles sont de fait les seuls acteurs institutionnels assez importants qui peuvent assumer son coût sans avoir besoin d’un retour financier sur investissement. Les projets open source aident à renforcer l’influence d’une entreprise, que ce soit en publiant son propre projet open source ou en embauchant des développeurs de premier plan pour qu’ils travaillent à plein temps sur un projet open source.
Ces pratiques ne sont pas limitées aux entreprises purement logicielles. Walmart, par exemple, qui est un soutien majeur de l’open source, a investi plus de deux millions de dollars dans un projet open source nommé hapi. Eran Hammer, développeur senior à Walmart Labs, s’est empressé de préciser que « l’open source, ce n’est pas du caritatif » et que les ressources d’ingénierie gratuites sont proportionnelles à la taille des entreprises qui utilisent hapi. Dion Almaer, l’ancien vice-président en ingénierie de Walmart Labs, a remarqué que leur engagement envers l’open source les aidait à recruter, à construire une solide culture d’entreprise, et à gagner « une série d’effets de levier ».
En termes de soutien direct au maintien du projet, il arrive que des entreprises embauchent une personne pour travailler à plein temps à la maintenance d’un projet open source. Les entreprises donnent aussi occasionnellement à des campagnes de financement participatif pour un projet particulier. Par exemple, récemment, une campagne sur Kickstarter pour financer un travail essentiel sur Django a reçu 32 650 £ (environ 40 000 €) ; Tom Christie, l’organisateur de la campagne, a déclaré que 80 % du total venait d’entreprises. Cependant, ces efforts sont toujours consacrés à des projets spécifiques et les infrastructures numériques ne sont pas encore vues communément comme une question de responsabilité sociale par les entreprises de logiciel à but lucratif. Cela laisse encore beaucoup de marge aux actions de défense et promotion.
L’un des programmes d’entreprise les plus connus est le Summer of Code de Google (été de programmation, souvent nommé GSoC), déjà mentionné dans ce livre, qui offre de l’argent à des étudiant⋅e⋅s pour travailler sur des projets open source pendant un été. Les étudiant⋅e⋅s sont associé⋅e⋅s à des mentors qui vont les aider à se familiariser avec le projet. Le Summer of Code est maintenu par le bureau des programmes open source de Google, et il a financé des milliers d’étudiant⋅e⋅s.
Le but du Summer of Code est de donner à des étudiants la possibilité d’écrire du code pour des projets open source, non de financer les projets eux-mêmes.
L’an dernier, Stripe, une entreprise de traitement des paiements, a annoncé une « retraite open source », offrant un salaire mensuel d’un maximum de 7500 dollars pour une session de trois mois dans les locaux de Stripe. À l’origine, l’entreprise voulait uniquement offrir deux bourses, mais après avoir reçu 120 candidatures, le programme a été ouvert à quatre bénéficiaires.
Ces derniers ont été enchantés par cette expérience. L’un d’entre eux, Andrey Petrov, continue de maintenir la bibliothèque Python urllib3 dont nous avons déjà parlé, et qui est largement utilisée dans l’écosystème Python.
À propos de cette expérience, Andrey a écrit :
« La publication et la contribution au code open source vont continuer que je sois payé pour ou non, mais le processus sera lent et non ciblé. Ce qui n’est pas un problème, car c’est ainsi que l’open source a toujours fonctionné. Mais on n’est pas obligé d’en rester là. […]
Si vous êtes une entreprise liée à la technologie, allouez s’il vous plaît un budget pour du financement et des bourses dans le domaine de l’open source. Distribuez-le sur Gittip [Note : Gittip est maintenant dénommé Gratipay. Le produit a été quelque peu modifié depuis la publication originelle du billet d’Andrew] si vous voulez, ou faites ce qu’a fait Stripe et financez des sprints ambitieux pour atteindre des objectifs de haute valeur.
Considérez ceci comme une demande solennelle de parrainage : s’il vous plaît, aidez au financement du développement d’urllib3. »
La retraite open source de Stripe peut servir de modèle aux programmes de soutien. Stripe a décidé de reconduire le programme pour une deuxième année consécutive en 2015. Malgré la popularité de leur programme et la chaude réception qu’il a reçue chez les développeurs et développeuses, cette pratique n’est toujours pas répandue dans les autres entreprises.
Les entreprises montrent un intérêt croissant pour l’open source, et personne ne peut prédire au juste ce que cela donnera sur le long terme. Les entreprises pourraient régler le problème du manque de support à long terme en consacrant des ressources humaines et un budget aux projets open source. Des programmes de bourse formalisés pourraient permettre de mettre en contact des entreprises avec des développeurs open source ayant besoin d’un soutien à plein temps. Alors que les équipes de contributeurs à un projet étaient souvent composées d’une diversité de développeurs venant de partout, peut-être seront-elles bientôt composées par un groupe d’employés d’une même entreprise. Les infrastructures numériques deviendront peut-être une série de « jardins clos », chacun d’entre eux étant techniquement ouvert et bénéficiant d’un soutien solide, mais en réalité, grâce à ses ressources illimitées, une seule entreprise et de ses employés en assureront le soutien.
Mais si on pousse la logique jusqu’au bout, ce n’est pas de très bon augure pour l’innovation. Jeff Lindsay, un architecte logiciel qui a contribué à mettre en place l’équipe de Twilio, une entreprise performante de solutions de communication dans le cloud, livrait l’an dernier ses réflexions dans une émission :
« À Twilio, on est incité à améliorer le fonctionnement de Twilio, à Amazon on est incité à améliorer le fonctionnement d’Amazon. Mais qui est incité à mieux les faire fonctionner ensemble et à offrir plus de possibilités aux usagers en combinant les deux ? Il n’y a personne qui soit vraiment incité à faire ça. »
Timothy Fuzz, un ingénieur système, ajoute :
« Pour Bruce Schneier, cette situation tient du servage. Nous vivons dans un monde où Google est une cité-état, où Apple est une cité-état et… si je me contente de continuer à utiliser les produits Google, si je reste confiné dans l’environnement Google, tout me paraît bénéfique. Mais il est quasi impossible de vivre dans un monde où je change d’environnement : c’est très pénible, vous tombez sur des bugs, et aucune de ces entreprises ne cherche vraiment à vous aider. Nous sommes dans ce monde bizarre, mais si vous regardez du côté des cités-états, l’un des problèmes majeurs c’est le commerce inter-étatique : si on doit payer des droits de douane parce qu’on cherche à exporter quelque chose d’Austin pour le vendre à Dallas, ce n’est pas un bon modèle économique. On pâtit de l’absence d’innovation et de partage des idées. On en est là, aujourd’hui. »
Bien que l’argument du « servage » se réfère généralement aux produits d’une entreprise, comme l’addiction à l’iPhone ou à Android, il pourrait être tout aussi pertinent pour les projets open source parrainés. Les améliorations prioritaires seront toujours celles qui bénéficient directement à l’entreprise qui paie le développeur. Cette remarque ne relève pas de la malveillance ou de la conspiration : simplement, être payé par une entreprise pour travailler à un projet qui ne fait pas directement partie de ses affaires est une contrainte à prendre en compte.
Mais personne, pas plus Google que la Fondation Linux ou qu’un groupe de développeurs indépendants, ne peut contrôler l’origine d’un bon projet open source. Les nouveaux projets de valeur peuvent germer n’importe où, et quand ils rendent un service de qualité aux autres développeurs, ils sont largement adoptés. C’est une bonne chose et cela alimente l’innovation.
Aide spécifique de fondation
Deux fondations ont récemment fait part de leur décision de financer plus spécifiquement l’infrastructure numérique : la Fondation Linux et la Fondation Mozilla.
Après la découverte de la faille Heartbleed, la Fondation Linux a annoncé qu’elle mettait en place l’Initiative pour les infrastructures essentielles (Core Infrastructure Initiative, CII) pour éviter que ce genre de problème ne se reproduise. Jim Zemlin, le directeur-général de la Fondation Linux, a réuni près de 4 millions de dollars en promesses de dons provenant de treize entreprises privées, dont Amazon Web Services, IBM et Microsoft, pour financer des projets liés à la sécurité des infrastructures pour les trois ans à venir. La Fondation Linux s’occupe également d’obtenir des financements gouvernementaux, y compris de la Maison-Blanche.
La CII est officiellement un projet de la fondation Linux. Depuis sa création en avril 2014, la CII a sponsorisé du travail de développement d’un certain nombre de projets, dont OpenSSL, NTP, GnuPG (un système de chiffrement des communications) et OpenSSH (un ensemble de protocoles relatifs à la sécurité). La CII se concentre en priorité sur une partie de l’infrastructure numérique : les projets relatifs à la sécurité.
Au mois d’octobre 2015, Mitchell Baker, la présidente de la Fondation Mozilla, a annoncé la création du Programme de soutien à l’open source de Mozilla (Mozilla Open Source Support Program, MOSS) et a promis de consacrer un million de dollars au financement de logiciels libres et open source. Selon Baker, ce programme aura deux volets : un volet « rétribution » pour les projets qu’utilise Mozilla et un volet « contribution » pour les projets libres et open source en général. Grâce aux suggestions de la communauté, Mozilla a sélectionné neuf projets pour la première série de bourses. Ils se disent également prêts à financer des audits de sécurité pour les projets open source importants.
Enfin, certaines fondations contribuent ponctuellement à des projets de développement logiciel. Par exemple, la Python Software Foundation propose aux individus et aux associations des bourses modestes destinées pour la plupart aux actions pédagogiques et de sensibilisation.
Autres acteurs institutionnels
Il existe plusieurs autres acteurs qui apportent diverses formes de soutien aux infrastructures numériques : Github, le capital-risque et le monde universitaire. Si Facebook est un « utilitaire social » et Google un « utilitaire de recherche », tous deux régulant de facto les corps dans leur domaine respectif – alors Github a une chance de devenir « l’utilitaire open source ». Son modèle économique l’empêche de devenir un mastodonte financier (contrairement à Facebook ou Google dont le modèle est basé sur la publicité, alors que Github se monétise par l’hébergement de code pour les clients professionnels, et par l’hébergement individuel de code privé), mais Github est toujours un endroit où aujourd’hui encore l’open source est créée et maintenue.
Github s’est doté de grandes aspirations avec une levée de fonds de capital-risque de 350 millions de dollars, même si l’entreprise était déjà rentable. Si Github assume pleinement son rôle d’administrateur du code open source, l’organisation peut avoir une énorme influence sur le soutien apporté à ces projets. Par exemple, elle peut créer de meilleurs outils de gestion de projets open source, défendre certaines catégories de licences, ou aider les gestionnaires de projets à gérer efficacement leurs communautés.
Github a subi de grosses pressions venant des développeurs qui gèrent certains projets, ces pressions incluent une lettre ouverte collective intitulée « Cher Github », principalement issue de la communauté Javascript. Cette lettre explique : « Beaucoup sont frustrés. Certains parmi nous qui déploient des projets très populaires sur Github se sentent totalement ignoré par vous ». La lettre inclut une liste de requêtes pour l’amélioration de produits, qui pourrait les aider à gérer plus efficacement leurs projets.
Github se confronte de plus en plus à des difficultés largement documentées dans les médias. Auparavant, l’entreprise était connue pour sa hiérarchie horizontale, sans aucun manager ni directive venant d’en haut. Les employés de Github avaient aussi la liberté de choisir de travailler sur les projets qu’ils souhaitaient. Ces dernières années, tandis que Github s’est développée pour atteindre presque 500 employés, l’entreprise a réorienté sa stratégie vers une orientation plus commerciale en recrutant des équipes de vente et des dirigeants, insérés dans un système hiérarchique plus traditionnel. Cette transition d’une culture décentralisée vers plus de centralité s’est faite dans la douleur chez Github : au moins 10 dirigeants ont quitté l’organisation durant les quelques mois de l’hiver 2015-2016, ces départs incluant l’ingénieur en chef, le directeur des affaires financières, le directeur stratégique et le directeur des ressources humaines. En raison de ces conflits internes, Github n’a toujours pas pris position publiquement pour jouer un rôle de promoteur de l’open source et assumer un leadership à même de résoudre les questions pressantes autour de l’open source, mais le potentiel est bel et bien là.
Pour le capital-risque, abordé précédemment, il y a un enjeu particulier dans l’avenir des infrastructures numériques. Comme les outils des développeurs aident les entreprises du secteur technologique à créer plus rapidement et plus efficacement, meilleurs sont les outils, meilleures sont les startups, meilleure sera la rentabilité du capital-risque. Néanmoins, l’infrastructure, d’un point de vue capitaliste, n’est en rien limitée à l’open source mais plus largement focalisée sur les plateformes qui aident d’autres personnes à créer. C’est pour cela que les investissements dans Github ou npm, qui sont des plateformes qui aident à diffuser du code source, ont un sens, mais tout aussi bien les investissements dans Slack, une plateforme de travail collaboratif que les développeurs peuvent utiliser pour construire des applications en ligne de commande connectées à la plateforme (à ce propos, le capital-risque a constitué un fonds de 80 millions dédié au support de projets de développement qui utilisent Slack). Même si le capital-risque apprécie les mécaniques sous-jacentes de l’infrastructure, il est limité dans ses catégories d’actifs : un capitaliste ne peut pas investir dans un projet sans modèle économique.
Enfin, les institutions universitaires ont joué un rôle historique éminent dans le soutien aux infrastructures numériques, tout particulièrement le développement de nouveaux projets. Par exemple, LLVM, un projet de compilateur pour les langages C et C++, a démarré en tant que projet de recherche au sein de l’Université de l’Illinois, à Urbana-Champaign. Il est maintenant utilisé par les outils de développement de Mac OS X et iOS d’Apple, mais aussi dans le kit de développement de la Playstation 4 de Sony.
Un autre exemple, R, un langage de programmation répandu dans la statistique assistée par ordinateur et l’analyse de données, a été d’abord écrit par Robert Gentleman et Ross Ihaka à l’Université d’Auckland. R n’est pas uniquement utilisé par des entreprises logicielles comme Facebook ou Google, mais aussi par la Bank of America, l’Agence américaine des produits alimentaires et médicamenteux et le Service météorologique national américain, entre autres.
Quelques universités emploient également des programmeurs qui ont alors la liberté de travailler à des projets open source. Par exemple, le protocole d’heure réseau ou NTP (Network Time Protocol) utilisé pour synchroniser le temps via Intrenet, fut d’abord développé par David Mills, maintenant professeur émérite de l’université du Delaware — le projet continuant à être maintenu par un groupe de volontaires conduit par Harlan Stenn. Bash, l’outil de développement dont nous parlions dans un chapitre précédent, est actuellement maintenu par Chet Ramsay, qui est employé par le département des technologies de l’information de l’université Case Western.
Les institutions universitaires ont le potentiel pour jouer un rôle important dans le soutien de nouveaux projets, parce que cela coïncide avec leurs missions et types de donation, mais elles peuvent aussi manquer de la réactivité nécessaire pour attirer les nouveaux programmeurs open source. NumFOCUS est un exemple d’une fondation 501(c)(3) qui soutient les logiciels scientifiques open source à travers des donations et parrainages financiers. Le modèle de la fondation externe peut aider à fournir le soutien dont les logiciels scientifiques ont besoin dans un contexte d’environnement universitaire. Les fondations Alfred P. Sloan et Gordon & Betty Moore expérimentent aussi des manières de connecter les institutions universitaires avec les mainteneurs de logiciels d’analyse des données, dans le but de soutenir un écosystème ouvert et durable.
Wikipédia a 15 ans
Vous en avez sans doute entendu parler. Cet événement est l’occasion de revenir sur quelques usages de Wikipédia… en lui souhaitant un très joyeux anniversaire !
Retrouvez Framasoft près de chez vous (octobre et Novembre 2015)
On l’avait déjà évoqué cette rentrée : Framasoft continue de dégoogliser près de chez vous…
Nous avions envie de faire un point sur les temps forts de ces prochaines semaines : entre une tournée à la Réunion, l’avant-première d’un film où le Libre foulera le tapis rouge et une présence massive au Capitole du Libre… nous espérons que vous prendrez le temps de venir boire une limonade (libre) avec nous !
Rappel : vous pouvez retrouver nos précédentes interventions sur cette page.
Octobre et novembre : ça dégooglise près de chez vous
Le succès de cette thématique ne faiblit pas, et on continue de nous demander de présenter le projet Dégooglisons un peu partout dans la francophonie… Si vous voulez nous retrouver et échanger avec nous, rendez-vous…
… à la Réunion, du 31 octobre au 5 Novembre, où Pyg animera plusieurs conférences et ateliers dans différentes localités de l’île. Vous retrouverez bientôt le programme sur le site du CEMEA.
… à Paris les 18 et 19 novembre, lors du tout nouvel événement « Paris Open Source Summit », fusion des salons « Solutions GNU/Linux » et « Open World Forum »
… à Toulouse, les 21 et 22 novembre, pour de nombreuses conférences lors du Capitole du Libre. Le programme est en cours de finalisation mais on peut déjà annoncer :
Et possiblement des signatures de nos auteurs Libres sur stand, puisque des romans sont sortis récemment/vont sortir chez Framabook 😉 (ceci n’est pas un teaser)
Merci encore à toutes les personnes qui nous invitent dans ces événements, qui les organisent… et surtout à vous qui venez et amenez vos proches afin de les sensibiliser au monde du Libre…
On se retrouve bientôt ?
L’équipe de Framasoft.
Le Libre et les Makers s’invitent à la fête de l’Humanité 2015 (et ont besoin de vous !)
L’an passé, Framasoft participait à la Fête de L’Humanité.
Nous avions alors longuement interviewé Yann Le Pollotec (informaticien, membre du conseil national et animateur de la réflexion sur la révolution numérique au Parti Communiste Français) à qui nous avions posé de nombreuses questions, notamment sur le positionnement du Parti Communiste vis-à-vis du logiciel libre.
Cette année, l’initiative est renouvelée… mais en plus grand ! Avec un « Espace du libre, des hackers et des fablabs ».
L’occasion pour nous de demander à Yann quelles sont les nouveautés de cette année 2015.
Bonjour Yann, exceptionnellement, nous n’allons pas te demander de te présenter, ni de nous parler du rapport PCF/Logiciel libre, car tu nous avais déjà répondu l’été dernier. En revanche, peux-tu nous en dire plus sur cette version 2015 de l’Espace du libre ?
Cette année l’Espace du libre et des fablabs double sa superficie avec de nouveaux venus : l’association La Mouette qui présentera la dernière version de Libre office, Mozilla France, APEDEC Ecodesign Fab Lab, l’Electrolab, Marker Girls, Bionico Hand. Nous aurons un grand débat sur le « big data et digital labor » avec Yann Moulier Boutang le samedi 12 septembre à 10h30.
Un autre débat aura lieu le vendredi 11 à 17h30 sur « les libertés et les droits sur l’Internet après les lois anti-terroristes et renseignement », avec Cécile Cukierman sénatrice, Véronique Bonnet de l’April, la Quadrature du Net et la CNIL. Enfin Nicolas Huchet avec sa prothèse de bras intelligent « open hardware » qu’il a développée, sera présent.
Un mur entier sera consacré à l’exposition pédagogique sur le logiciel libre et ses enjeux, installation conçue pour cet événement par le collectif Tiyounim.
Garder une place pour les mouvements du Logiciel Libre, des Makers, Hackers et Fablabs à la fête de l’Huma a un sens… Quels ont été les moteurs de cette décision ?
Ce qui motive notre décision c’est que ces mouvements avec leurs contradictions, et parfois leurs difficultés à créer des écosystèmes viables, sont fascinants, et leurs acteurs jouent le rôle des accoucheurs passionnés et tourmentés du monde de demain et d’un autre rapport au travail, à la propriété et à la création. Ils préfigurent à bien des égards une société post-capitaliste fondée sur la notion de Commun, d’une manière certes encore minoritaire, fragile mais résiliente, balbutiante mais virale.
Tout cela ne se fait pas sans contradictions, et difficultés pour créer des écosystèmes viables, avec un « capitalisme cognitif » pour reprendre l’expression de Yann Moulier Boutang qui a à la fois besoin de ces communs numériques que sont par exemple les logiciels libres mais qui, en même temps, entrave leur développement en tentant de s’accaparer le bien commun en posant de nouvelles enclosures.
C’est, une fois de plus, un gros village associatif qui sera proposés aux visiteuses et visiteurs. Quels acteurs seront présents ?
Dans l’ordre alphabétique : APEDEC Écodesign Fab Lab, April, Bionico Hand, Camille Bosqué, Carrefour numérique au carré, Electrolab, Collectif Emmabuntüs, FDN, Franciliens.net, Framasoft, Licence Creative/Creative Commons France, Marker Girls, La Mouette (Libre office), Mozilla, Open-Edge, Les Ordis libres, Parinux, Petits Débrouillards Idf, La Quadrature du Net, Ubuntu.
Organiser une telle rencontre entre le Libre et les visiteurs et visiteuses de la fête de l’Huma, ce doit être un sacré travail… Tu peux nous expliquer à quoi ressemble tes (et vos) heures passées dessus ?
C’est d’abord un travail collectif avec tous les acteurs qui seront présents sur l’espace et qui l’auto-gèreront. C’est un travail de contacts, de communication, d’explication, de promotion, de pédagogie et de conviction. Il s’agit aussi et surtout d’organiser la coordination avec toutes les parties prenantes de la fête : architecte, programmateurs, régisseurs, services techniques, sécurité, prestataires de services et militants.
Afin de financer une partie des frais, vous avez initié une campagne de financement participatif. Pourquoi ce choix de la collecte et à quoi va servir cet argent ?
La fête de l’Huma met à disposition pour notre Espace une surface de 300m² qu’elle loue au Parc des expositions du Bourget. En échange, par le financement participatif nous assurons la réalisation et l’impression du mur d’expo sur les logiciels libres et les flyers présentant l’Espace, les frais liés à la venue de Rennes à la fête de Bionico Hand, l’électricité, l’accès l’internet haut-débit, la location de mobiliers, les parkings pour les livraisons, et une caisse de solidarité sur les passes d’entrée à la fête de l’Huma afin de permettre la participation des bénévoles nécessaires au fonctionnement des associations parties prenantes et de couvrir une partie des frais de location de surface engagés par la fête de l’Huma. Nous avons choisi le crowdfunding car il représente pour financer un projet la possibilité d’échapper aux banques et aux contraintes de la subvention publique, en s’émancipant de décideurs publics ou privés souvent au mieux indifférents ou étrangers à ce qu’on leur présente.
Alors pour faire vivre l’espace des logiciels libres, des hackers et des fablabs à la fête de l’Humanité, contribuer ou faites contribuer sur : https://fr.ulule.com/logiciellibre-fablab/ (clôture de la campagne le 6 septembre à minuit).
Un petit mot pour la fin ?
Nous avons la volonté de faire de cet espace co-produit part des acteurs du mouvement des logiciels libres et des fablabs, un lieu d’appropriation sociale et politique par le « faire », le ludique et le débat des enjeux cruciaux du numérique. Il s’agit, dans une démarche d’éducation populaire de faire toucher du doigt au public de la fête de l’Huma les potentialités émancipatrices comme les dangers de la Révolution numérique pour l’avenir de notre société.
—
Vous avez jusqu’à dimanche (6 septembre) pour soutenir et faire vivre cette initiative, en finançant et/ou partageant la collecte sur Ulule.
RMLL 2015 et Résistances : Framasoft en Festivals !
C’est la canicule, on sort les recettes d’eau libre (à consommer avec modération ^^), les stands, les beaux T-shirts… c’est officiel, on arrive à l’été des Rencontres et échanges Libristes !
RMLL 2015 : rendez-vous à Beauvais
Rendez-vous incontournable du monde Libre, les « ReuMeuLeuLeu » (ou Rencontres Mondiales du Logiciel Libre) sont cette années accueillies et organisées par Beauvais, et c’est du 4 au 11 Juillet !
Comme nous vous l’avions annoncé, nous ne tiendrons un stand que lors des Journées Grand Public (samedi 4 et dimanche 5 juillet). Ce qui nous nous empêchera pas d’être présents lors du reste des rencontres, que ce soit entre les stands (un indice : repérez les badges « Framateam ») ou durant des conférences.
Car les RMLL proposent un programme complet de conférences, tables rondes et autre réjouissances auxquelles Framasoft se joint avec plaisir… Vous nous retrouverez donc :
Bien entendu, au delà des Framasofteries, TOUT le programme des RMLL est empli de pépites qui sauront faire pétiller votre intérêt, vos neurones et vos processeurs…
Résistances, du cinéma et des idées
Du 3 au 11 juillet, dans la ville de Foix[1] (en Ariège), a lieu un festival de cinéma aussi engageant qu’engagé : Résitances.
L’idée de ce festival, qui fête cette année sa 19e édition, est de mettre en valeur des films qui bousculent notre vision du monde, montrent d’autres façons de vivre, de voir de raconter et de partager… bref : qui nous nourrissent l’esprit comme la société.
Framasoft sera présent lors du week-end final (10 et 11 juillet) à l’occasion de leur thématique Une civilisation du partage. l’occasion pour nous d’échanger avec un public pas forcément rompu aux codes du Libre, et pour Pouhiou de réitérer sa conférence Créateurs, la confiance paye…
Voilà pour les quelques rencontres estivales… promis, il y aura encore plus d’occasions de se voir, de boire de la limonade libre (avec modération ^^) et de parler Dégooglisation dès la rentrée !
Note inutile et donc indispensable :
[1] Et le premier ou la première qui commente « Il était une fois, dans la ville de Foix… » Pouhiou se jure de lui émonder les arquemuses… soyez prévenu-e-s !)
RMLL 2015 : pré-commandez vos goodies Framasoft !
Vous le savez, les RMLL se dérouleront cette année du 4 au 10 juillet à Beauvais.
Pour beaucoup d’entre vous, c’est l’occasion de venir nous rencontrer, et parfois en profiter pour acheter les différents goodies Framasoft, des T-shirts aux livres édités par Framabook, en passant par les magnifiques stickers détourés et les CD Framazik.
Pour nous, cela représente une charge logistique importante, des stocks qui sont parfois détériorés, des quantités de produits souvent très supérieures à ce qui sera vendu, pour pouvoir satisfaire tout le monde. (Certes, l’année dernière, nous avons quelque peu sous-estimé le succès de nos nouveaux T-shirts). C’est pourquoi cette année, nous allons proposer une nouvelle formule.
Stand Framasoft Limité
Nous ne tiendrons pas un stand pendant toute la durée des RMLL, mais nous comptons expérimenter une nouvelle formule. Un stand sera bien entendu tenu pendant les journées grand public, cœur de cible de la mission d’éducation populaire de Framasoft.
Mais nous serons pendant le reste des rencontres en mode plus mobile (n’hésitez pas à nous arrêter quand vous nous apercevez, nous serons ravis d’échanger avec vous, voire – si on nous y oblige – boire des bières, ou des bières). Cette année donc, nous ne viendrons pas avec autant de goodies que les années précédentes. Nous aurons de quoi présenter les différents produits et éventuellement quelques exemplaires à vendre, mais cela restera très limité, et nous renverrons sans doute majoritairement vers la boutique en ligne EnVenteLibre. Cela nous permettra de profiter d’avantage des rencontres pour discuter avec les gens présents, assister aux conférences, travailler sur nos projets, boire des bières, et sans doute bien d’autres choses.
Cependant, nous sommes conscients qu’acheter les produits sur stand permet, en plus du plaisir de pouvoir refaire le monde avec nous quelques instants, d’éviter les frais de port et profiter rapidement de tous ces goodies de vos rêves (comment ça, j’en fais trop ?) C’est pourquoi nous allons mettre en place un système de pré-réservation des produits. De cette façon, vous profitez de ce que vous voulez commander, et vous profitez deux fois plus de nous. Elle n’est pas belle, la vie ?
Comment cela va-t-il se dérouler ?
En trois temps :
Vous pré-commandez les produits que vous voudrez récupérer jusqu’au 30 juin 23h42 (nous tolérerons quelques minutes de retard si vous le demandez avec un grand sourire, dans la joie et la bonne humeur), en passant par notre formulaire de contact, précisant ce que vous souhaitez commander, ainsi que votre nom et un numéro de téléphone auquel vous serez joignable pendant les RMLL.
Vous pourrez alors venir retirer votre pré-commande et la régler directement sur place lors des journées grand public. Évidemment, si vous n’êtes pas présents pendant ces deux journées, précisez quelles sont vos disponibilités les autres jours. Nous essaierons de nous arranger avec vous dans la mesure du possible. Le cas de l’annulation de commande est décrit plus bas.
Et voilà, il n’y a pas de 3e temps. Tout le monde est content.
Si vous ne venez pas récupérer votre pré-commande
Nous ne voulons pas mettre en place de paiement anticipé, cela compliquerait l’opération pour nous comme pour vous, et puis nous avons naturellement confiance en ceux qui passeront commande. Toutefois, merci de nous informer rapidement si vous ne pouvez pas venir retirer comme prévu votre pré-commande. Si par exemple vous pouvez la récupérer plus tard dans la semaine, il est sans doute possible de s’arranger (vous le savez, nous sommes des gens adorables).
Si vous ne l’avez pas retirée pendant les journées grand public sans nous avoir prévenu, nous ne pourrons pas garantir votre réservation, et nous serons amenés à proposer les goodies à d’autres personnes intéressées.
Besoin de conseils pour vos acquisitions ?
Alors précommander, c’est bien… Oui mais que pré-commander, nous demanderez-vous ? Eh bien on a nos petites idées.
Les Framabooks à ne pas rater !
Souvent sur les RMLL, on nous demande des biographies de Richard Stalmann, afin de se les faire dédicacer… De plus on sait de source sûre que Pouhiou sera présent lors de ces RMLL, et pourra donc vous dédicacer les romans des NoéNautes… Et même si Gee ne pourra pas y être cette année, ne passez pas à côté des BD du GKND !
Sans oublier que l’équipe Framabook n’a pas chômé ces derniers mois. Outre les incontournables Histoire et Culture du Libre (un ouvrage de référence pour parfaire votre culture du monde libriste) et Option Libre (pour mieux connaître les licences libres et donc le droit d’auteur) nous avons récemment édité :
Libres Conseils, un recueil traduit collaborativement pour découvrir les conseils que des libristes auraient aimé recevoir avant de se lancer dans leur projet,
Avant de Dormir, un roman sombre et organique de la redoutable Lilly Bouriot, à ne pas manquer pour les fans de Lovecraft ou Neil Gaiman.
Ayez la Frama-Classe durant les RMLL
Notre grrrrrrrrros succès du stand des RMLL 2014, ce sont les nouveaux T-Shirt Framasoft. Il y a le Just Sudo It, pour les sportifs du GnuNux, et le ForkMe I’m Famous, pour les clubbers de l’open source. Ces T-Shirt sont une édition limitée, donc mieux vaut vous précipiter dessus tant que nous en avons, après il sera trop tard ! Attention, veuillez noter que la version débardeur-femme (parce que chez les libristes barbus, il y a aussi des barbuEs 😉 ) taille petit, pensez à prendre une taille au dessus de ce que vous prenez histoire d’être à votre aise !
Autrement, nous avons toujours les beaux T-Shirt Framasoft, aussi disponibles en débardeurs femmes (qui là aussi, taillent une taille en dessous de vos habitudes) et les stickers détourés Framasoft pour mettre nos pingouins, euh, nos manchots… bref, nos pinchots sur votre ordinateur préféré.
Edit 16/06 : une erreur s’est glissée dans l’article originel, Simon « Gee » Giraudot ne pourra pas être des nôtres lors de ces RMLL… Pardon pour la fausse joie !
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.
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 :
É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 ;
Bidouillez le code ;
Exécutez le test. S’il marche, passez au point 4, sinon retournez au point 2 ;
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 :
Comprendre la différence entre ce qu’on teste et ce qu’on utilise comme un outil pour tester autre chose ;
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.
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!