Des plateformes plutôt que des formulaires

Au cours du dernier siècle, la technologie s’est massivement démocratisée. Les services gouvernementaux doivent offrir plus que des destinations numériques : ils doivent devenir un foyer pour l’ingéniosité de leurs utilisateurs.

Nous parlons beaucoup de « numérique ». Pourtant, ironiquement, le numérique n’est pas binaire. C’est un empiètement progressif de la technologie à l’intersection des humains et des ordinateurs. Si les services gouvernementaux ne suivent pas l’évolution qui a radicalement démocratisé la technologie, nous manquerons d’importantes occasions de faire du gouvernement une plateforme sur laquelle les gens peuvent construire leurs propres outils et interfaces.

Il est utile de considérer notre relation aux outils numériques comme une évolution. À une extrémité se trouve l’aube de l’informatique : les gens galéraient sur des ordinateurs analogiques, faisaient glisser des billes sur un boulier, tournaient des boutons pour calibrer un viseur de bombardement ou ajustaient une règle à calcul. Telles étaient les prémices de notre rapport à l’informatique, et ce fut difficile, lent et pénible.

Le fonctionnement du viseur de bombardement Norden, un ordinateur analogique primitif.(http://www.twinbeech.com/images/bombsight/bifnordennomenclature.jpg, Public Domain, https://commons.wikimedia.org/w/index.php?curid=3771841)

Alors que nous distinguions le logiciel du matériel, nous utilisions des cartes perforées – une idée empruntée aux métiers à tisser – pour stocker nos programmes. Un seul trou mal perforé pouvait ruiner tout un travail de programmation, et les ordinateurs étaient rares. Nous veillions tard pour passer du temps libre sur l’ordinateur central, en adaptant nos horaires aux machines.

Ce paquet renfermait un seul programme ; chaque trou devait être à la bonne place et saisi dans le bon ordre. (ArnoldReinhold – Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=16041053)

À l’époque, l’informatique était si précieuse qu’il ne restait plus de cycles libres pour faciliter les tâches des humains. Les premiers programmes numériques se rapprochaient autant que possible des tubes électroniques, des transistors et des puces. C’était littéralement du langage machine. Mon premier ordinateur, un clone du Apple II, avait été livré avec peu d’instructions ; j’avais dû recourir à des manuels qui expliquaient comment programmer son UCT (le 6502.)

La programmation en langage machine reste abstraite par rapport à la machine elle-même. Pour comprendre à quel point cela rend les choses compliquées, voici un petit voyage dans le passé :

  • Les binaires (les uns et les zéros) sont des réglages électriques (marche et arrêt).
  • Quatre chiffres binaires stockent un nombre de 0 à 16, connu sous le nom d’hexadécimal, que nous pouvons compter en utilisant 0-9 et A-F. Traditionnellement, on préfixe ces chiffres par un « # ».
  • Huit valeurs numériques binaires stockent des nombres de 0 à 255, ce qui était suffisant pour les premiers ordinateurs. Cela signifie qu’une valeur (#A4) est 164.
  • Sur un Apple, chaque valeur hexadécimale avait une signification spécifique. Ainsi, par exemple, #A9 signifie « Enregistrez le nombre que je vais vous donner dans l’accumulateur ».
  • Pour vous en souvenir un peu plus facilement, vous pouvez utiliser un moyen mnémotechnique : « LDA » signifie « Charger l’accumulateur ».

Ce qui se traduit par un code machine ressemblant à ceci :

Beurk.

Heureusement, il y avait des langages qui me convenaient. Le Apple BASIC était un langage simple à apprendre. Vous allumez un Apple et vous obtenez une fenêtre amicale qui vous attend pour faire votre travail, un petit « ] » à côté d’un curseur clignotant. Si vous voulez voir à quoi cela ressemble, vous pouvez essayer un émulateur Apple qui fonctionne avec Javascript dans votre navigateur.

  • BASIC avait cependant un problème : il était lent. Mais grâce au progrès inexorable de la loi de Moore, cela a changé.
  • Nous avons développé d’autres langages qui pouvaient être compilés en code machine pour les rendre plus rapides.
  • Nous avons développé davantage d’interfaces humaines : souris, cartes graphiques, interfaces graphiques, reconnaissance vocale, parole, etc.
  • Les écrans sont devenus des moyens de communication, ce qui signifie que l’interface pouvait vous montrer uniquement ce qui était pertinent pour la tâche à accomplir, dans son contexte.

De nos jours, même un ordinateur bon marché comme le Raspberry Pi surpasse les sens des humains à bien des égards. Cela signifie qu’il reste de l’informatique à consacrer à la simplification des choses. Aujourd’hui, les ordinateurs font plus que nous rencontrer à mi-chemin. La majeure partie du code de l’application calculatrice de mon téléphone, depuis les boutons jusqu’à l’affichage, est consacrée à mes sens humains. Une très petite partie de ce code sert en fait à faire des mathématiques. L’accès à l’informatique a radicalement changé.

Les plateformes SaaS ont démocratisé la conception d’objets numériques. Vous pouvez créer une application dans Figma ou Canva, demander à quelqu’un à l’autre bout du monde de la créer pour vous, puis l’exécuter sur un nuage distribué sans jamais toucher un serveur.

N’importe qui peut établir une présence en ligne avec un blogue qui a meilleure allure que la plupart des sites Web point-com de l’an 2000. De nombreux outils SaaS offrent une programmation « sans code » ; vous pouvez configurer un CRM assez robuste sans savoir comment fonctionnent les bases de données. Pour un développement plus avancé, il existe des plateformes comme Bubble et Webflow.

À la pointe du progrès, le développement de logiciels consiste de moins en moins à coder et de plus en plus à gérer des données. Avec GPT-3, vous écrivez des incitations, souvent avec des résultats surprenants. Par exemple, vous pourriez écrire :

Et le GPT-3 répondrait :

(Vous pouvez lire la réponse complète ici).

Il y a un autre changement, plus philosophique, en cours. Mon Apple faisait ce que je lui demandais : je l’allumais, et je lui donnais des instructions. En revanche, je fais ce que mon iPhone me demande. Au lieu d’un curseur qui attend patiemment, j’obtiens une constellation de petits points rouges qui me rappellent mes obligations numériques.

En d’autres termes, j’écrivais du code qui produisait des données ; maintenant, je crée des données qui produisent du code. J’avais l’habitude de dire à une machine ce qu’elle devait faire ; désormais, c’est elle qui me le dit.

L’évolution des interfaces technologiques allant de la commodité de la machine à la commodité de l’homme.

Ce sont des changements tectoniques considérables. Pourtant, nous ne les avons pas vraiment adoptés au sein de la fonction publique. Plutôt que de donner aux gens des rapports prédéfinis, des PDF et des outils statiques, nous devons leur donner des API, des interfaces sans code et la possibilité de manipuler les données qui leur reviennent de droit. Nous parlons de conception de services, mais pourquoi ne pas laisser les citoyens concevoir eux-mêmes les services ? Et pas seulement les technologues civiques expérimentés, mais bien tous les citoyens ?

Pouvons-nous élargir notre vision du « gouvernement en tant que plateforme » ?

Peut-être que l’un des rôles des services gouvernementaux futurs sera d’offrir une plateforme sur laquelle chacun pourra créer ses propres applications et outils, qu’il s’agisse simplement d’analyser les vastes quantités de données que les gouvernements détiennent en notre nom ou de créer des tableaux de bord pour notre identité numérique. Procéder autrement reviendrait à ignorer un siècle d’évolution de l’informatique et à priver nos citoyens de leur agence numérique.