Un Spike en Scrum es una tarea de investigación que se compromete en un Sprint. Es una manera excepcional de trabajar cuando sentimos que no tenemos suficiente información para darle al cliente una expectativa realista de lo que hay que hacer. El objetivo del Spike es averiguar esa información para poder bajar a tierra esas expectativas y poder realizar una estimación adecuada a la cual el equipo se pueda comprometer en la siguiente reunión de planeamiento del próximo Sprint. El resultado de la tarea es un documento con la información obtenida en la investigación.
Los Spikes son una muy buena opción para que los equipos verifiquen cosas que no conocen y necesitan conocer para entender la complejidad de cierta funcionalidad para que pueda ser estimada apropiadamente o para simplemente averiguar si algo es técnicamente posible o no.
Los Spikes también son llamados Tracer Bullets (balas trazadoras), ya que te indican una dirección a donde apuntar o a donde ir. La única diferencia entre estos conceptos es que los Spikes tienen una duración preestablecida (time-boxed) y no se trabaja teniendo en cuenta que el resultado va a ser utilizado en el proyecto directamente, mientras que los Tracer Bullets no tienen límite de tiempo y su resultado va a ser utilizado.
Una utilización de los Spikes que apliqué hace poco, es en una relación de dependencia técnica con el cliente. Nosotros teníamos que desarrollar cierta funcionalidad, el front-end de una página web, teniendo en cuenta APIs del cliente. La experiencia siempre nos indicó que esas APIs estaban incompletas, su documentación no era suficiente o que no cumplían el propósito para lo que se las iba a utilizar. Para dejar de errar en las estimaciones de estas funcionalidades dependientes, utilizábamos Spikes para explorar a fondo estas APIs, mejorar su documentación, pedir que las modifiquen para adaptarse a lo que íbamos a construir, y dejar un documento completo para que en el siguiente Sprint puedan ser estimadas y posteriormente desarrolladas correctamente.