Working on a "Spike"
- Dominant language
- No language data
- Stars
- 91
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
Assessment
This issue has not been assessed yet.