Burndown dello sprint
Con 80 punti impegnati, 32 completati e 6 giorni a disposizione, il team deve chiudere 8 story point al giorno per completare i 48 rimasti. Confronti questo ritmo con ciò che il team consegna davvero. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Totale story point
- 80
- Giorni trascorsi
- 4
- Giorni rimanenti
- 6
- Punti completati
- 32
- Punti rimanenti
- 48
- Velocità giornaliera richiesta
- 8
Questo calcolatore di burndown trasforma lo stato attuale di un'iterazione in un dato concreto per la pianificazione: i punti storia da completare per ogni giorno rimasto, così da concludere in tempo. Inserisca l'impegno iniziale dello sprint, i giorni trascorsi, quelli rimanenti e i punti completati. Il risultato mostra sia il carico incompleto sia la velocità giornaliera richiesta, permettendoLe di confrontare quel ritmo con ciò che il team può realisticamente consegnare prima della fine dello sprint.
Trasformi un'istantanea del burndown in un obiettivo giornaliero chiaro
Un grafico di burndown mostra la direzione, ma non sempre risponde alla domanda che emerge durante l'aggiornamento quotidiano: con quale ritmo deve avanzare ora il lavoro residuo? Il calcolatore parte dai punti storia totali dello sprint e sottrae quelli già completati. Poi divide il carico incompleto per il numero di giorni ancora disponibili.
La velocità giornaliera richiesta è quindi un obiettivo rivolto al futuro, espresso in punti storia per giorno rimanente. Se resta molto lavoro e ci sono pochi giorni, il valore elevato emerge subito, senza affidarsi all'interpretazione visiva di una linea di tendenza. Inserisca tutti i giorni trascorsi, compresi quelli senza punti completati, affinché l'istantanea rappresenti onestamente il calendario.
Il tempo trascorso viene restituito come contesto; il calcolo della scadenza usa invece i giorni rimanenti, perché sono le opportunità di consegna ancora disponibili. Consideri il dato un segnale di pianificazione, non una quota di produttività individuale.
Interpreti la velocità richiesta nel contesto della consegna
La velocità giornaliera richiesta indica il ritmo aritmetico necessario per esaurire la stima residua entro la scadenza. La confronti con i punti che il team completa normalmente ogni giorno, il throughput recente, il lavoro in corso e gli impedimenti noti. Se l'obiettivo è comodamente inferiore a un ritmo sostenibile, lo sprint rimane matematicamente realizzabile.
Se è molto superiore, la risposta utile non consiste nel fare pressione sulle persone affinché aumentino artificialmente la produzione. Valuti invece se sia possibile sbloccare un'attività, suddividere le storie preservando risultati di valore oppure rinegoziare l'ambito con la persona responsabile del prodotto. Un risultato pari a zero indica che tutti i punti previsti sono già stati completati e non serve ulteriore velocità.
I valori frazionari sono normali: rappresentano una media sui giorni restanti, non la richiesta di completare ogni giorno una frazione di storia. Poiché i punti sono stime relative al team, confronti il valore soltanto con dati della stessa squadra e della medesima prassi di stima.
Usi dati coerenti e gestisca il limite della scadenza
Mantenga coerenti le unità in tutti i campi. Il lavoro totale e quello completato devono usare punti storia della stessa baseline dello sprint; il tempo trascorso e quello residuo devono adottare la stessa definizione di giorno, di norma giorni lavorativi pianificati anziché giorni di calendario. Aggiorni i punti completati secondo la definizione di completato condivisa dal team.
Conteggiare attività parziali riduce solo in apparenza la stima residua, senza creare un incremento consegnabile. Il calcolatore rifiuta punti completati superiori al totale originale, perché tale combinazione non descrive il lavoro residuo rispetto all'impegno indicato. Rifiuta inoltre valori negativi, numeri non finiti e frazioni di giorno.
Soprattutto, zero giorni rimanenti genera un errore: senza tempo disponibile, la divisione non produce un ritmo quotidiano significativo. In quel caso esamini direttamente l'esito dello sprint, invece di usare un valore infinito o indefinito.
Casi d'uso
Prepari l'incontro quotidiano
Calcoli il ritmo necessario da oggi e porti nella discussione del team un segnale concreto sul rischio di consegna.
Valuti una modifica dell'ambito
Ripeta il calcolo dopo aver rimosso o suddiviso il lavoro, verificando se l'impegno rivisto corrisponde a un ritmo sostenibile.
Domande frequenti
Che cosa significa velocità giornaliera richiesta?
È il rapporto tra i punti storia residui e i giorni rimanenti: la media dei punti che devono risultare completati ogni giorno per rispettare in tempo l'impegno indicato.
Perché servono i giorni trascorsi se la formula usa quelli rimanenti?
I giorni trascorsi conservano nel risultato l'istantanea completa dello sprint e Le permettono di verificare la coerenza del calendario inserito. Il ritmo futuro dipende dalle opportunità ancora disponibili.
Che cosa accade quando non resta alcun giorno?
Il calcolo restituisce un errore di input non valido, perché distribuire lavoro residuo su zero giorni non produce una velocità quotidiana significativa.
I punti completati possono superare il totale originale?
No. Il calcolatore rifiuta questo input perché misura il lavoro residuo rispetto all'impegno totale fornito. Se l'ambito è stato formalmente ampliato, utilizzi il nuovo totale.
Cosa fare se la velocità giornaliera richiesta è troppo alta?
Non spinga le persone a gonfiare la produzione. Verifichi se un elemento bloccato può essere sbloccato, se conviene suddividere le storie mantenendone il valore o se il perimetro va rinegoziato con il product owner.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/biz/burndown-remaining-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_story_points":80,"days_elapsed":4,"days_remaining":6,"points_completed":32}'const res = await fetch("https://api.kit.forhosting.com/biz/burndown-remaining-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_story_points": 80,
"days_elapsed": 4,
"days_remaining": 6,
"points_completed": 32
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/burndown-remaining-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_story_points": 80,
"days_elapsed": 4,
"days_remaining": 6,
"points_completed": 32
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/burndown-remaining-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_story_points":80,"days_elapsed":4,"days_remaining":6,"points_completed":32}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_story_points":80,"days_elapsed":4,"days_remaining":6,"points_completed":32}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/burndown-remaining-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"total_story_points": 80,
"days_elapsed": 4,
"days_remaining": 6,
"points_completed": 32
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.burndown_remaining_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Usi dati coerenti e gestisca il limite della scadenza
Per l'automazione, l'API restituisce input normalizzati, punti residui e velocità richiesta in un oggetto JSON stabile. Ogni chiamata costa $0.002; lo stesso calcolo deterministico funziona nel browser senza rete.
Casi di integrazione
Aggiunga un indicatore al resoconto
Usi il risultato deterministico dell'API in una dashboard, un rapporto sullo stato o un controllo automatico del rischio.
Domande tecniche
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Il calcolo nel browser usa la stessa logica deterministica e può essere eseguito localmente.