Spikes are a type of exploration Enabler Story in Scaled Agile Framework (SAFe).
Defined initially in Extreme Programming (XP), they are used to gain the knowledge necessary to reduce the risk of a technical approach, better understand a requirement, or increase the reliability of a story estimate.
A spike has a maximum time-box size as the sprint it is contained in it. Spikes are investigation activity (such as research, design, investigation, exploration, prototyping) to gain the knowledge to solve a problem.
They produce information, rather than working code.
Agile and Lean value facts over speculation. When faced with a question, risk, or uncertainty, Agile Teams conduct small experiments before moving to implementation, rather than speculate about the outcome or jump to a Solution. It is also important that teams plan for and allocate time for getting smarter. Agile teams use the term spike to refer to a time-boxed research activity.
When to use a Spike?
Sometime the team unsure if they can complete the story due to some potential blockers and probably can’t even estimate the story. The Product Owner allocates a little bit of the team’s capacity now, ahead of when the story needs to be delivered, so that when the story comes into the sprint, the team knows what to do.
Examples of when Spikes may be used:
-The team may not have knowledge of a new technology, and spikes may be used for basic research to ensure the feasibility of the new technology (domain or new approach).
- Conduct basic research to familiarize them with a new technology or domain
- Gain confidence in a technical or functional approach, reducing risk and uncertainty.
- Some knowledge is needed to decide between different architectures.
- Perform feasibility analysis and other activities that help determine the viability of epics.
- A story requires to be implemented using a 3rd party library with API that is poorly written and documented.
- The story may contain significant technical risk, and the team may have to do some experiments or prototypes to gain confidence in a technological approach that may allow them to commit the user story to some future time-box.
- Estimate new Features and Capabilities to analyze the implied behavior, providing insight about the approach for splitting them into smaller, quantifiable pieces.
- A decision needs to be done and…