Spikes are one of the best ways to aid the design of software. In some cases spike solutions can open more questions than they solve. The use of a technique known as Best of Breed can assist when this arises.
Rather than producing a single spike, produce several. Either individually or with other developers working on a spike each. Each solution can then be compared and contrasted. The best parts of each solution can then be combined. Best of Breed is named for its likeness to genetics where the best genes win out for future generations as part of the process of evolution.
Spike solution A has an excellent way to handle future requirements due to the open and closed approach taken. Solution B solves the data access problem in an elegant manner. Both solutions have good components. Simply combine the solutions into a single approach. This results in code that contains extensibility and good data access patterns.
- Neither standalone solution would have been as good as this hybrid or best of breed.
- Multiple developers have intimate knowledge of the code thanks to collective code ownership.
- Allows experimentation - go wild with multiple solutions trying out techniques or ideas you would not normally experiment with. Safe in the knowledge there is more than one solution to any problem.
- Provides a learning platform. It's always good to see how and why others solve problems.
Best of Breed provides benefits above and beyond traditional spike solutions. With more than one developer the addition of multiple spikes can be developed in parallel. For individuals the construction of further solutions should be evaluated on a case by case basis. Single developers may prefer to evolve a single spike during various phases.
The term Best of Breed was introduced to myself by Paul Shannon.