Be Software Architecture Wise
Be Wise Apps

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

Chapitre 11 sur 12 · Avancé

Évaluation, prise de décision et gouvernance

Ce chapitre porte sur l’évaluation, la gouvernance et l’évolution des architectures dans le temps. Il couvre l’évaluation formelle avec l’ATAM, les revues légères comme le risk-storming et les pre-mortems, les fonctions d’aptitude et l’architecture évolutive, la gouvernance dans les organisations agiles, Team Topologies et la conception sociotechnique, la modernisation des systèmes hérités avec le strangler fig, le leadership et l’influence, ainsi que la justification économique et éthique du travail d’architecture. Il fait la synthèse de tous les chapitres précédents, utilise la plateforme de livraison de repas comme exemple fil rouge et s’adresse aux développeurs expérimentés, aux responsables techniques et aux architectes qui prennent ou orientent des décisions importantes.

Introduction vidéo au chapitre 11

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

Bienvenue dans le chapitre 11 : Évaluation, prise de décision et gouvernance. Les chapitres précédents vous ont montré comment décrire ce qu’un système doit accomplir, comment le structurer et comment le rendre rapide, fiable, sûr et économique. Ce chapitre porte sur le travail qui entoure ces décisions pendant toute la vie d’un système : les vérifier avant d’engager l’argent, les maintenir vraies alors que des centaines de changements arrivent chaque mois, et les justifier en termes économiques et éthiques.

Le chapitre s’adresse aux développeurs expérimentés, aux responsables techniques et aux architectes qui prennent ou orientent des décisions importantes. C’est là que le cours se rassemble ; il s’appuie donc sur tous les chapitres précédents. Il renvoie le plus souvent aux chapitres 1 à 4 : les compromis, la dette technique, les scénarios d’attributs de qualité, la loi de Conway et les enregistrements de décision. Les chapitres 5 à 10 aident, mais ne sont pas indispensables. Le niveau est avancé, mais chaque section commence par une courte explication pour les débutants. Et il mène au chapitre 12, qui applique toute la discipline aux systèmes construits autour de modèles d’intelligence artificielle.

L’exemple fil rouge est la plateforme de livraison de repas utilisée depuis le chapitre 2. Vous verrez son architecture évaluée, soumise au risk-storming, protégée par des fonctions d’aptitude, gouvernée, réorganisée autour des équipes et en partie modernisée. La section onze point un traite de l’évaluation formelle avec l’Architecture Tradeoff Analysis Method, ou ATAM : ses neuf étapes réparties sur deux réunions, qui y participe, et ses résultats, comme les risques, les points de sensibilité, les points de compromis et les thèmes de risque. La section onze point deux explique pourquoi les comités de revue mensuels échouent si souvent, et ce qui fonctionne à la place : le risk-storming, le pre-mortem, les katas d’architecture et les revues de conception écrites. La section onze point trois transforme une évaluation ponctuelle en protection continue. Une fonction d’aptitude est une vérification objective d’une caractéristique architecturale, idéalement automatisée, comme une règle de dépendance ou un test de charge avec des seuils de percentiles. La section onze point quatre se demande comment une organisation de nombreuses équipes autonomes garde une architecture cohérente, grâce aux principes, aux normes, aux garde-fous et aux points de validation, au processus de consultation et aux radars technologiques.

Ce diagramme de la section onze point quatre oppose deux façons de gouverner. Dans la gouvernance par points de validation, une équipe conçoit, puis attend pendant des semaines dans la file d’un comité de revue. Si la conception est rejetée, elle est reprise et attend de nouveau. Ce n’est qu’après l’approbation que l’équipe peut construire et mettre en production. Dans la gouvernance par garde-fous, l’équipe décide, et son changement passe par un pipeline doté de garde-fous : la politique en tant que code et des fonctions d’aptitude qui vérifient automatiquement des règles objectives. Il peut arriver en production en quelques minutes. En dessous se trouvent les appuis : le processus de consultation pour les décisions importantes, des principes et un radar technologique pour une direction commune, et un chemin balisé (paved road) de modèles et de plateforme. Les garde-fous laissent les personnes libres pour les décisions qui demandent du jugement. Et dans le processus de consultation, n’importe qui peut prendre une décision architecturale, après avoir demandé conseil aux personnes concernées et aux experts, et l’avoir consignée.

La section onze point cinq prend au sérieux la loi de Conway comme outil de conception. Elle présente Team Topologies : quatre types d’équipes, trois façons d’interagir pour les équipes, et les limites de la charge cognitive d’une équipe. La section onze point six traite des systèmes qui existent déjà : pourquoi les réécritures big bang échouent si souvent, et les techniques incrémentales qui fonctionnent. La section onze point sept couvre la dimension humaine du rôle : diriger sans autorité formelle, bâtir la confiance, faciliter les décisions, gérer les conflits et communiquer avec les dirigeants. Et la section onze point huit clôt le chapitre avec deux argumentaires qu’un architecte doit savoir bien construire : l’analyse de rentabilité, avec la valeur actuelle nette et le délai de récupération, et la justification éthique, y compris les préjudices prévisibles et la durabilité.

Ce diagramme de la section onze point six montre l’une de ces techniques, le strangler fig : remplacer un système hérité morceau par morceau pendant qu’il continue de fonctionner. D’abord, intercepter. Les clients appellent une façade de routage, qui envoie encore tout le trafic au monolithe hérité. Rien ne change encore dans le comportement. Ensuite, la première tranche. La façade envoie une fonctionnalité, le suivi des commandes, vers un petit service nouveau, avec une synchronisation temporaire des données entre l’ancien et le nouveau. Tranche après tranche, l’essentiel du trafic bascule, jusqu’à ce qu’il ne reste plus que la facturation dans l’ancien système. Enfin, tout le trafic va vers les nouveaux services, et le système hérité est éteint. La migration n’est terminée que lorsque l’ancien système et le code temporaire ont tous deux été supprimés.

L’architecture n’est pas terminée quand le diagramme est dessiné. Ses décisions doivent être mises à l’épreuve, protégées pendant que le système évolue, prises par les bonnes personnes, portées par des équipes dont la structure leur correspond, et justifiées auprès des commanditaires et de la société. Les architectes les plus efficaces rendent ce travail léger et continu, plutôt que lourd et ponctuel. De courtes revues des risques, au lieu d’audits annuels. Des garde-fous automatisés, au lieu de files d’approbation. Des conseils, au lieu d’autorisations. Et une migration incrémentale, au lieu de réécritures. La discipline qui relie le tout est celle par laquelle ce cours a commencé : nommer la qualité dont vous avez besoin, la rendre mesurable, décider délibérément, écrire pourquoi, et continuer à vérifier.

À la fin du chapitre, vous saurez expliquer quand évaluer une architecture, et mener soit l’ATAM, soit une revue légère comme le risk-storming, avec un registre des risques et des responsables. Vous saurez concevoir des fonctions d’aptitude qui transforment les scénarios d’attributs de qualité en vérifications automatisées. Vous saurez planifier une modernisation incrémentale, avec le strangler fig, le branch by abstraction et les exécutions en parallèle. Et vous saurez calculer la valeur actuelle nette et le délai de récupération pour une analyse de rentabilité, et examiner une architecture sous l’angle des préoccupations éthiques et de durabilité.

Vous pouvez lire le chapitre dans l’ordre, ou aller directement à la section dont vous avez besoin. Si une idée d’un chapitre précédent ne vous est pas familière, suivez le lien qui y renvoie. Comptez environ trois heures et demie pour lire tout le chapitre. À la fin de chaque section, vous trouverez des questions d’autoévaluation. Répondez-y de tête avant de regarder les réponses. Quand vous serez prêt, un test du chapitre facultatif vous attend ; il prend environ quarante-cinq minutes. Il comporte vingt questions à choix multiples et deux réponses rédigées. La note de réussite est de quatre-vingts pour cent.

Voilà comment le chapitre est construit. Commencez par la section onze point un, sur l’évaluation de l’architecture et l’ATAM. À très vite.

Télécharger le chapitre (PDF)Lire dans l’application

En un coup d’œil

Vous apprendrez à

  • Expliquer quand et pourquoi évaluer une architecture, et dérouler les neuf étapes de l’ATAM pour produire des risques, des non-risques, des points de sensibilité, des points de compromis et des thèmes de risque.
  • Animer des revues légères comme le risk-storming et les pre-mortems, et transformer leurs résultats en un registre des risques avec des responsables.
  • Concevoir des fonctions d’aptitude qui transforment les scénarios d’attributs de qualité en vérifications automatisées de la structure, des performances, de la sécurité, de la résilience et des données.
  • Rédiger des principes d’architecture et choisir entre garde-fous, points de validation et processus de consultation pour gouverner différents types de décisions.
  • Appliquer les types d’équipes, les modes d’interaction et la charge cognitive de Team Topologies pour aligner les équipes sur l’architecture visée.
  • Planifier une modernisation incrémentale d’un système hérité avec le strangler fig, le branch by abstraction et les exécutions en parallèle.
  • Mener et influencer les décisions architecturales sans autorité formelle, y compris dans la communication avec les dirigeants.
  • Calculer la valeur actuelle nette et le délai de récupération pour une analyse de rentabilité, et examiner une architecture sous l’angle des préoccupations éthiques et de durabilité.

Avant de commencer

Les chapitres 1 à 4, en particulier les décisions et les compromis (section 1.6), la dette technique (section 1.7), les scénarios d’attributs de qualité et les arbres d’utilité (sections 2.3 et 2.8), la loi de Conway (section 3.7) et les enregistrements de décision (section 4.5). Les chapitres 5 à 10 aident, mais ne sont pas indispensables.

Durée

Environ 3 heures et demie de lecture ; 45 minutes pour le test.

Termes clés

ATAM · Arbre d’utilité · Point de sensibilité · Point de compromis · Risk-storming · Pre-mortem · Fonction d’aptitude (fitness function) · Architecture évolutive · Processus de consultation (advice process) · Radar technologique · Team Topologies · Strangler fig (figuier étrangleur) · Valeur actuelle nette · Software Carbon Intensity

Juger, gouverner et faire évoluer l’architecture

Les chapitres précédents ont montré comment décrire ce qu’un système doit accomplir, comment le structurer et comment le rendre rapide, fiable, sûr et économique. Ce chapitre porte sur le travail qui entoure ces décisions pendant toute la vie d’un système : vérifier qu’elles sont solides avant d’engager l’argent, les maintenir vraies alors que des centaines de changements arrivent chaque mois, décider qui peut prendre quelles décisions dans une organisation de nombreuses équipes, remodeler les équipes et les systèmes hérités, convaincre, et justifier le coût du travail d’architecture en termes économiques et éthiques. C’est là que le cours se rassemble ; il renvoie donc souvent aux chapitres précédents : aux scénarios d’attributs de qualité et aux arbres d’utilité du chapitre 2, aux principes et aux métriques du chapitre 3, aux enregistrements de décision du chapitre 4, à la loi de Conway de la section 3.7 et à la dette technique de la section 1.7.

Le niveau est avancé, mais chaque section commence par une courte explication pour les débutants, et l’exemple fil rouge est la plateforme de livraison de repas utilisée depuis le chapitre 2 : des clients, des restaurants et des livreurs, des services de commandes, d’affectation des livreurs et de notifications, un courtier d’événements et un prestataire de paiement externe. Vous verrez son architecture évaluée, soumise au risk-storming, protégée par des fonctions d’aptitude, gouvernée par des principes et un radar technologique, réorganisée autour des équipes et en partie modernisée.

Évaluer et protéger les décisions : sections 11.1 à 11.3

La section 11.1 traite de l’évaluation de l’architecture formelle et de l’ATAM du SEI : pourquoi et quand évaluer, ses neuf étapes réparties sur deux réunions, qui y participe, et ses résultats caractéristiques : les risques, les non-risques avec leurs hypothèses, les points de sensibilité, les points de compromis et les thèmes de risque. L’arbre d’utilité de la section 2.8 revient dans son cadre d’origine, et la CBAM montre comment mettre en balance le bénéfice de chaque correction et son coût. Une ATAM condensée de la plateforme de livraison de repas montre les tableaux que produit réellement une évaluation.

La section 11.2 explique pourquoi les comités de revue mensuels échouent si souvent et ce qui fonctionne à la place : le risk-storming de Simon Brown, le pre-mortem de Gary Klein, les katas d’architecture de Ted Neward, TARA d’Eoin Woods pour les systèmes existants, les revues de conception écrites et les listes de contrôle. Elle se termine par un format pas à pas pour une revue de 90 minutes et par un guide pour choisir entre les techniques.

La section 11.3 transforme une évaluation ponctuelle en protection continue. Une fonction d’aptitude (fitness function) est une vérification objective d’une caractéristique architecturale, idéalement automatisée : une règle de dépendance, un test de charge avec des seuils de percentiles, une analyse de vulnérabilités, une expérience de chaos ou une vérification de compatibilité de schéma. Associées à des changements petits, fréquents et sûrs, les fonctions d’aptitude rendent possible une architecture évolutive. Trois scénarios du chapitre 2 deviennent des vérifications opérationnelles, avec le code.

Gouverner, organiser et moderniser : sections 11.4 à 11.6

La section 11.4 se demande comment une organisation de nombreuses équipes autonomes garde une architecture cohérente. Elle distingue principes, normes, garde-fous et points de validation ; montre comment rédiger des principes avec un nom, un énoncé, une justification et des implications ; et décrit la prise de décision décentralisée grâce au processus de consultation (advice process) d’Andrew Harmel-Law, aux forums consultatifs d’architecture et aux radars technologiques, la conformité étant automatisée par des fonctions d’aptitude et la politique en tant que code (policy as code).

La section 11.5 prend au sérieux la loi de Conway comme outil de conception. Elle présente Team Topologies de Matthew Skelton et Manuel Pais : quatre types d’équipes, trois modes d’interaction, la charge cognitive de l’équipe, les API d’équipe et les plans de fracture, et montre comment réorganiser les équipes de la plateforme de livraison de repas autour de flux de changement. La section 11.6 traite des systèmes qui existent déjà : pourquoi les réécritures big bang échouent si souvent, l’éventail des stratégies de migration et les techniques incrémentales qui fonctionnent, dont le strangler fig, le branch by abstraction, les exécutions en parallèle, la capture des données modifiées et les couches anticorruption, mises en pratique en extrayant un module de commandes d’un monolithe à la manière d’un figuier étrangleur.

Diriger, justifier et agir de manière responsable : sections 11.7 et 11.8

La section 11.7 couvre la dimension humaine du rôle : diriger sans autorité formelle, bâtir la confiance, faciliter les décisions par consentement ou par consensus, gérer les conflits et la politique interne, communiquer avec les dirigeants, faire du mentorat, les parcours d’ingénierie staff-plus et les pièges de décision qui guettent les personnes expérimentées, avec une décision contestée sur un bus d’événements menée pas à pas.

La section 11.8 clôt le chapitre avec les deux argumentaires qu’un architecte doit le plus savoir bien construire. L’analyse de rentabilité : coûts, bénéfices, risques et options, avec la valeur actuelle nette et le délai de récupération calculés dans un exemple commenté, et la dette technique exprimée en argent et en temps. Et la justification éthique : codes de conduite professionnels, préjudices prévisibles comme la perte de vie privée, les biais, l’inaccessibilité et la conception manipulatrice, et la durabilité mesurée avec la spécification Software Carbon Intensity.

L’idée à retenir

L’architecture n’est pas terminée quand le diagramme est dessiné. Ses décisions doivent être confrontées aux besoins du métier, protégées pendant que le système évolue, prises par les bonnes personnes avec les bons conseils, portées par des équipes dont la structure leur correspond, et justifiées dans des termes que les commanditaires et la société peuvent accepter. Les architectes les plus efficaces rendent ce travail léger et continu plutôt que lourd et ponctuel : de courtes revues des risques au lieu d’audits annuels, des garde-fous automatisés au lieu de files d’approbation, des conseils au lieu d’autorisations, une migration incrémentale au lieu de réécritures. La discipline qui relie le tout est celle par laquelle ce cours a commencé : nommer la qualité dont vous avez besoin, la rendre mesurable, décider délibérément, écrire pourquoi, et continuer à vérifier.

Les 8 sections

11.1 · Avancé · 28 minÉvaluation avec l’ATAMPourquoi et quand évaluer une architecture, comment fonctionne pas à pas l’ATAM du SEI, ce que sont les risques, les points de sensibilité et les points de compromis, et comment la CBAM ajoute les coûts et les bénéfices.Lire →11.2 · Avancé · 26 minRevues 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.Lire →11.3 · Avancé · 27 minFonctions d’aptitudeComment protéger les caractéristiques architecturales par des vérifications automatisées : ce que sont les fonctions d’aptitude, leurs catégories, des exemples pour la structure, les performances, la sécurité, la résilience et les données, et l’architecture évolutive.Lire →11.4 · Avancé · 28 minGouvernanceÀ quoi sert la gouvernance de l’architecture et comment la pratiquer sans points de validation qui ralentissent : principes, normes, garde-fous, processus de consultation, forums consultatifs, radars technologiques, politique en tant que code et architecture d’entreprise.Lire →11.5 · Avancé · 24 minTeam TopologiesComment concevoir ensemble les équipes et le logiciel : les quatre types d’équipes, les trois modes d’interaction, la charge cognitive, les API d’équipe et les plans de fracture, avec une réorganisation commentée des équipes de la plateforme de livraison de repas.Lire →11.6 · Avancé · 25 minModernisation des systèmes héritésPourquoi les grandes réécritures échouent et comment moderniser sans risque à la place : les sept R, le strangler fig, branch by abstraction, les exécutions en parallèle, la capture des données modifiées, les couches anticorruption et une migration des données soigneuse.Lire →11.7 · Avancé · 24 minLeadershipComment les architectes dirigent sans autorité formelle : bâtir la confiance, faciliter des décisions par consentement ou par consensus, gérer les conflits et les jeux politiques, parler aux dirigeants, emprunter l’ascenseur de l’architecte et faire grandir d’autres architectes.Lire →11.8 · Avancé · 25 minÉthique et métierComment défendre le travail d’architecture en termes d’argent, de temps et de risque, avec des calculs commentés de la valeur actuelle nette et du délai de récupération ; et comment l’éthique professionnelle, les préjudices prévisibles et les pratiques du logiciel vert façonnent une conception responsable.Lire →

Test du chapitre

Vérifiez votre compréhension du chapitre 11

Facultatif : 20 questions à choix multiples et 2 courtes réponses rédigées, tirées à chaque fois d’une banque de 72 questions. Note de réussite : 80 %. Réussir tous les tests de chapitre, puis l’évaluation finale, donne droit au Certificat de fin de formation Be Wise.

Passer le test du chapitre 11 dans l’app

Lectures complémentaires