The questions that turn a spike from wasted time into a real decision.
A 56-question playbook for engineers, tech leads, and product managers running research and technical spikes. Covers goal, uncertainty, outcome, scope, expertise, dependencies, and connection to the backlog. Built on XP practice, with one non-negotiable rule: the time-box is the spike.
By The Backlog.cloud team
TL;DR
No time-box, no spike.
A spike is a time-boxed investigation that trades a fixed amount of engineering time for a fixed amount of knowledge. The time-box is the defining feature. Strip it away and you do not have a spike, you have a research project with no exit. Every other question in this playbook is in service of the time-box: naming the uncertainty, picking a concrete deliverable, scoping tightly enough that the work fits in the box, and deciding in advance what happens when the clock runs out.
Ward Cunningham’s original definition of a spike centred on a simple discipline: pick a duration, do the work, stop. Everything else is technique. If the team cannot commit to a hard cap, the work is not a spike, it is a research project with a ticket number. Agree the time-box in the ticket, block it on calendars, and default to not extending it. Extensions are a decision, not a habit.
1. Pick a duration up front
Hours or days, never story points. Typical spikes run 1 to 3 days, never longer than a sprint.
2. Plan the 50% check-in
Halfway through, review what you know. If the answer is "nothing useful", cut losses and change the approach.
3. Stop at the bell
When the box expires, close the ticket with whatever answer you have. Partial is acceptable. Silent roll-over is not.
Rule of thumb: if you have extended a spike twice, it is no longer a spike. It is either a story waiting to be written or an epic waiting to be split.
Two flavours of spike
Research vs technical spikes
Mike Cohn’s classic distinction. The questions below apply to both. The deliverable changes.
Flavour 01
Research spike
Explores a problem space: users, data, vendors, markets, regulations. The deliverable is usually a short written recommendation, a comparison matrix, or an evidence pack. No code required.
Typical question: “Which of these four OCR vendors fits our compliance constraints best?”
Flavour 02
Technical spike
Tests feasibility: can we build this, how much will it cost at scale, does this library survive our constraints? The deliverable is usually a prototype (throwaway by default), a benchmark table, or an Architectural Decision Record.
Typical question: “Can we hit 200ms p95 latency with this queue pattern at 10x current load?”
The question bank
56 questions, in 10 categories.
Work top to bottom before any spike enters a sprint. Every one of these gets faster with practice, and running them is often shorter than the spike itself.
01
Primary goal
A spike is a learning investment. Name what you expect to learn before a single hour is burned, because a spike without a goal becomes a rabbit hole with a Jira ticket.
Q01What is the primary goal of the spike?
Q02What one question does this spike exist to answer?
Q03What will we be able to decide, estimate, or commit to afterwards that we cannot now?
Q04Is the goal to learn something (research spike) or to prove feasibility (technical spike)?
Q05How would we know, in one sentence, that the spike succeeded?
Question B from your intake sheet lives here.
02
The problem or uncertainty being addressed
Spikes exist to kill uncertainty, not to feel busy. Pin down the exact ambiguity. If the question is "how hard would this be?", push harder until you have a sharper claim to test.
Q01What specific problem or uncertainty is the spike addressing?
Q02What assumption are we stress-testing? Write it as a leap-of-faith statement.
Q03Is the uncertainty technical (feasibility), behavioural (user response), or commercial (cost, vendor terms)?
Q04Run the 5 Whys on the uncertainty. Is there a sharper question underneath?
Q05What would we do differently if the answer turns out yes versus no?
Q06Has this been investigated before? Which tickets, ADRs, or docs should we read first?
Question C from your intake sheet lives here.
03
The time-box
The core rule
This is the defining feature of a spike, the reason the word exists. A spike without a time-box is a research project pretending to be agile. Pick a hard cap before you start, and honour it. The time-box is not a guess at effort, it is a commitment to stop learning and start deciding.
Q01What is the time-box for the spike? Expressed in hours or days, not story points.
Q02Is the time-box short enough to fit inside the sprint with slack left over?
Q03What happens when the time-box expires? We do NOT extend by default. Write the default outcome down.
Q04Who holds the timer? Usually the owner or the tech lead.
Q05Is there a mid-point check-in, at 50 percent of the box, to cut losses early?
Q06What single partial answer would be worth capturing even if we run out of time?
Question D from your intake sheet lives here. This is the most important category in the playbook.
04
The outcome and deliverable
The output of a spike is knowledge, not code. Decide on the artefact in advance so the team has something concrete to point at when the box closes.
Q01What is the outcome of the spike? A recommendation, a benchmark, an estimate, a prototype?
Q02Which concrete artefact is attached to the ticket on close: an ADR, a doc, a recording, a screenshot, a decision log entry?
Q03What decision does this spike enable? State it as a sentence starting with "We will" or "We will not".
Q04If we produce code during the spike, is it explicitly throwaway? Or are we deliberately laying down a production path?
Q05Who consumes the outcome, and how do they want it formatted?
Q06What is the next ticket the spike unblocks?
Question E from your intake sheet lives here.
05
What is in scope
Scope is how you keep a spike from morphing into a delivery task. Say what the spike is actually investigating, and no more.
Q01What is in scope for the spike?
Q02Which systems, paths, or components will we poke at?
Q03Which data sets, sandboxes, or staging accounts will we use?
Q04Which specific questions from the uncertainty list are we answering in this time-box?
Q05What is the narrowest possible prototype that would settle the question?
Question F from your intake sheet lives here.
06
What is out of scope
The out-of-scope list is doubly important on a spike, because the temptation to start building is constant. Make the no-go list bigger than you think it needs to be.
Q01What is out of scope for the spike?
Q02Which production code or surfaces are off-limits, even if they look easy?
Q03Which adjacent questions are tempting but deferred to later spikes?
Q04Are we explicitly not making a decision on tooling, vendor, or architecture in this spike?
Q05If someone wants to expand scope, who approves it, and where is that conversation recorded?
Question G from your intake sheet lives here.
07
Expertise and resources
Spikes die when the wrong person picks them up. Match the uncertainty to the people who can actually resolve it inside the time-box.
Q01What specific expertise or resources are required for the spike?
Q02Who on the team has the closest prior experience? Are they available?
Q03Does this need a pair, or will one person move faster?
Q04Do we need external input from another team, a vendor, or a research source?
Q05What tools, licences, or sandbox credentials are required?
Q06Is there a community, conference talk, paper, or vendor doc we should read before we start?
Question H from your intake sheet lives here.
08
Dependencies and external inputs
A spike that waits on an external input is a spike that quietly burns its time-box in a queue. Surface the dependencies before the clock starts.
Q01What dependencies or required external inputs have been identified for the spike?
Q02Is there test data, production-shaped data, or a specific dataset we need access to?
Q03Does a vendor, partner, or internal team owe us a document, credential, or answer?
Q04Are there legal, privacy, or security gates to clear before investigation can start?
Q05Who owns each dependency, and by when?
Q06If a dependency slips, do we adapt the spike or postpone it? State the default.
Question I from your intake sheet lives here.
09
Connection to the backlog and goals
An orphan spike is a spike no one funds the follow-up for. Always tie it to a parent story, epic, OKR, or commitment that depends on the answer.
Q01How does the spike relate to the broader backlog or goals?
Q02Which story, epic, or OKR is blocked, de-risked, or informed by this spike?
Q03Which downstream tickets will get written (or deleted) depending on the outcome?
Q04Is the spike a prerequisite for a commitment we have already made? Identify the commitment.
Q05If the spike is deleted tomorrow, which piece of work stalls?
Question J from your intake sheet lives here.
10
Stop conditions and next actions
The spike closes whether or not the question is fully answered. Write down, in advance, the three possible endings so nobody argues about what "done" means when the time-box expires.
Q01What is the stop condition at the time-box? Full answer, partial answer, or explicit unknown?
Q02What is the closing ritual: a team review, a decision log entry, a Loom walkthrough?
Q03What next ticket or follow-up spike is created on close, regardless of outcome?
Q04What is the kill signal we agree up front? "If X proves impossible, we stop and choose Y."
Q05Who decides whether to extend, and what is the default if they cannot decide today? (Hint: do not extend.)
Q06Where does the knowledge live once the ticket is closed, so next year's engineer can find it?
Copy and paste
A clean spike template
Drop this into your Jira ticket, Linear issue, or ADR. Columns A through J mirror the intake sheet most teams already run. Columns K through M add the closing discipline that keeps spikes from becoming folklore.
Field
What to capture
A. Spike title and owner
Short, searchable title and a single owner.
B. Primary goal
One sentence: what we expect to learn or decide.
C. Problem / uncertainty
The exact ambiguity, written as a testable assumption.
D. Time-box
Hours or days. No story points. Plus a 50 percent check-in time.
What we will actually look at inside the time-box.
G. Out of scope
What we will deliberately not touch, especially in production.
H. Expertise / resources
Who runs it, who pairs, what tools or credentials.
I. Dependencies / inputs
Data, vendor info, approvals, with owners and ETAs.
J. Connection to backlog
Parent story, epic, or OKR this unblocks.
K. Stop conditions
What counts as done at the bell. Partial is acceptable.
L. Kill signal
The observation that makes us abandon the approach.
M. Closing ritual
Team review, ADR commit, follow-up ticket created.
When you have 10 minutes
The 10-question minimum set
If you have five minutes in refinement and the team needs a spike next sprint, ask these ten. Any blank answer is a reason to send the spike back, not pull it in.
01What is the primary goal of the spike, in one sentence?
02What specific problem or uncertainty does it address?
03What is the hard time-box, in hours or days?
04What does the deliverable look like on close: ADR, doc, prototype, benchmark?
05What is in scope, and what is explicitly out of scope?
06Who runs it, and do they have the expertise and tools?
07Which dependencies or external inputs must be in place first?
08Which parent story, epic, or OKR does this unblock?
09What is the kill signal that would cause us to abandon the approach early?
10What is the closing ritual when the time-box expires?
FAQ
Frequently asked questions
What is a spike in agile?+
A spike is a time-boxed investigation used to reduce uncertainty. The term was coined by Ward Cunningham during the early Extreme Programming years and popularised by Kent Beck. The output is usually a decision, a recommendation, an estimate, or a throwaway prototype, not production code. If a team is stuck on "how hard would this be?" or "which option should we pick?", the answer is often a spike with a hard time-box.
What is the difference between a research spike and a technical spike?+
A research spike investigates a problem space: users, data, vendors, markets. The output is usually a written recommendation. A technical or architectural spike investigates feasibility: can we actually build this, how much will it cost to run, which library or pattern survives contact with production constraints? The output is usually a prototype, a benchmark, or an Architectural Decision Record (ADR). Both are time-boxed. Both end with a decision.
Why is time-boxing a spike so important?+
Because uncertainty is infinite and sprints are not. The time-box is the mechanism that prevents a spike from becoming a research project with no end date. It also forces the team to state the minimum useful outcome, rather than chasing a perfect answer. When the box expires, you stop and decide, even if the answer is "we do not know, and the next step is another time-boxed spike." Without the box, spikes silently consume capacity and never close.
How long should a spike be?+
Short. Most spikes are a day or two. Beyond three or four days, you are usually doing delivery work with a spike label, or the question is too big and needs splitting. A common rule: if the spike cannot fit comfortably inside a single sprint with at least 50 percent slack, split it into two spikes or promote it to an epic of investigation.
Can the code from a spike be kept?+
The safer default is no. Spike code optimises for speed of learning, not for maintainability, tests, or security. Merging it typically imports unaudited assumptions into production. If the spike produces code worth keeping, treat that as a separate follow-up story with its own Definition of Done, and redo the work with production standards.
What is the output of a spike?+
A decision, an artefact, or both. Typical outputs: a one-page recommendation, an ADR, a benchmark table, a revised estimate, a decision log entry, a Loom walkthrough, a screenshot of a prototype. The output is whatever lets the next planning conversation happen without re-running the spike.
When should you use a spike instead of a story?+
When you cannot commit to a story because you do not yet know enough to estimate it, pick an approach, or decide if it is worth doing at all. Spikes buy information. Stories buy delivery. If refinement stalls on "we need to investigate first," that is a spike waiting to be written.
What are common spike anti-patterns?+
No time-box (the spike never ends), no stated decision (the team finishes and still cannot agree on the next step), scope creep into delivery (quietly shipping spike code to production), and orphan spikes (no parent story, so the follow-up never gets funded). The question bank in this post is designed to catch all four before the spike starts.
Backlog.cloud joins your refinement or discovery call, listens to the conversation, and pushes a Jira-ready spike with goal, uncertainty, time-box, deliverable, scope, and dependencies captured. Every question in this playbook, every time.