Planning Spikes
'Sometimes the best way to solve a problem is to go home, have dinner, watch TV, go to bed, and then wake up the next morning and take a shower.' - Robert C. Martin
Planning spikes are part of a practice that helps the team generate the knowledge needed to estimate user stories accurately, thus reducing risk
in planning.
The goal is to increase confidence for a successful planning game. A spike is a very simple program designed to explore potential solutions.
Architectural spikes are used to discover answers to technical difficulties and design problems, or to get acquainted with new technologies
(APIs, frameworks, tools, programming languages, etc.). When a significant technical difficulty arises, it's common to let a pair of developers work on it for a few days until there is enough certainty about the solution.
As tasks to be performed, spikes can be estimated. Therefore, it is a planned activity, ensuring that it will be done during an iteration. Preferably, perform the spike in one iteration and only develop the related user story in the next. It serves to reduce the risk of the estimate that will be used in the next planning session, should not be reused, and should be discarded once completed.