A spike is a product development method originating from
extreme programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, P ...
that uses the simplest possible program to explore potential solutions. 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 case
An edge case is a problem or situation that occurs only at an extreme (maximum or minimum) operating parameter. For example, a stereo speaker might noticeably distort audio when played at maximum volume, even in the absence of any other extreme ...
s. The term is used in
agile software development
In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ...
approaches like
Scrum
Scrum may refer to:
Sport
* Scrum (rugby), a method of restarting play in rugby union and rugby league
** Scrum (rugby union), scrum in rugby union
* Scrum, an offensive melee formation in Japanese game Bo-taoshi
Media and popular culture
* ...
or
Extreme Programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, P ...
.
Uses
A spike in a
sprint
Sprint may refer to:
Aerospace
*Spring WS202 Sprint, a Canadian aircraft design
*Sprint (missile), an anti-ballistic missile
Automotive and motorcycle
* Alfa Romeo Sprint, automobile produced by Alfa Romeo between 1976 and 1989
* Chevrolet Sprin ...
can be used in a number of ways:
* As a way to familiarize the team with new hardware or software
* To analyze a problem thoroughly and assist in properly dividing work among separate team members.
* Spike tests can also be used to mitigate future risk, and may uncover additional issues that have escaped notice.
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.
To track such work items, in a ticketing system, a new
user story
In software development and product management, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an end user or user of a system, and may be recorded on index ...
can be set up for each spike, for organization purposes.
Following a spike, the results (a new design, a refined workflow, etc.) are shared and discussed with the team.
References
Agile software development
Software development process
{{software-eng-stub