Chapitre 69 minIntermédiaire
Phase 1 : réussir l'entretien de 20 minutes
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- présenter ton analyse en quelques minutes ;
- justifier un choix par une raison et une alternative ;
- réagir quand tu ne sais pas ou qu'on t'ajuste la demande.
1 exercice corrigé
L'entretien de la phase 1 de l'E6 SLAM est un échange de 20 minutes au maximum avec la commission, juste après tes 30 minutes de préparation. Le texte officiel te demande trois choses : présenter ton analyse et ton interprétation de l'expression des besoins, proposer des spécifications techniques et le choix des outils, présenter ta démarche. Ce chapitre donne une structure d'exposé, les questions qui reviennent et des réponses modèles, puis la façon de recevoir un ajustement.
Un exposé court, puis un échange
Tu n'as pas à parler 20 minutes. Un exposé structuré de trois à quatre minutes suffit ; le reste est un échange où la commission creuse. Annonce ton plan dès la première phrase :
« Je vais vous présenter ce que j'ai compris du besoin, la solution que je propose et pourquoi, puis la façon dont je vais organiser ma réalisation. »
Puis déroule cinq points, qui couvrent les trois attentes du texte.
| Point | Durée | Ce que tu dis | Attente du texte |
|---|---|---|---|
| 1. Le besoin reformulé | 45 s | la demande avec tes mots, l'implicite repéré, l'ambiguïté et ton hypothèse | analyse et interprétation |
| 2. La solution | 1 min | ce que tu ajoutes ou modifies, où, avec quelles règles et quels codes de retour | spécifications techniques |
| 3. L'impact | 30 s | ce que tu ne casses pas, les données existantes, la sécurité | spécifications techniques |
| 4. Les outils et l'alternative écartée | 45 s | les outils retenus, l'autre solution envisagée et pourquoi tu l'écartes | choix des outils |
| 5. La démarche | 45 s | ce que tu fais en premier, comment tu testes, la documentation demandée | démarche envisagée |
Appuie-toi sur ton schéma : quatre cases et trois flèches, de l'action de l'utilisateur jusqu'à la base, avec la case que tu modifies en évidence. Montre-le en parlant : la commission suit ton raisonnement d'un coup d'œil.
Répondre : choix, raison, alternative
Les questions de la commission commencent souvent par « pourquoi ». Une réponse en trois temps tient à chaque fois : j'ai choisi X, parce que Y ; l'alternative était Z, je l'ai écartée parce que… La raison s'appuie sur le besoin, sur une règle technique ou sur un compromis assumé. « C'est comme ça dans le cours » n'est pas une raison.
Les questions qui reviennent, et des réponses modèles
Les réponses portent sur l'exemple de la notification de clôture traité dans le chapitre analyser l'expression des besoins. Adapte-les à ta propre demande ; ne les récite pas.
| Question | Ce qu'elle teste | Réponse modèle |
|---|---|---|
| « Pourquoi une table plutôt qu'un champ sur la note ? » | la modélisation | « Une note peut être clôturée deux fois si un comptable la renvoie. Une table garde une notification par clôture, avec sa date. Un champ sur la note ne garderait que la dernière. » |
| « Pourquoi insérer la notification dans la même transaction que la clôture ? » | l'intégrité des données | « Pour qu'il n'existe jamais une note clôturée sans notification. Si l'insertion échoue, le ROLLBACK annule aussi la clôture, et le salarié reçoit une erreur au lieu d'une note oubliée. » |
| « Qui peut appeler votre route ? » | les habilitations | « Seul un comptable. Le middleware d'authentification renvoie 401 sans jeton valide, puis requireRole('comptable') renvoie 403 à un salarié. Le contrôle est côté serveur : cacher un bouton dans le front n'empêche pas un appel direct avec curl. » |
| « Que se passe-t-il si la note est déjà clôturée ? » | les cas limites | « La route de clôture refuse déjà ce cas avec un 409 : aucune transition, donc aucune notification. Je le vérifierai par un test. » |
| « Comment allez-vous tester ? » | la démarche | « Un test supertest par cas : comptable, 200 avec la liste ; salarié, 403 ; sans jeton, 401. Un test qui clôt une note et compte une notification de plus. Je consigne les résultats dans la documentation demandée. » |
| « Et si on voulait aussi un email ? » | l'évolutivité | « La notification en base devient la source : un service d'envoi la lirait et enverrait l'email. Il faudrait un serveur SMTP et ses identifiants dans les variables d'environnement. Je ne le ferai pas en une heure, mais rien dans ma solution ne l'empêche. » |
| « Ces informations sont-elles sensibles ? » | le contexte juridique | « Le nom du salarié et ses montants sont des données personnelles. La route est réservée aux comptables, qui traitent déjà ces notes ; la notification ne contient que l'identifiant de la note, le reste est lu par jointure. » |
| « Pourquoi Vitest et pas un autre outil ? » | le choix des outils | « Il est déjà configuré dans le projet, avec 31 tests et l'intégration continue. Un autre outil me coûterait une installation sans rien apporter au besoin. » |
| « Qu'allez-vous faire en premier ? » | la priorité | « La migration de la base, puis l'insertion dans la clôture, puis la route de lecture, chaque étape testée et commitée. Le compteur dans le front vient seulement si tout le reste fonctionne. » |
| « Qu'est-ce qui pourrait casser ? » | l'impact | « La clôture, puisque je la modifie. Les tests existants de la clôture doivent toujours passer : je les relance après ma modification. » |
Quand tu ne sais pas
Tu ne sauras pas tout. Ne bluffe pas : la commission relance, et un bluff se voit à la deuxième question. Dis ce que tu sais, ce que tu ne sais pas, et comment tu vérifierais :
« Je ne connais pas la syntaxe exacte de cette option. Je la vérifierais dans la documentation de mysql2, que je peux consulter pendant la réalisation. Le principe, c'est… »
Une relance n'est pas le signe que ta réponse est fausse. Si tu es sûr de toi, garde ta position et appuie-la sur une preuve : un code de retour, une ligne de ton code, une règle du protocole. Si tu doutes, dis-le.
Recevoir un ajustement
En fin d'entretien, la commission peut te proposer « un ajustement de la démarche à mettre en œuvre ». Il est écrit au verso de l'expression des besoins, parfois à la main. Ce n'est pas une sanction : souvent, il précise une ambiguïté que tu as signalée, réduit un périmètre trop large ou ajoute une contrainte pour voir comment tu t'adaptes.
| Ajustement possible | Ce qu'il change pour ta phase 2 |
|---|---|
| « Gardez l'historique de chaque renvoi. » | une table au lieu d'une colonne : ton modèle de données change |
| « Limitez-vous à l'API, sans le front. » | ton confort disparaît, ton vital reste |
| « Le suivi des lectures doit être fait par comptable. » | l'hypothèse que tu as annoncée est remplacée par l'autre option |
| « Ajoutez un test automatisé de la règle. » | un livrable de plus à placer dans ton heure |
Le bon réflexe en quatre gestes : écoute jusqu'au bout, reformule (« Si je comprends bien, vous voulez… »), pose une question si un point reste flou, puis note ce que l'ajustement change dans ton plan. Tu reprends ce plan dans les cinq premières minutes de la phase 2.
Exercice
Exercice Répondre à quatre questions Réussi À revoir
Tu as proposé, pour une demande d'export CSV des notes validées d'un mois, une route GET /api/notes/export?mois=2027-03 réservée aux comptables, qui renvoie un fichier CSV avec un point-virgule comme séparateur. Réponds en deux à quatre phrases à chacune de ces questions de la commission.
- « Pourquoi un
GET? » - « Pourquoi un point-virgule et pas une virgule ? »
- « Que renvoyez-vous si le mois est
mars? » - « Et s'il n'y a aucune note validée ce mois-là ? »
Voir la réponseMasquer la réponse de l'exercice
- « L'export lit des données sans rien modifier : c'est une lecture, donc un
GET. Le mois est un paramètre de filtre, il va dans la chaîne de requête. UnPOSTlaisserait croire qu'on crée quelque chose. » - « Les comptables ouvrent le fichier dans un tableur réglé en français, qui sépare les colonnes par des points-virgules. Avec des virgules, tout s'afficherait dans une seule colonne. La virgule servirait aussi de séparateur décimal dans les montants. »
- « Un 400 avec un message qui donne le format attendu,
AAAA-MM. Je vérifie le paramètre avec une expression régulière avant de toucher la base. Un mois mal formé est une erreur du client, pas du serveur. » - « Un fichier CSV qui contient seulement la ligne d'en-tête, avec un code 200. L'absence de note n'est pas une erreur : la comptable voit un fichier vide et comprend qu'il n'y a rien à transmettre. Un 404 laisserait croire que l'export lui-même n'existe pas. »
Tu avais trouvé ?