Spike definition
- A spike is an investment to make the story estimable or schedule-able.
- A spike is a product development method originating from Extreme Programming (XP) that uses the simplest possible program to explore potential solutions.
- A Spike is a story or task aimed at answering a question or gathering information, rather than at producing shippable product.
- A spike is an experiment which enables Developers to estimate the user story by giving them enough information about the unknown elements of the same story.
Spike purpose
- It is used to determine how much work will be required to solve or work around a software issue.
- Typically, a “spike test” involves gathering additional information or testing for easily reproduced edge cases.
- The term is used in agile software development approaches like Scrum or Extreme Programming (XP).
Spike and Risks
- The nature of Agile development is characterized with uncertainties and risks.
- The team determines the right solution through hours spent in discussion, collaboration, experimentation, and negotiation.
- So, every user story has a spike-like structure which helps in identifying the technical and functional risks.
- The ultimate goal of the Agile team is to be able to address uncertainty in each iteration.
- Spikes are good, but when there is a high uncertainty they can be critical.
Spike practice
- In practice, the spikes teams take on are often proof-of-concept types of activities.
- The definition above says that the work is not focused on the finished product.
- It may even be designed to be thrown away at the end.
- This gives your Product Owner the proper expectation that you will most likely not directly implement the spike solution.
Spike redaction
- In order to need to …
- Example: In order to split the collection curve wizard story, the tech lead needs to do some detailed design. (Just enough to split the story.)
Spike types
- There are three types of Spikes :
- architectural,
- technical,
- and functional.
Spike synonyms
- There are many synonyms for spike such as :
- Knowledge Acquisition
- Research
- Proof‐of‐Concept
Technical spikes and Functional spikes
- A distinction can be made between technical spikes and functional spikes :
- The technical spike is used more often for evaluating the impact new technology has on the current implementation.
- A functional spike is used to determine the interaction with a new feature or implementation.
Scrum and Technical Practices : Architectural Spike
Scrum and Technical Practices : Functional Spike
Scrum and Technical Practices : Spikes, estimation and time-boxing
More informations for the Scrum PSD certification here.