Qual è l’origine del termine ‘spike’ nella pratica di sviluppo software Agile?

Una spike è una storia utente speciale con il programma più puro possibile, che viene usata come metodo di test del prodotto. Il team di sviluppo usa gli spike per raccogliere informazioni aggiuntive che li supportano per abbassare il rischio tecnico, capire meglio un requisito, o aumentare la precisione della stima di una storia. Come risultato, il team può esplorare il problema e le potenziali soluzioni.

La dimensione massima del time-box di uno spike è la stessa dello sprint che lo contiene. Come le altre user stories, gli spike saranno dimostrati essere fatti o meno alla fine di uno sprint. Ecco perché uno spike è un ottimo modo per stimare lo sforzo richiesto per risolvere un problema di sviluppo software.

Perché servono gli spike?

A volte il team non può stimare una storia a causa di alcuni blocchi. Se il team non è sicuro di completare la storia, è il momento di pensare all'uso degli spike.

Ecco alcune situazioni in cui l'uso degli spike è raccomandato:

  • Gli sviluppatori hanno bisogno di fare alcune attività preliminari in modo da poter stimare le user stories
  • Gli sviluppatori non hanno idea di come affrontare il problema
  • Gli sviluppatori non sono sicuri se la soluzione che si aspettavano funziona o meno
  • Gli sviluppatori hanno più di una opzione che hanno bisogno di ulteriori prove per decidere quale sia la più potenziale.
  • Gli sviluppatori usano gli spike per ricercare la praticabilità di una nuova tecnologia, come un nuovo approccio o dominio.

Gli sviluppatori possono sicuramente usare più spike in diversi sprint per una storia. Ci potrebbe essere uno Spike per la ricerca di potenziali soluzioni, uno Spike per prove ed errori, uno Spike per stimare la user story, ecc.

In particolare, solo dopo il perfezionamento del product backlog il team di sviluppo identifica gli spike.

Quanti tipi di spike?

Ci sono due forme primarie di spike in Agile: spike tecnici e funzionali.

  • Spike tecnici

Uno spike tecnico è usato quando gli sviluppatori devono valutare opzioni tecniche o gli impatti di una nuova tecnologia sul progresso attuale. Si aspettano di ottenere maggiori certezze sull'approccio prima di eseguire.

Per esempio, gli sviluppatori spesso usano gli spike tecnici per determinare la larghezza di banda, i requisiti di comunicazione, o se tirare o spingere i dati; o per stimare il tempo che ci vuole per aggiornare un display del cliente per presentare l'uso.

  • Functional Spike

Gli spike funzionali sono comunemente usati per essere sicuri sulle interazioni di un utente con il sistema. Sono valutati attraverso livelli di prototipazione di mockup dell'interfaccia, flussi di pagina, wireframe di qualsiasi tecnica adatta ad ottenere feedback dai clienti o dalle parti interessate.

Per esempio, il team di sviluppo prototiperà un istogramma sul portale web per ottenere feedback dagli utenti circa lo stile di presentazione, la dimensione e la rappresentazione grafica.

Quali sono i vantaggi dei picchi?

Ecco alcuni vantaggi dell'uso dei picchi in Agile:

  • I picchi aiutano il team di sviluppo a rompere l'incertezza durante il processo. Riduce le cose indefinite.
  • Con gli spike, gli sviluppatori non andranno indefiniti. Dove sono diretti è sempre chiaro.
  • Gli spikes impediscono agli sviluppatori di sovrastimare le storie. Poiché rompono il rischio di certezza, sono più vicini alle stime reali.

Al termine degli spike, il team di sviluppo può decidere quale sia la soluzione migliore da implementare per abilitare quella funzionalità.

Quali sono i criteri di accettazione degli spike?

Gli spike, una user story come tecnica Agile di raccolta dei requisiti, dovrebbero soddisfare alcuni standard richiesti per ottenere lo stato di "fatto".

Gli sviluppatori devono assicurarsi che uno spike sia:

  • Estimabile: inserito nel backlog, gli Spike sono dimensionati e stimabili per essere inseriti in uno sprint. Tipicamente la produzione di informazioni rende i risultati di Spike diversi da una storia. Si traduce in un prototipo, uno storyboard, un proof of concept, una decisione, o alcune soluzioni che portano a risultati finali.

In ogni caso, uno spike dovrebbe sviluppare abbastanza informazioni per risolvere l'incertezza. Così può identificare e dimensionare le storie sotto lo Spike.

  • Dimostrabile: I risultati di uno spike devono essere dimostrabili per i team. Rende visibili gli sforzi di ricerca. Aiuta anche a costruire la proprietà e la responsabilità condivisa per più decisioni.
  • Accettabile: Quando i picchi soddisfano quei particolari criteri, verrebbero accettati dal proprietario del prodotto.

Parole finali: Il 51% degli intervistati ha dichiarato che più della metà del loro team usa Agile per la sua alta efficienza. E i picchi in Agile sono sicuramente utili quando i team di sviluppo dedicati vogliono controllare la consegna, insieme all'esecuzione dell'obiettivo dello sprint. Danno al team stime, visibilità e alta fiducia nella roadmap di consegna del prodotto.