A Spike, in Agile software development, is a work item to support future work by the team that can't be performed without more research, design, or prototyping. Creating a spike allows you to dedicate time in a sprint to finding out more information in a defined time-box.
The benefit of using a Spike is that if the work turns out to be either more or less effort than you expected, it won't throw off the team's ability to get all of their committed work completed. No one wants to find out mid-sprint that a story is much more work than you thought because you didn't really know what it required yet. When running Scrum and trying to manage velocity, sometimes you need to build in room for uncertainty. It may be that there's a piece of work that needs to be completed, but we're not really sure how much work that's going to take. In these cases, using Spikes can be a huge help.
How do I use Spikes?
- Create a ticket to represent a spike in your backlog
- Include the Spike in your sprint – Estimate the spike to determine how much effort should be dedicated to completing the spike
- Complete the necessary exploration or design during the Sprint to determine the estimate for the original story
- Close out the spike and update the original story with the new estimate
Using spikes in your sprints can make your teams more reliable – you've got a better idea of what's going on, with less pressure to know everything up-front.
Looking for more Agile 101? Check out Project Estimation - Story Points vs. Hours Estimation or Why Jira Won't Make You Agile.
And if you have any questions on Agile, contact us, one of our experts would love to talk with you and see if it's a good fit for your organization.