Spike (software development)
A spike is a user story that is used to determine the estimated workload for the team on a certain issue. This means gathering additional information or surmising extra questions to be answered before the story can be picked up. A small experiment can also be used in a spike to gain more knowledge about a certain problem that arises. The term is used in agile software development methodologies like Scrum or Extreme Programming.
Uses
A spike in a sprint can be used in a number of ways:[1]
- A way to familiarize with a certain domain or technology the team has little knowledge about.
- A story might be to big to estimate properly, more analyzing might be helpful to be able to properly split the story in more pieces.
- Risk is involved in a certain story and doing research or making a prototype can help mitigate this risk in the future.
A distinction can be made between technical spikes and functional spikes. The technical spike is used more often for evaluating the impact new technology has on the current implementation. A functional spike is used to determine the interaction with a new feature or implementation.
After a spike there should be some result to show the rest of the team. This can be a decision, prototype, storyboard, proof of concept or something else that helps determining the workload of the problem.
Definition
The term Spike[2] can be interpreted in multiple ways. It can be meant as a Spike used in rock-climbing, before you can climb higher first you drive a spike into the rock wall. Another way to see it is as a small path from top to bottom in the development process as to test a certain concept.
References
- ^ "Spikes in Scrum". Agile Atlas. Retrieved 9 October 2015.
- ^ "Definition of Spike". Agile Dictionary. Retrieved 9 October 2015.