Les meilleures pratiques… et un éléphant
N'ai-je pas appris en m'engageant dans de mauvaises pratiques ?
Tout le monde est d'accord : Il faut toujours apprendre plus de choses. C'est bon pour moi, toi, et ça nous rend meilleur.
Apprendre un langage fonctionnel, apprendre un langage impératif. En savoir plus sur la programmation asynchrone.
Utilisez un langage compilé à l'avance et typé statiquement, puis utilisez un langage typé et interprété dynamiquement.
Essayez le frontend, essayez le backend, essayez le CSS, essayez GraphQL, essayez REST. Créez un jeu ou construisez un système distribué.
Je pourrais continuer, mais vous voyez l'idée.
Nous sommes tous d'accord. D'accord, oui, mais peut-être que nous ne serons pas d'accord sur ce qui vaut exactement la peine d'apprendre - je suis sûr que je peux trouver quelqu'un qui dit qu'il ne faut jamais essayer CSS - mais je pense que la majorité d'entre vous serai d’accord si je disais qu’on devrait apprendre d’avantage les bonnes choses. Les langages éprouvés; les meilleures pratiques; les meilleurs outils.
Dernièrement, cependant, je me suis demandé : qu'en est-il des mauvaises choses ? N'ai-je pas beaucoup appris aussi en faisant les des choses non permises, en m'engageant dans de mauvaises pratiques, en faisant le contraire de ce que je pensais autrefois être la bonne voie ?
C'est là qu'intervient l'éléphant. Connaissez-vous la parabole des aveugles et l'Éléphant ? Sinon, vous pouvez cliquer sur ce lien, lire sur la parabole et revenir ici, mais puisque personne dans l'histoire de la lecture sur Internet n'a jamais fait cela avant de continuer à lire, voici le premier paragraphe :
La parabole des aveugles et l’Éléphant est l'histoire d'un groupe d'aveugles qui n'ont jamais rencontré d'éléphant auparavant et qui apprennent et imaginent à quoi ressemble l'éléphant en le touchant.
Chaque aveugle sent une partie différente du corps de l'éléphant, mais une seule partie, comme le côté ou la défense. Ils décrivent ensuite l'éléphant en fonction de leur expérience limitée et leurs descriptions de l'éléphant sont différentes les unes des autres. Dans certaines versions, ils en viennent à soupçonner que l'autre personne est malhonnête et ils en viennent à se battre.
La morale de la parabole est que les humains ont tendance à revendiquer la vérité absolue sur la base de leur expérience subjective limitée, car ils ignorent les expériences subjectives limitées des autres qui peuvent être tout aussi vraies.
Croyez-moi, je suis pleinement conscient de ce qu'est une demande, mais : essayez d'imaginer maintenant, comme premier exemple, l'idée de tests logiciels automatisés comme l'éléphant.
Avec cette image à l'esprit, permettez-moi de vous demander ceci : n'êtes-vous pas la personne qui ne touche que les fesses de l'éléphant si vous n'avez jamais fait que du TDD (*Test-Driven Development) et écrit les tests en premier ? Ne manquez-vous pas quelque chose si vous n'avez jamais essayé d'écrire les tests après le code, ou, bon sang, de sauter complètement les tests ?
Je pense que oui. Je pense que les expériences conflictuelles et contradictoires sont très utiles pour apprendre. Plus nous touchons de parties de l'éléphant, plus nous accumulons de perspectives, plus notre compréhension du sujet devient complète.
Essayez donc le TDD mais essayez également d'écrire des tests en dernier. Essayez de n'écrire aucun test et voyez jusqu'où vous irez.
Essayez de déployer à chaque validation, puis essayez de déployer uniquement chaque semaine ou chaque mois ; déployer uniquement le vendredi et jamais le vendredi.
Essayez de copier et coller du code, d'abord un peu, puis quelques fichiers. Essayez de ne jamais copier et coller du code et utilisez uniquement des dépendances tierces. Voyez jusqu'où vous allez.
Automatisez tout, puis essayez de tout faire manuellement.
Ajoutez une dette technologique, ignorez un bogue, peut-être même : réinventez la roue.
Utilisez un framework, puis n'utilisez pas de framework, puis construisez votre framework.
Utilisez uniquement des variables globales, faites du code spaghetti, ayez un seul fichier pour l'ensemble du projet.
L'important est d'essayer différentes choses, d'avoir des perspectives, de toucher l'éléphant de toutes parts.
C'est quoi l'éléphant ? Le génie logiciel? La programmation en général ? La vie? Qui sait, mais je crois que le voir sous tous les angles possibles non seulement vous rend meilleur, mais vous en donne une expérience plus riche.
Merci d'avoir lu. Si vous souhaitez recevoir ces publications chaque semaine, pensez à vous abonner.