Aller au contenu

ASR: Le véritable moteur derrière chaque décision d’architecture

·3 mins·
Christophe Le Douarec
Auteur
Christophe Le Douarec
Leader technique expérimenté, avec une solide expérience dans les systèmes embarqués et l’amélioration organisationnelle, au sein d’équipes R&D au service des objectifs business.
Sommaire
Architecture knowledge management - Cet article fait partie d'une série.
Partie 2: Cet article

Toutes les exigences ne façonnent pas la manière dont un système est construit, mais certaines laissent une empreinte durable sur l’architecture. Ce sont celles qui comptent vraiment, ce que les architectes appellent les exigence significative pour l’architecture (ASR - architecturally significant requirement).

Les repérer tôt est essentiel, car elles influencent des décisions critiques, impactent la performance, et peuvent parfois faire ou défaire un projet. Dans cet article, nous expliquerons ce que sont les ASR, pourquoi elles méritent une attention particulière, et comment les prioriser de manière objective pour guider votre architecture dans la bonne direction.

Qu’est-ce qu’une ASR ?
#

Une ASR est une exigence qui a un impact mesurable sur l’architecture d’un système logiciel.

Identifier ces besoins est essentiel pour prendre une décision éclairée. Chaque fois qu’une décision d’architecture (AD) est prise, une fiche de décision d’architecture (ADR) sera produite.

Pourquoi identifier les ASR les plus importantes ?
#

Une ASR peut avoir une valeur différente selon le moment.

Par exemple, une exigence liée à l’usage mémoire ne devient critique qu’à l’approche de la limite, c’est pourquoi une priorisation doit être définie.

Les critères permettant de prioriser les ASR peuvent être regroupés en plusieurs grandes catégories:

  • Projet
  • Performance
  • Dépendances

Projet
#

  • L’exigence est directement associée à une forte valeur métier (bénéfice vs coût) ou à un risque métier élevé.
  • L’exigence est une préoccupation d’un décideur particulièrement important, comme le sponsor du projet ou un auditeur externe chargé de la conformité.
  • L’exigence a déjà posé problème et provoqué des situations critiques, des dépassements de budget ou de la mécontentement client sur un projet antérieur dans un contexte similaire.

Performance
#

  • L’exigence inclut des caractéristiques de qualité de service (QoS) à l’exécution (comme des besoins de performance) qui s’écartent significativement de celles déjà satisfaites par l’architecture en évolution.

Dépendances
#

  • L’exigence introduit ou traite une ou plusieurs dépendances externes pouvant avoir un comportement imprévisible, peu fiable et/ou incontrôlable.
  • L’exigence a une nature transversale et affecte plusieurs parties du système et leurs interactions; elle peut même avoir un impact à l’échelle du système, à court et/ou long terme (exemples: sécurité, supervision).
  • L’exigence présente un caractère First-of-a-Kind (FOAK). Par exemple, l’équipe n’a jamais construit auparavant un composant ou sous-système répondant à cette exigence particulière.

Comment prioriser les ASR en pratique ?
#

Maintenant que nous avons nos critères d’évaluation, nous pouvons créer un tableau pour attribuer un score à chaque ASR.

tableau d’évaluation des exigences

Une manière de remplir les cellules d’un tel tableau consiste à utiliser des valeurs simples:

  • High = 5
  • Medium = 2
  • Low = 1
  • NA = 0
Conseil

Vous pouvez également utiliser l’échelle de Fibonacci, en particulier si vous souhaitez obtenir plus de granularité.

Le score obtenu permet d’obtenir un classement objectif qui doit être réévalué régulièrement.

Maintenant que nous avons défini des critères objectifs, il est temps de passer au processus de prise de décision lui-même.

Comment prendre des décisions d’architecture efficaces

·3 mins
En architecture logicielle, chaque choix compte mais certaines décisions façonnent le système bien plus que d’autres. Ce sont les décisions d’architecture (ADs), et elles définissent la manière dont votre système répondra à ses exigences les plus importantes. Prendre la bonne décision ne consiste pas à deviner ou à suivre la voix la plus forte dans la pièce. Il s’agit d’analyser les options, de peser les faits et d’être libre de tout biais.
Architecture knowledge management - Cet article fait partie d'une série.
Partie 2: Cet article

Articles connexes