Sprints, points et burndown
Un sprint est une liste qui porte des dates. Ses cartes restent dans leur backlog ; les points d'effort, le burndown et la vélocité se lisent dans le journal de l'espace et dans ce que chaque sprint contient.
Un sprint est une liste qui porte des dates
Une liste qui a un startsOn et un endsOn est un sprint — les deux dates
ou aucune, des jours en UTC. Les cartes naissent dans leur backlog, qui leur
donne leur clé (BACK-12), et sont rattachées au sprint en liste
secondaire : passer au sprint suivant ne renumérote rien.
Terminer le sprint (POST …/collections/{collectionId}/complete-sprint,
dans l'app web sur le bandeau du sprint) fait passer ce qui n'est pas fini — par
catégorie de statut, jamais par nom — à la liste choisie, et laisse ce qui
l'est là où ça a été livré. Une transaction, un événement du journal par carte.
Les points d'effort
L'espace désigne une propriété number comme ses points d'effort
(Réglages de l'espace → Général → Points d'effort, ou
PATCH /workspaces/{workspaceId} avec pointsFieldId). C'est un réglage de
l'espace, pas de la liste : un sprint mêle des cartes de plusieurs backlogs, et
une carte pèse la même chose dans chaque sprint où on la regarde.
Une fois désignée :
- sa valeur s'affiche en pastille sur les cartes — cellules de tableau, cartes de kanban, lignes empilées, fiche ;
- chaque colonne de kanban affiche la somme de ses points, sur la colonne
entière et pas seulement sur les cartes chargées (
sumFieldIdsurPOST …/grouped-query, rendu dansItemGroup.sum) ; - le bandeau du sprint affiche faits / total, et combien de cartes ne sont pas estimées.
Une carte sans points pèse 0 — elle ne compte pas pour « une carte », ce qui mêlerait deux unités dans une même somme. Sans propriété désignée, tout se compte en cartes, chacune valant 1. Supprimer la propriété repasse l'espace en cartes.
Le burndown
GET …/collections/{collectionId}/sprint-report rend, pour chaque jour du
sprint, le périmètre, ce qui était terminé et ce qui restait à la fin de ce
jour, et une ligne idéale qui part du périmètre engagé le premier jour et
descend jusqu'à zéro.
Il est relu dans le journal, du plus récent au plus ancien : passages de
statut vers ou depuis la catégorie done (une carte rouverte jeudi cesse de
compter jeudi), rattachements et détachements, réestimations, archivage. Une
carte détachée par Terminer le sprint est un report, pas une réduction du
périmètre : elle compte, non terminée, jusqu'au bout. Les jours à venir valent
null — la courbe s'arrête à aujourd'hui.
Le journal se purge par mois
Quand une instance applique sa rétention, des mois entiers de journal
disparaissent. Pour un sprint plus ancien que ce qui reste, le rapport le dit
(burndown.historyFrom) et les jours d'avant valent null : inconnus, pas nuls.
Une carte supprimée sort de toute la courbe, jours passés compris : plus rien ne dit ce qu'elle pesait.
La vélocité
Le même rapport liste ce que chacun des six derniers sprints du même groupe de la barre latérale a terminé (les sprints rangés nulle part forment leur propre série), et la moyenne de ceux qui sont échus — le chiffre avec lequel planifier le suivant.
La vélocité lit l'état présent des cartes de chaque sprint, pas le journal : elle survit à la purge. Le prix : une carte rouverte ou réestimée plus tard réécrit la vélocité du sprint qui l'avait livrée. Une carte reportée puis terminée dans un sprint suivant compte une fois, dans le suivant.
Vues enregistrées
Une vue est une donnée — arbre de filtres, tris et groupement — compilée en SQL à un seul endroit. Ce qu'elle sélectionne, et ce qu'elle change à l'affichage.
Corps des cartes
Le corps d'une carte est un document en blocs — validé à l'écriture, incapable de transporter du HTML, et toujours lisible aussi en texte brut.