Agona.
Agona annexe à la consigne · les dépôts

Où vit votre code,
et qui y a accès.

Tout le code produit chez Agona est publié. Pendant un sprint, chaque équipe travaille dans son dépôt privé, à l'abri des autres. À la fin de chaque sprint, les 5 bases sont réunies et publiées dans le dépôt de la promotion. On y lit, côte à côte, 5 façons de résoudre le même problème.

Par promotion

1 dépôt public

5 équipes × 5 sprints = 25 branches, 5 tags.

Pendant le sprint

5 dépôts privés

Un par équipe, cloisonnés.

Ce qui est publié

Les 5 bases par sprint

La retenue et les 4 autres.

Le nom du dépôt

Année + entreprise

2027-entreprise. Public, et il reste en ligne.

La vue d'ensemble

Une organisation : github.com/agona-dev.

L'organisation réunit la méthode, le dépôt modèle et un dépôt par promotion.

referentielpublic

La méthode : grille de revue, consignes, barèmes, livret.

depot-promotionpublic · template

Le dépôt modèle que chaque équipe copie au départ : arborescence, CI, conventions.

2027-entreprisepublic

Un dépôt par promotion. Toute la promo est là. Public : les 5 bases gelées y sont publiées au j9 de chaque sprint.

Le dépôt d'une promotion

Une promotion, un dépôt.

Le code d'une équipe sur un sprint forme une branche du dépôt. 5 équipes sur 5 sprints, ce sont 25 branches réunies dans un seul dépôt. Au j1 du sprint suivant, après l'annonce du classement, une base est retenue et reçoit un tag. Elle devient la base commune du sprint suivant. Ces bases retenues forment la lignée du dépôt. Sur le schéma, c'est la ligne rouge.

Le dépôt d'une promotion : branches, tags et bases retenues Les cinq équipes sont en rangées. À chaque sprint, cinq branches partent de la base retenue précédente. L'étoile marque la base retenue et se place sur la rangée de l'équipe qui l'a produite ; la ligne rouge, qui relie les étoiles, change de rangée à chaque sprint. éq. 1 éq. 2 éq. 3 éq. 4 éq. 5 le sujet ★ ★ ★ ★ ★ sprint-1 sprint-2 sprint-3 sprint-4 sprint-5 ★ base retenue (reçoit le tag) base publiée, non retenue la lignée des bases retenues

Chaque cercle représente une branche du dépôt de la promotion : le code d'une équipe sur un sprint est publié dans une branche. La branche retenue porte un tag et devient la base commune du sprint suivant.

Le nom d'une branche

sprint-3/equipe-2 : l'équipe 2, au sprint 3.

Le nom d'un tag

sprint-3 : la base retenue du sprint 3, qui devient la base commune du sprint 4.

La lignée

Les tags bout à bout : les bases communes successives, du sprint 1 au sprint 5.

Pendant le sprint

Chacune dans son dépôt, sans voir les autres.

Pour que la comparaison des 5 bases ait un sens, les équipes travaillent isolées. Chaque équipe a son propre dépôt de travail privé, et n'a accès qu'au sien. L'accès est géré par une équipe GitHub.

Équipe GitHub
equipe-1
🔒accès
Son dépôt de travail
dépôt équipe 1 · privé
visible par ses 5 membres, personne d'autre
Équipe GitHub
equipe-2
🔒accès
Son dépôt de travail
dépôt équipe 2 · privé
visible par ses 5 membres, personne d'autre
… equipe-3, equipe-4, equipe-5
3 autres
🔒accès
Leur dépôt respectif
un dépôt privé chacune
cloisonnés les uns des autres

Pourquoi un dépôt par équipe, et pas un simple dossier ? Sur GitHub, l'accès se donne au dépôt entier : séparer les dépôts est le seul moyen de cloisonner les équipes.

À chaque sprint, les équipes sont recomposées et chacune reçoit un dépôt neuf. Vous n'accédez qu'à celui de votre équipe du sprint en cours.

Le cycle d'un sprint

j1, le sprint, j10.

Deux semaines, toujours la même boucle.

j1 · départ

Un dépôt neuf

Les équipes viennent d'être recomposées. Après l'annonce du classement, la base retenue au sprint précédent reçoit son tag. Chaque équipe reçoit un dépôt neuf, qui part de cette base en un seul commit initial, sans l'historique d'avant.

j2 → j8 · le sprint

On développe, isolé

Chaque équipe fait évoluer sa base dans son dépôt privé, sans voir les 4 autres. Au j9, les 5 bases gelées sont poussées en branches dans le dépôt de la promotion, qui est public, et chaque équipe clone les 4 autres pour la peer-review.

j10 · clôture

On soutient et on note

Les soutenances, les notes de chaque base, puis le débrief. Les 5 bases sont publiques depuis le j9. On recompose, et on repart au j1.

La publication

Tout est publié, avec son historique.

Les dépôts de travail restent privés. Au j9, une fois les bases gelées, leur contenu est poussé en branches dans le dépôt de la promotion, qui est public.

Quelles bases ?
Les 5 de chaque sprint, la retenue comme les 4 autres. 5 façons différentes de résoudre le même problème, lisibles côte à côte.
Avec l'historique ?
Oui, le travail du sprint, commits compris. Ils sont signés sous pseudonyme : c'est ce qui vous attribue chaque contribution.
Un historique continu ?
Non, un historique par sprint, pas un seul du début à la fin. Chaque sprint repart d'un dépôt neuf, et son historique reste publié en entier dans ses branches.
Et un secret oublié ?
Sa valeur est effacée de l'historique avant publication. Tous les commits, messages, auteurs et dates sont conservés. Aucune donnée réelle n'entre jamais dans un dépôt.
Ce qu'il faut retenir

Votre code est privé jusqu'au j9, jamais après. Écrivez chaque commit en sachant qu'il sera lu : par l'équipe qui héritera de la base, par les pairs, et par tout le monde une fois publié. C'est le sens de la consigne.

La suite

Vous savez où vit le code.

Reste ce qu'on en attend, et comment il est noté. Tout est publié.

Lire la consigne programme · grille · exemple de promotion · soutenance · peer-review