# Cadrage Challenge Patterns

Reference material for identifying and challenging implicit assumptions in business requirements analysis.

## Challenge Question Examples by Domain Pattern

| Brief statement | Implicit assumption | Challenge question |
|----------------|--------------------|--------------------|
| "Entities are 1:1 extensions of X" | Cardinality is always 1:1 | "Can a user be linked to multiple employee records (temp contracts, part-time multi-position)? Can an employee NOT have a user account?" |
| "Entry split into activity and absence" | Binary decomposition is sufficient | "What granularity? Day, half-day, hour? Are activities linked to projects or clients? Are there other entry types (training, travel, on-call)?" |
| "A reports section" | Reports are a simple addition | "Which reports exactly? For whom? How often? PDF/Excel export? Real-time dashboards? Aggregated or detailed?" |
| "Module X manages Y" | The scope of "manages" is clear | "What does 'manage' mean concretely? Create, read, update, delete? Approve? Archive? Import/export?" |

## Elicitation Techniques

**Technique 3 (Concrete Scenario):** "Walk me through a typical day of [role] using this module"

**Technique 4 (Absence Test):** "If [feature] didn't exist, how would you handle it?"

**Technique 8 (Impact Escalation):** "With 50 records this works, but with 500? 5000? Does the process stay the same?"

## MoSCoW Prioritization Template

When client classifies ALL features as "must-have", apply this blocking challenge:

```
question: "{language == 'fr'
  ? 'Toutes les fonctionnalités sont marquées indispensables. Si vous ne pouviez livrer que 60% du périmètre en v1, lesquelles pourraient attendre la v2 ?'
  : 'All features are marked must-have. If you could only deliver 60% of scope in v1, which ones could wait for v2?'}"
header: "Priorisation"
multiSelect: true
options:
  - label: "{feature_1}"
    description: "{language == 'fr' ? 'Pourrait passer en Important (v1.x)' : 'Could move to Important (v1.x)'}"
  - label: "{feature_2}"
    description: "{language == 'fr' ? 'Pourrait passer en Optionnel (v2)' : 'Could move to Optional (v2)'}"
  - label: "{language == 'fr' ? 'Tout est vraiment indispensable' : 'Everything is truly must-have'}"
    description: "{language == 'fr' ? 'Je confirme que toutes les fonctionnalités sont critiques pour la v1' : 'I confirm all features are critical for v1'}"
```

If client moves items → update categories. If client confirms ALL mustHave → accept but log in changelog.
