Agona.
Agona le référentiel · la peer-review

Vous avez résolu le même problème.
Maintenant, reprenez le leur.

À chaque sprint, votre équipe évalue les 4 autres bases de code : 30 points sur 100. Vous démarrez chaque base, vous vous y repérez, vous la modifiez. La question de la grille, « voudrais-je hériter de cette base ? », vous y répondez. Au prochain sprint, c'est peut-être la vôtre.

Barème

30 points

Le volet pairs, sur les 100 du sprint

Critères

4 épreuves

Reprise en main, architecture, changement sonde, confiance

Format

Une journée

Le j9 entier, sur les bases gelées, toute l'équipe

Croisement

Tous vers tous

Chaque base reçoit 4 fiches ; sa note est la médiane

Le croisement

Tous vers tous.

Chaque équipe relit les 4 autres bases, avec les mêmes consignes pour toutes. Chaque base reçoit donc 4 fiches indépendantes, et sa note est la médiane des 4 totaux, après modération. Le formateur traite au débrief les écarts entre les 4 fiches.

Le barème

4 épreuves, 30 points.

Vous mesurez l'effet de la grille : le temps qu'il vous faut pour démarrer la base, y retrouver quelque chose, la modifier.

Vous retenez le niveau dont vous observez tout. Si vous hésitez entre 2 niveaux, prenez le plus bas et écrivez ce qui manquait pour l'autre. Chaque note s'appuie sur un fait constaté et une piste d'amélioration.

P1Reprise en main démarrer et tester en suivant le README seul/8
P2Se repérer dans la base 3 éléments à localiser, en silence, chrono en main/7
P3Le changement sonde une petite modification fictive, identique pour tous/8
P4Confiance « on en hériterait ? », forces et faiblesses avec chemins/7
Total/30

Le détail

Ce que vous faites, niveau par niveau.

P1

Reprise en main

/8

Un binôme clone la branche de la base évaluée et suit uniquement le README. Ses 2 membres échangent seulement entre eux. Chacun travaille sur sa machine, dans l'environnement de référence de la promotion. On retient le temps le plus long et ce qui a différé.

  • Le chrono démarre à la première commande du README et s'arrête quand l'application répond et que les tests sont verts. Les téléchargements comptent. Si un outil manque et que le README l'annonce dans ses prérequis, le chrono se met en pause le temps de l'installer. S'il manque sans être annoncé, le chrono tourne : la faute est au README.
  • L'intégration continue atteste au gel que les tests passent. P1 mesure les étapes humaines.
  • À 20 minutes, le chrono s'arrête, P1 est noté au niveau atteint, et le formateur donne la commande de démarrage pour que P2 et P3 se fassent sur une base qui tourne.
NiveauPointsOn observe
Maîtrisé8Démarre et tests verts, en 10 minutes ou moins, en suivant le README sans aucune correction
Solide5Démarre et tests verts, en 10 à 20 minutes, ou avec une ou 2 corrections (variable, commande, version)
Fragile3L'un des 2 seulement ; ou plus de 20 minutes ; ou 3 corrections et plus ; ou pas de tests dans la base
Absent0Ni démarrage ni tests en suivant le README
P2

Se repérer dans la base

/7

Le formateur a donné 3 éléments à localiser, pris dans ce que le sprint a ajouté (la règle métier X, la validation de la nouvelle route, l'accès à la nouvelle table). 3 membres cherchent, chacun seul et en silence, 10 minutes au plus. On note le temps médian et le nombre de trouveurs. Un élément est trouvé quand au moins 2 des 3 arrivent au même chemin.

NiveauPointsOn observe
Maîtrisé7Les 3 éléments localisés, temps médian de 5 minutes ou moins
Solide5Les 3 éléments localisés, temps médian entre 5 et 10 minutes ; ou un élément se trouve à un endroit que le nommage contredit
Fragile2Un élément non localisé dans les 10 minutes, ou éclaté sur 3 fichiers ou plus
Absent02 éléments ou plus non localisés dans les 10 minutes
P3

Le changement sonde

/8

Une petite modification imposée, identique pour les 4 bases : elle mesure ce qu'il en coûte de modifier la base. Elle est consignée avant le gel, et le formateur l'a réalisée lui-même sur chaque base en 5 minutes ou moins.

  • Un binôme a 20 minutes chrono pour le changement, puis 5 minutes pour consigner le patch et les observations. Au sprint 1, le changement dispose de 30 minutes. Le travail se fait sur le clone de la branche gelée, sur une branche locale : git checkout -b sonde-<votre-equipe>, et tout reste en local : la commande git push est proscrite. À la fin du chrono, on s'arrête là où on en est.
  • Le patch est joint à la fiche, puis la branche et le clone sont supprimés. Écrire le test est facultatif : dites si un test existant a réagi, et sinon dans quel fichier vous l'ajouteriez.
  • P1 et P3 sont des faits : le formateur a démarré chaque base et réalisé la sonde avant la séance. Si votre binôme met 20 minutes là où il en a mis 5, il ramène la note au niveau qu'il a constaté.
NiveauPointsOn observe
Maîtrisé8Changement fait en un seul endroit logique ; un test existant a réagi, ou un test ajouté figure dans le patch ; aucune surprise
Solide5Changement fait, mais 2 endroits touchés qui auraient dû n'en faire qu'un, ou aucun test ne le protège
Fragile33 endroits touchés ou plus ; ou des tests sans rapport ont cassé, mais la cause a été identifiée et corrigée dans le temps imparti
Absent0Pas de patch fonctionnel à la fin du chrono, ou la suite de tests reste en échec après le changement
P4

Confiance : « on en hériterait ? »

/7

P4 est votre jugement d'ensemble, la synthèse de P1 à P3 et de votre lecture. Chaque force et chaque faiblesse porte un chemin de fichier, chaque faiblesse une piste. Vous en relevez autant que vous en constatez. Une faiblesse que l'équipe a documentée dans ses ADR se note « assumée ».

NiveauPointsOn observe
Maîtrisé7Vous pourriez poursuivre le développement immédiatement : les faiblesses relevées sont localisées, comprises et documentées
Solide5Une zone (module ou dossier) à refaire avant de pouvoir avancer, que vous savez nommer
Fragile22 zones ou plus à refaire
Absent0La structure elle-même serait à refaire, et vous savez dire pourquoi

La journée du j9

4 bases, 75 minutes chacune.

Le code est gelé à la fin du j8, le j9 à 00h00 : la base reste figée pendant les 2 derniers jours du sprint. Le j9 à 9h00, le formateur publie les bases gelées en branches du dépôt public de la promotion, et publie les 3 éléments à localiser, le changement sonde et les fiches pré-renseignées. La journée s'ouvre par la démonstration des 5 bases, puis vous clonez les 4 branches que vous évaluez. Les consignes sont identiques pour les 4 bases. Remise avant 17h00.

9h00

Démonstration des 5 bases

8 minutes par équipe : le produit qui tourne, le code fermé. L'entreprise marraine y est invitée. Rien ne s'y note.

9h40

Brief et mise en place

Publication des 5 branches, clone des 4 bases à relire, duplication des 4 fiches, répartition des rôles, désignation du gardien du temps.

10h00

Base 1

20 min de démarrage chronométré, 10 de localisation en silence, 20 de changement sonde puis 5 de consignation, 10 de verdict, 10 de fiche.

11h15

Base 2

Même protocole, mêmes consignes. Les rôles tournent d'une base à l'autre.

13h30

Base 3

Même protocole. Sur les 4 bases, chacun aura tenu au moins une fois le démarrage et une fois le changement sonde.

14h55

Base 4

Même protocole.

16h10

Relecture et remise

Mise au propre des 4 fiches, relecture par l'équipe, remise avant 17h00.

L'ordre des bases tourne d'une équipe à l'autre, et le formateur le publie au brief : l'équipe A commence par la base B, l'équipe B par la base C, et ainsi de suite. Au sprint 1, comptez 30 minutes de plus sur la première base, le temps de prendre le protocole en main. Le formateur tient un registre pour que chacun ait aussi rédigé au moins une fiche avant le sprint 3.

Bien relire

Comme quelqu'un qui va en hériter.

  • La question à se poser : « si je devais continuer à développer dessus lundi, qu'est-ce qui m'arrêterait ? »
  • La grille comme liste de contrôle : elle sert à nommer précisément ce que vous voyez (« critère 7 : l'erreur est avalée dans services/order.py »).
  • Un chemin et une piste par faiblesse. « api/users.js valide à la main ce que le schéma de validation ferait » est une revue.
  • Cherchez ce qui est mieux que chez vous. C'est la première ligne de la fiche : « ce qu'on reprendrait chez nous ». Reprendre une idée ou un pattern au sprint suivant est encouragé, en le citant dans votre README. L'autorisation exclut la copie de fichiers entiers.
  • Lisez les ADR pour connaître les intentions de l'équipe. Si la justification manque, notez qu'elle manque : la soutenance tranchera.
  • Les outils d'IA peuvent vous expliquer un fichier ou une commande. Les forces et faiblesses viennent de fichiers que vous avez ouverts vous-mêmes : au débrief, l'équipe qui a écrit une faiblesse jugée pas utile ou pas comprise la défend devant la promotion.

Votre revue, observée

4 qualités d'une bonne fiche.

La qualité de la revue donnée est une compétence, observée au livret de chacun (qui a tenu quel rôle, qui a trouvé quoi). La partie de la fiche transmise à l'équipe évaluée est anonyme.

Ancrage

Chaque force et faiblesse porte un chemin qui existe au tag de gel.

Justesse

Tout écart avec la base ou avec la référence du formateur est expliqué.

Utilité

Chaque faiblesse a une piste actionnable ; « ce qu'on reprendrait » cite du concret.

Conformité

Partie partagée anonyme, tous les niveaux justifiés, patch joint, remise à l'heure.

Les règles

Tout est publié à l'entrée.

  • Mêmes consignes pour toutes les équipes : éléments et changement sonde conçus avant le gel, vérifiés sur chaque base, identiques pour tous.
  • Chaque note porte sa justification. Une fiche incomplète est renvoyée le jour même ; si elle ne revient pas complétée, le formateur note le critère avec sa propre référence.
  • Une note se modère sur les faits et les justifications. Le formateur corrige les notes qui ne sont pas étayées.
  • La calibration des équipes évaluatrices est suivie : après chaque sprint, le formateur compare la note donnée par chaque équipe à la médiane des 3 autres sur la même base. Un écart systématique, dans un sens comme dans l'autre, signale un problème de calibration et se traite au débrief.
  • La fiche évalue le code ; la progression de chacun vit dans son livret.
  • La référence du formateur : il a démarré chaque base et réalisé la sonde avant la séance. Sur les faits (P1, P3), il corrige au niveau constaté ; sur le jugement (P2, P4), il ajuste d'un niveau au plus, par écrit, et un écart de 2 niveaux donne d'abord lieu à un échange avec vous. Une fiche dont les justifications manquent d'ancrage dans la base est écartée du calcul : la note de la base devient la médiane des 3 fiches restantes. Si 3 fiches ou plus sont écartées, le formateur note lui-même la base. Un désaccord argumenté compte comme une fiche valable.
  • De 21 à 30, niveau attendu ; de 12 à 20, en cours. En dessous de 12, ou avec un « absent » après modération, le constat est consigné au livret ; l'équipe évaluée peut demander une remédiation : du temps d'encadrement en plus.
  • Le j10 à 13h30, l'équipe évaluée reçoit les faiblesses relevées par les 4 fiches et y répond jusqu'à 15h30 : utile, pas utile, pas compris. À 15h30, les 4 fiches complètes arrivent avec les 3 notes. Une relecture de note se demande ensuite jusqu'au j1 à 9h00, avant l'annonce du classement.
  • La fiche va aux 2 équipes et accompagne la base sélectionnée à la passation. Le débrief se tient hors la présence de l'entreprise marraine.
  • Un membre absent est noté « non observé ». Une adaptation (temps majoré, binôme, timebox étendue) porte sur la personne : les seuils de la base restent les mêmes. Elle reste au livret.
  • La fiche écrite est l'unique trace : la séance n'est pas enregistrée.
Le débrief

Au j10, de 15h45 à 17h00, les 5 équipes et le formateur se réunissent hors la présence de l'entreprise marraine. 5 tours de 13 minutes, un par base : une personne tirée au sort dans l'équipe évaluée présente les faiblesses reçues et ce que l'équipe en fait. Chaque « pas utile » et chaque « pas compris » de la réponse écrite rend la parole à l'équipe qui a écrit la faiblesse. Une faiblesse restée sans réponse à 15h30 est présentée comme les autres. Les 10 dernières minutes, chaque équipe dit ce qu'elle reprend de la base qu'elle a relue, et le formateur cite les 2 fiches les plus utiles de la promotion.

Les 3 notes

Le code, la pensée,
et ceux qui vont en hériter.

La grille de revue mesure ce qui est écrit, la soutenance ce qui est compris, la peer-review ce que ça fait de reprendre. Les 3 sont publiés.

Voir la grille de revue La soutenance · Le programme · Les dépôts · L'accueil