62 ms·
What is a "spike?"
by ydlr 4y ago
What is a "spike?"
- sodapopcan 4y agoA spike is when you do exploratory work on a concept/ticket/whatever to get a sense for its feasibility, utility, and how long it will take. It often goes hand-in-hand with TDD but it doesn't have to. Basically you try and get as much of the feature implemented as quickly as possible. Forget tests, forget well-named identifiers (just call 'em foo1, foo2, foo3 if you're stuck), forget breaking other part of the app, just get enough of the feature working as quickly as possible that you can identify pain points. If you get enough of it working it can even be used as a prototype for the customer to play with to see if they actually want it. Of course, when _and if_ you decide to actually implement the feature, you gotta throw away all your spike work or you're going to have a bad time. It is of course perfectly acceptable to keep it around on another branch for reference.
- DubiousPusher 4y agoI see spikes as user stories that instead of a deliverable as their output, their output is the answer to a question.
- sodapopcan 4y agoAbsolutely, that's a good way to put it. All feature spikes should have tickets defining what it's trying to validate. From a TDD standpoint, I also use the word "spike" to describe any quick experimental throw-away work done on a small slice of functionality before writing the first test. These should not have tickets as that would be a bit over-the-top (and you don't always know if you're going to do them).