One of my clients was having trouble with estimating work they had never done before, so I wrote an article explaining spikes. That article is up on agileconnection: Need to Learn More about the Work You’re Doing? Spike It!
It was a little serendipity; I taught an estimation workshop right after I explained how to spike in email. That article almost wrote itself.
You can use a spike in any project, agile or not. Spikes are for learning.
I also explain what to do when managers say, “Use the code in the spike” and you think, “Oh no!” See for yourself.
Would-be authors: want to write an article for agileconnection.com? I'm interested.