Most of us have experienced unclear instructions or guidelines when in a meeting or after any event.
What do I need to do next?
What steps to take?
How much time will this project take? These specific questions have arisen.
Can you relate?
If yes, this article is for you. Only that we’ll talk about these vague statements in the context of agile software development, so if you are a product team member ready to learn all about the agile spike and its benefits, get ready.
What Is an Agile Spike?
Agile Spike definition:
An “agile spike” is a term used in Agile software development to describe a short and focused effort to investigate a particular unclear technical or design problem. The goal is to gain more information and insights to inform the development process before committing to a full solution. It’s a quick and dirty experiment that can reduce risk and save time and resources in the long run.
Agile Spike in Detail
In this section, we will discuss everything you need to know about agile spikes wrt:
When Do I Use Spikes?
You must refine the product backlog before determining the spikes. Even after refining user stories(y), you still find uncertainty; then there are 4 cases when you need to use agile spikes:
- There are multiple options, and the development team needs to find the best solution.
- When the development team isn’t sure if the solution will give the desired results.
- The team is not quite sure of the way they need to take to solve the problem.
- When some more work needs to be put in to estimate the user story.
What Are the Types of Agile Spikes?
There are two main types of agile spikes:
Technical agile spikes: These spikes concern the investigation of teams’ technical options.
Functional agile spikes: This spikes concern evaluation the development team conducts on how new functionalities impact the solution.
Who Initiates a Spike?
Any member of an agile team, who is unsure of a particular task or a story, they must be the one to initiate a spike. It can also be in some cases where you are given a task and require more information to begin the task; you can initiate the spike.
How Long Is an Agile Spike?
There isn’t the correct time for an agile spike. It mainly depends on the project, task, or story that the team is considering.
However, that is where agile spike’s ‘time-boxed’ aspect comes in. Timeboxing the agile spike helps to stay on track and not get distracted.
Planning and Execution of Agile Spike
- Identify a specific technical or design problem that needs further investigation. This could be a problem that is not well understood, is unclear, or poses a significant risk to the development process.
- Define the scope and duration of the spike, which should be time-boxed and focused on the specific problem. Determine the resources needed, such as team members, tools, and data.
- Assign a small team of developers, designers, and other relevant team members to work on the spike.
- Conduct research and experimentation.
- Document the findings and insights gained from the spike, including any challenges or roadblocks encountered and recommendations for moving forward.
- Present the findings to the larger development team, stakeholders, and relevant parties. Use the insights gained from the spike to make informed decisions.
- Based on the findings, determine the next steps, which could involve adjusting the development plan, revising the solution, or continuing with the original plan more clearly and confidently.
Benefits of Agile Spike
- Your task or story uncertainty is somewhat reduced when you initiate a spike.
- Each task has questions that go unanswered. Agile spikes give these answers, and rushing to complete a task is left behind.
- A clear path and direction are carved when the spike is initiated
- Overestimation of a task or story is again reduced because uncertainties get cleared.
- You can have a precise estimation of task completion because certainty is mitigated.
- By conducting a focused and time-boxed investigation, the team can quickly gain insights into a particular technical or design problem, thereby reducing the risk of developing a solution that may not work.
Examples of Agile Spike
If the development team is developing a new chat feature that requires integration with a third-party messaging platform, they could conduct the following:
- An Agile spike to explore the available APIs
- Test the performance of different integration options
- Identify any potential technical challenges that could impact the feature’s development
The results of the Agile spike help the team make an informed decision about the best approach to take when integrating with the messaging platform.
Adapted from Extreme Programming (XP), Spikes are exploration, architecture, design, infrastructure, research, and prototyping activities.
The term “spike” in Agile software development comes from the sport of track and field, specifically the high jump. Here a spike refers to the metal cleat worn on the bottom of the athlete’s shoe that provides traction and stability on the track.
Similarly, spike agile is the quick, decisive action to gain traction and move forward.
Agile spike and spike story are interchangeably used terms. They both refer to a focused and time-boxed exploration of a specific technical or design issue.
However, the term “spike story” is more commonly used in the context of user stories, which are short, simple descriptions of a feature from an end-user’s perspective.
In summary, while “agile spike” and “spike story” can refer to the same thing, “spike story” is more specifically associated with user stories.