Be Software Architecture Wise
Be Wise Apps

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

Section 11.1 sur 11.8 · Avancé · 28 min de lecture

Évaluation de l’architecture et ATAM

Leçon vidéo

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

Toute architecture est un pari. Cette leçon montre comment vérifier ce pari avant d’engager l’argent, avec l’Architecture Tradeoff Analysis Method, ou ATAM.

Avant qu’une ville construise un nouveau pont, des ingénieurs indépendants vérifient la conception. Ils demandent ce qui se passe en cas de crue, pendant une tempête et sous les camions les plus lourds. Ils signalent les endroits où un choix qui fait économiser de l’argent aggrave un autre danger. Ils ne redessinent pas le pont et ne lui donnent pas de note. Ils indiquent aux propriétaires où se trouvent les vrais risques, tant que les changements coûtent encore peu. L’évaluation de l’architecture fait la même chose pour le logiciel.

Une évaluation pose une question étroite et pratique : compte tenu de ce que ce système doit accomplir, lesquelles de ses décisions architecturales mettent ces objectifs en danger ? Elle porte sur les décisions, pas sur le code ; elle peut donc commencer sur une conception au tableau blanc. Elle a le plus de valeur avant un engagement majeur, comme un contrat fournisseur ou une migration vers le cloud. Menée trop tard, ses constats ne peuvent plus qu’être regrettés.

L’ATAM a été décrite en 2000 par Rick Kazman, Mark Klein et Paul Clements, du Software Engineering Institute, ou SEI. Une équipe d’évaluation de trois à cinq personnes extérieures au projet la conduit. L’indépendance compte : des évaluateurs qui ont conçu le système trouvent moins de risques. Ils travaillent avec les décideurs, comme l’architecte et le commanditaire, et avec un groupe plus large de parties prenantes, des développeurs à l’exploitation, à la sécurité et au support. L’ATAM ne donne ni score ni note de réussite. Elle trouve les endroits où les décisions mettent en danger les objectifs métier, et ceux où elles imposent des compromis entre qualités.

La méthode se déroule en quatre phases, avec neuf étapes réparties sur deux réunions d’évaluation. En phase zéro, sur quelques semaines, les responsables fixent la portée, le coût et l’équipe, et réunissent les documents d’architecture. La phase un dure environ une journée avec les décideurs. Les étapes un à six présentent la méthode, les facteurs métier et l’architecture, puis construisent l’arbre d’utilité et analysent. Après une pause de deux à trois semaines, la phase deux ajoute le groupe élargi des parties prenantes pendant environ deux jours. Ils proposent leurs propres scénarios et votent sur eux, puis ces scénarios sont analysés. La phase trois correspond à environ une semaine de suivi : le rapport final, avec les thèmes de risque transformés en éléments de backlog et en enregistrements de décision.

Le cœur de la méthode, c’est l’analyse. Les évaluateurs prennent les scénarios priorisés, et les approches architecturales qui les traitent. Ils demandent à l’architecte de dérouler chaque scénario à travers la conception, et ils creusent. Combien d’appels synchrones se trouvent sur ce chemin ? Que se passe-t-il quand ce nœud tombe en panne ? Chaque réponse est classée. Un risque est une décision, ou une décision manquante, qui peut empêcher d’atteindre un objectif important. Un non-risque est une décision solide, consignée avec ses hypothèses. Un point de sensibilité est une propriété dont une qualité dépend de manière critique. Un point de compromis est un point de sensibilité pour plus d’une qualité, si bien qu’améliorer l’une dégrade l’autre. Les risques et les points de compromis sont regroupés en thèmes de risque, chacun ayant une cause sous-jacente commune. Et chaque thème nomme les facteurs métier qu’il menace, ceux-là mêmes qui ont orienté les scénarios.

Voici une ATAM condensée de la plateforme de livraison de repas, avec quatre mille restaurants et neuf mille livreurs. Le métier veut passer de cinquante à cent commandes par seconde au pic du vendredi d’ici dix-huit mois. La latence des commandes doit rester sous trois secondes au quatre-vingt-dix-neuvième percentile, mais le prestataire de paiement prend à lui seul deux secondes et demie. D’après la loi de Little, cela fait deux cent cinquante requêtes en cours pour deux cents workers. Risque R1. Quand le prestataire dépasse son délai, la conception actuelle fait échouer la commande : risque R2. Autoriser plus tard, depuis une file, aiderait, mais certaines commandes acceptées échoueraient alors au paiement. C’est le point de compromis T1. Tout n’est pas un risque. L’outbox, Kafka avec trois réplicas et les consommateurs idempotents garantissent qu’aucune commande n’est perdue : non-risque N1, avec son hypothèse consignée. En phase deux, les parties prenantes ont voté massivement pour un scénario absent de l’arbre : une tablette de restaurant hors ligne pendant dix minutes au pic doit quand même recevoir toutes les commandes. Risque R5, un angle mort. Les risques se regroupent en deux thèmes : des tiers sur des chemins critiques synchrones, et des garanties de reprise et de livraison en retard sur la disponibilité promise aux chaînes de restaurants.

Une ATAM complète coûte cher : dans l’illustration approximative du cours, environ soixante jours de temps de travail. Pour un système dont la défaillance coûterait des millions, c’est une assurance bon marché. Pour une petite équipe, c’est disproportionné ; adaptez donc la méthode aux enjeux. Une ATAM réduite peut se faire en une journée ou moins. Les constats qui ne deviennent pas des enregistrements de décision, des éléments de backlog et des fonctions d’aptitude dotés de responsables sont oubliés en un trimestre.

La section complète détaille les neuf étapes, et la façon dont la Cost Benefit Analysis Method met l’argent sur la table. Ensuite, dans la section onze point deux, nous verrons les revues légères et le risk-storming. À très vite.

Ce qu’il faut savoir

Pourquoi évaluer une architecture

Toute architecture est un pari. Quand une équipe choisit un courtier d’événements, une base de données par service ou une seule région cloud, elle prédit que ces décisions apporteront les performances, la disponibilité, la sécurité et le coût dont le métier a besoin. La section 1.3 a montré pourquoi de tels paris comptent : le coût de changement d’une décision structurelle augmente avec tout ce qui est construit par-dessus, et certaines des défaillances les plus coûteuses du logiciel tenaient à l’agencement plutôt qu’à des lignes de code isolées. L’évaluation de l’architecture est l’acte délibéré de vérifier le pari avant que l’argent soit dépensé, ou pendant qu’il l’est.

Une évaluation pose une question étroite et pratique : compte tenu de ce que ce système doit accomplir, lesquelles de ses décisions architecturales mettent ces objectifs en danger ? Ce n’est ni une revue de code, ni un concours de beauté entre styles, ni un audit de la qualité de la documentation. Elle porte sur les décisions et leurs conséquences pour les attributs de qualité ; elle peut donc être menée bien avant qu’il existe du code, sur une conception au tableau blanc ou un ensemble d’enregistrements de décision, et elle peut être répétée sur un système qui fonctionne depuis des années.

L’évaluation a aussi des bénéfices au-delà de ses constats. Des parties prenantes qui se rencontrent rarement (responsables produit, exploitation, sécurité, finance, développeurs) doivent s’accorder sur ce qui compte le plus, ce qui met souvent au jour des hypothèses contradictoires. L’architecte doit expliquer la conception assez clairement pour que des personnes extérieures puissent l’examiner, ce qui améliore la documentation. Et l’organisation obtient une trace des risques connus qu’elle a choisi d’accepter, ce qui est très différent de risques que personne n’a remarqués.

Quand évaluer

Le meilleur moment pour évaluer est celui où suffisamment de choses ont été décidées pour que l’évaluation ait de quoi examiner, mais avant que ces décisions deviennent coûteuses à défaire. En pratique, il existe plusieurs moments naturels, et les organisations matures utilisent pour chacun une évaluation plus ou moins lourde.

Les moments de l’évaluation

DéclencheurCe qui est vérifiéPoids habituel
Une architecture candidate existe, avant la construction à grande échelleSi les principaux styles et tactiques peuvent satisfaire les scénarios de qualité priorisésATAM complète ou réduite pour les systèmes importants ou à longue durée de vie ; sinon une revue légère
Avant un engagement majeurUn contrat fournisseur, une migration vers le cloud, une étape de financement ou une décision de changement de plateforme coûteuse à défaireFormelle, souvent avec des évaluateurs externes, car la décision est une porte à sens unique
Changement important des facteurs métierNouveaux marchés, fusion, objectif de croissance d’un facteur dix, nouvelle réglementationRefaire l’arbre d’utilité et analyser les scénarios qui ont changé
Changements accumulés et dériveSi le système tel que construit correspond encore à l’architecture voulue et à ses raisonsRevue légère périodique plus fonctions d’aptitude automatisées
Acquisition ou due diligenceSi un système existant peut soutenir les projets de l’acquéreurÉvaluation limitée dans le temps d’un système existant, souvent combinée à une analyse du code
Après un incident graveSi l’incident a révélé une faiblesse architecturale plutôt qu’une faute isoléeAnalyse ciblée des scénarios concernés

Évaluer trop tôt gaspille des efforts sur des décisions qui ne sont pas encore réelles ; évaluer trop tard transforme les constats en regrets. Une règle utile du modèle piloté par les risques de Fairbanks (section 1.8) s’applique ici aussi : investissez dans l’évaluation en proportion du risque. Un outil interne utilisé par deux équipes n’a pas besoin d’un atelier de deux jours ; une plateforme nationale de paiements, si.

L’ATAM : origines, objectif et participants

L’Architecture Tradeoff Analysis Method (ATAM) est la méthode d’évaluation la plus connue. Rick Kazman, Mark Klein et Paul Clements, du Software Engineering Institute (SEI) de l’université Carnegie Mellon, l’ont décrite dans le rapport technique ATAM: Method for Architecture Evaluation (CMU/SEI-2000-TR-004, août 2000). Elle est issue de la Software Architecture Analysis Method (SAAM), plus ancienne, que Kazman et ses collègues ont publiée en 1994 et qui portait surtout sur la modifiabilité. L’ATAM est aussi décrite dans Software Architecture in Practice de Bass, Clements et Kazman, aujourd’hui dans sa quatrième édition (2021).

Son objectif est souvent mal compris. L’ATAM ne donne pas de note à une architecture ni de note de réussite, et elle ne prouve pas qu’un système satisfera ses exigences. Elle identifie les endroits où les décisions architecturales mettent en danger les objectifs métier et ceux où elles imposent des compromis entre qualités, afin que les personnes responsables puissent décider quoi faire. Le nom de la méthode met l’accent sur les compromis, car la plupart des risques intéressants se trouvent là où une qualité est obtenue aux dépens d’une autre.

Trois groupes y participent. L’équipe d’évaluation, en général trois à cinq personnes extérieures au projet, conduit la méthode : un chef d’équipe, un responsable de l’évaluation qui anime, des secrétaires qui consignent les scénarios et les débats, et des questionneurs experts de certaines qualités. Les décideurs du projet sont l’architecte, le chef de projet ou le responsable produit, et le commanditaire ou le client qui peut agir sur les constats. Les parties prenantes de l’architecture sont toutes les autres personnes concernées : développeurs, testeurs, exploitation, sécurité, intégrateurs, support et représentants des utilisateurs. L’indépendance compte : des évaluateurs qui ont conçu le système, ou qui rendent compte à l’architecte, trouvent moins de risques.

Les phases de l’ATAM

Les quatre phases de l’ATAM : préparation, deux réunions d’évaluation séparées par une pause de deux à trois semaines, et suiviPhase 0Partenariat etpréparationPhase 1Évaluation :étapes 1 à 6Phase 2Évaluation :étapes 7 à 9Phase 3Suivipause de 2 à 3 sem.Fixer portée,coût et équipeRéunir lesdocumentsd’archi.1 Présenter l’ATAM2 Facteurs métier3 L’architecture4 Approches5 Arbre d’util.6 Analyser7 Proposer ethiérarchiserscénarios8 Réanalyser9 RésultatsRapport finalThèmes de risque→ backlog et ADRNoter l’effortet les leçonsLeaders seuls,quelques sem.Décideurs,env. 1 jour+ parties prenantes,env. 2 joursÉvaluateurs,env. 1 semaine
Les deux réunions d’évaluation sont séparées par une pause pendant laquelle l’équipe assimile les premiers constats et le groupe élargi des parties prenantes est constitué.

Les neuf étapes

  1. 1. Présenter l’ATAMLe responsable de l’évaluation explique la méthode, les rôles des participants et les résultats, pour que personne ne prenne la séance pour un audit ou pour une revue de conception de son travail personnel.
  2. 2. Présenter les facteurs métierUn représentant de haut niveau du métier explique, en termes métier, les objectifs du système, ses contraintes, ses parties prenantes et les qualités qui comptent le plus. Ces facteurs métier (business drivers) servent d’étalon pour tout ce qui suit.
  3. 3. Présenter l’architectureL’architecte décrit l’architecture à un niveau approprié : contexte, structures principales, comportement à l’exécution, déploiement, et façon dont elle répond aux facteurs. Une limite de temps habituelle d’environ une heure oblige à se concentrer.
  4. 4. Identifier les approches architecturalesL’architecte nomme les approches architecturales utilisées (styles, patrons et tactiques comme un courtier, la réplication ou la mise en cache) et l’équipe d’évaluation les répertorie, sans encore les analyser.
  5. 5. Générer l’arbre d’utilité des attributs de qualitéLes décideurs construisent ou affinent un arbre d’utilité et cotent chaque scénario feuille selon son importance métier et sa difficulté technique.
  6. 6. Analyser les approches architecturalesPour les scénarios les plus prioritaires, les évaluateurs demandent quelles approches traitent chacun d’eux et les examinent avec des questions propres à chaque qualité, en consignant les risques, les non-risques, les points de sensibilité et les points de compromis.
  7. 7. Proposer et hiérarchiser des scénariosEn phase 2, le groupe élargi des parties prenantes propose ses propres scénarios et vote sur eux. Le résultat est comparé à l’arbre d’utilité ; les scénarios importants absents de l’arbre constituent en eux-mêmes un constat.
  8. 8. Analyser de nouveau les approches architecturalesLes nouveaux scénarios les mieux classés sont analysés de la même façon qu’à l’étape 6, cette fois avec les connaissances des parties prenantes présentes dans la salle.
  9. 9. Présenter les résultatsL’équipe d’évaluation présente les approches, les scénarios, l’arbre d’utilité, les risques, les non-risques, les points de sensibilité, les points de compromis et les thèmes de risque, et relie chaque thème aux facteurs métier qu’il menace.

Le vocabulaire de l’analyse

Le cœur de la méthode, ce sont les étapes 6 et 8. Pour chaque scénario important, les évaluateurs demandent à l’architecte de dérouler la façon dont l’architecture y répond, et ils creusent avec des questions tirées de chaque qualité : combien d’appels synchrones se trouvent sur ce chemin, qu’arrive-t-il aux requêtes en cours quand ce nœud tombe en panne, où ce secret d’authentification est-il stocké, qu’est-ce qui limite la file d’attente ? Chaque réponse est classée à l’aide de cinq notions devenues un vocabulaire standard bien au-delà de l’ATAM elle-même.

Les résultats de l’analyse

SortieSignificationExemple tiré d’une plateforme de livraison de repas
RisqueUne décision, ou une décision manquante, qui peut empêcher d’atteindre un scénario important ou un objectif métierL’autorisation de carte se trouve dans le chemin synchrone de la commande ; un prestataire de paiement lent ralentit donc chaque commande
Non-risqueUne décision jugée solide pour le scénario, consignée avec les hypothèses dont elle dépendL’outbox transactionnelle et les consommateurs idempotents satisfont le scénario « aucune commande perdue », à condition que le courtier réplique chaque partition trois fois
Point de sensibilitéUne propriété de composants ou de connexions qui est critique pour une réponse de qualité donnéeLa latence des commandes est sensible au nombre de sauts synchrones et au temps de réponse p99 du prestataire
Point de compromisUne propriété qui est un point de sensibilité pour plus d’une qualité, si bien qu’améliorer l’une dégrade l’autreL’intervalle de mise à jour de la position des livreurs : plus court, il améliore la fraîcheur de la carte, mais il vide les batteries des téléphones et augmente le coût des données mobiles et de l’ingestion
Thème de risqueUn groupe de risques ayant une cause sous-jacente commune, relié aux facteurs métier qu’il menaceDes services tiers se trouvent sur des chemins critiques synchrones, ce qui menace l’objectif de doubler le volume de commandes sans perdre de conversions

Comment l’analyse produit ses résultats

Comment l’analyse de l’ATAM transforme les scénarios et les approches architecturales en risques, non-risques, points de sensibilité et points de compromis, regroupés en thèmes de risque renvoyant aux facteurs métierScénariospriorisésApprochesarchitecturales(décisions)AnalysequestionscibléesRisquesNon-risquesPts de sensibilitéPts de compromisThèmes(risque)Facteurs métier (business drivers)guidentchaque thème nomme les objectifs menacés
L’analyse relie les scénarios priorisés aux décisions qui les traitent ; les risques qui en résultent sont regroupés en thèmes qui renvoient aux objectifs métier qu’ils menacent.

Les non-risques méritent plus d’attention qu’ils n’en reçoivent d’habitude. Consigner qu’une décision est solide en raison d’une hypothèse précise (trois réplicas, un temps de réponse contractuel d’un fournisseur, un trafic sous un certain niveau) transforme une vague assurance en quelque chose que l’on pourra vérifier plus tard. Quand l’hypothèse change, le non-risque devient un risque potentiel. Les points de sensibilité et de compromis sont tout aussi précieux après l’évaluation : ils indiquent aux futurs mainteneurs quels paramètres modifier avec précaution, et ce sont des emplacements naturels pour les vérifications automatisées décrites à la section 11.3.

L’arbre d’utilité revisité

La section 2.8 a présenté l’arbre d’utilité comme un outil pour hiérarchiser les exigences de qualité. Il est né dans l’ATAM, et au sein de la méthode il joue deux rôles distincts. À l’étape 5, les décideurs construisent l’arbre de haut en bas : l’utilité, puis les attributs de qualité, puis les raffinements, puis des scénarios concrets cotés (importance métier, difficulté technique). Les feuilles (H,H) deviennent l’ordre du jour de l’étape 6, car elles comptent le plus et sont les plus difficiles à atteindre : c’est donc là que les risques ont le plus de chances de se cacher.

À l’étape 7, le groupe élargi des parties prenantes propose des scénarios de bas en haut et vote sur eux, à peu près comme dans un Quality Attribute Workshop. Comparer les deux visions est l’un des moments les plus révélateurs d’une évaluation. Si les scénarios préférés des parties prenantes figurent déjà dans l’arbre, les décideurs comprennent la raison d’être de leur système. Si un scénario qui reçoit beaucoup de voix est absent, par exemple un scénario d’exploitation sur des tablettes de restaurant qui passent hors ligne, les décideurs ont un angle mort, et l’architecture en a peut-être un aussi. Ces scénarios sont ajoutés à l’arbre et analysés à l’étape 8.

Exemple commenté

Exemple commenté : une ATAM condensée de la plateforme de livraison de repas

La plateforme des chapitres 2 et 4 met en relation des clients, 4000 restaurants et 9000 livreurs. Les facteurs métier sont de doubler le volume de commandes en 18 mois (de 50 à 100 commandes par seconde au pic du vendredi) sans perdre de conversions, et de signer avec des chaînes nationales de restaurants qui exigent une disponibilité contractuelle. L’architecture : des microservices par contexte délimité (commandes, restaurants, affectation, notifications), chacun avec sa propre base de données PostgreSQL ; une API gateway ; du REST synchrone pour la prise de commande, y compris l’autorisation de carte auprès d’un prestataire de paiement externe ; un courtier Kafka avec une outbox transactionnelle pour les événements de commande ; les positions des livreurs envoyées toutes les 4 secondes et conservées dans Redis ; une seule région cloud répartie sur trois zones de disponibilité, avec des sauvegardes nocturnes copiées dans une deuxième région. L’arbre d’utilité de la phase 1 a repris les six scénarios de la section 2.8.

Latence des commandes (H,H)p95 inférieur à 1,5 s et p99 inférieur à 3 s à 100 commandes/s. Approches : gateway, quatre sauts synchrones, autorisation de carte dans la requête. Latence mesurée du prestataire : p95 de 900 ms, p99 de 2,5 s
AnalyseLe prestataire consomme à lui seul l’essentiel du budget p99, ce qui laisse 500 ms pour quatre sauts et les écritures en base de données. D’après la loi de Little (section 2.4), 100 commandes/s à 2,5 s représentent 250 requêtes en cours ; le pool de 200 workers du service des commandes sature chaque fois que le prestataire ralentit. Risque R1 ; point de sensibilité S1 : nombre de sauts synchrones et p99 du prestataire
Disponibilité du paiement (H,H)Le prestataire de paiement dépasse son délai d’expiration au pic : commandes acceptées et mises en file, aucune perdue, client informé en moins de 10 s. La conception actuelle fait échouer la commande quand l’autorisation expire. Risque R2
Option proposéeAutoriser de façon asynchrone : accepter la commande comme en attente, l’autoriser depuis une file. Améliore la latence et la disponibilité, mais certaines commandes acceptées échouent ensuite au paiement, et les restaurants ne doivent pas préparer de commandes impayées. Point de compromis T1 : l’endroit du parcours de commande où le paiement est confirmé
Aucune commande perdue (partie de H,H)Outbox dans la même transaction locale que la commande, Kafka avec trois réplicas, consommateurs idempotents. Non-risque N1, à condition d’un facteur de réplication de 3 et d’accusés de réception du producteur par tous les réplicas synchronisés
Panne de région (H,M)RTO 15 min, RPO 1 min. Les sauvegardes nocturnes donnent un RPO pouvant aller jusqu’à 24 heures et une restauration qui se mesure en heures. Risque R3
Fraîcheur du suivi (M,M)Position sur la carte jamais vieille de plus de 5 s. 9000 livreurs toutes les 4 s, cela fait 2250 écritures/s, ce que Redis absorbe sans peine. Point de compromis T2 : l’intervalle de mise à jour (fraîcheur contre batterie, données et coût)
Prise de contrôle de compte (H,M)La limitation de débit par adresse IP au niveau de la gateway ne détecte pas le bourrage d’identifiants (credential stuffing) réparti sur des milliers d’adresses. Risque R4
Proposition de scénarios en phase 2Les parties prenantes des restaurants et de l’exploitation ont voté massivement pour un scénario absent de l’arbre : une tablette de restaurant hors ligne pendant 10 minutes au pic doit recevoir toutes les commandes à la reconnexion. Les notifications push sont envoyées une seule fois, sans accusé de réception. Risque R5, et un angle mort de l’arbre
Thèmes de risqueThème A (R1, R2, R4) : des dépendances tierces et en périphérie se trouvent sur des chemins critiques synchrones sans isolation ; menace l’objectif de doubler le volume sans perdre de conversions. Thème B (R3, R5) : les garanties de reprise et de livraison sont en retard sur la disponibilité promise aux chaînes de restaurants ; menace les contrats avec les chaînes
La suiteDes enregistrements de décision pour l’autorisation asynchrone avec un état en attente (en acceptant T1, les restaurants n’étant notifiés qu’après l’autorisation), une région de secours tiède (warm standby), la livraison des commandes aux tablettes avec accusé de réception, et la détection du bourrage d’identifiants au niveau du fournisseur d’identité. Les hypothèses de N1 sont devenues une vérification automatisée de la configuration

Les constats portent sur des décisions, pas sur des personnes ni sur la qualité du code, et chacun est rattaché à un scénario et à un facteur métier.

Deux des cinq risques venaient de scénarios que l’architecte n’avait pas priorisés ou pas envisagés : c’est la raison d’être de l’étape des parties prenantes.

Les points de compromis ne sont pas des problèmes à éliminer : T1 a été accepté délibérément et consigné, avec ses conséquences pour les restaurants et les clients.

La CBAM : mettre l’argent sur la table

L’ATAM vous dit où sont les risques ; elle ne vous dit pas quelles corrections valent la peine d’être payées. La Cost Benefit Analysis Method (CBAM), mise au point au SEI par Rick Kazman, Jai Asundi et Mark Klein (publiée pour la première fois en 2001), s’appuie sur les scénarios d’une ATAM pour construire cet argumentaire économique.

Dans les grandes lignes, les parties prenantes prennent les scénarios priorisés et attribuent une utilité (sur une échelle de 0 à 100) à plusieurs niveaux de réponse pour chacun : pire cas, situation actuelle, niveau souhaité et meilleur cas. Les architectes proposent des stratégies architecturales et estiment la réponse que chacune obtiendrait. L’utilité gagnée par chaque stratégie se lit sur la courbe utilité-réponse du scénario et est pondérée par la priorité du scénario ; additionnée sur l’ensemble des scénarios, elle constitue le bénéfice de la stratégie. Diviser le bénéfice par le coût donne un rapport valeur-coût (VFC), et les stratégies sont retenues par ordre de VFC dans la limite du budget disponible, puis confrontées à l’intuition et aux contraintes.

Une CBAM miniature pour le risque de panne de région

StratégieRéponse attendueGain d’utilité x poidsCoût annuelRapport valeur-coût
Actuelle : sauvegardes nocturnesRTO d’environ 6 h, RPO jusqu’à 24 hutilité 10 (référence)déjà payén/a
A : région de secours tiède, réplication asynchrone de la base de donnéesRTO 10 min, RPO inférieur à 1 min(90 - 10) x 0.3 = 24£180k24 / 180 = 0.13
B : pilot light (veilleuse : données répliquées, calcul démarré à la demande)RTO 40 min, RPO inférieur à 1 min(60 - 10) x 0.3 = 15£70k15 / 70 = 0.21

La stratégie B apporte plus de bénéfice par livre sterling, mais elle ne respecte pas le temps de reprise de 15 minutes qu’exigent les contrats avec les restaurants. Les chiffres éclairent la décision ; ils ne la prennent pas. La vraie valeur de la CBAM est d’obliger à faire des estimations explicites et comparables du bénéfice et du coût, et de montrer quand c’est une contrainte, et non un ratio, qui doit trancher. Sa faiblesse est que les utilités et les coûts sont des jugements ; les équipes devraient les faire varier et voir si le classement change, exactement comme la section 1.6 le recommande pour les matrices de décision pondérées. La section 11.8 montre comment transformer de telles estimations en analyse de rentabilité.

Coûts et aspects pratiques

Une ATAM complète coûte cher en temps de travail. À titre d’illustration approximative : une équipe d’évaluation de quatre personnes qui consacre chacune deux jours à la préparation (8 jours-personnes), une phase 1 d’une journée avec trois décideurs (7), une phase 2 de deux jours avec dix parties prenantes en plus (34) et une semaine de suivi par deux personnes (10) totalisent environ 60 jours-personnes, avant que quiconque ait corrigé quoi que ce soit. Pour un système dont la défaillance coûterait des millions, ou qui fonctionnera pendant dix ans, c’est une assurance bon marché. Pour une petite équipe produit, c’est disproportionné.

Plusieurs pratiques font que les évaluations en valent la peine. Adaptez la méthode : Bass, Clements et Kazman décrivent une évaluation d’architecture allégée, une ATAM réduite pour les équipes internes qui peut se faire en une journée ou moins, et certaines organisations ne mènent que les étapes 2 à 6 avec une poignée de personnes. Préparez-vous bien : l’essentiel du coût d’une mauvaise évaluation est dépensé à découvrir, en séance, que personne ne sait décrire l’architecture. Gardez des évaluateurs indépendants mais informés. Convenez à l’avance de qui est responsable des constats et de la façon dont ils seront suivis, idéalement sous forme d’enregistrements de décision et d’éléments de backlog dotés de responsables. Et recommencez : les constats sont un instantané, et les risques changent à mesure que le système et le métier évoluent.

Les praticiens ne s’accordent pas sur la place de la méthode aujourd’hui. Ses détracteurs y voient un vestige lourd des grands projets conçus en amont, mal adapté aux équipes qui déploient de nombreuses fois par jour. Ses défenseurs répondent que ses notions (scénarios, points de sensibilité et de compromis, thèmes de risque) sont exactement ce qui manque aux équipes agiles quand elles sautent l’évaluation, et que la méthode peut être allégée. Les deux camps ont en partie raison : le cérémonial complet convient aux systèmes à forts enjeux et à longue durée de vie et aux engagements majeurs, tandis que le vocabulaire et l’habitude d’un questionnement guidé par les scénarios ont leur place partout. La section 11.2 traite de l’extrémité la plus légère.

Questions fréquentes

L’ATAM peut-elle s’appliquer à un système qui existe déjà ?

Oui. Les étapes sont les mêmes ; l’architecture est reconstituée à partir de la documentation, du code et des personnes qui exploitent le système, et les mesures du système en production remplacent les estimations. Évaluer un système existant est courant avant une extension majeure, une migration ou une acquisition.

Une ATAM sans problème signifie-t-elle que le système satisfera ses exigences ?

Non. L’ATAM examine un échantillon de scénarios au niveau des décisions de conception. Elle réduit le risque de mauvaises surprises mais ne peut pas remplacer la mesure, les tests et l’expérience d’exploitation. Ses constats devraient être transformés en tests et en fonctions d’aptitude chaque fois que c’est possible.

Qui doit présenter l’architecture ?

L’architecte ou l’ingénieur principal qui la connaît le mieux. Le rôle de l’équipe d’évaluation est de poser des questions, pas de présenter, et celui de l’architecte est d’expliquer et d’explorer, pas de se défendre.

Vérifiez votre compréhension

Quelle est la différence entre un point de sensibilité et un point de compromis ?

Un point de sensibilité est une propriété critique pour une réponse de qualité donnée. Un point de compromis est une propriété qui est un point de sensibilité pour plusieurs qualités à la fois, si bien que la modifier aide l’une et nuit à l’autre.

Pourquoi l’ATAM consigne-t-elle les non-risques, et que faut-il consigner avec eux ?

Pour montrer quelles décisions ont été examinées et jugées solides. Les hypothèses dont elles dépendent doivent aussi être consignées, afin que le non-risque puisse être réexaminé si une hypothèse change.

Que signifie le fait que les parties prenantes votent massivement, en phase 2, pour un scénario absent de l’arbre d’utilité ?

Les décideurs ont un angle mort sur ce qui compte, et l’architecture ne traite peut-être pas ce scénario. Il est ajouté à l’arbre et analysé à l’étape 8.

Dans la CBAM, comment calcule-t-on le rapport valeur-coût d’une stratégie ?

Son bénéfice, l’utilité pondérée par la priorité qu’elle ajoute sur les scénarios qu’elle touche, est divisé par son coût.

Suivant · 11.2Revues légèresPourquoi les comités de revue échouent souvent, et les alternatives légères qui fonctionnent : risk-storming, pre-mortems, katas d’architecture, TARA, revues de RFC et listes de contrôle, avec un format de revue de 90 minutes.Continuer →

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 : « Nous sommes sur le point de signer un contrat de trois ans avec un fournisseur cloud pour notre plateforme de paiements. Comment mener une ATAM réduite en deux jours pour trouver d’abord les plus grands risques architecturaux ? »