Quotidien Shaarli

Tous les liens d'un jour sur une page.

Hier - April 26, 2026

Mental Model #3 - La documentation est un actif (quand elle n’est pas un poison)

L’article d’Ugo Dimini explore l’importance de la documentation comme actif stratégique, tout en dénonçant ses dérives. Il critique notamment le "théâtre de la documentation", où des équipes produisent des documents superflus ou obsolètes, comme des docstrings génériques ou des README surchargés, qui alourdissent sans apporter de valeur. L’auteur illustre ce problème avec l’exemple d’un README de 500 lignes inutilisable, car non mis à jour et incapable de permettre le lancement d’un projet.

Il souligne que la documentation pertinente doit se concentrer sur l’asymétrie de la connaissance : expliquer le pourquoi plutôt que le comment, ce que le code ne peut pas transmettre. Une documentation efficace réduit la charge cognitive en clarifiant les intentions, les limites et les décisions stratégiques, comme les problèmes clients résolus ou les choix techniques abandonnés.

Enfin, Dimini propose un cadre de décision basé sur le retour sur investissement (ROI) pour évaluer la documentation. Il distingue notamment la documentation fonctionnelle, qui décrit le problème et la vision à long terme, comme un actif à ROI infini, car elle aligne les équipes techniques, produit et marketing et évite les dérives futures.

How to Motivate Yourself to Do Anything - Scott H Young

Scott H Young explore dans cet article les obstacles psychologiques qui entravent la motivation pour accomplir des tâches ou adopter des habitudes, qu’il s’agisse de sport, d’apprentissage ou de projets personnels. L’idée centrale est que la procrastination et le manque de motivation découlent souvent de trois problèmes principaux : l’aversion immédiate pour l’effort, la peur irrationnelle de l’échec, ou l’ignorance des méthodes à suivre.

L’auteur détaille d’abord l’aversion pour l’effort, où le présent pèse plus lourd que les bénéfices futurs, comme dans le cas d’une visite chez le dentiste. Il souligne que certaines tâches deviennent moins pénibles avec l’habitude, tandis que d’autres peuvent être rendues plus agréables en modifiant leur contexte ou en les associant à des récompenses. Ensuite, il aborde la peur, qui fausse notre perception des risques et paralyse l’action, proposant comme solution une exposition progressive pour désamorcer ces craintes irrationnelles.

Enfin, Young évoque l’ignorance des méthodes nécessaires, qui peut fausser notre évaluation de l’effort requis et nous décourager avant même d’avoir commencé. Bien que la connaissance ne suffise pas à elle seule, elle joue un rôle clé pour ajuster nos attentes et faciliter l’action. L’article insiste sur l’importance de diagnostiquer ces blocages pour adapter des solutions concrètes.

Mental Model #2 — Pourquoi les développeurs doivent tester leur produit

L’article souligne l’importance pour les développeurs de tester eux-mêmes leurs fonctionnalités avant livraison, plutôt que de se reposer uniquement sur des tests automatisés ou des équipes QA. L’auteur illustre ce point par un exemple où une page fonctionnait techniquement mais était inaccessible aux utilisateurs standards, un problème non détecté par les tests classiques. Il met en avant que les tests automatisés valident le code, mais c’est l’usage réel qui valide le produit, exigeant une approche plus empathique et concrète.

L’auteur explique que tester soi-même le produit permet de détecter des problèmes évidents, d’améliorer la compréhension des parcours utilisateurs et d’accélérer les revues de code. Il critique la tendance à déléguer ces vérifications, ce qui crée une distance entre les développeurs et le produit final. Selon lui, un développeur ne devrait considérer son travail comme terminé qu’une fois la fonctionnalité validée en conditions réelles.

Enfin, il insiste sur le fait que les tests automatisés restent essentiels pour la stabilité, mais ne remplacent pas les tests fonctionnels manuels. Les bugs visibles en production coûtent plus cher à corriger, d’où l’importance d’une boucle de feedback immédiate pour améliorer la qualité et l’expérience utilisateur.

Pourquoi les développeurs anticipent trop tôt

L’article souligne les risques de l’anticipation excessive dans le développement logiciel, où la complexité naît souvent de besoins hypothétiques plutôt que réels. L’auteur illustre ce propos avec un exemple concret : une fonctionnalité rendue paramétrable par prudence, mais jamais utilisée, entraînant deux ans de maintenance inutile. Cette approche, bien que courante, alourdit inutilement les systèmes en augmentant le temps de développement, les risques de bugs et la difficulté de maintenance.

L’auteur explique que les abstractions prématurées, comme des interfaces génériques ou des systèmes de configuration superflus, compliquent le code sans apporter de valeur réelle. Ces choix, motivés par une anticipation incertaine, rendent souvent le logiciel plus difficile à comprendre et à faire évoluer. De plus, la solution imaginée pour un besoin hypothétique peut s’avérer inadaptée, forçant des adaptations coûteuses plutôt qu’une refonte optimale.

Pour éviter ces écueils, l’auteur prône un principe simple : construire uniquement ce qui est nécessaire aujourd’hui, en se basant sur des besoins avérés plutôt que sur des scénarios futurs incertains. Cette approche réduit la complexité, facilite la maintenance et permet d’adapter le code plus efficacement lorsque les besoins réels se présentent.