Catégories
Technologie

Coder responsable 

Pour spécialistes ou néophytes, cet article passe en revue quelques bonnes pratiques pour produire du code responsable, sur les thèmes de l’impact environnemental, l’accessibilité, la protection des données personnelles et l’inclusivité

Du responsive au responsable

Pour le développement durable

Cette pensée s’adresse aux geeks, et tout particulièrement aux personnes qui développent des applications, notamment pour le web mais je vais tenter de faire un peu de vulgarisation pour le tout public.

Chaque corps de métier a son impact sur la société et mériterait sans doute son analyse mais :

  • Je ne les connais pas tous
  • Je suis développeur et suis personnellement confronté au sujet
  • Il existe une perméabilité particulière entre le monde du développement et le mode de société auquel j’aspire

Nous allons donc nous en tenir aux dévs.

Ajoutons un paramètre important, il s’agit aussi de notion d’échelle. En effet, les sites web et applications ont vocation (avec succès ou non) à toucher le plus grand monde. C’est donc un vecteur fantastique pour véhiculer des tendances, en dehors du contenu. En effet, dans ce domaine, le contenant a une importance considérable, au même titre qu’un bâtiment influence ce qui s’y passe. D’ailleurs, l’analogie est de mise : on parle d’hébergement, d’adresse ou d’hôte !

J’insiste sur le fait, que je ne parlerai pas du tout du contenu, l’influence du contenu, des pensées textualisées n’est pas à démontrer. Les exemples qui vont suivre peuvent aussi bien être des sites de groupe de rock, une boutique en ligne de graviers sculptés ou un jeu de casse-briques.

Les personnes qui construisent ces coquilles ont donc un pouvoir énorme, en ce que leurs commanditaires ne comprennent souvent pas grand chose aux finesses de leur travail. On ne peut pas les blâmer, s’ils en avaient la maîtrise, ils n’auraient pas besoin des services d’une tierce personne. Focalisés sur le contenu, ces commanditaires se contentent en général de ne demander qu’une interface pratique et efficace pour administrer leur contenu et flux.

Cette interface est pourtant le lieu de travail quotidien des responsables, parfois dans une structure hiérarchique importante et ils et elles subissent son environnement. Je le répète, le commanditaire fera très attention à l’ergonomie pour assurer l’efficacité mais certains aspets peuvent passer inaperçus. C’est là que le rôle des designers et dévs est particulièrement important. La mise en œuvre peut passer par deux chemins, en fonction des cas : par suggestion argumentée ou de manière plus discrète.

Alors sur quoi agir ?

Impact et ressources

La plupart du temps, un client exigera un outil fonctionnel, qui ne plante pas, et beau.

De votre côté, l’objectif sera de satisfaire la demande avec, comme pour tout bon dév, le moins d’effort possible. Un adage dit que pour bien développer, il faut faire preuve de flemmardise, car il faut mettre en œuvre la solution la plus optimale pour arriver à ses fins et automatiser un maximum les procédures.

Mais il faut aller plus loin.

Cette approche par l’optimisation peut aller au delà de la production et toucher l’exploitation.

Prenez n’importe quel site, et testez le dans ecoindex.fr. Cet outil effectue une analyse générique de l’impact environnemental d’un site internet, prenant en compte les ressources nécessaires côté serveur (hébergement) et côté client (navigateur).

Peu se préoccupent en amont de cette problématique, alors que le numérique a une part toujours croissante dans l’exploitation des ressources et l’émission de gaz à effet de serre.

Et ce n’est vraiment pas si évident, car l’effet rebond est très fréquent dans le numérique.

Par exemple, les langages de programmation pour le front-end (la partie émergée de l’iceberg internet) sont utilisés de plus en plus de façon compilée. Pour faire simple, le javascript, qui sert à effectuer des tâches sur une page web par le navigateur et la CSS (Cascade Style Sheet) qui détermine la mise en forme d’une page web, sont à la base écrits et interprétés de la même façon.

Comme montré dans cet exemple, le risque est l’effet rebond que peut produire le confort de code, et engendrer un effet contre productif. Il est donc primordial de conserver une vue d’ensemble du code source ET généré.

L’effet rebond des scripts compilés

Accessibilité

Beaucoup de normes régissent l’accessibilité des sites web, notamment en ce concerne les services publics, mais cette notion est très souvent oubliée, bien que démocratisée dans la pensée collective. Comme dans la vraie vie (IRL), les personnes concernées sont une minorité, encore que, parlant d’interface humain-machine, les micro déficiences sont bien plus nombreuses que pour les déplacements : photosensibilité, daltonisme, dyspraxie, myopie, etc…

Là encore, dans la plupart des cas, cela ne figurera pas dans le cahier des charges, et sauf s’il y a un véritable enjeu derrière, le commanditaire ne voudra sans doute pas voir sa facture majorée pour que son site respecte les normes d’accessibilité.
La difficulté va ici venir des différentes étapes de conception qui sont autant d’occasions de sortir du chemin de l’accessibilité : cheminement utilisateurs, zonage, maquettes, développement, intégration, rédaction sont autant d’étapes cruciales dans lesquelles tous les cas de figure doivent être pris en compte.

Alors, ce travail doit-il être fait gratuitement par une âme justicière ? Pas forcément.

En respectant les standards et en ayant pour habitude les bonnes pratiques, cela n’engendrera pas de travail supplémentaire. Ce qui coûte cher, est de mettre aux normes un site mal conçu.

S’il fallait encore vous convaincre, citons un autre adage d’Internet : « Google est le plus grand des aveugles ». Et de fait, la conformité aux normes d’accessibilité a un impact positif très significatif sur le référencement naturel.

Fort heureusement, de nombreux outils permettent désormais d’auditer en temps réel l’accessibilité d’une application à chaque étape. De plus en plus d’outils intègrent également nativement un support optimisé des normes d’accessibilité. C’est par exemple le cas de WordPress qui s’appuie sur une communauté dédiée aux questions d’accessibilité.

Données personnelles

La protection des données personnelles fait grandement parler d’elle depuis la mise en place du RGPD il y a 2 ans.

Après les différents scandales, comme l’écoute systémique des services secrets états-uniens révélés par Edward Snowden ou la plus récente affaire Cambridge Analytica, une prise de conscience collective s’est réalisée. Cependant, on retombe vite dans nos habitudes, souvent connectées.

Ainsi, s’appuyer seulement sur l’espérance que les internautes auront une utilisation consciente des outils numériques est vain. On ne peut pas les en blâmer tant la problématique est vaste. Là, il faut, je pense s’appuyer sur les pouvoirs publics pour vulgariser un code de conduite sur la toile, tendance qui commence à de mettre timidement en place dès l’école, mais cela va être très long.

A son échelle, un site internet peut par contre ne pas contribuer à l’aggravation du problème. Comme pour tout ce qui est connecté, les géants du web proposent des outils ultra efficaces et souvent gratuits. Ce serait trop dommage de se passer des Google Fonts, boutons j’aime de Facebook, boutons de Twitter, recaptcha et autre Google Analytic.

Le hic, c’est que l’utilisation de ces outils, telle que proposée de base, sert principalement à faire de votre site internet un piège à prospect potentiel. Chacune des pièces énumérées – et il y en a bien d’autres – fonctionne comme un cheval de Troie. La contre partie à leur utilité (respectivement : utiliser une police de caractère personnalisée, fédérer une communauté, accroître sa popularité, sécuriser vote site et analyser le trafic sur son site) est de donner en pâture à un fournisseur tiers des méta-données de vos internautes.

Ainsi, si vous utilisez ces services sur votre boutique en ligne d’articles de mercerie, le profil de vos internautes sera qualifié comme potentiellement intéressés par la couture. Et comme ces services sont extrêmement répandus, la navigation d’un site à l’autre permet de déterminer les centres d’intérêt d’un profil d’une manière étonnamment précise.

C’est pour cela qu’après avoir visité un site de trottinette, vous voyez apparaître des publicités de trottinettes un peu partout.

Dans cet océan, il n’est pas vain de rendre l’utilisation de votre site au moins neutre. Pour cela beaucoup de techniques sont disponibles.

Passons en revu certaines d’entre elles pour les exemples utilisés dans cette démonstration.

Google Font

La facilité d’utilisation d’une police hébergée par Google est déconcertante. On se rend sur la bibliothèque, on choisit la police, avec les variantes qui nous intéressent, on copie/colle une seule ligne de code, et le tour est joué. Cependant, l’appel systématique au serveur de Google permet de tracer vos internautes.

Fort heureusement, il existe ne nombreuses bibliothèques libres qui permettent de télécharger le fichier de police sur votre serveur. Google le permet également. La seule contrainte est qu’il faut écrire vos propres déclaration de polices dans votre CSS.

Ça ne va pas multiplier votre travail par deux !

Boutons Facebook et Twitter

Aussi tentants qu’intrusifs, ce bouton ces boutons peuvent n’être chargés qu’après consentement explicite de l’internaute. Cette option nécessite quand-même pas mal de programmation. Le rapport mise en place / gain reste à mon avis très relatif.

En effet, la proportion d’utilisation de terminaux mobiles est en constante croissance, et ces terminaux intègrent par nature des options de partage sur les réseaux sociaux.

Reste que la présence de boutons d’action avec les réseaux sociaux est toujours plébiscité. Fort heureusement, ils peuvent être facilement remplacés par des liens standard. Chaque plateforme fourni un schéma d’URL permettant d’accéder aux principales fonctionnalités : partage, publication, réaction…

Triple avantages :

  1. Facile a mettre en place
  2. Non intrusif
  3. Rétrocompatible avec les navigateurs ancestraux et bien pris en charge par les applications natives

Pour implémenter facilement ces liens, j’en ai répertorié un échantillon dans cet article.

L’effet rebond des scripts compilés

Recaptcha

Ce populaire outil de vérification de l’organicité de l’utilisateur est particulièrement fourbe.

Vous avez sans doute déjà eu à faire à lui, il peut se présenter sous la forme de photos de textes à déchiffrer ou de photos d’espaces publics dans lesquels identifier des objets ou véhicules.

En plus de tracer quel site vous visitez, cet outil sert d’apprentissage à intelligence artificielle, lui permettant d’affiner sa reconnaissance de l’univers. Point positif, cela permet de prédire, sur quoi portent les recherches de Google. En ce moment, le gros de l’apprentissage servira à coup sûr aux voitures autonomes.

Là, on tombe vite dans un gros piège, car l’unique fonction de cet outil est de protéger l’accès à une fonctionnalité des robots. Or, ces robots sont toujours plus performants pour déchiffrer les messages codés. On se retrouve donc dans une course à l’efficacité, d’un côté pour complexifier le message, de l’autre côté pour le comprendre. Et dans cette course, Google sort son épingle du jeu en proposant le système le plus compliqué à résoudre pour un robot, mais qui alimente… son propre robot.

A moindre frais, je suggère d’insérer dans vos formulaires des questions assez alambiquées tout en restant accessibles, par exemple indiquer le nombre de fleurs rouges dans une photo. Mais votre imagination sera votre meilleure alliée.

Analytic

Pour remplacer Google Analytic, on va faire simple, installez vous un Matomo, c’est la moindre des choses pour le respect de l’internaute.

All inclusive

L’inclusivité n’est pas qu’une affaire de point médian. La problématique est en fait très similaire à celle de l’accessibilité : n’exclure personne.

Pour passer rapidement sur le sujet clivant de l’écriture inclusive, posons d’abord que la plupart de mes clients (et même proches) me mettraient sur l’échafaud si je ne l’utilisait pas. J’ai par contre une paire d’exemples pour lesquels j’ai utilisé l’écriture inclusive dans des projets sans même que le sujet ait été abordé. Une bonne tendance vers la vulgarisation.

Pour faire consensuel, je prône beaucoup plus volontiers les tournures épicènes. La tournure épicène est idéale pour les frileux·ses de l’inclusif. Il s’agit d’adopter une syntaxe et un champ lexical neutre. Maniée avec élégance, cette tournure a le don de mettre tout le monde d’accord, pour peu que l’on ait les bons réflexes.

Par exemple, personne ne vous tiendra rigueur si vous remplacez « êtes vous sûr de vouloir » par « confirmez-vous vouloir ». Par contre, vous aurez contribué à vulgariser l’inclusion du plus grand nombre.

Là encore, j’ai pu constater cette pratique dans l’équipe de traduction de WordPress, qui couvre une immense partie des sites dans le monde.

Coût versus habitudes

Pour conclure, autant que faire se peut, je prends la précaution que je ne coche pas encore toutes mes cases. Mais les avoir listées n’est un bon début. Il reste toujours des vieux projets qui nécessiteraient une refactorisation ou des commandes dont les délais surréalistes qui obligent aux concessions.

Bénéfices

Non quantifiables, les bénéfices liés à l’utilisation de bonnes pratiques ne doivent pas être pris à la légère.

Écartons d’abord le bénéfice d’image, qui vous rendra « bio », ça n’est pas une fin en soit. L’utilisation de bonnes pratiques, quelques soit leur nature, amène inexorablement à produire du code de meilleure qualité.

Par ailleurs, on ne vous remercierai sans doute jamais, mais vous éviterez des remarques désobligeantes. Il bien connu que l’on ne fait remarquer que les défauts.

Dernier bénéfices, encore moins quantifiable : le sentiment de considération que vont ressentir les usager·e·s.

Investissement

Cela peut paraître une évidence, mais autant le rappeler, tout ce fait n’est plus à faire. Ainsi, en capitalisant dès la conception puis tout au long de la réalisation, on s’évite une probable dette technique inopinée.

Coût réel

si l’accessibilité est pensée en amont, dès la conception, cela n’engendre pas de surcoût important. La mise en conformité à posteriori est par contre extrêmement coûteuse en temps et en risque de régression.

Bonne nouvelle, comme pour le vélo, une fois acquis la façon respectueuse d’appréhender le code, cela devient un automatisme et ne nécessite plus moins d’efforts.


Pour conclure, disons que, quelque soit votre motivation : idéologique, altruiste ou purement rentable, vous devriez trouver au moins une raison d’adopter un regard plus responsable sur votre travail.

Par Bastien Ho

3 réponses sur « Coder responsable  »

Répondre à Élections municipales et campagnes numériques 2020 : qui sont les plus écolos ? – N.O.U.S. Ouvert, Utile & Simple Annuler la réponse.