19. sep., 2019

Y tu sabes que son los Spikes en Scrum ... ?

En la semana en curso estamos dictando un curso de Certificación para Scrum Mastér - SMC  y SFC y en una de las sesiones del curso un alumno me preguntó si conocía el término "Spike" aplicado en Scrum.

En realidad me quedé pensativo un momento, dado que esta terminología no la había escuchado en mi tiempo de experiencia en el mundo del agilismo y me dí a la tarea de investigar un poco sobre el tema para poder atender su pregunta y conocer un poco más. Resulta que a pesar de que no conocía el término como tal, porque de forma particular en mi organización lo llamabamos con otro nombre particular - "Tareas Habilitadoras" si lo he utilizado en la vida real en varios proyectos en los cuales he trabajado en los últimos 4 años.

Ahora bien, ¿ Qué es un Spike?  Un spike es un término que se utiliza en desarrollo ágil para incluir una tarea en un sprint que no pertenece necesariamente a una historia de usuario. Es una de esas prácticas ágiles poco conocidas pero muy útiles. Aunque como todo en la vida tiene detractores y tiene fans. Los spikes tienen una característica particular y es que su duración puede ser como máximo el tiempo de la longitud de la iteración o del sprint en el cual sea incluído.

Y ¿Para qué sirve un Spike? Un spike sirve para incluir en un sprint tareas que NO implican desarrollar una historia de usuario particular y por tanto NO aportan directamente al incremento del producto que se está desarrollando. Pero que son necesarias para poder estimar una historia en el próximo Sprint y para poder trabajarla en el próximo sprint.

¿Qué otros usos se le podrían dar a los spikes dentro de un sprint de Scrum?

-Documentar partes muy críticas del código o del producto: Como todos conocemos, las metodologías ágiles no son muy partidarias de la documentación exhaustiva - es más, los equipos le huyen a la misma en la vida real cuando no debería ser así. En este caso se podría incluir un spike en un sprint.

-Adquirir nuevos conocimientos: Muchas veces el ritmo de la tecnología va muy rápido y cuando ya dominas una tecnología cae la maldición china y aparece una nueva que la reemplaza. Con los desarrolladores no es la excepción ya que cuando dominas un lenguaje aparece el otro nuevo que te simplifica tareas o facilita su mantenimiento. Es por ello que adquirir conocimiento contínuamente es una necesidad. Dedicar unos días a actualizar conocimientos es algo que se puede hacer en Scrum con un spike.

-Formación interna: Parar uno o dos días, juntar al equipo de desarrollo y que se compartan conocimientos es algo muy beneficioso y es además necesario sobre todo cuando tienes módulos o necesitas integrar sistemas. Entonces, la tarea es incluir dentro de la planificación del sprint un spike para dicha acción.

En mi opinión particular, tiene como ventaja que facilita la estimación de una historia de usuario futura y en segundo lugar que hay tareas de investigación del equipo que son necesarias para aportar al a mejora continua (fin último de scrum), pero también tiene una desventaja y es la siguiente si todo el equipo scrum se volca a trabajar Spikes en un Sprint la velocidad del equipo va a bajar y la razón es porque se está trabajando en tareas que no aportan valor directamente a los entregables de ese sprint. Entonces, bajo ese orden de ideas distorsionan los indicadores del equipo y representan trabajo que no se refleja de alguna manera, pero que implica esfuerzos.

Si utilizas Spikes , permitenos conocerlo y conocer tu opinión en nuestro sitio con un comentario en la página principal. Esperamos tus aportes.

Autor : Ing.Javier León Reyes

Twitter e instagram : @PMPMedellin