Stima dei tempi di implementazione di un limite di velocità
Come pianificare l’implementazione di un limite di rate: soglie, periodi di prova, comunicazioni ai clienti. La parte di programmazione richiede mezza giornata; la vera difficoltà sta nel definire limiti che non suscitino lamentele.
La scrittura del codice richiede mezza giornata. L’implementazione richiede due mesi.
I limiti di velocità sono facili da implementare ma difficili da mettere in pratica. Il middleware è un modello ben noto. La parte difficile consiste nello stabilire soglie che non diano adito a lamentele, e l’unico modo per farlo è misurare l’utilizzo attuale, annunciare i limiti in anticipo, monitorare un periodo di prova per individuare chi sarebbe stato bloccato, rispondere alle lamentele più insistenti e solo allora applicare le restrizioni. È proprio questa sequenza di operazioni a costituire il lavoro vero e proprio, e non rientra nei tempi di uno sprint.
I team che valutano il middleware finiscono per trascurare completamente l’implementazione. I team che valutano l’implementazione ottengono una stima molto più elevata, si chiedono se sia effettivamente urgente e di solito decidono di suddividerla in più cicli, il che rappresenta la risposta corretta. Valutare l’intero progetto in un’unica soluzione costringe il team a una falsa dicotomia.
Ciò che viene detto nella sala
Backend: «Il middleware è una questione di un giorno. Disponiamo di una libreria.»
SRE: “Quali soglie? Abbiamo esaminato il p99 dei consumi attuali?”
PM: “A chi dobbiamo inviare un’e-mail prima che il sistema si attivi?”
Assistenza: “Cosa indica il codice di risposta 429? È previsto un tentativo successivo?”
Titolo: “Prima la fase di prova, o si passa subito all’applicazione delle norme?”
Domande da porsi prima di votare
- Abbiamo misurato il consumo di corrente ai livelli p50, p95 e p99 per ciascun cliente?
- Quali sono i valori soglia e in base a quali criteri sono stati scelti?
- Per account, per indirizzo IP, per chiave API? Combinazioni?
- Periodo di prova: quanto dura e cosa si intende per “senza sorprese”?
- Comunicazioni con i clienti: a chi inviamo le e-mail e con quanto anticipo?
- Come si presenta la risposta 429: messaggio, tempo di attesa per il nuovo tentativo, link alla documentazione?
- Qual è la procedura da seguire nel caso di un cliente che necessiti di un limite più elevato?
Suddividere: l’applicazione delle regole è una questione a sé stante, la simulazione e la comunicazione ne costituiscono un’altra, mentre la regolazione delle soglie ne rappresenta una terza. Ciascuna di esse è di notevole entità di per sé; l’insieme, invece, non lo è.
Si deve dimensionare l’implementazione, non il middleware. La chiave sta nel misurare, comunicare e effettuare simulazioni.
Si veda Come stimare il lancio di un feature flag per lo stesso schema in cui il lancio assorbe il lavoro, nonché gli altri esempi di stime efficaci. Avviare una sessione gratuita di planning poker una volta definite le fasi.