The term "spike" has different meanings depending on the context. Here are some of the most common definitions:
-
Spike in software development: A spike is a product development method originating from extreme programming that uses the simplest possible program to explore potential solutions. It is used to determine how much work will be required to solve or work around a software issue. Typically, a "spike test" involves gathering additional information or testing for easily reproduced edge cases. The term is used in agile software development approaches like Scrum or Extreme Programming).
-
Spike in Scrum: In Scrum, a spike is a timeboxed user story or task that is created in order to research a question or resolve a problem. Spikes focus on gathering information and finding answers to a question, rather than producing a shippable product. A spike is created when a user story or task cannot be estimated well enough until the team has done further research or investigation. The result of a spike is an estimate for the original user story so that the sprint can move forward. Spikes can be used to mitigate risks early and allow the team to ascertain feedback and develop an understanding of an upcoming PBIs complexity. There are two types of spikes: technical and functional. Technical spikes are used to evaluate the impact new technology has on the current implementation, while functional spikes are used to determine how a user might interact with the system.
-
Spike as a noun: A spike can also refer to a long piece of metal with a sharp point, such as a large nail or one of several metal projections set in the sole and heel of a shoe to improve traction. It can also refer to a pointed element in a graph or tracing, an abrupt sharp increase in prices or rates, or a sudden sharp increase in temperature or fever.
In summary, the term "spike" can refer to a product development method in software development, a timeboxed user story or task in Scrum, or a long piece of metal with a sharp point.