Spiking is about experimentation and about being prepared to throw away the code you have written while retaining the knowledge gained from it. This chapter will help you to develop this vital skill in the .NET environment.

This chapter is from the book

Experimentation is a fundamental part of research. To understand and validate how something works, we experiment with it. Spiking is the XP term given to research and experimentation. Spiking provides a way to discover more information about a specific part of the project.

This chapter guides you through carrying out some spikes (research) on technologies that you have not encountered. After you have spiked an area of technology, you have a much better understanding of what it will take to develop software using that technology. This understanding will enable you to more effectively break down stories into tasks and make more accurate time estimates for those tasks.

You Can't Know Everything

The vast amount of information available about even something as focused as just the .NET Framework means that it is nearly impossible to know everything about it. Most of us don't just concentrate on one area of work. XP development environments do much to discourage specialization.

If you specialize in a particular field, you are potentially damaging both your career and the business you are working with. The specialization takes your focus away from seeing the bigger picture, which is harmful to both you and your business. There is no point in knowing everything about how to optimize databases if the core business needs of the software are not being met. If the data is stored in a way that does not provide easy access to valuable information for people in the company, it matters not how well its storage is optimized.

What is important is knowing how to get that information when you need it. Spiking is the tool that will help you get that information when you need it.