# Catégorie 2 : Parties prenantes et périmètre

> **Usage :** Identifier les profils utilisateurs, leurs droits, et délimiter le périmètre fonctionnel
> **Quand charger :** TOUJOURS (noyau)
> **Objectif :** Comprendre QUI utilise le système, avec quels DROITS, et QUOI il doit faire

---

## 2.1 Identification des utilisateurs

> **But :** Identifier les types de profils/rôles qui interagiront avec le système.

| # | Question | Type de réponse |
|---|----------|-----------------|
| Q2.1 | Qui sont les types de profils qui utiliseront ce système ? Décrivez leurs rôles et ce qu'ils font. | Liste de profils utilisateurs |

---

## 2.2 Tâches par profil

> **But :** Comprendre concrètement ce que chaque type d'utilisateur fait.

| # | Question | Type de réponse |
|---|----------|-----------------|
| Q2.5 | Pour chaque type d'utilisateur : quelles sont les 3 à 5 tâches principales qu'il doit accomplir avec ce système ? | Tâches par profil utilisateur |

---

## 2.3 Les niveaux d'accès

> **But :** Définir les règles métier de permissions par rôle (SmartStack gère nativement RBAC + isolation tenant).
> **Note :** Ne PAS demander le modèle de visibilité (cloisonné, tout visible, etc.) — SmartStack utilise toujours RBAC avec isolation tenant. Se concentrer sur les RÈGLES MÉTIER : quel rôle accède à quoi.

| # | Question | Type de réponse |
|---|----------|-----------------|
| Q2.9 | Pour chaque profil identifié, quelles données ou sections doivent lui être restreintes ? Y a-t-il des données sensibles visibles uniquement par certains rôles ? | Restrictions par rôle |
| Q2.10 | Qui a le droit de modifier ou supprimer des informations ? Tout le monde ou seulement certaines personnes ? | Règles de modification |
| Q2.11 | Y a-t-il des actions sensibles qui nécessitent une validation par un supérieur ? | Liste des actions à valider |

---

## 2.4 Périmètre fonctionnel

> **But :** Lister tout ce que le système doit faire et ne pas faire, classifié par importance métier.
> **Note :** SmartStack développe TOUS les modules identifiés. La classification vital/important/optionnel sert à doser la profondeur de spécification, PAS à phaser la livraison. Ne PAS présenter cette question comme un choix de "premier lancement" ou "quelle app d'abord".

| # | Question | Type de réponse |
|---|----------|-----------------|
| Q2.12 | Listez toutes les fonctionnalités que vous souhaitez dans ce système. Ne vous censurez pas. | Liste libre de fonctionnalités |
| Q2.13 | Parmi ces fonctionnalités, classez-les : lesquelles sont VITALES (le système n'a aucun sens sans elles), lesquelles sont IMPORTANTES (forte valeur ajoutée) et lesquelles sont OPTIONNELLES (confort) ? | Classification vital / important / optionnel |
| Q2.15 | Y a-t-il des choses que le système ne doit explicitement PAS faire ? Des limites claires à poser ? | Liste d'exclusions |

**Test de classification :**
> Pour chaque fonctionnalité classée comme vitale, poser la question :
> "Si on enlevait cette fonctionnalité, le système aurait-il encore de la valeur ?"

---

## 2.5 Le parcours principal

> **But :** Comprendre le flux de travail principal de bout en bout.

| # | Question | Type de réponse |
|---|----------|-----------------|
| Q2.16 | Décrivez le parcours typique d'un utilisateur du début à la fin : il ouvre le système, que fait-il en premier ? | Liste d'étapes ordonnées |
| Q2.17 | À quels moments l'utilisateur doit-il prendre une décision ? Quelles sont les options possibles ? | Points de décision et options |
| Q2.18 | Que se passe-t-il quand quelque chose ne se déroule pas comme prévu ? Quels sont les cas particuliers ? | Scénarios alternatifs |

---

## 2.6 Intégrations et systèmes externes

> **But :** Identifier les échanges de données avec l'extérieur et les migrations initiales.

| # | Question | Type de réponse |
|---|----------|-----------------|
| Q2.19 | Ce système doit-il échanger des données avec d'autres outils ? (comptabilité, email, banque, API tierces) | Liste d'intégrations |
| Q2.20 | Y a-t-il des données existantes à importer lors du démarrage ? (Excel, ancien système) | Description import |

- Mapping → `cadrage.json` : champs `externalIntegrations[]` et `dataImport`

---

## Guide d'élicitation approfondi

### Techniques de relance

| Question | Si la réponse est vague | Relance recommandée |
|----------|------------------------|---------------------|
| Q2.1 (utilisateurs) | Un seul type mentionné | "Pensez aux différents moments de la journée : qui saisit ? Qui consulte les rapports ? Qui gère les cas particuliers ?" |
| Q2.1 (utilisateurs) | Utilisateurs hors entreprise mentionnés (clients, fournisseurs, partenaires) | "Ces utilisateurs externes accéderont-ils via un espace dédié (portail) ou la même interface que vos employés ?" |
| Q2.5 (tâches) | Tâches génériques | "Quand il arrive le matin et ouvre le système, quelle est sa première action ?" |
| Q2.9 (restrictions) | Réponse ambiguë | "Un employé voit-il les données salariales ? Un manager voit-il uniquement son équipe ou toute l'entreprise ?" |
| Q2.13 (indispensable) | Tout est indispensable | "Si vous ne pouviez garder que 3 fonctionnalités pour un premier lancement, lesquelles ?" |
| Q2.15 (exclusions) | "Je ne vois pas" | "Certains utilisateurs pourraient-ils s'attendre à des fonctionnalités que vous ne souhaitez PAS inclure ?" |
| Q2.16 (parcours) | Moins de 3 étapes | "Détaillons : l'utilisateur arrive sur l'écran d'accueil. Que voit-il ? Où clique-t-il ?" |

### Signaux d'alerte à détecter

| Signal du client | Problème sous-jacent | Action de l'analyste |
|------------------|---------------------|----------------------|
| "Tous les utilisateurs font la même chose" | Rôles non différenciés | "Qui peut supprimer ? Qui ne fait que consulter ? Qui valide ?" |
| "Tout le monde doit tout voir" | Restrictions non définies | "Quelles données sont sensibles ? Un manager voit-il les données de toutes les équipes ou seulement la sienne ?" |
| Tout est vital (> 10 vitaux) | Classification non réfléchie | Appliquer le test de classification : "Si on enlevait X, le système aurait-il encore de la valeur ?" |
| Aucune exclusion identifiée | Périmètre non borné | "Y a-t-il des aspects qui relèvent d'un autre projet ou d'une version future ?" |
| Parcours linéaire sans alternative | Seul le cas idéal est décrit | "Que se passe-t-il à l'étape X si la condition Y n'est pas remplie ?" |
| "Nos clients doivent pouvoir..." ou "Les fournisseurs voient..." | Utilisateurs externes accédant au système | Déclencher détection portail : classifier les profils en interne/externe. SmartStack gère le déploiement multi-tenant automatiquement. |

---

## Mapping vers le cadrage

| Réponse | Alimente |
|---------|----------|
| Q2.1, Q2.5 | `cadrage.stakeholders[]` |
| Q2.9-Q2.11 | `cadrage.applicationRoles[]` |
| Q2.12-Q2.13, Q2.15 | `cadrage.globalScope` (vital, important, excluded) |
| Q2.16-Q2.18 | `cadrage.coverageMatrix` + base pour les cas d'utilisation |
