What is a spike in agile software development?
A spike, a term often used in SAFe, scrum and other agile frameworks, is a task designed to answer a question or gather information, rather than produce a product. An agile team will choose to include a spike in their sprint to support or prepare for future work if that work requires more information before it can be started. In short, a spike is an opportunity to research, test or explore the unknown before work begins. Creating a spike allows your team to dedicate time in a sprint to finding out more information in a defined time-box – or a set amount of time.
Why Should I Use Spikes?
The benefit of using a spike is that it helps agile teams anticipate and prepare for the amount of work they will need to do to accomplish a task. For example, if the work turns out to be either more or less effort than you expected, it could throw off the team's ability to complete the work they committed to. In other words, a spike helps scrum and agile teams with estimation and prevents them from falling behind on sprint goals.
Who Typically Initiates a Spike?
Anyone on a scrum or agile team can and should initiate a spike if they feel they are not prepared to begin a specific task or story. Typically, if a team member takes on a task and recognizes that they need more information before they can begin, they can create a spike to help them prepare. It can be frustrating 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 in sprints and trying to manage velocity, it helps 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.
Related Article: Sprint Planning: How Long Should Sprints Be
How do I use spikes in Jira?
One of the ways to manage spikes in Jira, is to establish them as their own issue type and then, once solved, convert that issue type from a spike into a story when you are ready to begin work. You can link it back to the spike using the JIRA issue links for record keeping. To start your first spike, follow these steps:
- Determine who on your team will take on the spike
- Create a ticket to represent a spike in your backlog
- Determine the amount of time, or time-box, that you are willing to spend on your spike
- Complete the necessary exploration or design during the sprint to create an estimate for the original story
- Close out the spike and update the original story with the new estimate
- Convert your issue from a spike to a story
Using spikes in your sprints can make your teams more reliable – by giving you a better idea of what's going on, with less pressure to know everything up-front.
Looking for more guidance on your agile transformation? Contact us, one of our experts would love to talk with you and see if it's a good fit for your organization.