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.
1 dépôt public
5 équipes × 5 sprints = 25 branches, 5 tags.
5 dépôts privés
Un par équipe, cloisonnés.
Les 5 bases par sprint
La retenue et les 4 autres.
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.
La méthode : grille de revue, consignes, barèmes, livret.
Le dépôt modèle que chaque équipe copie au départ : arborescence, CI, conventions.
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.
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.
sprint-3/equipe-2 : l'équipe 2, au sprint 3.
sprint-3 : la base retenue du sprint 3, qui devient la base commune du sprint 4.
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.
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.
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.
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.
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.
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