If you google “What is a Spike”, you will find the following definitions:

“A thin, pointed piece of metal, wood, or another rigid material.”

“A sharp increase in the magnitude or concentration of something.”

But in Agile context, it means:

“A spike is a user story for which the team cannot estimate the effort needed. In such a case, it is better to run time-boxed research, exploration to learn about the issue or the possible solutions. As a result of the spike, the team can break down the features into stories and estimate them.”

Source: https://medium.com/@anca_51481/how-spikes-help-to-improve-your-agile-product-delivery-a0f104305911)

Both definitions refer to the beginning of something and that will expand its magnitude.

It often happens that you need or want to change a data structure, implement a huge update or a new feature, so you have to analyze how much time it will take to be done, and if it will have blockers or doubts.

SPIKE for what?

Many people think that it’s better to solve stories and tasks directly, they don’t see the value of writing a spike. First of all, it gives you a broad analysis of what you want to do and helps to estimate. Second, the team can carry out the different tasks (which are created or that arise from the analysis) in parallel to achieve the complete objective, therefore it helps to plan. Let’s see how you can start writing one.

Writing a SPIKE…

It’s very important to define which things are the key to this analysis. Structural analysis:

High level estimation

Depending which is the topic of the spike, here could go a table, bullets or only text. Remember this isn’t strict, you can coordinate what is best for the team. For example, this could be a model of a table:

Estimation table example

If the project is just one, you can remove the ‘Name of project’ and simply describe stories. This allows to split the goal on different stories, on JIRA description you can explain or describe steps, attach images, or write the URL of files that you have to work on. Estimation, fibonacci sequence is commonly used to estimate the complexity and effort that a story will take. Under remarks, you can add any dependencies with others stories or projects, things to keep in mind. And finally, the information under sprint indicates which story will be worked on, will be updated once the analysis is complete and planning begins.

Sometimes, it’s also important that the person who is going to be doing the analysis and investigating, is the same person who is going to carry out some or all the tasks, because they will have the clearest understanding of the issue/task. If you need to add more things to the analysis, you can do it. Maybe you need to add questions or doubts that need to be answered, or images related to the spike.

How to deal with a spike?

It clearly depends a lot on the topic that the spike requests to analyze. Sometimes a Proof of Concept (POC) can be done, other times it just requires research to see how feasible it is to do something. It’s important to highlight: