La p95 è raddoppiata la scorsa settimana e l’assemblea sta votando sulla questione sbagliata.

I cali di prestazioni, nella maggior parte dei casi, richiedono una diagnosi approfondita ma una correzione minima. Il team che ha già individuato la query N+1 sa che la correzione è minima. Il team che non l’ha ancora individuata sta votando su una story il cui contenuto effettivo è «dedicare tre giorni alla lettura dei flame graph». Si tratta di story diverse.

Due domande determinano la stima. Primo: la causa è nota? Se sì, si valuta l’entità della correzione. Se no, si valuta l’entità dell’indagine. In secondo luogo: quale SLO è stato violato dalla regressione e qual è la scadenza per ripristinarlo? Una regressione che viola uno SLO rivolto ai clienti presenta un profilo di urgenza diverso rispetto a un rallentamento del 10% che nessuno ha notato.

Ciò che viene detto nella stanza

SRE: «Mercoledì scorso il p95 è passato da 200 ms a 450 ms.»

Backend: “C’è stato qualcosa di particolare nelle operazioni di implementazione di quel giorno?”

Titolo: “Tre distribuzioni. Nessuna di esse ha interessato l’endpoint lento.”

Backend: “Oppure non sembrava che avessero interagito con l’endpoint lento.”

SRE: «Rientriamo nei limiti dello SLO? Abbiamo tempo per approfondire la questione come si deve?»

Domande che vale la pena porsi prima di votare

  • La causa è nota, oppure stiamo valutando l’opportunità di avviare un’indagine?
  • Che cos’è lo SLO e attualmente è stato superato?
  • Cosa è cambiato tra l’ultima finestra positiva e la prima finestra negativa?
  • Disponiamo di grafici a fiamma, tracciati o semplicemente di dashboard?
  • Il rollback rappresenta una misura di mitigazione praticabile mentre conduciamo le indagini?

Se la causa rimane ancora un’ipotesi, si tratta di uno spike a durata prestabilita, non di una correzione — e se uno SLO viene violato, il rollback consente di guadagnare il tempo necessario per eseguirlo senza la pressione del tempo.

Definisca le dimensioni in base a ciò che possiede effettivamente, non a ciò che vorrebbe avere. Una causa sconosciuta implica che si stia limitando l’ambito della ricerca.

Come nel caso della stima di un bug non riproducibile, il lavoro risiede nella diagnosi. Si vedano gli altri esempi di stime elaborate, oppure si avvii una sessione gratuita di Planning Poker una volta individuata la causa.