In software development, sometimes we aren’t sure how to solve a problem. It may happen when you are using a new API, framework, or just because you never had a similar problem before.
Using TDD in this scenario is hard. In order to write the test first, you need to be able to define the expectations, if you don’t know that, TDD is gonna be really challenging.
In Agile Development there’s a technique for this situation called Spike. This term comes from Extreme Programming, where “A spike solution is a very simple program to explore potential solutions”.
To implement a spike solution, you normally create a small program very quickly testing the problem in question. When you have the answers that you need, you go back and build it again, but this time using TDD.
I got very excited when I discover Spikes, because I have been doing it for a while, and I really didn’t know that it had a name.
What about you, have you been writing spike solutions?
You can get more information about it here:
http://www.jamesshore.com/Agile-Book/spike_solutions.html
That’s it for today! See you soon