Una introducción básica a la teoría y práctica de Scrum


Más allá del desarrollo tradicional

Scrum premier

El desarrollo tradicional basado en grupos especializados, ciclos de feedback débiles o tardíos, planificación  predictiva  “a  priori”  y  flujo  secuencial  desde  el  análisis  hasta  las  pruebas  no  está teniendo mucho éxito en el cambiante mundo de hoy en día. Esta estrategia de desarrollo retarda el feedback,  el  aprendizaje  y  el  potencial  retorno de  inversión  debido  a  una  ausencia  de software funcionando hasta las fases finales del proyecto, lo que provoca falta de transparencia, escasez de posibilidades para mejorar, reducción de la flexibilidad y un incremento de los riesgos técnicos y de negocio.

 

Durante décadas ha existido una alternativa –equipos cross-funcionales realizando un desarrollo iterativo –pero no ha sido tan empleada como el modelo tradicional. Scrum engloba conceptos simples y comprobados para el desarrollo de productos, en un Framework(marco de trabajo) simple que  incluye  auténticos  equipos,  equipos  cross-funcionales,  equipos auto-gestionados,  ciclos completos de feedback cortos e iterativos yreducción del coste de los cambios. Estos conceptos incrementan la agilidad y el feedback, permiten un ROI más temprano y reducen el riesgo.


Visión general

Scrum es  un  marco  de  trabajo  en  el  que  equipos  cross-funcionales  pueden  crear  productos  o desarrollar proyectos de una forma iterativa e incremental. El desarrollo se estructura en ciclos de trabajo llamados Sprints (también conocidoscomo iteraciones). Estas iteraciones no deben durar más de cuatro semanas cada una (siendo dos semanas la duración más habitual) y tienen lugar una tras  otra  sin  pausaentre ellas. Los Sprints están acotados  en  el  tiempo –finalizan en una fecha determinada  independientemente  de  si el  trabajo  ha  finalizado  por  completo  o  no,  y jamás  se prorrogan.  Normalmente  los  equipos  Scrum  escogen  una  duración  de  Sprint  y  la  mantienen  para todos  sus  Sprints  hasta  que  mejoran  y  pueden  emplear  ciclos  más  cortos.  Al  principio  de  cada Sprint, un Equipo cross-funcional(de en torno a siete personas) selecciona elementos(peticiones del cliente) de una lista priorizada. El equipo acuerda un objetivo colectivo respecto a lo que creen que podrán entregar al final del Sprint, algo que sea tangible y que estará “terminado” por completo.
Durante  el  Sprint  no  se  podrán  añadir  nuevos  elementos;  Scrum  se  adapta  a  los  cambios  en  el siguienteSprint, pero el pequeño Sprint actual está pensado para concentrarnos en un objetivo pequeño,  claro  y  relativamente  estable.Todos los días el Equipo se reúnebrevemente para inspeccionar  su  progreso  y  ajustar  los  siguientes  pasos  necesarios  para  completar  el  trabajo pendiente. Al final del Sprint, el Equipo revisa el Sprint con los diferentes Stakeholders(interesados e involucrados en el producto) y realiza una demostración de lo que han desarrollado. Se obtiene feedback  que  podrá  ser  incorporado  en  el  siguiente  Sprint.  Scrum  enfatiza  un  producto “funcionando”  al  final  del  Sprint  que  estérealmente “terminado”.  En  el  caso  del  software,  esto significa  un  sistema  que  está  integrado,  testado,  con  la  documentación  de  usuario  generada y potencialmente entregable. Los principales roles, artefactos y eventos están resumidos en Figura 1.

ScrumFigura1

Un lema recurrente en Scrum  es  “inspección  y  adaptación”.  Dado  que  el  desarrollo  conlleva  de forma  inevitable  aprendizaje,  innovación  y  sorpresas,  Scrumenfatiza dar pequeños pasos en el desarrollo, inspeccionando tanto el producto resultante como la eficacia de las prácticas actuales, y a continuación  adaptar  los  objetivos  respecto  al  producto  y  las  prácticas  de  los  procesos. Repetir indefinidamente.