A story or task aimed at answering a question or gathering information, rather than at producing shippable product. Sometimes a user story is generated that cannot be estimated until the development team does some actual work to resolve a technical question or a design problem. The solution is to create a “spike,” which is a story whose purpose is to provide the answer or solution. Like any other story or task, the spike is then given an estimate and included in the sprint backlog.


The term spike comes from Extreme Programming (XP), where “A spike solution is a very simple program to explore potential solutions.” XP guru Ward Cunningham describes how the term was coined on the C2.com wiki: “I would often ask Kent [Beck], ‘What is the simplest thing we can program that will convince us we are on the right track?’ Such stepping outside the difficulties at hand often led us to simpler and more compelling solutions. Kent dubbed this a Spike. I found the practice particularly useful while maintaining large frameworks.”

This entry was posted in s. Bookmark the permalink.

13 Responses to Spike

  1. Al says:

    We “point” spikes and include them in our team velocity. This helps us be realistic about iteration capacity. My concern is that the spikes that occur after the first few iterations of a release are seldom anticipated and are not included in initial release planning. This means our claimed velocity is distorted when it is applied to release planning. (Spike points seldom equate directly to initial MMFs) What is the best way to estimate and incorporate spikes? I can, of course, point spikes for iteration capacity planning but then not include them in velocity calculations, but, silly as this may sound, I think that will discourage my teams from accepting spikes. They seem to like consistent velocities. And unpointed timeboxing is likely to have the same result.

  2. Gary says:

    The “etymology” here is basically a non-etymology. It does nothing to explain the origin of the term “spike”. I understand the concept of the effort so named, but want to know where the word came from. “Kent dubbed it a ‘spike’” says nothing. *Why* did he dub it a “spike” as opposed to an “auger” or a “spear” or a “fruit salad”??? I have issue with this as many programmers I work with hear the term and chuckle (in a bad way… as do I).

  3. Paul says:

    My recollection from the early XP Universe conferences in 2001/2002, is that the term “spike” comes from an analogy to rock climbing. When climbing, we might stop to drive a spike into the rock face. Driving the spike is not actual climbing — it does not move us closer to the top — but rather it enables future climbing.

    Similarly, a spike in XP does not produce production code — it does not develop an actual story in the backlog — but rather it enables future story development. I was taught in the XP Immersion workshop (given by Robert Martin, Ron Jeffries & Kent Beck in 2000), that spikes are not given story point estimates because they do not contribute to forward velocity on completing the backlog — they are in essence, research overhead and absorbed into the team’s ongoing story velocity. XP was never as obsessed with “precision” in release planning as Scrum has become.

    It would be interesting to ask someone like Ron Jeffries, who was no doubt very close to the creation of the spike concept, where the inspiration for the term really came from.

    • Keith Patton says:

      Paul: Thanks, that sounds very plausable, considering I was thinking it alluded to an “anchor” of some sort, not in the nautical sense, but as in climbing, a jumping off point.

    • David Patrick says:

      That’s a good analogy. I was asked the same thing this morning and I likened the spike to a pin bursting open a balloon (User Story) so that it can be looked at in more detail.

  4. Pingback: Retrospiketives | Rob Aston

  5. Pingback: Retrospiketives | SoftDevine

  6. Pingback: Get started write code – Vikram Shetty

  7. Pingback: PEARL V : Scaled Agile Framework® pronounced SAFe™ | Pearls of Wisdom

  8. Pingback: ¿Qué son las historias de usuario y por qué “invertir” en ellas? - Agiland, expertos en Metodologías Ágiles

  9. Pingback: Yikes! Spikes! | My Agile journey

  10. Pingback: Spike Time « Stok Footage

  11. Bob F says:

    As I write this, I’m wondering when I turned into the old guy who says “Yeah, we did that all 20 years ago!”, but…
    The term spike predates Agile and XP. The idea, IIRC, was that rather than designing/developing top-down or bottom-up, you started with a narrow “spike” that went all the way from UI (if appropriate) to low-level, in order to mitigate risk, and act as a proof of concept. So, essentially the same purpose as used for later. I’m trying to find a reference, but of course the Google hits are now all for agile :-)

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>