contributing icon indicating copy to clipboard operation
contributing copied to clipboard

Working on a "Spike"

Open iteles opened this issue 9 years ago • 2 comments

I think this deserves a separate section as: a) Less experienced developers don't tend to know what a spike is b) It is, in my experience, something which has been treated with very little process and as a result, the information resulting from it is often not useable.

What?

A spike is a limited period of time (often between half a day and two days) during which you try a number of different methods to solve a problem, in order to determine what the best solution is. The code that you write during this time is not used directly in the project, but the lessons you learn are.

How to perform one?

  • Timebox your spike
  • Determine what the different methods you will try are
  • Start researching and trying these approaches outside of the main body of code
  • Document all of your steps as you go along - this is crucial, not only are you more likely to actually keep track of your findings this way, but you are also providing a very valuable resource of the journey you've taken for future developers who encounter the same issues
    • A good example of doing this is https://github.com/dwyl/learn-nightwatch/issues/8
  • Determine which approach you will follow, throw the code away and open an issue in your project's repo so that you can begin the implementation.

iteles avatar Nov 03 '16 22:11 iteles

@iteles an older example of a "Spike" we did is: https://github.com/dwyl/meteor-search

nelsonic avatar Nov 05 '16 09:11 nelsonic

Basic definition added to: https://github.com/dwyl/technical-glossary#spike via https://github.com/dwyl/technical-glossary/pull/41

nelsonic avatar Jun 17 '22 08:06 nelsonic