Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Auf Deutsch lesen

Section 2.8 sur 2.8 · Intermédiaire · 22 min de lecture

Éliciter, hiérarchiser et arbitrer les attributs de qualité

Leçon vidéo

5 min · narré en anglais, avec sous-titres
Écouter seulement (audio)
Lire la transcription

Dans cette dernière leçon du chapitre, vous allez apprendre à trouver les qualités qui comptent, à les classer et à décider à quoi renoncer.

Quand on prépare des vacances en famille, chacun veut quelque chose de différent. L’un veut que ce soit bon marché, un autre veut une piscine, un autre veut des trajets courts. Vous ne pouvez pas tout avoir. Alors vous vous asseyez ensemble, vous listez ce dont chacun a vraiment besoin, vous votez sur ce qui compte le plus et vous convenez de ce à quoi renoncer. Les architectes font de même avec les qualités d’un système.

Les exigences de qualité arrivent rarement dans un backlog. Les gens les tiennent pour acquises, alors vous devez les faire émerger. Commencez par les parties prenantes : les clients tiennent à la rapidité, l’exploitation au rétablissement, la finance au coût d’exploitation. Les objectifs métier impliquent des qualités. S’implanter dans trois nouveaux pays implique la localisation, la résidence des données et la scalabilité. La réglementation crée des contraintes non négociables. Chaque panne ou violation passée révèle une qualité qui était sous-spécifiée. Et si les concurrents chargent en une seconde, deux secondes sont un problème de qualité. Enfin, mesurez le système existant. Sa charge et sa latence réelles fournissent une base de référence qui transforme « plus rapide » en chiffre.

Les qualités émergent mieux quand les parties prenantes s’écoutent les unes les autres. C’est l’idée du Quality Attribute Workshop, issu du Software Engineering Institute. Il dure généralement une journée, avec cinq à trente personnes, et se tient avant que l’architecture soit figée. Les quatre premières étapes posent le contexte : les présentations, les objectifs métier, les plans d’architecture actuels et les principaux facteurs entendus jusque-là. Vient ensuite le travail sur les scénarios. Chacun propose des scénarios à son tour, et les quasi-doublons sont fusionnés, mais seulement avec l’accord de leurs auteurs. Puis vient le vote. Chaque personne reçoit un nombre de voix égal à environ trente pour cent du nombre de scénarios. La rareté des voix révèle les vraies priorités. Enfin, les quatre ou cinq premiers scénarios sont rédigés en entier, avec leurs six parties.

Pour organiser les résultats, les architectes utilisent un arbre d’utilité. La racine est l’utilité : la qualité globale du système. Elle se ramifie en attributs de qualité, puis en préoccupations précises, comme la latence des commandes ou la disponibilité du paiement. Les feuilles sont des scénarios concrets, chacun noté selon l’importance métier et la difficulté technique : élevée, moyenne ou faible. Les scénarios notés élevé et élevé sont les plus importants et les plus difficiles. Ici, l’un consiste à passer commande au rythme de pointe. L’autre consiste à survivre à une panne du prestataire de paiement. Ces deux-là reçoivent en premier l’attention de la conception. Ce scénario de modifiabilité est d’importance moyenne et de difficulté faible, donc une bonne conception ordinaire suffira.

Voyons cela en pratique. Un atelier de deux heures pour une plateforme de livraison de repas a produit vingt-six scénarios. Avec douze participants, chacun a reçu huit voix : trente pour cent de vingt-six font sept virgule huit, arrondi au supérieur. Un des scénarios en tête : au pic du vendredi, à trois mille commandes par minute, quatre-vingt-quinze pour cent des confirmations reviennent en moins d’une seconde et demie, et quatre-vingt-dix-neuf pour cent en moins de trois. Une rapide vérification de capacité. Trois mille par minute, cela fait cinquante par seconde. L’entreprise prévoit de doubler le volume, donc cent par seconde. Selon la loi de Little, même si chaque commande prenait la seconde et demie entière, il y en aurait au plus environ cent cinquante en cours simultanément. Le second scénario élevé, élevé : quand le prestataire de paiement dépasse son délai, les commandes sont mises en file d’attente, aucune n’est perdue, et les clients sont informés en moins de dix secondes. Ajouter un nouvel éditeur de logiciel de caisse pour restaurants est d’importance moyenne et de difficulté faible. L’équipe prototype donc et teste en charge d’abord le parcours de commande et la conception du paiement mis en file.

Les qualités entrent souvent en conflit, car une tactique qui en favorise une en pénalise une autre. Le chiffrement et les contrôles ajoutent du travail à chaque requête. Pendant une panne réseau, un système répliqué doit choisir entre répondre avec des données peut-être périmées, et refuser. La position d’un livreur peut être légèrement périmée. Un paiement, non. Les couches et les interfaces facilitent le changement, mais ajoutent des sauts. La redondance et les régions supplémentaires coûtent de l’argent, alors n’achetez des neuf que là où une panne coûte plus cher que sa prévention. Et l’authentification forte ajoute de la friction. La bonne réponse dépend toujours du contexte : quel objectif métier chaque camp sert, et ce que coûte chaque option.

Un compromis qui n’est pas consigné par écrit sera de nouveau débattu. Consignez les compromis importants dans des enregistrements de décision d’architecture, y compris ce à quoi vous avez sciemment renoncé. Rendez chaque cible mesurable. Pour la latence des commandes : l’échelle, ce sont les secondes au quatre-vingt-quinzième percentile, et l’instrument de mesure, la supervision des utilisateurs réels au pic du vendredi. Échec au-delà de trois secondes, objectif une seconde et demie, cible ambitieuse une seconde. Ensuite, vérifiez-la automatiquement. Une fonction d’aptitude est une vérification automatisée, comme un test de charge qui fait échouer le build si la latence dérive. C’est là que s’achève ce chapitre : un souhait vague devient un scénario, reçoit une priorité, puis devient une vérification.

La section complète présente chaque étape de l’atelier, l’exemple complet d’arbre d’utilité, un tableau des conflits et une liste de contrôle pour animer votre propre atelier. Ainsi s’achève le chapitre 2. Quand vous serez prêt, essayez le test facultatif du chapitre pour vérifier votre compréhension. Bravo.

Ce qu’il faut savoir

D’où viennent les exigences de qualité

Les exigences fonctionnelles arrivent généralement dans un backlog. Les exigences de qualité, rarement : les parties prenantes les tiennent pour acquises (« bien sûr que ce doit être rapide et sécurisé ») ou ne savent pas qu’elles doivent les énoncer. Les architectes doivent donc les éliciter activement, à partir de plusieurs sources.

Les parties prenantes. Chaque groupe a des préoccupations différentes : les clients tiennent à la rapidité et à la facilité d’utilisation, l’exploitation à la supervision et au rétablissement, la finance au coût d’exploitation, le support au diagnostic des problèmes, la conformité aux pistes d’audit. La cartographie des parties prenantes du chapitre 1 est le point de départ. Les objectifs métier. « S’implanter dans trois nouveaux pays l’an prochain » implique la localisation, la résidence des données et la scalabilité ; « réduire de 20 % les coûts du support client » implique l’utilisabilité et le libre-service. La réglementation et les contrats. La protection des données, le droit de l’accessibilité, les règles sectorielles et les SLA clients créent des contraintes non négociables. Les incidents. Chaque panne, violation ou journée de lenteur passée révèle une qualité qui était sous-spécifiée ; les revues post-incident sont une source précieuse. Les concurrents et le marché. Si les concurrents chargent en une seconde, deux secondes sont un problème de qualité. Le système existant. Son comportement mesuré aujourd’hui (charge réelle, percentiles de latence réels, délai réel de mise en œuvre des changements) fournit une base de référence qui transforme « plus rapide » en chiffre.

Les entretiens et les questionnaires fonctionnent, mais les attributs de qualité émergent mieux lorsque les parties prenantes s’écoutent les unes les autres. Un product owner qui apprend du responsable de l’exploitation ce que coûte une heure d’indisponibilité le vendredi à l’heure du dîner établira d’autres priorités. C’est l’idée qui sous-tend les ateliers structurés.

Le Quality Attribute Workshop

Le Quality Attribute Workshop (QAW), mis au point au Software Engineering Institute (Barbacci et ses collègues ; la troisième édition du rapport de méthode est parue en 2003), est une séance animée, qui dure généralement une journée, organisée tôt, avant que l’architecture soit figée. Il réunit de 5 à 30 parties prenantes pour produire des scénarios d’attributs de qualité affinés et hiérarchisés. Il comporte huit étapes.

Les huit étapes du QAW

Les huit étapes du Quality Attribute Workshop du SEI, des présentations aux facteurs, puis la proposition, le regroupement, la hiérarchisation et l’affinage des scénarios1. Présentationset méthode2. Exposémétier3. Architectureprévue4. Identifierfacteurs5. Proposerscénarios6. Regrouperscénarios7. Hiérarchiserpar vote8. Affinerscénarios clésÉtapes 1-4 : contexte et facteursÉtapes 5-8 : le travail sur les scénarios, qui produit l’essentiel
Les quatre premières étapes établissent le contexte et les facteurs ; les quatre dernières produisent, fusionnent, classent et affinent les scénarios.

Ce qui se passe à chaque étape

  1. 1. Présentation et tour de tableLes animateurs expliquent l’objectif et la méthode ; les participants se présentent et exposent leurs préoccupations.
  2. 2. Présentation métier ou de la missionUn représentant du métier décrit le contexte, les objectifs et les exigences de haut niveau : pourquoi le système existe et ce qui compte le plus.
  3. 3. Présentation du plan d’architectureUn responsable technique présente les plans actuels, les systèmes existants, les contraintes connues et les engagements technologiques, aussi préliminaires soient-ils.
  4. 4. Identification des facteurs architecturauxLes animateurs dégagent les principaux facteurs architecturaux entendus jusque-là (objectifs, qualités, contraintes) et les valident avec le groupe.
  5. 5. Proposition de scénarios (brainstorming)Les participants proposent des scénarios à tour de rôle ; les animateurs veillent à ce que chaque facteur en ait au moins un, et à ce que les scénarios d’usage normal, de croissance et exploratoires (de stress) soient tous représentés.
  6. 6. Regroupement des scénariosLes quasi-doublons sont fusionnés, mais seulement avec l’accord de leurs auteurs, afin que les voix ne soient pas dispersées.
  7. 7. Hiérarchisation des scénariosChaque participant reçoit un nombre de voix égal à environ 30 % du nombre de scénarios et les répartit en deux tours, avec autant de voix qu’il le souhaite par scénario. Le décompte classe les scénarios.
  8. 8. Affinage des scénariosLes quatre ou cinq premiers scénarios sont rédigés en entier : source, stimulus, artefact, environnement, réponse et mesure de la réponse, avec les objectifs métier qu’ils servent et les questions ouvertes.

Les équipes qui ne peuvent pas y consacrer une journée entière organisent souvent un « mini-QAW » plus court, une variante plus légère décrite par des praticiens comme Michael Keeling, Will Chaparro et Thijmen de Gooijer, qui utilise une taxonomie des attributs de qualité comme support et quelques heures avec un groupe plus restreint. L’essentiel demeure : les parties prenantes réunies, des scénarios plutôt que des adjectifs, un vote explicite et l’affinage des scénarios retenus.

L’arbre d’utilité

Un arbre d’utilité est un moyen d’organiser et de hiérarchiser les exigences de qualité, introduit dans le cadre de l’Architecture Tradeoff Analysis Method (ATAM), que Rick Kazman, Mark Klein et Paul Clements ont mise au point au SEI ; la méthode d’évaluation elle-même est traitée au chapitre 11. La racine est l’utilité, la qualité globale du système. Le deuxième niveau contient les attributs de qualité (performances, disponibilité, etc.). Le troisième niveau décompose chacun d’eux en préoccupations plus précises (pour les performances : latence des commandes, fraîcheur du suivi). Les feuilles sont des scénarios concrets et mesurables.

Chaque feuille est notée par une paire : l’importance métier (à quel point le scénario compte pour l’entreprise : élevée (H), moyenne (M) ou faible (L)) et la difficulté technique ou le risque (à quel point il est difficile à atteindre avec l’architecture : élevée, moyenne ou faible). La paire s’écrit (B,T), par exemple (H,M). Les scénarios notés (H,H) sont les priorités absolues de l’architecture : ce sont les plus importants et les plus difficiles, ils méritent donc un effort de conception précoce, des prototypes et des analyses. Les scénarios (H,L) comptent mais sont faciles, donc une approche standard suffira ; les scénarios (L,H) sont candidats à l’abandon ou au report, car ils sont difficiles mais ne valent pas grand-chose.

L’arbre est utile même en dehors d’une évaluation formelle. Il rend les compromis visibles sur une seule page, montre les lacunes (une qualité sans scénario) et empêche la partie prenante la plus bruyante de fixer seule les priorités.

Un arbre d’utilité pour une plateforme de livraison de repas

Un arbre d’utilité pour une plateforme de livraison de repas : l’utilité se ramifie en attributs de qualité, raffinements et scénarios concrets, chacun noté selon l’importance métier et la difficulté techniqueUtilitéPerformancesDisponibilitéModifiabilitéSécuritéDélai commandeCommander : p95 sous 1,5 sà 3000 commandes par minute(H,H)Fraîcheur du suiviPosition livreur sur cartedatant de 5 s au plus(M,M)Dispo. paiementPaiement tiers en panne :commandes en file, 0 perte(H,H)Panne de régionRégion perdue : servicerétabli en 15 min, 1 min de perte(H,M)Nouvelle caisseNouvel éditeur de caisseajouté en 5 jours-pers.(M,L)Prise de contrôleCredential stuffing détectéet bloqué en 2 min(H,M)(B,T)
Deux scénarios notés (H,H), mis en évidence, sont les priorités absolues de l’architecture ; le scénario de modifiabilité (M,L) peut être satisfait par une bonne conception ordinaire.

Exemple commenté

Exemple commenté : construire l’arbre d’utilité d’une plateforme de livraison de repas

Une plateforme de livraison de repas met en relation des clients, 4000 restaurants et 9000 livreurs dans un pays. L’entreprise prévoit de doubler le volume de commandes d’ici 18 mois. Le pic du vendredi soir atteint aujourd’hui 3000 commandes par minute. Un QAW de deux heures a produit 26 scénarios ; avec 12 participants, chacun disposait de 8 voix (30 % de 26 font 7,8, arrondi au nombre pair supérieur, 8). Les scénarios ayant reçu le plus de voix sont devenus les feuilles de l’arbre.

Performances : latence des commandes (H,H)Les clients passent commande au rythme de pointe de 3000 par minute ; 95 % des confirmations de commande reviennent en moins de 1,5 s et 99 % en moins de 3 s. Importance élevée : les paniers abandonnés sont du chiffre d’affaires perdu. Difficulté élevée : la requête traverse les services du panier, de la tarification, des paiements et des restaurants
Vérification de capacité pour ce scénario3000 commandes/min = 50 commandes/s. Doubler le volume donne 100 commandes/s. Selon la loi de Little, même si chaque commande prenait la totalité des 1,5 s, il y aurait au plus environ 100 x 1,5 = 150 commandes en cours simultanément (section 2.4) ; la moyenne réelle est plus basse, car la plupart des commandes se terminent plus vite
Disponibilité : disponibilité du paiement (H,H)Lorsque le prestataire de paiement dépasse son délai d’expiration pendant le pic, les commandes sont acceptées et mises en file d’attente pour paiement, aucune commande confirmée n’est perdue, et les clients sont informés en moins de 10 s. Difficile, car cela exige un paiement asynchrone, des nouvelles tentatives idempotentes et une expérience utilisateur pour l’état « en attente »
Disponibilité : panne de région (H,M)Si la région cloud tombe en panne, le service reprend dans une deuxième région en moins de 15 minutes (RTO) avec au plus 1 minute de données de commande perdues (RPO). Important, mais techniquement bien maîtrisé
Sécurité : prise de contrôle de compte (H,M)Une attaque par bourrage d’identifiants (credential stuffing) est détectée et bloquée en moins de 2 minutes ; l’attaquant ne prend le contrôle d’aucun compte protégé par l’authentification multifacteur
Performances : fraîcheur du suivi (M,M)La position d’un livreur sur la carte du client n’a jamais plus de 5 s de retard sous la charge de pointe
Modifiabilité : nouvel éditeur de caisse (M,L)Un nouvel éditeur de logiciel de caisse pour restaurants est intégré en 5 jours-personne par l’ajout d’un adaptateur (section 2.6)
Priorités qui en résultentPrototyper et tester en charge d’abord le parcours de commande et la conception du paiement mis en file ; utiliser des patrons multirégions standard pour la panne de région ; garder l’interface de l’adaptateur simple

Les notes sont des jugements convenus par le groupe, pas des calculs. Consignez qui a noté quoi et pourquoi, afin que les notes puissent être contestées plus tard.

L’arbre pilote le plan de travail : les deux scénarios (H,H) font l’objet de spikes architecturaux dès les premiers sprints, tandis que le scénario (M,L) ne nécessite aucune attention particulière.

Le suivi des livreurs n’a été noté que d’importance moyenne, ce qui a surpris les ingénieurs ; le product owner a expliqué que les clients regardent surtout l’heure d’arrivée estimée, pas la carte.

Hiérarchiser quand tout est « critique »

Chaque partie prenante notera sa propre préoccupation comme élevée. Les techniques qui obligent à faire de vrais choix sont utiles. Un nombre de voix fixe (comme dans le QAW) oblige chacun à dépenser des voix rares. La comparaison par paires (« si vous ne pouviez en avoir qu’une, une recherche en moins d’une seconde ou aucune perte de données lors d’un basculement ? ») révèle le véritable ordre. Placer un montant ou un délai à côté de chaque cible (« quatre neuf coûteront 9000 £ de plus par mois et deux mois de travail ») fait changer bien des avis. Enfin, distinguer les contraintes (exigences légales d’accessibilité, résidence des données) des préférences évite que des éléments non négociables soient sacrifiés par accident.

Les priorités ne sont pas figées. Une start-up qui cherche ses premiers clients place à juste titre le délai de mise sur le marché et la modifiabilité au-dessus d’une disponibilité à cinq neuf ; le même produit, trois ans plus tard, avec des clients grands comptes et des SLA contractuels, doit revoir son classement. Revisitez l’arbre d’utilité quand l’activité change.

Les conflits entre qualités

Les qualités interagissent. Certaines se renforcent mutuellement : la modularité aide la testabilité, qui aide la déployabilité. Beaucoup entrent en conflit, parce que la tactique qui favorise une qualité en pénalise une autre. L’ATAM, décrite par Bass, Clements et Kazman, appelle points de compromis les points où une décision d’architecture affecte plusieurs qualités. Connaître les conflits habituels vous permet de les soulever avant qu’ils ne surprennent qui que ce soit.

Conflits courants entre qualités, et comment le contexte les résout

ConflitPourquoi elles s’opposentComment le résoudre selon le contexte
Performances contre sécuritéLe chiffrement, les contrôles d’authentification, la validation des entrées et la journalisation d’audit ajoutent du travail à chaque requêteMesurer le surcoût réel (souvent faible avec le TLS et le matériel modernes) ; mettre brièvement en cache les décisions d’autorisation ; repousser les contrôles coûteux en périphérie ; ne jamais sacrifier la sécurité de données dont l’exposition causerait un préjudice grave
Disponibilité contre cohérencePendant une partition réseau, un système répliqué doit choisir entre répondre (éventuellement avec des données périmées) et refuserDécider opération par opération : une carte ou la position d’un livreur peut être légèrement périmée ; un paiement ou une réservation de stock, non. Voir CAP et PACELC au chapitre 6
Modifiabilité contre performancesLes couches, les interfaces, les intermédiaires et la liaison tardive ajoutent de l’indirection et des sautsGarder l’indirection là où le changement est probable ; optimiser le chemin critique mesuré ; accepter quelques raccourcis délibérés, documentés dans un enregistrement de décision
Coût contre presque tout le resteLa redondance, les régions supplémentaires, davantage de tests et du matériel plus rapide coûtent tous de l’argentRattacher chaque cible de qualité à sa valeur métier ; utiliser des budgets d’erreur et le coût unitaire ; n’acheter des « neuf » que là où une panne coûte plus cher que sa prévention
Utilisabilité contre sécuritéL’authentification forte, les délais d’expiration et les confirmations ajoutent de la frictionAuthentification fondée sur le risque (renforcée seulement pour les actions à risque), passkeys et authentification unique (single sign-on), durées de session raisonnables ; associer les utilisateurs aux tests
Délai de mise sur le marché contre maintenabilitéLes raccourcis accélèrent la première version et ralentissent les suivantesContracter de la dette technique délibérément, la consigner et planifier son remboursement (chapitre 1)

La bonne résolution dépend toujours du contexte. « La sécurité prime sur les performances » est un slogan, pas une décision : 2 ms de plus de négociation TLS sur un site web public sont sans importance, alors que des contrôles antifraude synchrones à chaque passage de carte dans un stade bondé peuvent poser un vrai problème qui mérite une réponse architecturale (un modèle « approuver d’abord, vérifier ensuite » avec des plafonds). Demandez-vous : quel objectif métier chaque camp sert-il, combien coûte chaque option, et qui doit donner son accord ?

Consigner les décisions et suivre les qualités

Un compromis qui n’est pas consigné par écrit sera de nouveau débattu, souvent par des personnes qui n’étaient pas dans la salle. Consignez les compromis importants sous forme d’enregistrements de décision d’architecture (chapitre 4) : le contexte, les qualités en tension, les options envisagées, la décision et ses conséquences, y compris ce à quoi vous avez sciemment renoncé.

Rendez ensuite chaque cible de qualité mesurable et visible. Le Planguage de Tom Gilb propose un format rigoureux : une échelle (ce qui est mesuré, dans quelle unité), un instrument de mesure (comment c’est mesuré), et des niveaux comme échec (le seuil en deçà duquel l’exigence n’est pas satisfaite), objectif (la cible) et cible ambitieuse ou souhait (des niveaux plus ambitieux). Appliqué au scénario de latence des commandes : échelle, secondes entre l’envoi et la confirmation au 95e percentile ; instrument de mesure, supervision des utilisateurs réels pendant le pic du vendredi ; échec au-delà de 3 s ; objectif 1,5 s ; cible ambitieuse 1 s.

Enfin, suivez les mesures dans le temps sur un tableau de bord visible par les parties prenantes, à côté des SLO (chapitre 9), et revoyez-les chaque fois que l’activité, la charge ou l’équipe change.

Des scénarios aux fonctions d’aptitude

Le moyen le plus sûr de garantir qu’une exigence de qualité reste satisfaite est de la vérifier automatiquement, à chaque modification du système. Neal Ford, Rebecca Parsons et Patrick Kua, dans Building Evolutionary Architectures (2017 ; deuxième édition avec Pramod Sadalage, 2022), appellent une telle vérification une fonction d’aptitude architecturale : une évaluation objective de la mesure dans laquelle le système satisfait une caractéristique d’architecture. Un test de charge dans le pipeline qui fait échouer le build si la latence p95 des commandes dépasse 1,5 s à 100 commandes par seconde est une fonction d’aptitude. Il en va de même d’un test qui échoue si un module extérieur à payments importe la bibliothèque du prestataire de paiement (ce qui protège le scénario de modifiabilité), d’un exercice de basculement planifié qui mesure le délai de rétablissement, ou d’une analyse des dépendances qui bloque les bibliothèques vulnérables connues.

Les fonctions d’aptitude sont l’aboutissement naturel du travail de ce chapitre : un souhait vague devient un scénario (section 2.3), le scénario reçoit une priorité dans l’arbre d’utilité, et la mesure de la réponse du scénario devient une vérification automatisée. Toutes les qualités ne peuvent pas être automatisées à peu de frais (l’utilisabilité a toujours besoin de personnes), mais chacune de celles que vous automatisez cesse de s’éroder en silence. Le chapitre 11 traite en profondeur de leur conception : fonctions d’aptitude et architecture évolutive.

Liste de contrôle : animer un atelier sur les attributs de qualité

Adaptée à une séance d’une demi-journée ou d’une journée ; un « mini-QAW » plus court peut couvrir le même terrain avec un groupe plus restreint.

  • Inviter le bon panelDe 5 à 30 personnes : responsables métier, utilisateurs ou leurs représentants, exploitation, sécurité, support, développeurs, et toute personne qui valide la conformité. L’absence de l’exploitation est la lacune la plus courante.
  • Envoyer une courte lecture préalableLes objectifs métier, les contraintes connues et une liste provisoire d’attributs de qualité (l’ISO/IEC 25010 comme support), pour que chacun arrive en ayant déjà réfléchi.
  • Commencer par les objectifs métier, pas par la technologieUne partie prenante de haut niveau explique pourquoi le système existe, à quoi ressemblerait la réussite et ce que coûterait un échec.
  • S’accorder sur les facteurs architecturauxUne courte liste des objectifs, qualités et contraintes qui façonneront l’architecture, validée avec le groupe avant le début des scénarios.
  • Proposer des scénarios par toursChacun en apporte au moins deux, à tour de rôle, pour que les voix discrètes soient entendues. Incluez l’usage normal, la croissance (« dans deux ans ») et le stress (« quand le prestataire de paiement est en panne »).
  • Ne fusionner les doublons qu’avec accordLe regroupement évite la dispersion des voix, mais l’auteur doit convenir que deux scénarios signifient vraiment la même chose.
  • Voter avec un nombre de voix fixeChaque personne reçoit un nombre de voix égal à environ 30 % du nombre de scénarios, réparties en deux tours. Cela révèle les vraies priorités et évite le « tout est critique ».
  • Affiner entièrement les premiers scénariosRédigez les quatre ou cinq premiers sous forme de scénarios en six parties avec des mesures de la réponse mesurables, et notez l’objectif métier que chacun sert.
  • Consigner les questions ouvertes et les conflitsLes désaccords sur la priorité ou la faisabilité sont des résultats précieux ; listez-les avec un responsable.
  • Publier le résultat sous quelques joursPartagez les scénarios hiérarchisés, ajoutez-les à la documentation d’architecture et au backlog, et planifiez le moment où chacun sera vérifié.

Vérifiez votre compréhension

Dans un QAW avec 20 scénarios regroupés, combien de voix environ chaque participant reçoit-il ?

Environ 30 % de 20, soit 6 voix, réparties en deux tours de 3.

Une feuille de l’arbre d’utilité est notée (L,H). Que cela suggère-t-il ?

Elle compte peu pour l’entreprise mais est difficile à atteindre : c’est donc une candidate à l’abandon, au report ou à la renégociation, plutôt qu’un élément qui pilote l’architecture.

Pourquoi « la sécurité prime toujours sur les performances » est-il une mauvaise manière de résoudre un conflit ?

Parce que la bonne réponse dépend du surcoût réel, du préjudice que le contrôle de sécurité évite et de la valeur métier des performances ; le conflit doit être résolu au cas par cas, chiffres à l’appui, et consigné.

Donnez un exemple de fonction d’aptitude pour une exigence de modifiabilité.

Un test automatisé dans le build qui échoue si un module autre que l’adaptateur de paiement importe la bibliothèque du prestataire de paiement, ce qui garde le prestataire remplaçable.

Fin du chapitre 2Passer le test du chapitreFacultatif : 20 questions à choix multiples et 2 réponses rédigées, dans l’application.Accéder au test →

Sources et lectures complémentaires

Une question sur cette section ? ArchitectBot, l’assistant d’étude IA du cours, répond d’abord à partir du cours.

Demander : « Notre product owner dit que toutes les qualités sont critiques. Comment animer une courte séance qui aboutisse à un classement honnête ? »