¿Cuál es el origen del término ‘spike’ en la práctica del desarrollo de software ágil?

Un pico es una historia de usuario especial con el programa más puro posible, que se utiliza como método de prueba del producto. El equipo de desarrollo utiliza los picos para recopilar información adicional que les ayude a disminuir el riesgo técnico, entender más un requisito o aumentar la precisión de la estimación de una historia. Como resultado, el equipo puede explorar el problema y las posibles soluciones.

El tamaño máximo de la caja de tiempo de un pico es el mismo que el sprint que lo contiene. Al igual que otras historias de usuario, se demostrará que los picos están hechos o no al final de un sprint. Es por eso que un pico es una gran manera de estimar el esfuerzo requerido para resolver un problema de desarrollo de software.

¿Por qué los picos en la necesidad?

A veces el equipo no puede estimar una historia debido a algunos bloqueadores. Si el equipo no está seguro de completar la historia, es el momento de pensar en usar picos.

Aquí hay algunas situaciones en las que se recomienda usar picos:

  • Los desarrolladores necesitan hacer algunas actividades tempranas para poder estimar las historias de usuario
  • Los desarrolladores no tienen ninguna idea de cómo abordar el problema
  • Los desarrolladores no están seguros de si la solución que esperaban funciona o no
  • Los desarrolladores tienen más de una opción que necesitan más pruebas para decidir cuál es la más potencial.
  • Los desarrolladores utilizan picos para investigar la viabilidad de una nueva tecnología, como un nuevo enfoque o dominio.

Los desarrolladores pueden utilizar definitivamente varios picos en diferentes sprints para una historia. Podría haber un Spike para investigar soluciones potenciales, un Spike para pruebas y errores, un Spike para estimar la historia de usuario, etc.

En particular, sólo después del refinamiento del backlog del producto el equipo de desarrollo identifica los spikes.

¿Cuántos tipos de spikes?

Hay dos formas principales de Spike en Agile: spikes técnicos y funcionales.

  • Spike técnico

Un spike técnico se utiliza cuando los desarrolladores necesitan evaluar opciones técnicas o los impactos de la nueva tecnología en el progreso actual. Esperan obtener más certeza sobre el enfoque antes de realizarlo.

Por ejemplo, los desarrolladores suelen utilizar los picos técnicos para determinar el ancho de banda, los requisitos de comunicación, o si se debe tirar o empujar los datos; o para estimar el tiempo que se tarda en actualizar una pantalla de cliente para presentar el uso.

  • Pico funcional

Los picos funcionales se utilizan comúnmente para asegurarse de las interacciones de un usuario con el sistema. Se evalúan a través de niveles de prototipado de maquetas de interfaz, flujos de páginas, wireframes de cualquier técnica que sea adecuada para obtener retroalimentación de los clientes o partes interesadas.

Por ejemplo, el equipo de desarrollo hará un prototipo de un histograma en el portal web para obtener retroalimentación de los usuarios sobre el estilo de presentación, el tamaño y el gráfico.

¿Cuáles son las ventajas de los picos?

Aquí enumeramos algunos beneficios del uso de picos en Agile:

  • Los picos ayudan al equipo de desarrollo a romper la incertidumbre durante el proceso. Reduce las indefiniciones.
  • Con los picos, los desarrolladores no irán indefinidos. Hacia dónde se dirigen está siempre muy claro.
  • Los picos evitan que los desarrolladores sobreestimen las historias. Como rompen el riesgo de certeza, se acercan más a las estimaciones reales.

Al final de los picos, el equipo de desarrollo puede decidir cuál es la mejor solución a implementar para habilitar esa funcionalidad.

¿Cuáles son los criterios de aceptación de los picos?

Los Spikes, una historia de usuario como técnica ágil de recopilación de requisitos, deben cumplir con algunos estándares requeridos para obtener el estado de «hecho».

Los desarrolladores deben asegurarse de que un Spike para ser:

  • Estimable: puesto en el backlog, los Spikes tienen un tamaño y son estimables para encajar en un sprint. Típicamente la producción de información hace que los resultados de Spike sean diferentes a los de una historia. El resultado es un prototipo, un storyboard, una prueba de concepto, una decisión o algunas soluciones que conducen a resultados finales.

En cualquier caso, un Spike debe desarrollar suficiente información para resolver la incertidumbre. Así, puede identificar y dimensionar las historias que hay debajo de Spike.

  • Demostrable: Los resultados de un pico deben ser demostrables para los equipos. Hace visibles los esfuerzos de investigación. También ayuda a construir la propiedad, así como la responsabilidad compartida para más decisiones.
  • Aceptable: Cuando los picos cumplen esos criterios particulares, serían aceptados por el propietario del producto.

Palabras finales: El 51% de los encuestados afirmó que más de la mitad de su equipo utiliza Agile debido a su alta eficiencia. Y los picos en Agile son definitivamente útiles cuando los equipos de desarrollo dedicados quieren controlar la entrega, junto con la realización del objetivo del sprint. Dan al equipo estimaciones, visibilidad y alta confianza en la hoja de ruta de entrega del producto.