Technical Spike Management | Time-Boxed Research
Plan technical spikes with clear questions, time-boxes, and defined outputs. GitScrum tracks spike tasks and links findings to implementation work.
7 min read
Technical spikes are time-boxed research efforts to answer questions and reduce risk. Good spike management keeps research focused and translates findings into action. Poor spike management wastes time on unfocused exploration.
Spike Characteristics
| Aspect | Spike | Feature |
|---|---|---|
| Goal | Answer question | Deliver value |
| Output | Knowledge | Working code |
| Time-box | Fixed (1-2 days) | Estimated |
| Points | Often 0 or fixed | Variable |
When to Spike
Use Cases
WHEN TO USE SPIKES
ββββββββββββββββββ
TECHNOLOGY EVALUATION:
βββββββββββββββββββββββββββββββββββββ
Questions like:
βββ "Can library X do what we need?"
βββ "Will this scale to our load?"
βββ "What's the learning curve?"
βββ "How does it integrate?"
βββ Evaluate before committing
βββ Informed technology choices
ESTIMATION UNCERTAINTY:
βββββββββββββββββββββββββββββββββββββ
When you can't estimate:
βββ "How long will migration take?"
βββ Unknown complexity
βββ Never done before
βββ Spike to understand
βββ Then estimate accurately
βββ Reduce planning uncertainty
PROTOTYPING:
βββββββββββββββββββββββββββββββββββββ
Proof of concept:
βββ "Is this approach viable?"
βββ Quick validation
βββ Throw-away code
βββ Learn by doing
βββ Before committing
βββ Cheap learning
BUG INVESTIGATION:
βββββββββββββββββββββββββββββββββββββ
Deep investigation:
βββ "Why is this happening?"
βββ Root cause analysis
βββ Reproduce conditions
βββ Time-boxed investigation
βββ Then fix separately
βββ Understand before fix
INTEGRATION RESEARCH:
βββββββββββββββββββββββββββββββββββββ
Third-party services:
βββ "How does their API work?"
βββ "What are the limitations?"
βββ Evaluate vendors
βββ Document findings
βββ Reduce integration risk
Spike Structure
Clear Definition
SPIKE DEFINITION
ββββββββββββββββ
SPIKE TEMPLATE:
βββββββββββββββββββββββββββββββββββββ
Title: [Spike] Evaluate Auth0 for user authentication
Question:
What is the primary question this spike answers?
"Can Auth0 meet our authentication requirements
including SSO, MFA, and custom claims?"
Context:
Why do we need to answer this?
"We need to choose an auth provider. Auth0 is a
candidate but we're unsure about integration
complexity and feature coverage."
Time-box:
How long? (max 2 days typically)
"2 days (16 hours)"
Output:
What will be delivered?
βββ Written recommendation
βββ Prototype code (if applicable)
βββ Pros/cons analysis
βββ Estimated effort for full implementation
βββ Go/no-go recommendation
Acceptance Criteria:
How do we know the spike is complete?
βββ β Set up test Auth0 tenant
βββ β Implement basic login flow
βββ β Test SSO with test IdP
βββ β Test MFA configuration
βββ β Document API integration approach
βββ β Write recommendation
βββ Clear definition of done
SPIKE CARD EXAMPLE:
βββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββ
β π¬ [Spike] Evaluate Auth0 β
ββββββββββββββββββββββββββββββββββββββββ€
β Question: Can Auth0 meet our needs β
β for SSO, MFA, custom claimsβ
β β
β Time-box: 2 days β
β β
β Output: Written recommendation + β
β prototype β
β β
β Assigned: Sarah β
β Due: Thursday β
ββββββββββββββββββββββββββββββββββββββββ
Running Spikes
Execution
SPIKE EXECUTION
βββββββββββββββ
FOCUSED RESEARCH:
βββββββββββββββββββββββββββββββββββββ
During the spike:
βββ Stay focused on the question
βββ Don't expand scope
βββ Time-box strictly
βββ Document as you go
βββ Note dead ends
βββ Capture learnings
βββ Answer the question
DAILY CHECK-INS:
βββββββββββββββββββββββββββββββββββββ
For multi-day spikes:
βββ Brief update in standup
βββ "Still investigating X"
βββ "Found Y, exploring implications"
βββ "Blocked on Z, need help"
βββ Keep team informed
βββ Surface blockers early
IF TIME RUNS OUT:
βββββββββββββββββββββββββββββββββββββ
When time-box ends:
βββ Stop and document
βββ What did you learn?
βββ What's still unknown?
βββ Enough to decide?
βββ Extend only if justified
βββ Don't let spikes drag on
βββ Time-box is real
PROTOTYPE CODE:
βββββββββββββββββββββββββββββββββββββ
If coding:
βββ Write to learn, not to ship
βββ Skip tests, skip polish
βββ Focus on answer
βββ Document what you learned
βββ Code is throw-away
βββ Don't get attached
βββ Knowledge is the product
Spike Output
Documenting Findings
SPIKE OUTPUT
ββββββββββββ
RECOMMENDATION DOCUMENT:
βββββββββββββββββββββββββββββββββββββ
Structure:
1. Summary (1 paragraph)
"Auth0 is recommended for our auth needs.
It meets all requirements with reasonable
integration effort."
2. Question Recap
"Can Auth0 meet our needs for SSO, MFA,
and custom claims?"
3. Findings
- SSO: β
Works with SAML and OIDC
- MFA: β
Built-in, configurable
- Custom claims: β
Via Rules/Actions
- Pricing: ~$X/month for our volume
4. Concerns/Risks
- Vendor lock-in
- Learning curve for Actions
- Cost at scale
5. Recommendation
"Proceed with Auth0. Estimated 2 sprints
for full implementation."
6. Next Steps
- Create implementation stories
- Set up production tenant
- Define migration plan
SHARE FINDINGS:
βββββββββββββββββββββββββββββββββββββ
βββ Present to team
βββ Answer questions
βββ Document in wiki
βββ Link from original spike task
βββ Knowledge preserved
βββ Inform future work
DECISION:
βββββββββββββββββββββββββββββββββββββ
After spike:
βββ Make the decision
βββ Don't leave open
βββ Act on findings
βββ Create follow-up tasks
βββ Spike leads to action
βββ Closure
Sprint Integration
Spikes in Sprints
SPIKES IN SPRINT PLANNING
βββββββββββββββββββββββββ
PLANNING SPIKES:
βββββββββββββββββββββββββββββββββββββ
When to plan:
βββ Before estimating uncertain work
βββ When technology decision needed
βββ When design unclear
βββ Sprint before feature work
βββ Reduce uncertainty early
SPIKE SIZING:
βββββββββββββββββββββββββββββββββββββ
Approaches:
βββ No points (knowledge, not delivery)
βββ Fixed points (e.g., always 3)
βββ Time-box as estimate
βββ Team decides approach
βββ Consistent method
LIMITING SPIKES:
βββββββββββββββββββββββββββββββββββββ
Per sprint:
βββ Max 1-2 spikes
βββ Most work is delivery
βββ Spikes are investment
βββ Don't overdo research
βββ Bias toward action
βββ Spikes supplement, not replace work
GitScrum Spikes
Tracking
GITSCRUM FOR SPIKES
βββββββββββββββββββ
SPIKE TASK TYPE:
βββββββββββββββββββββββββββββββββββββ
βββ Label: spike, research
βββ Clear title: "[Spike] ..."
βββ Question in description
βββ Time-box specified
βββ Output defined
βββ Distinct from features
SPIKE WORKFLOW:
βββββββββββββββββββββββββββββββββββββ
βββ To Do β In Progress β Done
βββ Same as other work
βββ Track in sprint
βββ Visible progress
βββ Part of sprint work
DOCUMENTATION:
βββββββββββββββββββββββββββββββββββββ
βββ Link findings in NoteVault
βββ Attach to task
βββ Searchable later
βββ Knowledge preserved
βββ Institutional memory
FOLLOW-UP:
βββββββββββββββββββββββββββββββββββββ
βββ Create tasks from spike
βββ Implementation stories
βββ Link to original spike
βββ Traceability
βββ Research leads to action
Best Practices
For Technical Spikes
Anti-Patterns
SPIKE MISTAKES:
β No clear question
β Open-ended time
β No defined output
β Gold-plating prototype
β Not documenting
β Never deciding
β Too many spikes
β Spikes as excuse for unfocused work