Matrice de décision
Une matrice de décision pondérée transforme « Je n'arrive pas à décider » en un nombre défendable et inspectable — mais ce nombre n'est bon que si les critères, les poids et les recherches qui le sous-tendent le sont. Votre travail est la réflexion (ce qui compte, à quel point, et comment chaque option s'en sort réellement), pas simplement remplir un tableau. Le rapport HTML final est un sous-produit de cette réflexion bien menée, pas le but de l'exercice.
1. Vérifier que la décision est adaptée à cette méthode
Cette méthode brille lorsqu'il y a 2 à 8 options discrètes et plusieurs critères qui tirent dans des directions différentes (moins cher vs. plus agréable, plus rapide vs. plus sûr). Elle est superflue ou inadaptée quand :
- Il n'y a vraiment qu'un seul facteur qui compte (« lequel est le moins cher ») — répondez simplement à cela.
- C'est une question binaire, pas un choix entre alternatives.
- L'espace des options est pratiquement illimité (par exemple « où devrais-je vivre » sans liste préalable) — aidez d'abord la personne à réduire à une shortlist, puis appliquez la matrice sur cette shortlist.
Si elle convient, dites-le brièvement et passez à la suite — n'obligez pas la personne à justifier l'utilisation d'une matrice de décision.
2. Une seule demande — ne faites pas d'interview champ par champ
Demander « quelle est la décision », puis « quelles sont les options », puis « qu'est-ce qui compte pour vous », puis le poids de chaque critère un par un, transforme une décision de 2 minutes en un échange de 15 messages. Demandez la décision, les options et une idée approximative des priorités ensemble, en un seul message, et donnez un exemple pour que la personne sache à quel point une bonne réponse demande peu d'effort :
« Sur quoi porté votre décision, quelles sont les options, et qu'est-ce qui compte le plus pour vous — une idée approximative est parfaitement acceptable, je la transformerai en comparaison claire. Exemple : 'Je choisis entre 3 offres d'emploi — Acme, Globex, et rester à mon poste actuel (Initech). Ce qui compte surtout pour moi, c'est le salaire, la progression possible, et un trajet pas trop long.' »
Si la réponse est maigre (seulement les options, sans priorités), c'est acceptable — passez à l'étape 3 et proposez des priorités à leur place plutôt que de redemander.
3. Proposer un brouillon modifiable — critères, définitions et poids ensemble
Ne collectez pas les critères puis séparément les poids. Recherchez ce qui compte généralement pour ce type de décision (une offre d'emploi et un appartement n'ont pas les mêmes critères) et renvoyez un brouillon complet — 5 à 10 critères, chacun avec une définition d'une ligne et un poids suggéré (1-10) — que la personne peut modifier en un seul passage, plutôt que de le construire à partir de leur brainstorming sur une page blanche ou de demander chacun à tour de rôle. Repoussez doucement (toujours dans ce même brouillon, ne demandez pas d'abord la permission) si leur liste dépasse ~10 — fusionnez ou supprimez ceux qui se répètent.
Laissez les gens répondre de la manière la plus simple — un nombre, ou juste « élevé/moyen/faible » (à mapper approximativement sur 9/6/3) — et acceptez une réponse aussi légère que « ça me va » ou « enlève le trajet, augmente le salaire à 10. » Exemple de ce qu'il faut envoyer :
« Voici un brouillon pour comparer des offres d'emploi — modifiez n'importe quelle ligne, ajoutez-en/supprimez-en une, ou dites simplement 'ça me va' :
Critère Ce qu'il signifie Importance (1-10) Salaire Rémunération totale (salaire + prime + actions), première année 9 Progression Combien vous apprendrez/évoluerez dans ce poste 8 Trajet Temps porte-à-porte, jour typique 6 Stabilité Probabilité que le poste/l'entreprise existe encore dans 2 ans 7 Équipe & culture Qualité des personnes et de l'ambiance quotidienne 7 Quelque chose à ajouter — comme l'assurance santé, ou la flexibilité du télétravail ? »
Deux points comptent plus que ce que les gens imaginent une fois le brouillon confirmé :
- Gardez la définition de chaque critère, ne la réduisez pas à une simple étiquette. « Progression » est ambiguë ; « progression = combien j'apprendrais dans ce poste la première année » est évaluable. Sans cela, vos propres scores dériveront de manière incohérente selon les options.
- Surveillez les critères qui comptent deux fois la même chose sous-jacente (par exemple « salaire » et « sécurité financière » fusionnent souvent en un seul facteur) — les fusionner maintient l'honnêteté des poids.
4. Verrouiller et passer à la suite
Un seul tour de modification suffit normalement — une fois que la personne confirme (ou ne s'oppose pas), traitez les critères, définitions et poids comme verrouillés et passez directement à la recherche à l'étape 5. Ne redemandez pas de confirmer des chiffres déjà montrés ; si vous devez changer quelque chose plus tard (par exemple un critère s'avère non évaluable), dites ce que vous changez et pourquoi plutôt que de rouvrir tout le brouillon pour approbation.
5. Rechercher et noter chaque cellule option × critère (1-10)
Cette étape est le vrai travail, et c'est là qu'un agent gagne sa place par rapport à un simple modèle. Pour chaque cellule :
- Faites réellement des recherches — utilisez la recherche/les outils pour trouver le fait pertinent (prix, spécification, note, données salariales, avis, politique) avant de noter. N'inventez pas un chiffre à l'oreille.
- Ancrez l'échelle de manière cohérente au sein d'un critère. Décidez ce que 1 et 10 signifient pour ce critère (par exemple « 10 = le moins cher parmi ces options » ou « 10 = répond à tous les impératifs ») avant de noter la première option, et maintenez cette ancre pour toutes les options afin que les scores soient comparables. Notez cette ancre une fois par critère dans vos notes personnelles.
- Donnez une justification d'une phrase par cellule, en nommant le fait ou la source derrière le nombre. Cette justification rend le rapport digne de confiance et est affichée dans le rapport HTML via le bouton « pourquoi ».
- Dites quand vous devinez. Certains critères sont vraiment subjectifs (par exemple « excitation », « intuition ») ou peu documentés. Notez-les à partir du propre jugement de la personne et signalez dans la justification qu'ils sont subjectifs/non vérifiés plutôt que de les présenter avec une fausse précision. Ne fabriquez jamais de source.
6. Calculer le total pondéré
Pour chaque option : score_pondéré = Σ(poids_i × score_i) / Σ(poids_i), une moyenne normalisée de 1 à 10. Cela maintient le total sur la même échelle de 1 à 10 que les entrées, ce qui facilite la vérification de cohérence.
7. Livrer d'abord le tableau markdown
Avant de construire le HTML, montrez le résultat dans le chat sous forme d'un tableau : les options en lignes triées de la meilleure à la moins bonne, les critères en colonnes (score seulement, pour rester lisible), et une dernière colonne pour le total pondéré. Suivez de 2 à 3 phrases nommant la meilleure option, la deuxième, et le plus grand facteur qui les sépare — et signalez clairement si les deux premières sont suffisamment proches pour que le « gagnant » soit en réalité un match nul.
8. Construire le rapport HTML interactif
Écrivez un fichier de données JSON correspondant au schéma ci-dessous, puis exécutez :
python3 scripts/build_report.py data.json report.html
Cela injecte vos données dans le moteur de assets/report_template.html et écrit un fichier report.html autonome (pas de serveur, pas de ressources externes à part une Google Font — il fonctionne en double-cliquant sur le fichier). Le script valide les données et échoue avec un message spécifique si quelque chose manque ou est hors limites.
Schéma de données
{
"meta": {
"title": "Quel appartement louer ?",
"subtitle": "Comparaison de 4 annonces dans le même quartier",
"description": "Une ou deux courtes phrases de contexte. Affiché sous le titre.",
"direction": "ltr",
"credit": "Matrice de décision par <votre nom>",
"credit_url": "https://github.com/mrachny/decision-matrix-skill"
},
"criteria": [
{ "id": "loyer", "label": "Loyer mensuel", "description": "10 = le moins cher des quatre, 1 = le plus cher.", "weight": 9 }
],
"options": [
{ "id": "optA", "label": "Appartement rue des Ormes", "included": true }
],
"scores": { "optA": { "loyer": 7 } },
"notes": { "optA": { "loyer": "5 200 shekels/mois, le deuxième moins cher des quatre (source : annonce)." } }
}
meta.directionest"ltr"ou"rtl"; omettez pour"ltr".- Le pied de page du rapport affiche par défaut une petite ligne de crédit « Généré avec une matrice de décision ».
meta.credit/credit_urlremplacent son texte/lien ; définissezmeta.creditàfalsesi la personne ne veut explicitement aucune ligne de crédit. criteria[].descriptionetnotessont optionnels mais fortement recommandés — ils deviennent le texte « pourquoi » affiché dans le rapport. Un critère ou une cellule sans description n'affiche aucune justification, ce qui convient pour un brouillon rapide mais affaiblit le rapport.options[].included(par défauttrue) définit l'état de sourdine initial du rapport.- Chaque score doit être un nombre de 1 à 10. Le script de construction vérifie cela et la cohérence des identifiants entre
criteria/options/scoresavant d'écrire quoi que ce soit.
Indiquez à la personne où se trouve le fichier et qu'il s'ouvre directement dans n'importe quel navigateur — les poids et les boutons de sourdine recalculent le classement en direct, rien n'est envoyé nulle part, et rien n'est sauvegardé à moins qu'elle ne conserve le fichier.
9. Inviter à une vérification de sensibilité
Terminez en soulignant que le rapport est conçu pour être manipulé, pas seulement lu : si le fait de désactiver le critère le plus incertain ou de modifier un poids change le gagnant, c'est un vrai signal que la décision est serrée et mérite plus de réflexion (ou que les différences sont négligeables et qu'ils devraient suivre leur intuition / le coût / ce qui est le plus facile à annuler). Si le classement résiste à ce genre de tests, c'est aussi un signal utile.
Fichiers de référence
references/method.md— contexte sur la méthode, pièges courants de notation (critères corrélés, compression des poids, dérive d'ancrage), et comment discuter d'une égalité avec la personne.assets/report_template.html— le moteur du rapport. Vous ne devriez pas avoir besoin de le modifier manuellement ; tout ce qui est personnalisable passe par le fichier de données JSON.scripts/build_report.py— construit le rapport ; exécutezpython3 scripts/build_report.py --helppour l'utilisation (montrée ci-dessus).examples/laptop-purchase.json— un exemple de fichier de données complet si vous voulez en voir un avant de créer le vôtre.