Spike (programvareutvikling)

Innen programvareutvikling er en spike (engelsk uttrykk, uttales «spaik», i betydningen transient) en metode hvor man bruker enkleste mulige løsningsmetode for å identifisere problemer og utforske potensielle løsninger. Spike benyttes for å bestemme hvor mye arbeid som vil kreves for å løse eller komme seg rundt en programvareutfordring.

Vanligvis innebærer en "spiketest" innsamling av tilleggsinformasjon eller testing av lett reproduserbare kanttilfeller. Begrepet stammer fra ekstrem programmering, og brukes innen smidig programvareutvikling som scrum eller ekstrem programmering.

Bruk 
En spike i en sprint kan brukes på flere måter:

 For å gjøre teamet kjent med ny maskinvare eller programvare
 For å analysere et problem grundig og hjelpe med å fordele arbeidet riktig mellom teammedlemmene
 Spiketester kan også brukes til å redusere fremtidig risiko, og kan avdekke ytterligere problemer som har gått uoppdaget

Det kan skilles mellom tekniske spikes og funksjonelle spikes. Tekniske spikes brukes oftere for å evaluere innvirkningen ny teknologi har på den nåværende implementering, mens en funksjonell spike oftere brukes for å bestemme samspillet med en ny programvarefunksjon eller implementasjon.

For sporing og organisering av arbeidselementene (work items) kan man benytte et kvitteringssystem (tickets) hvor man setter opp en ny brukerhistorie for hver spike.

Etter en spike blir resultatene (for eksempel et nytt design, en raffinert arbeidsflyt, og så videre) delt og diskutert med teamet.

Referanser 

Smidig utviklingsmetodikk