C’est bientôt Pâques, cherchez les EasterEggs !

Cet article sur le pourquoi des Easter Eggs, est un prétexte pour aborder un sujet méconnu : la charge mentale en développement.

D’abord un point de circonstanciation : qu’est-ce qu’un Easter Egg ? Littéralement « œuf de Pâque », un Easter Egg est une petite blague cachée lors du développement d’une application. Il s’agit donc de les trouver, comme un chocolat dans le jardin – et ça procure le même plaisir ?.

Le plus célèbre est sans doute le Merlin de Photoshop, le site eeggs.com (en anglais), recense les trucs rigolos à destination du public. Mais la plupart du temps, les blagues sont beaucoup mieux cachées et s’adressent aux autres développeurs ou… à soi même.

Mais pourquoi ?

Pour faire simple, mais ce n’est que mon analyse, j’y vois deux raisons.

L’omniprésence de l’humour en programmation est essentielle à l’équilibre mental.

Cette forme de jeux de piste permet de cibler un public très précis et donc de mieux communiquer.

Juste pour le fun ?

En effet, le développement nécessite une rigueur extrême à plusieurs niveaux.

Les sources de pression

Pour le moteur

Cela va sans le dire, mais si l’on ne respecte pas la syntaxe et le vocabulaire du langage dans lequel on programme, le code ne va pas s’exécuter correctement, voire ne rien faire du tout.

Selon le langage, l’oubli d’un espace ou d’un point virgule plantera tout le code.

Pour s’épargner la lecture a posteriori de messages d’erreur, une extrême vigilance est donc de mise.

Pour les autres

Ce n’est pas parce qu’une pratique est facultative pour l’exécution qu’elle n’est pas obligatoire pour le bon sens. La cohérence dans le code est la clé de voûte pour assurer la maintenabilité d’un projet et éviter la dette technique.

Les règles d’or de la consistance du code sont régies par des conventions, surtout lorsque l’on veut coder responsable, en gros :

  • Indentation constante
  • Casse respectée (upper, lower, camel, snake)
  • Nommage de variables et fonctions explicites
  • Commentaires de ce que devrait faire le code
  • Un espace après une virgule (oui, comme en français)

Par ailleurs, on peut ajouter une liste de bonnes pratiques en général :

  • Programmer systématiquement en anglais et gérer la traduction
  • Rédiger des messages de commit explicites
  • Découper son code en modules et couches
  • Ne pas versionner de variables d’environnement
  • Penser à la consommation de l’exécution d’un programme
  • Penser à l’accessibilité

Pour soi

Le déboguage sollicitent une attention et une méthode à toute épreuve. On peut aisément comparer cette tâche à un travail de détective ?️ ne devant laisser passer aucun indice et avançant avec prudence et méticulosité.

Si l’on prend en compte qu’un programme informatique, et a fortiori un site internet ne s’arrête jamais de tourner : ni soirée, ni week-end, ni vacances et qu’une panne dans un système de réservation doit être corrigée à tout moment, on a un tableau assez complet de la pression exercée.

Pour faire court, bien programmer provoque une charge mentale importante et il y a peu de place pour la légèreté.

Un code de fer dans un gant d’humour

Essentiellement pour un public averti, on retrouve – plus souvent qu’on ne le pense – des références geek, ou traits d’esprit.

Bannières ostensiblement cachées

Source de pages web : site alexpachulski.com

Les noms de projets

Souvent invisibles, même pour les clients, les noms de projets peuvent parfois être des clins d’œil sympathique.

Certains modèles de téléphones mobiles ont un nom propre, plus imagés que celui que vous leur connaissez, par exemple, les Nexus 5X et 5 s’appellent respectivement Bullhead et Hammerhead, la marque BQ a secrètement appelé ses modèles E4.5, E5 et U : Krilin, Vegeta et Chaozu, qui rappellent fortement des personages du manga Dragon Ball Z ; les Xperia Z et L de Sony portent quand à eux les noms de Yuga et Taoshan.

De notre côté, nous avons nommés les projets de nos clients pour leur donner plus de personnalité :

L’outil de gestion que nous avons conçu pour l’APAS-ONF s’appelle Yggdrasil, en référence à l’arbre mythique. Le projet lié à la migration de données porte le nom de Palétuvier, l’arbre qui peut se déplacer alors que la documentation est gérée dans Brocéliande, la forêt légendaire.

Pour la Cité de la voix, nous répartissons le code entre Arielle pour l’habillage et Sébastien pour les fonctionnalités.

Les noms de variables et fonctions

Bien moins accessibles, les noms de variables et fonctions servent fréquemment d’exutoire.

Je suis récemment tombé sur un vieux morceau de code mettant en page une grille de publication. Elle est identifiée par la classe « grillade« .

Lorsque l’on veut procéder à une mise à jour de Nextcloud via l’interface web, le mini formulaire de confimation contient ces informations:

/index.php?IKnowThatThisIsABigInstanceAndTheUpdateRequestCouldRunIntoATimeoutAndHowToRestoreABackup=IAmSuperSureToDoThis

Commentaires farfelus

On retrouve de-ci de-là des commentaires dans le code, parfois à la limite du correct.

Ici, un réglage qui pallie les règles extrêmement strictes d’Orange pour la réception d’e-mails.

// Réglage pour gérer la merde de wanadoo 
slow unix - - n - 5 smtp
-o syslog_name=postfix-slow
-o smtp_destination_concurrency_limit=3
-o slow_destination_rate_delay=1

Je n’ai aucune d’idée de qui l’a laissé, mais on devine le contexte d’exaspération de son ajout.

Fantaisie essentielle

Cela peut donc paraître puéril ou désuet, mais sans ces petites libertés indolores, il y a fort à parier que le développement informatique serait un catalyseur à burn-out. L’introduction de quelques fantaisies sers donc de soupape de décompression.

Maintenant, de là à dire que quelqu’un qui ne mets pas d’easter eggs ne code pas bien…

Une autre application, plus rare, est celle de

Cibler son public

On croise de temps à autres des annonces de recrutement bien peu visibles. Contre productif me direz vous ? Pas si sûr.

Cela ne concerne en général que des invitations génériques de type « rejoignez nous », pas un poste précis. On imagine donc qu’il n’y a pas une quête de diligence dans cette pratique, mais plutôt une volonté de trouver une pépite (de chocolat).

D’abord, la personne ayant trouvé l’annonce en question aura fait preuve soit de curiosité, soit de chance. Ce qui est une première note positive.

Deuxièmement, le caractère technique de la cachette, voire l’énigme dans certains cas donnera une idée de la finesse d’esprit ou des connaissances de la personne.

On ne peut décemment espérer de cette technique plus de résultats qu’une bouteille à la mer. Mais au moins, ça fait marrer.