Comment se créent les logiciels que nous utilisons chaque jour ? Qui construit les infrastructures informatiques de nos sociétés contemporaines ? De quoi le numérique est-il fait ?
« Ces questions, observent Gabriel Alcaras et Antoine Larribeau, dans l’introduction à ce numéro de la revue Reset qu’ils ont coordonné, « appellent quotidiennement des réponses tantôt idéalisantes, tantôt désenchantées. Quel que soit le ton du discours, une seule chose semble sûre : l’informatique est une machinerie efficace, qui produit des effets sur le monde social. Les débats croissants sur les algorithmes, notamment concernant leur pouvoir et leur opacité, illustrent parfaitement cette logique particulière d’interprétation du monde informatique ».
L’objectif de ce numéro spécial de la revue en ligne RESET (Recherches en Sciences Sociales sur Internet) est « d’encourager les sciences sociales à emprunter une porte d’entrée encore trop peu empruntée − l’informatique : à la fois la discipline scientifique et le génie industriel qui participent à la production de nos infrastructures numériques et qui ont pour ressource le code, c’est-à-dire un texte destiné à être exécuté par un ordinateur ».
Prendre pour objet l’écriture des codes invite « à considérer cette activité dans toute sa matérialité, en commençant par les conditions concrètes de travail. Si l’informatique s’écrit partout, elle s’écrit différemment selon ces conditions de production. Les mondes informatiques témoignent en effet d’une vaste hétérogénéité de statuts (de la développeuse freelance à l’ingénieur salarié), de contextes (espaces militants, service technique dans une autre industrie, entreprise star de la Silicon Valley), d’échelles (des petits scripts personnels aux vastes projets des multinationales du numérique) et d’espaces (bureau traditionnel, espaces de co-working, télétravail) ».
Alors que l’algorithme permet de penser en termes de dispositif, le code incite à se pencher sur l’acte concret d’écriture des programmes, « c’est-à-dire la production d’un texte qui sera interprété ou compilé par les machines, inséré dans des infrastructures matérielles et logicielles, lu et amendé par des collègues, copié-collé par des amateur·ices ou hobbyistes et ainsi de suite ».
Ce numéro de la revue RESET invite ainsi à « emprunter et à faire évoluer des questions sociologiques anciennes, voire classiques, afin de les appliquer aux codes ».
Enquêter sur l’écriture informatique
Ce numéro s’ouvre sur une enquête dans le monde des développeurs de la Silicon Valley, qui situe l’informatique dans ses conditions matérielles d’écriture. Olivier Alexandre y explore le quotidien et les spécificités de carrières professionnelles caractérisées par un fort degré d’incertitude. À travers des observations, des entretiens et un suivi d’activité en ligne, l’auteur présente « les multiples stratégies mobilisées par ces travailleurs pour répondre aux différentes manifestations de ces incertitudes, que ce soit dans les opérations de conception et de maintenance, dans l’orientation au sein des projets ou dans leurs trajectoires professionnelles». Loin des représentations d’un travail maîtrisé et prévisible, la carrière de développeur informatique est dépeinte « comme une course d’orientation au sein d’une pluralité de médiations et d’outils ».
Savoir et ignorance dans la production logicielle
Tudor Ionescu consacre une étude ethnographique d’une grande richesse à une pratique courante et pourtant considérée comme mauvaise, le hardcoding. « Cette pratique consiste à spécifier un mécanisme ou une donnée de la manière la plus explicite possible dans le code lui-même, sans se donner la peine de réfléchir à une solution plus générale à un problème précis ». L’auteur suit les péripéties d’une équipe de développement qui doit prochainement faire la démonstration d’un robot intelligent sur une chaîne d’assemblage. « Or les ingénieurs n’ont ni le temps, ni les moyens de développer cette technologie. Ils ont donc recours au hardcoding et dictent de façon extrêmement précise et − littéralement − millimitrée les mouvements que la machine doit effectuer, plutôt que d’inventer une intelligence qui déciderait des mouvements par elle-même ». En plus de documenter un grand nombre de problèmes typiques de l’écriture informatique industrielle (dette technique, integration hell), cette enquête propose une réflexion passionnante sur la dualité entre code et exécution ainsi que sur la question de la performativité.
Florian Jaton ouvre une fenêtre sur une séquence particulièrement ordinaire de l’écriture informatique : un épisode de débuggage. Il décortique étape par étape une scène de quelques minutes à peine afin de mieux entrer dans la profondeur − parfois vertigineuse − de chaque moment d’écriture. Il montre comment la codeuse adopte temporairement une attitude d’enquêtrice et cherche à comprendre d’où vient le problème. « Ces petits moments de production de connaissances, assez proches de la démarche scientifique, font la lumière sur ces instants anodins et éphémères de l’écriture du code ».
La codification du code : du style aux standards
En s’intéressant aux arènes de standardisation que sont le W3C et l’IETF, Julien Rossi décrit les discussions, les controverses et les formes de consensus qui s’y développent. « Dans ces espaces où « l’injonction au consensus » est omniprésente, les acteurs privilégient le régime de justification technique pour exprimer leurs désaccords et leurs critiques ». Le croisement des matériaux donne alors à voir les postures critiques et politiques des intervenants et révèle les stratégies discursives qui se déploient dans ces espaces de négociation.
Pierre Depaz aborde, quant à lui, une autre sphère de la codification de l’écriture informatique : la régulation et la négociation du style. L’auteur y analyse « la tension entre la dimension subjective du style, comme une préférence personnelle dans l’utilisation d’un point-virgule à la fin d’une ligne de code, et l’émergence de normes collectives. Ces dernières visent à maintenir la cohérence du style sur l’ensemble d’un projet, même quand plusieurs personnes y participent ». Pierre Depaz explore ainsi, parmi d’autres tensions entre code et codification, la force de l’argument d’autorité technique.
L’autonomie de l’écriture informatique en question
Dans une enquête sur des développeurs qui travaillent sur un protocole cryptographique, Sylvain Besençon explore les enjeux autour de la sécurité du code informatique. En s’intéressant à la fois « aux moments critiques et aux instants routiniers de maintenance et de soin apportés au code», il explicite les efforts constants pour le rendre moins vulnérable.
Camille Roth et Jérémie Poiroux montrent comment un certain nombre d’outils, notamment algorithmiques, équipent l’écriture du code. Autour du développement d’algorithmes de recommandation, ils montrent « que cette écriture s’appuie sur un grand nombre d’infrastructures et d’outils algorithmiques afin de réparer, d’ajuster ou de faire évoluer le code de leurs propres algorithmes ». Ils s’intéressent en particulier à la pratique de l’A/B testing. qui consiste à proposer différentes versions d’une même fonctionnalité afin de quantifier l’effet de chaque variation sur les usages d’une plateforme donnée. L’exploration de ces pratiques souligne que, contrairement à l’image d’une ingénierie logicielle complètement rationalisée et planifiée, « nombre de développeurs bricolent. Ils ne cherchent pas vraiment à ouvrir les boites noires algorithmiques qu’ils déploient ; la plupart se contentent de multiplier les tests afin de retenir les variations qui semblent donner le meilleur résultat».
Sommaire
- Gabriel Alcaras et Antoine Larribeau : Codes. L’informatique comme elle s’écrit
- Olivier Alexandre : Le code va changer : Les développeurs de la Silicon Valley face aux incertitudes de la programmation
- Tudor B. Ionescu: The Specification of Ignorance in Robot Software
- Florian Jaton : Éléments pour une sociologie de l’activité de programmation
- Julien Rossi : Écrire le code du code. Enquête sur les controverses techno-politiques au W3C
- Pierre Depaz : Discursive Strategies in Style Guides Negotiation on GitHub
- Sylvain Besençon : (Dé)coder la sécurité de l’information entre maintenance et innovation : le cas d’OpenPGP
- Camille Roth et Jérémie Poiroux : L’écriture guidée du code. Le cas des algorithmes de recommandation
Référence :