Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are TDD 'Spikes' called 'Spikes?

The test driven development guys refer to a quick, exploratory, investigation that involves coding something up to see if it works, a spike.

Any ideas why they came up with that word?

Update: The coinage by Kent Beck looks like the 'original' one to me, although his usage of the word doesn't make much sense in my opinion. Coding up a quick test is 'putting a spike through the project'?

Interestingly, it seems he stopped using the term because it conjured up various meanings to different people - see below for evidence!

like image 957
mackenir Avatar asked Oct 30 '08 12:10

mackenir


People also ask

What does spike stand for?

S stands for setting, P for perception, I for invitation or information, K for knowledge, E for empathy, and S for summarize or strategize.

What is spike in extreme programming?

A spike is a product development method originating from extreme programming 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.


1 Answers

Ward Cunningham writes on WardsWiki (referring to Kent Beck):

I would often ask Kent, "What is the simplest thing we can program that will convince us we are on the right track?" Such stepping outside the difficulties at hand often led us to simpler and more compelling solutions. Kent dubbed this a Spike. I found the practice particularly useful while maintaining large frameworks.

Kent Beck writes in Guide to Better Smalltalk:

Sometimes I call this a "spike," because we are driving a spike through the entire design. [...] Because people variously associate "spike" with volleyball, railroads, or dogs, I have begun using "architectural prototype" to describe this implementation.

like image 167
Rasmus Faber Avatar answered Sep 25 '22 00:09

Rasmus Faber