Métodos Ágiles Scrum, Kanban, Lean PDF
Métodos Ágiles Scrum, Kanban, Lean PDF
Métodos Ágiles Scrum, Kanban, Lean PDF
Imprescindible
Métodos Ágiles
Scrum, Kanban, Lean
Introducción
Cómo usar este libro
Referentes
Más allá de este libro
1. Métodos ágiles
Agile en la práctica
El manifiesto Ágil
Breve introducción a algunos de los métodos ágiles
Lean Software Development
Scrum
Kanban
Pragmatic Programming
Feature Driven Development (FDD)
Dynamic Systems Development Method (DSDM)
Programación eXtrema o eXtreme Programming
Lean Startup
Visiones alternativas a los métodos ágiles
2. Scrum de un vistazo
Introducción
Visión esquemática del ciclo Scrum
Los valores de Scrum
Los roles
El cliente
El Product Owner
El Scrum Master
El equipo
El coach
El proceso
Sprint 0
Sprints
Sprint Planning
Daily Meeting o Scrum diario
Review o revisión
Retrospectiva
Periodo de mejora
Refinamiento
Conceptos y entidades Scrum
Entidades
Artefactos
Velocidad
Herramientas
El entorno de trabajo
A continuación
Glosario
Referencias
Créditos
“A nuestras familias a las que debemos un par de Sprints”.
Agradecimientos
De Carmen Lasa
A mis “Pilares Lasa” porque contagian su alegría y porque siempre saben encontrar un
rayo de luz aún en plena tormenta.
A Rafa, Manu e Irene. Siempre.
De Alonso Álvarez
A mis chicas y mi chico, por su apoyo y paciencia. Al aire libre y al buen cine.
A mis padres.
Carmen Lasa es licenciada en ciencias físicas y está certificada como SAFe Agilist por la
Scaled Agile Academy y como Scrum Master y Product Owner por la Scrum Alliance.
Durante más de 10 años ha trabajado como Agile coach y se ha dedicado a la
investigación, adaptación e implementación de las metodologías ágiles para la gestión de la
innovación.
Ha formado en estas metodologías a numerosos equipos de Telefónica I+D y también de
otros sectores como banca, televisión, seguros, sanidad y máster en dirección de proyectos.
Es realmente un placer para mí escribir sobre este libro que Carmen, Rafael y Alonso han
escrito sobre Scrum. Después de leer el primer capítulo, realmente no tuve otra opción que
seguir leyéndolo hasta el final, pues me cautivó su profundidad que contrastaba
exquisitamente con su sencillez, ¿qué mejor cumplido se le puede dar a un libro?
Este libro es necesario, no solo para nosotros los hispanoparlantes, para los que seguro
este libro indudablemente será uno de nuestros preferidos en el ámbito de Scrum y Agilidad,
pero también para otros que quizá quisieran algún día futuro leerlo en otros idiomas. No me
extrañaría que algún día pudiéramos leer los sabios consejos que se explican y exponen en
este libro en inglés o en otros idiomas. Veamos por qué.
Me provocó su franqueza a veces muy sutil, y la autoridad con la que los autores manejan
los conocimientos expuestos sobre Scrum, Ágil y Lean, explicando sus relaciones, dando
ejemplos y proveyendo con prácticas explicitas. Los autores usan un estilo didáctico directo y
accesible que unifica el proceso de Scrum con la necesidad de conocimiento en cada uno de
sus pasos. Es decir, los autores narran el libro como si fuera la historia de un proyecto, y nos
dan la información necesaria para “seguir por buen camino”, en cada jornada del viaje. Esto
hace que al lector se le facilite aplicar los conocimientos adquiridos “paso a paso”, en el
proceso de Scrum, pues el lector aprenderá de la misma forma, un proceso idéntico o muy
similar a Scrum.
En sus páginas no solo se demuestra un amplio conocimiento de Scrum, también se
expone una alta experiencia en su práctica. Esto le da a este libro un valor único al lector
como una herramienta práctica y concisa, para que él o ella también implementen Scrum lo
mejor posible.
Los autores no solo explican “cuál es el camino correcto”, también introducen señales
precaucionarias para que el lector sepa si se ha desviado inapropiadamente, y pueda hacer
correcciones en su curso hacia un “mejor Scrum”.
Los autores han escogido desde un principio introducir y explicar las historias de usuario,
y esto es de gran beneficio para el lector también. Yo, de hecho en mis clases públicas y
privadas de CSM y de Enterprise Scrum, también he escogido introducir las historias de
usuario desde un principio, pues pienso que aunque oficialmente las historias de usuario no
son parte de Scrum, sí lo son en la práctica, es así como los implementadores modernos
trabajamos. Es así nuevamente, como este libro hace una vez más otra contribución
importante: nos introduce a prácticas modernas actuales. Esta inclusión es importante, pues
hace una contribución directa a la parte estratégica de Scrum, el Product Backlog, que es lo
que se le entrega al cliente.
Otra razón importante para leer este libro, es que fue realmente delicioso encontrar buenas
referencias a otros autores de Scrum, Agilidad, y Lean que los autores seleccionaron
apropiadamente, pero sin ser demasiadas para no confundir al lector. Con estas referencias, el
lector podrá extender aún más sus conocimientos y entendimiento de Scrum selectivamente.
Como uno de los autores del Manifiesto Ágil, también me es muy grato leer este libro,
pues verifica aún más, que Scrum y la Agilidad representan una revolución de una magnitud
global, y que todos en el mundo podemos y debemos hacer contribuciones,
independientemente de nuestros antecedentes culturales. Este año he viajado por unos 25
países, dando clases de Scrum y haciendo consultoría generalmente para empresas grandes, y
mi experiencia corrobora que las prácticas, retos, y problemas por resolver son de índole
global, pues son compartidas por todos los practicantes de Scrum en el mundo. Así, la
sabiduría en este libro puede ser usada por cualquier practicante en cualquier lugar del
mundo. Ojalá muchos tengan la oportunidad de leerlo y empaparse de los conocimientos y
experiencias que aquí se comparten.
Por último, Scrum y Ágil, se aplican más que al desarrollo de sistemas, a la
mercadotecnia, estrategia corporativa, desarrollo de productos, desarrollo básico, rediseño de
procesos, etc. cualquier proceso que necesite un proceso de manejo empírico como lo es
Scrum; y este libro nos dota del conocimiento necesario tanto en el proceso en general, como
en las prácticas y experiencias, para su posible aplicación a otros procesos.
Realmente, les felicito: han escrito una excelente introducción de Scrum, que sería
práctica, sencilla, útil pero profunda en cualquier idioma. Enhorabuena.
Mike Beedle
Lake Forest, IL
Prólogo de la segunda edición
Es un mundo VUCA
El 26 de octubre de 2015 el presidente de la tercera empresa de procesados cárnicos de
este país comenzó el día con una mala noticia. La Organización Mundial de la Salud (WHO),
haciendo propias las recomendaciones de la Agencia Internacional para la Investigación
sobre el Cáncer (IARC), comunicaba al mundo que las carnes procesadas, como las
hamburguesas, los embutidos o el bacon, de acuerdo con la evidencia científica disponible,
causaban cáncer.
Póngase por un momento el lector en la situación. ¿Cómo se siente? ¿Sorprendido?
Seguramente el término se quede corto. Haga un repaso de algunos de los principales hitos de
los dos últimos años: la crisis de las emisiones en Volkswagen; el Brexit o las elecciones
USA de 2016… el mundo es cada vez más volátil, pareciera que cualquier cosa pudiese pasar
de un momento a otro.
El mundo es, también, cada vez más incierto. Disponemos de más datos y de más
capacidad de cálculo y de inteligencia que en toda la historia de la humanidad, pero tratar de
anticipar qué va a ocurrir es cada vez más difícil. En parte es así porque el mundo es,
también, cada vez más complejo. Más agentes, a menudo con intereses enfrentados, conviven
en un mundo hiperconectado en el que cada vez es más difícil distinguir una oportunidad de
una amenaza, al “amigo” del enemigo”. Ante este panorama, no es de extrañar que la vida de
las organizaciones sea cada vez más corta. Se dice que una empresa fundada en los años 60
podía esperar mantenerse en el mercado durante más de medio siglo. Una empresa fundada
hoy tiene una ‘esperanza de vida’ de algo más de una década.
Preguntados por este hecho, un tercio de los lectores participantes en una encuesta del
prestigioso semanario británico The Economist realizada en 2009 reconocían ser conscientes
de que sus organizaciones se encontraban en grave riesgo como consecuencia de su
incapacidad para manejarse en un mundo volátil, incierto, complejo y ambiguo como éste.
Un mundo VUCA, de acuerdo con el acrónimo en inglés, de origen militar pero rápidamente
adoptado por gurús del Management, sociólogos y tertulianos en los últimos años.
¿Cómo se sobrevive en un mundo así? Y, dado que la supervivencia no es suficiente,
¿Cómo prosperar? La mitad de los CEOs participantes en la encuesta consideraban
imprescindible para la competitividad de su empresa ganar una mayor flexibilidad en la toma
de decisiones y en la ejecución de las iniciativas estratégicas. En otras palabras, el 90% de los
encuestados concluían que el factor clave para supervivencia era ser más ágiles.
Aprender más, más rápido
¿Cómo debemos entender “Agilidad” en este contexto? A menudo tiende a confundirse
con rapidez, pero la velocidad ‘cruda’ no es la característica definitoria de la Agilidad, sino
más bien la capacidad de adaptarse al cambio o, si lo prefieren, la velocidad, sí, pero a la hora
de responder a las demandas del entorno. Ser capaz de identificar más y mejores
oportunidades, responder antes y de manera más eficaz y apalancarse en los resultados de la
experiencia para mejorar de forma continua son características destacadas de las
organizaciones ágiles. Adaptación y resiliencia son aspectos definitorios de la Agilidad
Organizativa.
Una organización ágil se adapta más rápido y mejor en un mundo VUCA porque es capaz
de aprender más, más rápido. Aprende más y más rápido sobre el contexto, los agentes
implicados y sobre sus propias capacidades. Este aprendizaje acelerado se consigue a través
de prácticas como: equipos auto-organizados; trabajo por iteraciones e incrementos; contacto
frecuente y temprano con todas las partes interesadas; realización de multitud de pequeños
experimentos y otras muchas orientadas a ayudar a los individuos, equipos u organizaciones
a despejar con rapidez las incertidumbres, empezando por las más críticas.
En las dos últimas décadas los denominados enfoques Agile (en inglés) se han convertido
en la mejor (y durante mucho tiempo, única) concreción operativa de la Agilidad en las
organizaciones. La comunidad de agilistas en todo el mundo ha creado soluciones de gestión
para individuos, equipos y organizaciones que proporcionan un resultado muy superior a
otros enfoques más tradicionales en situaciones de gran incertidumbre y/o complejidad. En
definitiva, Agile representa una forma de pensar y actuar en y desde las organizaciones más
eficaz en esta nueva realidad.
• Capítulo 10. XP. Una aplicación de los métodos ágiles al desarrollo software:
Prácticas ágiles específicas para el desarrollo de aplicaciones informáticas.
• Capítulo 11. Scrum en la empresa: Aplicación de las metodologías ágiles al mundo
de la empresa y sus peculiaridades.
• Capítulo 12. Escalando Scrum: Cómo coordinar y trabajar con equipos grandes y
distribuidos, cómo detectar señales de alarma y otros temas avanzados y útiles en la
aplicación de Scrum.
• Capítulo 13. Kanban, el otorgador de permisos: Presentación de uno de los métodos
ágiles más utilizados en el mundo del mantenimiento, el soporte y la logística. Aquí se
dan algunos trucos para aplicarlo con éxito.
• Capítulo 14. Lean Software Development: Capítulo dedicado a comprender la visión
ágil que propone Lean y las herramientas de Lean Software Development.
Referentes
Además de los libros, artículos y páginas Web que aparecen en el apartado de referencias
al final del libro, a lo largo del texto se mencionan determinadas personas. Se trata de autores
muy reconocidos en el mundo de los métodos ágiles. Una forma muy recomendada para
ampliar información sobre estos métodos es buscar las publicaciones de estos autores. Para
facilitar su identificación cuando se haga mención de ellos, se incluyen algunos datos
biográficos:
• Kent Beck: Es uno de los firmantes del Agile Manifesto de 2001. Fundador de Three
Rivers Institute (TRI) y pionero en la adopción y difusión de la Programación Extrema
(XP).
• Henrik Kniberg: Miembro de la junta directiva de la Agile Alliance y reputado Coach
en métodos ágiles. Durante los 10 últimos años, ha sido CTO de tres compañías IT en
Suecia y ha ayudado a muchas otras a adoptar los métodos ágiles tanto para la gestión
como para el desarrollo de software.
• Jeff Shutherland: Es uno de los firmantes del manifiesto Ágil e ideó Scrum como un
proceso formal en 1995 junto con Ken Schawber. Ha sido presidente de la Scrum
Foundation y actualmente es CEO de Scrum Inc. Posee una amplia experiencia como
Agile Coach ayudando con éxito en la adopción de Scrum en empresas como Google,
Yahoo, Microsoft, IBM, Oracle, Adobe, Siemens, Sony/Ericsson, o Accenture, entre
otras. También es considerado un experto en la aplicación de Scrum en equipos
distribuidos y externalizados.
• Mike Beedle: Es uno de los firmantes del manifiesto Ágil y autor, junto con Ken
Schwaber, del primer libro escrito sobre Scrum, Agile Software Development with
Scrum. Es un experto en la aplicación de Scrum en la empresa. Como coach
reconocido, ha ayudado a aplicar Scrum en diferentes entornos empresariales
dedicados al Software comercial, banca, compañías de seguros e incluso en grandes
organizaciones como el Ministerio de Defensa estadounidense.
Los métodos ágiles son un campo muy extenso, que, además, no deja de crecer. El número
de libros y artículos publicado cada año lo demuestra, así como la activa comunidad de
usuarios y las conferencias y encuentros. Por ello, un libro como este no puede limitarse a
estas pocas páginas.
Los autores quieren mantener un contacto con sus lectores y ayudar a la difusión de estas
técnicas aprovechando los medios que la tecnología pone a nuestro alcance. Se puede
contactar con ellos en Facebook, siguiendo la página .
Los autores hemos puesto todo nuestro esfuerzo e interés en hacer de este libro una obra
práctica y útil. Esperamos haber podido alcanzar ese objetivo. Pero la verdadera utilidad de
lo que aquí se enseña se obtendrá con la práctica y la dedicación. El primer encuentro con un
método como Scrum puede ser menos satisfactorio de lo que inicialmente se espera, pero
nuestra experiencia nos demuestra que la perseverancia se premia en los métodos ágiles, y
ese premio se traduce en una forma de trabajar más satisfactoria, eficiente y productiva,
beneficiando tanto al equipo que la aplica como a los clientes para los que trabaja.
1 http://www.mountaingoatsoftware.com
2 http://www.agilealliance.org/
3 http://www.agile-spain.org/
En este capítulo aprenderá a:
Agile en la práctica
Aunque pueda parecer a simple vista que se trata de unos puntos aceptables y de sentido
común, en realidad marcan una clara frontera con la forma de trabajar tradicional en
proyectos y contienen los ingredientes de la receta necesaria para trabajar en el entorno
acelerado e inestable de la tecnología y empresa actuales.
Estos cuatro puntos están acompañados de los siguientes principios, que acaban de definir
la forma de trabajar de acuerdo con los métodos ágiles:
Pero ¿cuántas veces ocurre esto en la realidad? ¿En cuántos proyectos no se incorporan
por el camino cambios solicitados por el cliente o marcados por las necesidades del negocio
del momento?
Los métodos ágiles proponen un cambio de paradigma: partir de un presupuesto y unas
fechas de entrega, y, a partir de ahí, se trabaja para implementar la funcionalidad más valiosa
para el cliente en cada momento. Trabajando de esta manera, el alcance será flexible. Pero es
que, para ser competitivos, la mayoría de las veces hay que adaptar el producto a medida que
se va construyendo.
Lejos de huir de los cambios, los métodos ágiles sugieren formas de construir un producto
que acepten esos cambios. Los métodos ágiles ofrecen reglas generativas, es decir, favorecen
el que se creen reglas nuevas en el caso en que fuera necesario. Esto quiere decir que se abre
la puerta a adoptar nuevas prácticas útiles para el equipo y el producto, en lugar de mantener
inflexiblemente las reglas definidas al principio.
Los métodos ágiles tienen un filosofía y principios comunes con ciertos aspectos
concretos que los diferencian. La idea es que en cada situación se elija el método que mejor
se adapte al proyecto que se quiere abordar.
Pero ¿qué hace que un método sea ágil?, es decir, ¿qué es lo que tienen en común estos
métodos? El manifiesto Ágil precisa esas características definitorias.
Todos ellos consideran la colaboración un elemento clave. Tanto las personas que están
construyendo el producto como el cliente deben trabajar en constante comunicación y
sentirse miembros de un gran equipo. No son un grupo de personas que simplemente trabajan
próximas físicamente, sino que forman parte de un gran equipo con objetivos comunes. Con
este enfoque, la comunicación constante y a todos los niveles es crucial para crear el
producto con una calidad excelente y que cumpla exactamente las necesidades del cliente,
evitando sorpresas a todos los implicados.
Por otro lado, un método es ágil sí permite construir un producto de forma incremental, es
decir, crear algo muy sencillo inicialmente y que vaya siendo enriquecido y completado de
forma progresiva. No se construirán trozos de producto por separado que luego tendremos
que hacer encajar al final como un rompecabezas, sino que se construye contemplando la
totalidad desde el principio.
Otro factor común de estos métodos ágiles es su sencillez. Sus reglas son sencillas y de
sentido común, pero, eso sí, es necesaria la experiencia y profesionalidad para obtener el
máximo beneficio de ellas.
Nota:
Para que un método pueda considerarse ágil, debe ser adaptativo, es decir, debe
considerar siempre la posibilidad de introducir modificaciones y cambios en cualquier
etapa.
Existen métodos ágiles de proceso o gestión como son Scrum o Kanban. En el caso de
que el proyecto sea un desarrollo de software, una buena gestión no es suficiente y se
necesita también seguir unas buenas prácticas de programación. Eso permitirá una gestión
optimizada, a la vez que se crea un software de calidad. Es aquí donde entran en juego los
métodos ágiles de programación, como, por ejemplo, la Programación eXtrema (XP). En
definitiva, para crear un buen producto software, necesitamos una combinación de mejores
prácticas de gestión con mejores prácticas de programación, ambas compartiendo los valores
y principios ágiles.
A continuación, se describen brevemente algunos de los métodos ágiles más extendidos.
Para profundizar más, en el apartado de referencias hay bibliografía y publicaciones más
especializadas.
Figura 1.3. Métodos ágiles.
Lean Software Development no es tanto un método ágil como una traslación al mundo del
software de los principios de los métodos Lean procedentes del mundo de la fabricación
industrial. Lean Software Development tiene tres objetivos principales: reducir drásticamente
el tiempo de entrega de un producto, reducir su precio y reducir también el número de
defectos o bugs, es decir, mejorar la calidad.
Lean se basa en una serie de principios, que se han enumerado con distintas variantes.
Esta es una lista de esos siete principios para conseguir los objetivos de Lean Software
Development. En el capítulo 14 podrá encontrar en mayor detalle la lista original definida en
2003:
Scrum
Scrum propone un marco de trabajo que puede dar soporte a la innovación, basándose en
equipos autogestionados. Con Scrum se pueden obtener resultados con calidad, en iteraciones
cortas (entre una y cuatro semanas) llamadas Sprints.
Scrum es el método ágil más aplicado y con más elementos aplicables. Esto le convierte
en el más apropiado para introducirse en este modo de trabajo y, por ello, se le dedica buena
parte de este libro.
En este capítulo se dará simplemente una primera aproximación para poder compararla
con el resto de los métodos ágiles. En la primera parte del libro podrá encontrar una
explicación detallada de cómo funciona Scrum y cómo aplicarlo de manera práctica.
Scrum (o melé en castellano) es la jugada del deporte del rugby que se utiliza para
reincorporar al partido una pelota que se había quedado fuera de juego. En esta jugada, el
equipo actúa como una unidad para desplazar a los jugadores del equipo contrario.
Los primeros en utilizar este término dentro de un contexto de desarrollo fueron Hirotaka
Takeduchi e Ikujiro Nonaka 4 en el año 1986 para describir una nueva forma en la que
trabajar dentro de un proceso de desarrollo acelerado, respondiendo a la necesidad de ser
cada vez más competitivo. La comparación con el rugby se realiza por la similitud entre la
forma de jugar en este deporte y la necesidad de que se modifique la manera de trabajar entre
los equipos de desarrollo, ya que el deporte del rugby es altamente coordinado, colaborativo
y reactivo.
En el año 2001, Ken Schwaber y Mike Beedle publican el primer libro sobre Scrum: Agile
Software Development with Scrum 5 y, poco a poco, empieza a haber una gran aceptación de
Scrum por numerosos equipos y se extiende esta nueva forma de trabajar.
La Scrum Alliance fue fundada en el año 2002 por Ken Schwaber y Mike Cohn. El
objetivo de esta organización es compartir y aumentar de forma constante el conocimiento de
Scrum, proporcionando un foro para el aprendizaje de forma interactiva. Para más
información, puede visitar la página http://www.SCRUMalliance.org..
Scrum se basa en los siguientes principios:
Una de las principales características de Scrum es que, en cada iteración, todas las etapas
de la creación de un producto se solapan, es decir, en cada Sprint se realiza la planificación,
análisis, creación y comprobación de lo que se va a entregar al final del mismo.
El marco de trabajo general de Scrum está compuesto por una serie de roles, reuniones y
de paneles de información o artefactos que se indican a continuación:
Importante:
Los roles en Scrum representan una responsabilidad en el proceso y no la posición dentro
de la organización.
• Los artefactos de Scrum: Los Backlog o repositorios son los artefactos en los que el
Product Owner, equipo y Scrum Master escriben los requisitos y tareas.
• El Product Backlog es el lugar que contiene los requisitos del cliente priorizados y
estimados. Es propiedad del Product Owner, aunque todos los afectados deben
asesorar durante su creación y en el mantenimiento del mismo para que esté
permanentemente actualizado. El Product Backlog está escrito en lenguaje de
negocio y debe revisarse la priorización, al menos, antes del inicio de cada Sprint.
• El Sprint Backlog es la selección de requisitos del Product Backlog negociados
para el Sprint y que se ha descompuesto en tareas por el equipo para expresar los
requisitos del cliente en un lenguaje técnico. El Sprint Backlog es propiedad del
equipo.
• El Burndown Chart es una gráfica en la que se representa el trabajo pendiente del
equipo. Existen dos tipos de gráficas principales: la relacionada con el Sprint y la
relacionada con la totalidad del proyecto.
• Las reuniones en Scrum: Se basan en el principio de time-boxing para acotarlas en el
tiempo. Por ejemplo, en el caso del Daily Meeting o reunión diaria se recomienda que
esté entre 10 y 15 minutos, mientras que para el resto de reuniones se sugiere una hora
de reunión por semana de iteración (Sprint Planning; Sprint Review) o
aproximadamente una hora para la Retrospective. Poniendo estos límites de tiempo, se
fomenta optimizar su contenido y no perder el foco.
• Planificación del Sprint (Sprint Planning): Esta reunión es, como su nombre
indica, el momento en el que se planifica el Sprint. La reunión debe finalizar con un
objetivo claro y compartido sobre el trabajo que hay que realizar para la iteración
siguiente y con un Sprint Backlog adecuado. El equipo selecciona los ítems del
Product Backlog con los que considera que puede comprometerse a realizar durante
el Sprint y los dividirá de forma colaborativa en tareas.
• Reunión diaria (Daily Meeting): La Daily Meeting es el momento de la
sincronización del equipo en la que cada miembro comenta con el resto en qué
estado se encuentra el trabajo que está realizando y con qué piensa continuar. Es el
momento también para compartir con el equipo, de forma muy breve, si se tiene
algún impedimento para continuar con el trabajo y así facilitar que se desbloquee.
• Revisión del Sprint (Sprint Review): Al finalizar el Sprint, el equipo analiza el
estado de su trabajo con el Product Owner y con cualquier otra persona que pueda
aportar información valiosa. Esta revisión del trabajo debe hacerse de manera
informal y no debe emplearse demasiado tiempo en prepararse. Este es el momento
de analizar para mejorar “el qué” estamos construyendo.
• Retrospectiva del equipo (Sprint Retrospective): Después de la Review, el equipo
se reunirá para buscar mejorar en su trabajo y analizar los aspectos que le impiden
ser más productivo. Es este el momento de analizar para mejorar “el cómo” estamos
trabajando.
Nota:
Scrum es poco prescriptivo, pero lógicamente se pueden añadir los roles, artefactos o
reuniones que sean necesarios. Eso sí, tal y como recomienda Henrik Kniberg 6 , es mejor
estar seguro de que se necesita algo nuevo antes de incorporarlo, basándonos siempre en
la filosofía general Agile de hacer las cosas de la manera más sencilla posible. En caso de
duda, comience por lo mínimo y vaya añadiendo lo que realmente se necesite en cada
momento.
De forma muy simplificada se podría resumir el flujo del trabajo con Scrum de la
siguiente manera:
1. El Product Owner escribe en el Product Backlog todas las funcionalidades y requisitos
que quiera que su producto contemple. Eso sí, debe priorizarla indicando el orden en
que quiere que se vaya construyendo su producto. Los ítems más prioritarios deben
estar más detallados que los que no son tan urgentes.
2. El equipo estimará cada uno de estos requisitos en función de su complejidad.
Teniendo en cuenta la prioridad marcada por el Product Owner y la estimación
realizada por el equipo, se acordará la cantidad de trabajo que se vaya a abordar en el
siguiente Sprint. Ojo, los requisitos seleccionados no podrán cambiarse durante el
Sprint.
3. Empieza el Sprint y el equipo se sincronizará diariamente con la Daily Meeting.
4. Al finalizar el Sprint, el equipo muestra al Product Owner el trabajo realizado que debe
ser un producto potencialmente entregable. Con la opinión y sugerencias del Product
Owner y la información obtenida en la retrospectiva posterior que realizará el equipo,
se preparará la siguiente iteración.
Este flujo de trabajo se repetirá tantas veces como sea necesario hasta que se complete el
Product Backlog, o bien se acabe el presupuesto o se llegue a una determinada fecha.
Scrum no es una metodología de trabajo, es más bien un marco de referencia. No da
recomendaciones concretas para cada situación. Ayuda a que se planteen las preguntas
correctas y son las personas las últimas responsables de encontrar las respuestas acertadas.
En definitiva, Scrum ayuda enormemente a que salga a la luz todo aquello que nos impide
ser más productivos y, cuando un problema se detecta, se convierte inmediatamente en un
obstáculo al que se le puede poner solución.
Figura 1.5. Scrum, como el ajedrez, no triunfa o fracasa Simplemente marca reglas.
Scrum puede ser adaptado a las necesidades del proyecto que se vaya a abordar y
proporciona un marco de trabajo y comunicación que ayuda a alcanzar el éxito. Está siendo
aplicado con éxito cada vez en más empresas y para la creación de los más diversos
productos. Por este motivo, se va a dedicar una buena parte de este libro a describir y analizar
Scrum en profundidad.
Kanban
Kanban es una palabra de origen japonés y que significa “tarjetas visuales”. Aplicando
este método se consigue mostrar permanentemente y de forma muy visual el estado del
proyecto a todos los implicados. Métodos similares al que propone Kanban llevan
aplicándose con éxito en las cadenas de producción desde hace más de un siglo. La
aplicación de Kanban al desarrollo de software es comparativamente reciente.
Kanban es un método tremendamente útil para gestionar los productos cuyos requisitos
cambian constantemente, bien porque aparezcan nuevas necesidades o bien porque su
prioridad varíe. Este método también es útil en los casos en los que sea muy complicado
planificar el trabajo, así como cuando no se pueda comprometer un equipo a trabajar con
iteraciones de duración fija y predeterminada por el motivo que sea (interrupciones, cambios,
dependencias, etc.). Se usa mucho para la resolución de incidencias y actividades de
mantenimiento: es decir, cuando no se puede prever de antemano la cantidad de trabajo ni su
naturaleza. De forma simplificada, los pasos que debe seguir para trabajar con Kanban son
los siguientes:
• Crear un modelo global: Un primer paso será tener un conocimiento del alcance, los
requisitos y el contexto del sistema en el que se va a construir el producto. Al finalizar
esta etapa, los miembros contarán con una descripción general del sistema. Aunque
FDD no da indicaciones precisas de cómo elaborar las necesidades que el producto
debe cubrir, en esta fase sería interesante que existieran unos requisitos o
especificaciones al menos a alto nivel.
• Crear una lista de funcionalidades: Es necesario plasmar ese modelo global, junto
con los demás requisitos del conjunto del sistema, en una única lista de necesidades o
funcionalidades que cubrir. Los desarrolladores participarán en la creación de esta lista
y estas funcionalidades se revisarán por los usuarios y clientes para que se completen y
validen.
• Planear por funcionalidades: A la hora de hacer un plan a alto nivel, debe siempre
tenerse en cuenta la prioridad de las funcionalidades y las dependencias entre ellas.
Para definir los hitos de entregas, debe hacerse también desde un punto de vista de
grupos de funcionalidades.
• Diseñar y construir por funcionalidad: Se deben diseñar y construir las
funcionalidades de forma iterativa. En cada iteración se seleccionará un conjunto de
funcionalidades y estos ciclos deben oscilar entre algunos días y dos semanas. Puede
haber varios equipos trabajando en paralelo en diferentes grupos de funcionalidades.
Esta etapa de diseño y desarrollo incluye las actividades de pruebas unitarias, revisión
de código e integración.
Nota:
Para acceder a más información sobre DSDM puede visitar la página Web
www.DSDM.org.
Tal y como lo define Kent Beck 11 eXtreme Programming (XP) es un método ágil para el
desarrollo de software muy útil a la hora abordar proyectos con requisitos vagos o
cambiantes. XP es especialmente útil si se aplica a equipos de desarrollo pequeños o
medianos. Es un método adaptativo, es decir, se ajusta muy bien a los cambios. Propone
desarrollar el código de forma que su diseño, arquitectura y codificación permitan incorporar
modificaciones y añadir una funcionalidad nueva sin demasiado impacto en la calidad del
mismo. Por otro lado, XP es un método muy orientado hacia las personas, tanto a las que
están creando el producto como a los clientes y usuarios finales.
Desarrollando como propone XP, se obtienen rápidamente resultados. Al trabajar con
pequeñas iteraciones, se puede obtener con frecuencia comentarios del cliente, lo que tiene
como resultado que el producto final cubra ampliamente sus expectativas y necesidades.
Como en otros métodos ágiles, la forma de crear el producto será de forma incremental con
todas las ventajas que ya hemos comentado que esto supone. Para XP las pruebas son la base
de la construcción y propone que sean los desarrolladores los que escriban las pruebas a
medida que van construyendo el código y se realice una integración continua, de forma que
el software creado tenga una gran estabilidad. Las pruebas automáticas se realizan de forma
constante para poder detectar los fallos rápidamente. Cuanto antes se detecte un problema,
antes podrá resolverse sin que las consecuencias y el impacto sean mayores.
Antes de cada iteración se planifica el trabajo que va a realizarse y, a continuación, se
realizan de forma simultánea el análisis, el desarrollo, el diseño y las pruebas del código.
Para que esto sea posible, es necesario seguir unas prácticas 12 que se comentan en detalle en
el capítulo 10 de este libro.
XP se basa en un conjunto de ideales a los que llama valores, que son los que guían el
desarrollo en XP.
• Comunicación.
• Simplicidad.
• Feedback.
• Valentía.
• Respeto.
Los valores de XP son demasiado abstractos y es necesario concretar algo más para
ponerlos en práctica. Para ello, XP propone algunos principios útiles para un mejor
desarrollo. Estos principios son:
• Humanidad.
• La economía.
• La búsqueda del beneficio mutuo.
• La autosemejanza.
• Mejora continua.
• Diversidad.
• Reflexión.
• Simultaneidad de fases o flujo.
• Oportunidad.
• Redundancia buscando soluciones.
• Aprender de los fallos.
• Búsqueda constante de la calidad.
• Avanzar con pequeños pasos.
• Aceptar la responsabilidad de todos los implicados en el desarrollo de un producto.
Clave:
XP apuesta porque las pruebas se hagan pronto, con frecuencia y automatizadas.
Lean Startup
Este método de trabajo es más reciente que los anteriores y no nace para atender
necesidades en entornos tecnológicos. Aunque puede ser utilizado para propósitos muy
diversos, ha demostrado ser especialmente útil para definir productos y modelos de negocio,
por lo que se aplica tanto por nuevas empresas en proceso de formación (startup) como en
departamentos de empresas ya consolidadas que definen nuevos productos y servicios.
Lean Startup es complementario de otros métodos, no de manera excluyente. Es
importante seleccionar en cada momento la mejor forma de trabajo para cada etapa o
propósito. Así, puede definirse un producto con Lean Startup, implementarse usando Scrum
y gestionar su soporte con Kanban. Es más importante seleccionar la herramienta adecuada
en cada caso que ceñirse ciegamente a un dogma.
Figura 1.7. Gráfica de la adopción de los diferentes métodos ágiles (VersionOne, 2016).
El origen de Lean Startup está en los trabajos de Steve Blank y, especialmente, en el libro
de Eric Ries 13 , alumno suyo, que ha contribuido decisivamente a popularizarlo.
Lean Startup es un método iterativo, inspirado en la filosofía Lean, que avanza en el
diseño del producto a través de iteraciones en las que se va refinando el concepto, cambiando
el enfoque si el planteamiento inicial no acaba de funcionar.
En el capítulo 15 se explica Lean Startup en detalle, pero se anticipan aquí alguno de sus
conceptos básicos:
Al igual que otros métodos, Lean Startup también tiene una serie de principios que lo
fundamentan. Son los siguientes:
• Hay emprendedores por todas partes. Lo que viene a decir que este método no está
dirigido a un único tipo de actividad (pequeñas empresas innovadoras que arrancan),
sino que puede aplicarse en muchos otros campos.
• El emprendimiento es gestión. No debemos olvidar que al final una organización
necesita control, no se trata solo de crear un producto nuevo.
• Aprendizaje validado. En cada paso aprendemos sobre el producto que estamos
diseñando y ese conocimiento debe estar fundamentado en hipótesis validadas por
experimentos y métricas, no en intuiciones o prejuicios.
• Contabilidad de la innovación. No hay que perder de vista los aspectos aburridos del
proceso, hay que medirlo y gestionarlo, priorizar trabajos, analizar información,
establecer y valorar objetivos. Además de los aspectos más atractivos, hay que atender
a los más aburridos de la innovación.
• Crear-Medir-Aprender, o la orientación iterativa del trabajo para poner a prueba las
ideas iniciales y refinarlas con lo que se aprende de su exposición al mercado real.
• Vigencia del manifiesto Ágil: Una encuesta realizada por ACM en el décimo
aniversario de la publicación del manifiesto Ágil mostró que, para la mayoría de las
personas que los aplica, sus principios siguen estando vigentes y que no es necesario
revisarlos. Eso no impide que incluso alguno de sus firmantes originales considere que
hay que retirar el término “ágil” debido a la popularización y mercantilización del
mismo. Otras visiones contra el manifiesto hablan de que todo lo ágil se ha convertido
en una doctrina, perdiendo su lado más creativo y la visión individual en favor de una
suerte de “dogma”.
• Heart of Agile y Modern Agile: Se trata de movimientos que propugnan una vuelta a
las raíces de lo ágil. Ponen foco en la mejora continua, el valor de las personas, la
entrega de valor y otros principios básicos desde una perspectiva muy Lean, es decir,
simple y desprovista de elementos considerados accesorios o innecesarios.
• “No project”: Propone romper con la idea de que se puede combinar la gestión
tradicional de proyectos con una gestión Agile. Su punto de partida es romper con la
idea de “proyecto” con sus fechas, seguimiento, diagramas y herramientas de control.
El movimiento “No estimate” va en la misma dirección: evite estimar como una forma
de romper con control que supone trabajar con la orientación usada hasta ahora en los
proyectos, más predictiva que iterativa.
• Personas y no organizaciones: Agile no debe servir como excusa para poner las
organizaciones y sus necesidades por encima de las personas y sus relaciones, que
deberían ser los verdaderos protagonistas del modo de trabajo ágil.
• Ágil no es “rápido”: En la experiencia personal de los autores aparece con demasiada
frecuencia ese error. Cuando se habla de una solución ágil, de ser ágiles en la
obtención de resultados, de que la toma de decisiones debe ser ágil... se está pensando
en velocidad. Es cierto que la definición en el diccionario habla tanto de rapidez como
habilidad, pero hay que ser consciente de que “ágil”, en el sentido dado a esta filosofía,
se refiere también a la flexibilidad, a la adaptación y a la simplicidad. Dejar que se
asocie “ágil” solo con “rápido” es sacrificar elementos básicos (por encima de todo, la
calidad) a la consecución inmediata de resultados.
Por último, hay que comentar que otra de las dificultades de la adopción de Agile es su
aplicación en trabajos o proyectos grandes que involucren a equipos muy numerosos. Más
adelante, en el capítulo 12 se tratará precisamente sobre cómo afrontar este reto.
El futuro que espera al mundo de los métodos ágiles es equilibrar su popularización con
mantener su esencia para así evitar una aplicación nominal sin seguir sus principios, lo que
restaría todo su valor.
Si el primer contacto con el mundo Agile del lector procede de la lectura de estas páginas,
sepa que va a entrar a formar parte de una comunidad activa, creyente en sus valores, celosa
de sus principios y dispuesta a llevar los beneficios de la agilidad por encima de convertir el
término “ágil” en una moda de gestión más.
¡Buena suerte!
4 The New New Product Development Game. Hirotaka Takeduchi and Ikujiro Nonaka. Harvard Business Review. 1986.
5 Agile Software Development with SCRUM. Ken Shwaber & Mike Beedle. Publisher: Prentice Hall. 2001.
6 KANBAN and SCRUM. Making the most of both. Henrik Kniberg and Mattias Skarin. C4Media Inc. 2010.
7 http://www.kenschwaber.wordpress.com/2011/04/07/SCRUM-fails/.
8 The Pragmatic Programmer. Andrew Hunt y David Thomas. Addison Wesley. 2000.
9 A Practical Guide to Feature-Driven Development. Palmer, S.R. and Felsing, J.M. Upper Saddle River, NJ, Prentice Hall.
2002.
10 Scaling Software Agility. Best Practices for Large Enterprises. Dean Leffingwell. Alistair Cockburn and Jim Highsmith,
Series Editors. 2007.
12 eXtreme Programming Explained: Embrace Change (2nd Edition). Kent Beck with Cynthia Andres. Ed. Addison
Wesley. 2004.
14 https://www.scrumalliance.org/.
15 http://www.agile-teaming.org/.
Primera parte
Trabajar con Scrum
En este capítulo aprenderá:
Introducción
Antes de estudiar cómo se desarrolla el proceso Scrum detalladamente, se empezará por
dar una visión general como introducción a los conceptos que se manejarán más adelante.
Esta primera parte del libro se estructura de la siguiente forma: en este capítulo, tendrá
una visión de cómo funciona Scrum, sus distintas etapas y roles; y, en sucesivos capítulos, se
irá viendo en detalle cada uno de estos conceptos. Este capítulo servirá de guía y referencia
en el futuro.
Como ayuda, se ha diseñado un “mapa de Scrum” como una página especial en la que se
describe gráficamente el proceso y se enumeran los valores, roles, artefactos y componentes
de Scrum. Podrá encontrarla en el propio libro o en Internet 16 . Fotocopie o descargue esa
página, distribuya copias entre su equipo, déjela en un lugar visible y úsela como mapa o
guía para familiarizarse con la terminología y los procesos de Scrum.
El resto del capítulo es una introducción al contenido posterior. Junto con el mapa, será su
guía en Scrum. Encontrará información más detallada en los siguientes capítulos del libro.
Visión esquemática del ciclo Scrum
Véase ahora un resumen del ciclo de trabajo con Scrum de acuerdo con el mapa que
encontrará en el libro. Podrá revisar estos conceptos con más extensión en los siguientes
capítulos.
Sprint 0. Todo empieza aquí. Es una etapa previa muy importante para el desarrollo del
resto del trabajo y en la que tiene un papel relevante el Product Owner o PO, que es la
persona que actúa como punto de contacto entre cliente y equipo. Partiendo de las
necesidades del proyecto, el PO se encarga de armar las bases para el trabajo posterior: crear
el equipo, identificar los recursos necesarios, fijar requisitos y plazos, traducir las
necesidades de cliente en unos requisitos y elaborar un diseño preliminar formal. El resultado
es un Backlog o repositorio del proyecto en el que se han introducido todos los requisitos
expresados en forma de temas, épicas e historias de usuario (de menor a mayor grado de
detalle). El contenido del backlog se ordena de acuerdo con la prioridad.
Todo el trabajo posterior se divide en iteraciones o Sprints, que, a su vez, se agrupan en
una o varias Releases o entregas (al menos habrá una final) de acuerdo con la longitud del
proyecto, las necesidades del cliente y la naturaleza del trabajo.
Cada una de esas iteraciones o Sprints arranca con el Planning, en el que el PO prioriza
todas las historias de usuario (temas y épicas) y añade criterios de aceptación para determinar
cuándo se han cumplido. Para ello, podría contar con la ayuda del Scrum Master o SM
(facilitador del trabajo, intermediario entre el PO y el equipo y vigilante del cumplimento de
los principios de Scrum). El equipo de trabajo valora el esfuerzo necesario para realizarlas y
selecciona, siguiendo la priorización fijada, las que podrán realizarse en el transcurso del
Sprint de acuerdo con la capacidad de trabajo del equipo. En una segunda etapa de la
planificación, el equipo traduce las historias al lenguaje del proyecto y las subdivide en
unidades menores o tareas. Con todo ello se construye el Sprint Backlog o repositorio de los
trabajos que se realizarán durante la iteración.
A lo largo del Sprint (entre una y cuatro semanas) se va realizando el trabajo y el equipo
va exponiendo sus avances en la Daily meeting, Scrum diario o reunión diaria. Se trata
normalmente de un foro interno (compuesto por el equipo y el SM) donde cada participante
comenta los avances realizados, el trabajo futuro y los impedimentos para la actividad. Estos
impedimentos se guardan en un Impediment Backlog y el SM vigila que se resuelvan.
El final del Sprint lo señala la Review meeting o reunión de revisión de resultados, donde
el equipo, con el SM, expone los trabajos realizados y los resultados alcanzados al PO y al
resto de personas que puedan estar interesadas, para que los acepten o no, y recoger
comentarios y sugerencias que se puedan aplicar en la próxima iteración.
Finalmente, en la reunión de Retrospectiva, el equipo y el Scrum Master revisan el
proceso e identifican, por un lado, aspectos positivos que merece la pena cuidar y mantener y,
por otro, puntos de mejora que hay que resolver dentro del proceso de mejora continua que
supone Scrum.
Todo el proceso queda documentado y se hace un seguimiento de la capacidad del equipo
o velocidad como medida útil para el incremento de la productividad.
Todo este proceso se explicará con más detalle y ejemplos en los siguientes capítulos. No
se preocupe si ahora no entiende algunos de los nombres y conceptos.
• Mejora continua: Las metodologías ágiles se han creado para mejorar una forma
ineficiente de trabajar. Pero no se quedan ahí: propugnan que esa mejora se amplíe y
continúe en el futuro. Los miembros de un equipo Scrum deben identificar
continuamente puntos de mejora y hacer lo posible por aplicarlos para realizar su
trabajo de forma más productiva y con mayor calidad.
• Calidad: Es el objetivo de todos nuestros esfuerzos por mejorar la forma en la que
trabajamos y los productos que construimos. Por ese motivo, la calidad debe ser un
componente básico e innegociable. Sacrificar calidad frente a cualquier otro aspecto
(como plazos o costes) compromete el proceso y sus resultados, y además se aleja de la
filosofía Scrum.
• Time-boxing: Dentro del esfuerzo por alcanzar una mayor productividad hay que
eliminar los ladrones de tiempo, y en un proyecto son muchos. Fijar una duración
temporal estricta para las actividades que tienden a alargarse y dispersarse supone un
beneficio claro para el proceso. Time-boxing significa que una reunión de una hora solo
va a durar una hora, que no se van a permitir divagaciones innecesarias, y que solo se
van a considerar los temas relacionados con el asunto que se trata y no otros. Time-
boxing significa aprovechar el tiempo, evitar perderlo.
• Responsabilidad: Una organización en la que prima la auto-organización solo
funciona cuando los miembros del equipo adquieren un grado de responsabilidad
superior. En una organización muy jerarquizada, la responsabilidad se acumula a
medida que se asciende en la organización. En Scrum, la responsabilidad es compartida
y afecta a todos por igual.
• Multidisciplinar: El equipo de trabajo debe ser capaz de realizar todas las tareas
necesarias del proyecto. En lugar de contar con equipos especializados solo en alguna
de las actividades necesarias, en Scrum se espera que cada uno pueda ser autónomo y
realizar todos los trabajos precisos sin contar con contribuciones externas.
• Flexibilidad: Con Scrum se deja de lado la idea de que todo proyecto parte de una
descripción estática de lo que quiere el cliente. En su lugar, Scrum reconoce la realidad
y abraza el cambio, se define en torno a la idea de que los requisitos pueden cambiar.
Por ese motivo, la flexibilidad es una de sus señas de identidad y se aplica a todo el
proceso.
• Ritmo (latido): Para que la flexibilidad no degenere en una absoluta incertidumbre,
Scrum favorece que el equipo trabaje a un ritmo determinado. Alcanzar ese ritmo será
la base para convertirse en un equipo maduro, capaz de funcionar de forma
sincronizada y de ofrecer estimaciones de alcance y fechas a sus clientes.
• Compromiso: Scrum exige un alto compromiso de todos los participantes en el
proyecto. La confianza y autonomía que otorga a todos los participantes requiere que
su actitud hacia el proyecto sea activa y comprometida.
• Simplicidad: Scrum prefiere las soluciones simples a las complejas. Es un rasgo de
calidad y un valor añadido que se da al producto realizado, y facilitará la labor de los
que tengan que trabajar en el futuro con él.
• Respeto: Scrum se centra prioritariamente en las personas y las relaciones entre ellas.
Solo un respeto mutuo entre los participantes garantiza las relaciones necesarias para el
éxito de un proyecto.
• Coraje: Los participantes en un proyecto Scrum deben afrontar decisiones
comprometidas, tomar iniciativas y actuar en función de un objetivo común. Todo esto
se traduce en coraje para avanzar decididamente sin esperar órdenes, especialmente
cuando el camino no está completamente claro.
• Foco: Scrum no permite distracciones. El proyecto es la actividad más importante del
equipo y todos los demás implicados, y debe mantenerse la atención concentrada en él.
La dedicación plena al proyecto es una de las consecuencias.
• Predictibilidad: El equipo debe adoptar un ritmo determinado, trabajar de una forma
ordenada y disciplinada, y todo con el objetivo de acabar siendo predecibles.
Asumiendo el cambio y la incertidumbre como componentes naturales del trabajo y no
como inconvenientes, el objetivo es acabar siendo capaces de anticipar
aproximadamente qué cantidad de trabajo puede realizarse en un periodo determinado.
• Personas: Los métodos ágiles se centran más en las personas que en los procesos o los
métodos 17 . Podría definirse una metodología rica y compleja, llena de pasos,
diagramas y documentos, pero sin la contribución decidida de las personas nunca
llegará a buen puerto. Por eso, Scrum se centra sobre todo en las personas participantes
o interesadas, en favorecer el flujo de comunicación entre ellas para lograr unas
relaciones ricas y fluidas.
Esta es la lista de valores de los autores, pero no es la única. Pueden encontrarse otras
listas más resumidas o más extensas y con valores que no se contemplan aquí, pero no
porque no sean importantes. Por ejemplo, la Revisión del trabajo, que se traduce en ser
transparentes y hacer que el trabajo pueda ser objeto de escrutinio como una forma de
favorecer la calidad; Colaboración, implícita en buena parte de los valores anteriores e
imprescindible para el trabajo en equipo; Contar con el cliente, que en Scrum no es una
figura ajena y lejana, sino que se integra perfectamente en el trabajo del equipo; Trabajo en
iteraciones o ciclos cortos, como medio para hacer que afloren cuanto antes los posibles
problemas; Priorización, porque hay que ser conscientes de qué es realmente importante y
saber asignarle la relevancia que merece; Trabajo en equipo, uno de los valores supremos e
implícitos de Scrum; Generosidad, muy relacionado con el anterior; Comunicación, básica
para una forma de trabajo tan dependiente de las personas; y Capacidad (y disposición) de
aprendizaje, que refleja la necesidad de mejora continua de Scrum.
Los roles
Ya se han mencionado varios papeles especializados en el trabajo con Scrum. A
continuación, se verá qué es lo que hacen, cuáles son sus responsabilidades y cómo se
relacionan entre sí.
Nota:
Un rol que engloba a varios es el de “Equipo Scrum”, que incluye al Product Owner, al
Scrum Master y al equipo de trabajo.
El cliente
En realidad, en Scrum, más que de cliente se debe hablar de los stakeholders, es decir,
todas las personas y organizaciones que tienen algún interés en el trabajo o proyecto que se
va a realizar. Por ejemplo, una Web de comercio electrónico puede ser encargada por el
departamento de IT de una empresa a otra distinta, y sería en ese sentido el cliente, pero en el
proyecto tienen mucho que decir las áreas de explotación, marketing, financiero, logística,
etc. Por ello, cuando se habla en este libro del “cliente” se hace referencia al conjunto de los
interesados en llevar a buen término el proyecto.
Pues bien, aunque no parezca que se le dedica mucha atención en Scrum, en realidad
juega uno de los papeles más importantes, al ser quien tiene una necesidad que plantear al
equipo, y cuenta con los recursos (generalmente económicos) para construir la solución. Es
decir, es dueño de los requisitos y de los recursos.
Los stakeholders, en su conjunto, no tienen por qué entrar a formar parte de proceso
Scrum, pero es conveniente que lo conozca y esté familiarizado con su terminología y forma
de operar. A fin de cuentas, se está hablando de dejar la aproximación tradicional de
desarrollar proyectos, en la que se partía de unos requisitos, supuestamente, completos y
detallados, que al cabo de un tiempo se convertían en un producto funcional sin mucho
contacto entre cliente y equipo. En su lugar, se ofrece al cliente una nueva forma de trabajar,
en la que no es necesario tener perfectamente cerrados y delimitados los requisitos y con la
que podrá ir revisando resultados parciales a intervalos regulares.
El papel de cliente en Scrum implica ante todo dos grandes tareas: proporcionar requisitos
y validar resultados. Es decir, definir el producto que se quiere construir y examinar
cuidadosamente los resultados intermedios (y finales) que ofrezca el equipo para dar sus
comentarios, correcciones y sugerencias, su feedback.
El Product Owner
El PO, Product Owner o Dueño del Producto, forma parte del cliente y actúa como
intermediario entre este y el equipo. Por ello, debe ser capaz de hablar el lenguaje de negocio
o de los requisitos de cliente y estar familiarizado con los métodos y conceptos empleados
por el equipo. Se trata de un papel fundamental, capaz de transmitir al equipo los requisitos y
reacciones del cliente, actuando como él cuando surjan dudas y cuestiones sobre el producto
que se está construyendo. Puede ser difícil contar con todos los stakeholders, pero el Product
Owner debe estar siempre disponible para el equipo.
El PO es el representante del cliente (o de quien necesita o encarga el nuevo producto,
proyecto, actividad...) ante el equipo, por lo que está enfocado prioritariamente a los aspectos
de negocio, no a los técnicos, y, por ello, es el encargado de transmitir la visión de producto
al equipo. Es responsable del éxito o fracaso del producto y de la rentabilidad del proceso.
Con respecto al contenido y desarrollo del trabajo, el PO tiene varias responsabilidades
importantes. Para empezar, es quien fija las fechas clave de las distintas entregas y de
priorizar los distintos requisitos. Y la forma de ejercer ese control es manteniendo al día el
Product Backlog. Esto significa que todos los elementos contenidos en él (temas, épicas e
historias) estarán correctamente descritos, con unas condiciones de aceptación comprensibles
y debidamente priorizadas. Para poblar este Backlog, el PO debe mantener un contacto
continuado con el conjunto de los stakeholders, comprender perfectamente sus necesidades,
hablar su “idioma” y traducir sus requisitos en elementos del Backlog, es decir, en el lenguaje
del equipo de trabajo.
Por último, el PO es quien acepta o rechaza las entregas del equipo por medio de las
revisiones del trabajo realizado en cada Sprint y entrega.
El Product Owner mantiene una relación estrecha con el Scrum Master y asiste al menos a
dos reuniones muy importantes dentro del ciclo de trabajo de cada Sprint: la Review y el
Planning.
En la revisión o Review, el Product Owner actuará en representación del cliente cuando
este no pueda asistir y examinará el trabajo del equipo para darlo por válido o no. El trabajo
realizado se revisa de acuerdo con los criterios de aceptación expresados en la descripción de
cada historia, bien por medio de una explicación, bien examinando el producto (por ejemplo,
un documento, o unos planos), bien demostrándolo (lo que es especialmente importante
cuando se trabaja en el desarrollo de software).
En la planificación o Planning, el PO, que previamente habrá incluido y priorizado las
distintas historias en el Backlog, debe dar todas las explicaciones y aclaraciones que precise
el equipo, así como fijar unos criterios claros de aceptación del trabajo.
El Product Owner es, ante todo, un intermediario entre el mundo del negocio y el equipo
de trabajo, lo que hace que tenga que conocer los condicionantes de los dos. Además, tiene
una gran capacidad de decisión definiendo y aceptando el trabajo, así como delimitando el
entorno (recursos, fechas) en el que se desarrollará.
El Scrum Master
El otro gran papel diferenciado en el mundo Scrum es el del SM o Scrum Master. Ante
todo, hay que dejar claro que el papel de SM no es el de un jefe de proyecto; con Scrum, ese
concepto desaparece. Si hay una palabra que define al Scrum Master esa es “facilitador”. Su
principal cometido es mejorar la productividad del equipo y eso lo consigue aislándolo de
interferencias externas, eliminando impedimentos y procurando que fluya la comunicación y
la colaboración. Además, es responsable de introducir y fomentar las prácticas Agile.
Como facilitador trabaja muy cerca del Product Owner, pero, por encima de todo, trabaja
muy cerca del equipo, a quien protege de interferencias externas, forma en técnicas Scrum,
orienta y vela por alcanzar la máxima calidad y productividad en el proceso,
El SM supervisa el Backlog, asegurándose que todas las historias estén correctamente
descritas, priorizadas y estimadas. También es el verdadero supervisor de todo el proceso, por
lo que, entre otras cosas, ayuda al equipo a evaluar el resultado del trabajo, analizando la
velocidad del equipo, velando por la calidad y siguiendo de cerca el proceso, su principal
objetivo.
Es también el intermediario entre el mundo exterior (PO, otros equipos) y el equipo de
trabajo. Esta tarea forma parte de su misión de fomentar la productividad protegiendo al
equipo de interferencias externas.
Pero, por encima de todo, el SM es quien debe encargarse de fomentar las buenas
prácticas, la formación y la aplicación de nuevas herramientas. Sin embargo, su objetivo
último es hacerse prescindible y permitir que un equipo suficientemente maduro y entrenado
sea capaz de auto-organizarse y funcionar sin la figura del SM.
Hay mucha literatura sobre el papel del Scrum Master y sobre qué es lo que hace de una
persona un buen Scrum Master. Una buena síntesis es la lista de los seis atributos principales
que selecciona Mike Cohn 18 :
• Humilde: El Scrum Master no debe restar protagonismo a los miembros del equipo.
No debe destacar ni distinguirse. Convence por medio del ejemplo y la inspiración.
• Colaborador: Si Scrum se basa en la colaboración, el Scrum Master debe ser el
abanderado de este principio, fomentando la colaboración y buscando la forma de
frenar las actitudes contrarias y egoístas.
• Comprometido: Formalmente puede parecer que es el Product Owner o el equipo
quienes tienen los compromisos más fuertes con el éxito del trabajo. Sin embargo, es
imposible que el proyecto llegue a buen puerto si el propio Scrum Master no adopta
una actitud comprometida con el proyecto, sus fines y la forma de llevarlo a cabo.
• Influyente: Al no contar con autoridad formal, el Scrum Master no tiene más remedio
que convencer por medio del ejemplo y de recurrir a su capacidad para persuadir a
otros. Esto obliga a que un buen Scrum Master deba dotarse de unas armas más
políticas que metodológicas, técnicas o científicas.
• Entendido: Precisamente, una forma de influir en otros es desplegando un
conocimiento erudito, tanto de Scrum y aspectos metodológicos como del campo de
aplicación en el que se esté desarrollando el trabajo.
El equipo
Llega el turno de los verdaderos protagonistas de Scrum: los componentes del equipo de
trabajo. No tienen un rol específico asignado, pero sin ellos es imposible llevar a buen puerto
el trabajo, proyecto o actividad donde se estén aplicando los principios de Scrum.
La forma tradicional de desarrollar cualquier trabajo se basa en la jerarquía, la autoridad
formal y la estructuración. Frente a ella, el equipo en Scrum se auto-organiza, tiene la
responsabilidad final por el éxito del trabajo y es capaz de asumir cualquier actividad dentro
de las necesarias para desarrollar el proyecto.
Estas características imponen ciertos límites al equipo. Por ejemplo, de tamaño: hay un
límite máximo de 10 a 12 personas a partir del cual debe sopesarse la división y el paso a una
versión extendida de Scrum (o Scrum of Scrums). Los miembros del equipo deben tener un
elevado grado de compromiso, lo que es especialmente cierto a la hora de planificar,
momento en el que hay que establecer un acuerdo entre las demandas del Product Owner y lo
que va a ofrecer el equipo al final de cada Sprint.
Figura 2.5. Scrum significa “melé”, una jugada que requiere de la colaboración y el
empuje de todo el equipo.
El coach
El proceso
Sprint 0
Es el momento en el que se definirá la misión del trabajo que se va a realizar, así como las
herramientas que se usarán y el equipo que trabajará con ellas para alcanzar el objetivo final
del trabajo.
El Sprint 0 es una etapa muy importante y de duración variable, pero no indefinida. No
debería escatimarse tiempo ni esfuerzo a desarrollarlo: hay que verlo como una inversión que
ahorrará muchos problemas y quebraderos de cabeza futuros.
El Sprint 0 tiene muchos objetivos, aunque podemos destacar dos por encima de los
demás: definir las condiciones y el contenido del trabajo o alcance.
Las condiciones que van determinar el alcance del proyecto incluyen los recursos
(financiación, personas, herramientas) necesarias para desarrollarlo, así como el marco
temporal con la distribución de entrega de resultados. Al final del Sprint 0 debe quedar claro
si el proyecto es viable y si cuenta con los medios y el apoyo necesarios para llegar a buen
fin.
El otro gran objetivo del Sprint 0 es definir el contenido del trabajo y eso se consigue por
medio de una primera versión del Product Backlog, que contiene la lista de grandes trabajos
y tareas que van a desarrollarse en el transcurso del proyecto.
El Product Backlog va a recoger la visión de los requisitos principales del proyecto:
principales funcionalidades o resultados, productos generados, definición de la interacción
con el usuario, si la hay, entre otros.
El Product Owner es el gran protagonista de esta etapa: debe conseguir los apoyos y
recursos necesarios para llevar a cabo el trabajo, seleccionar equipo y Scrum Master, acordar
alcance y fechas con el cliente y, en general, establecer las condiciones para llevar a buen fin
del proyecto que se quiere desarrollar.
Sprints
Una vez arranca el proyecto, su desarrollo se divide en iteraciones, etapas o Sprints. Cada
una de estas etapas sigue una secuencia muy precisa de reuniones que tiene como principal
cometido garantizar el cumplimiento de los compromisos del equipo de trabajo y el Product
Owner.
Una de las decisiones clave del Sprint 0 es elegir la duración que inicialmente tendrá cada
Sprint. Hay muchas opiniones al respecto, aunque lo más habitual es que oscile entre 1 y 4
semanas, generalmente 2 o 3. Además, hay que fijar un calendario de releases o entregas, es
decir, los momentos en los que, pasado un número determinado de Sprints se va a ofrecer al
cliente o destinatario del trabajo, un resultado parcial antes de completarlo.
Si el Product Backlog recoge el conjunto de los trabajos que se van a realizar para
alcanzar los requisitos del cliente, hay un subconjunto, el Sprint Backlog, que contiene
aquellos que se van a llevar a cabo durante la duración de un Sprint determinado. El
contenido de este Backlog es un compromiso entre las necesidades del cliente expresadas por
medio del Product Owner y la capacidad de producción del equipo de trabajo. El alcance del
trabajo de cada Sprint se define a partir de los objetivos que fije el Product Owner, de la
priorización que haya hecho de las tareas en el Product Backlog y del compromiso que haga
el equipo acerca de aquellas que finalmente llevará a cabo.
El Sprint tiene tres etapas diferenciadas y marcadas por una serie de reuniones: arranca
con Sprint Planning (aunque previamente el Product Owner, con la ayuda del Scrum Master,
haya revisado y priorizado el backlog), se desarrolla en el tiempo que se haya fijado con
reuniones diarias o Daily Meetings y termina con una reunión de Review y otra de
Retrospectiva. Estos son los otros hitos del proceso que vamos a revisar a continuación.
Sprint Planning
Al comienzo de cada Sprint o iteración, hay que dedicar un tiempo a planificar el trabajo
que se va a hacer. Antes de la reunión, el PO (que podría contar con el apoyo del Scrum
Master) revisa el Product Backlog para asegurarse de que están incluidas todas las historias
de usuario (requisitos en lenguaje de negocio en que se divide el conjunto de la actividad)
que le gustaría ver incluidas en la próxima iteración, todas ellas están correctamente descritas
y priorizadas.
Ese Backlog priorizado es el punto de partida para el trabajo de planificación. La reunión
tiene que terminar con unos objetivos claros: conseguir la lista de historias a la que se
compromete el equipo a realizar, o Sprint Backlog; un propósito global y claro para el Sprint
que sugiere el Product Owner; el compromiso firme del equipo para realizar las historias que
ha seleccionado; la estimación que hace el equipo de la complejidad o esfuerzo preciso para
desarrollar cada una de las historias, lo que además da la velocidad o capacidad total de
trabajo del Sprint; y que todos los miembros del equipo entiendan el contenido y alcance de
cada una de las historias que propone el PO.
El Sprint Planning se divide a su vez en dos etapas. En la primera, con el concurso del
Product Owner, se revisa cada historia del Product Backlog siguiendo el orden de la
priorización. El PO las explica, detalla los criterios de aceptación que servirán para validar el
trabajo realizado y atiende a las preguntas, dudas y aclaraciones que plantee el equipo. Para
cada una de esas historias de usuario, el equipo hará una estimación, lo que servirá para
delimitar el alcance del Sprint una vez se conoce cuál es la velocidad o capacidad habitual
del equipo.
Esta estimación la hace el equipo usando algunos de los muchos sistemas ideados para
ello. La estimación se valorará como esfuerzo necesario para realizar cada historia de
acuerdo con el equipo. Una técnica muy habitual es la llamada Planning Poker, en la que se
usan unas cartas marcadas con números para que se asigne una valoración a cada historia
partiendo de lo que cada miembro del equipo vote usando su criterio y obteniendo el valor
final como una valoración media, un compromiso entre todos, o cualquier otro criterio
establecido de previo acuerdo.
Un elemento muy importante de cada historia de usuario es el criterio de aceptación que
define qué es lo que permite determinar si la historia se ha completado o no.
Cuando se ha alcanzado un número suficiente de historias como para ocupar el trabajo del
equipo durante el Sprint, se procede a su división en partes más manejables o tareas. Este
trabajo lo hace el equipo de forma autónoma y permitirá desmenuzar cada historia en un
conjunto de tareas más manejables y expresadas en el lenguaje del dominio de trabajo
(arquitectura, desarrollo software, marketing o el que aplique en cada caso). El equipo
incluirá para cada tarea una definición de completitud, definición de hecho o Definition of
Done, que es más concreta y describe los criterios que permitirán determinar desde un punto
de vista técnico si se han completado o no.
El conjunto de historias de usuario y las tareas en las que se dividen conforman el Sprint
Backlog, la definición del trabajo que se va a desarrollar durante la iteración o Sprint.
Una vez arranca el trabajo, la mecánica es simple y repetitiva: cada miembro del equipo
selecciona la siguiente tarea que va a abordar de acuerdo con el resto de los miembros (para
evitar que, por ejemplo, dos personas seleccionen la misma) y siguiendo la priorización del
Backlog establecida por el PO. Usando las herramientas que se hayan seleccionado para el
trabajo, marca la tarea para indicar que está en curso, va reflejando su evolución e informa
cuando se completa.
Para evitar que se pierda la necesaria sincronización entre el trabajo del equipo, mantener
el ritmo y “tensión” y para fomentar la comunicación interna, Scrum propone el Daily
Meeting o Scrum diario. Se trata de una reunión diaria (salvo que se acuerde otra frecuencia,
y eso en circunstancias justificadas) en la que participan todos los miembros del equipo y el
Scrum Master, y a la que puede asistir el PO. En ella, cada miembro del equipo detallará qué
actividades ha realizado, cuáles son las que piensa abordar a continuación y qué
impedimentos hay para continuar su trabajo.
El SM participa como facilitador: no dirige la reunión dando a paso a cada miembro del
grupo, sino que su cometido es el de “empujar” y facilitar su desarrollo. También es muy
importante que tome nota de los impedimentos que haya para seguir su solución.
La Daily Meeting es una reunión muy breve, en la que deben dejarse de lado las
discusiones de detalle para que sean tratadas en otro momento por las personas directamente
implicadas.
Truco:
Un riesgo habitual es que las reuniones diarias se alarguen más de lo conveniente. El
Scrum Master deberá buscar formas de dinamizarlas: esto puede desde simplemente
insistir en recalcar el contenido, duración y alcance, hasta llegar a forzar que se hagan de
pie, para que la incomodidad impida que se extiendan sin razón.
Las Daily Meetings permiten tomar el pulso del trabajo y detectar en momentos muy
tempranos problemas que de otro modo podrían crecer y convertirse en obstáculos serios.
Con ellas, se garantiza un conocimiento actualizado del estado de los trabajos por parte de
todos los miembros del equipo, lo que es una forma de incrementar su grado de compromiso,
la sincronización y la auto-organización.
Review o revisión
El final de cada Sprint o iteración está marcado por una revisión del resultado y de la
forma de alcanzarlo. De lo primero se encarga la Revisión o Review.
Se trata de una reunión que se hace con la participación del Scrum Master, del conjunto
del equipo, del Product Owner (es decir, el equipo Scrum) y de los stakeholders (clientes,
usuarios y quien tenga interés y pueda aportar valor al producto o proyecto).
En ella, se repasa el trabajo realizado a través de los resultados obtenidos (programas,
documentos, diseños o el formato que se haya acordado). En este punto es donde destaca la
relevancia de los criterios de aceptación: la descripción de los resultados esperados y por qué
se ha alcanzado o no el objetivo de cada una de las historias incluidas en el backlog.
Siguiendo el orden de priorización de las historias incluidas en el Sprint Backlog, los
miembros del equipo implicados van exponiendo el resultado alcanzado. Esta exposición de
resultados debe ser de la forma más gráfica y directa posible, de manera que, si se puede
demostrar el resultado, se haga así antes que enunciarlo o describirlo.
A la vista de los resultados, el Product Owner y el conjunto de los stakeholders (si están
presentes) determinan si se han alcanzado o no los objetivos propuestos inicialmente y
expresados en los criterios de aceptación. Si no es así, se identifican claramente los
elementos pendientes de completar para que sean abordados en un próximo Sprint, salvo que
se cambie la prioridad.
De esta reunión va a salir la lista de historias de usuario completadas y pendientes. Las
primeras sumarán a la hora de calcular la velocidad real, que solo incluye los trabajos
completamente realizados. Aunque solo quede pendiente una mínima tarea de las muchas en
las que se haya podido dividir una historia, la historia de usuario se considerará incompleta.
Esta es una forma de forzar una inclinación hacia completar el trabajo y no arrastrarlo sprint
tras sprint sin poder cerrarlo.
Al final de la revisión de los resultados del Sprint, el PO decidirá si el objetivo general
propuesto para el Sprint se ha alcanzado o no.
Retrospectiva
Para muchos, esta es la reunión más importante de Scrum, la que define el espíritu de esta
forma de desarrollar proyectos. Si uno de los principios de Scrum es la mejora continuada, la
retrospectiva es el medio para analizar la forma en la que se hacen las cosas y cómo mejorar
el conjunto del proceso. Requiere la participación activa de todo el equipo, ya que es una
reunión pensada para él, para examinar su funcionamiento y mejorar su trabajo. Cuenta con
el Scrum Master como facilitador y encargado de seguir el cumplimiento de los principios de
Scrum (aunque en ocasiones es positivo que sea otro miembro del equipo). En principio se
trata de hacer un análisis del proceso, no de los requisitos y resultados de negocio, pero, si el
PO afecta o se ve afectado, es conveniente que asista.
Figura 2.7. La retrospectiva es un momento para revisar el camino andado y mirar hacia el
futuro.
Nota:
Las retrospectivas deben ser un momento para la colaboración positiva que permite
encontrar soluciones entre todos los miembros del equipo. No deben ser nunca un proceso
de búsqueda de culpables o una reunión cuyo objetivo sea el de destacar problemas. No
hay que caer en la autocomplacencia, pero tampoco forzar la aparición de problemas que
quizá no sean reales.
Periodo de mejora
El Improvement Period o periodo de mejora es una etapa opcional tras el Planning, cuyo
propósito es reflexionar y aplicar cambios que mejoren el proceso. La idea es que el equipo
dedique ese tiempo a revisar y mejorar la forma de trabajo, no a continuar con el desarrollo
del proyecto.
Se trata de un concepto que no todos los autores contemplan y que no es habitual
encontrar entre los equipos que aplican Scrum.
Refinamiento
Entidades
• Una Tarea es un trabajo concreto, idealmente realizado por una persona dedicando
entre medio y tres días, es decir, siempre dentro de unos límites muy concretos. Las
tareas se expresan en el lenguaje del dominio técnico del trabajo (construcción naval,
programación de teléfonos móviles, urbanismo, marketing...), no en el lenguaje de
negocio del cliente; durante la segunda etapa del Sprint Planning, los miembros del
equipo las crean subdividiendo las historias de usuario en unidades más manejables.
• Las Historias de Usuario son la definición en lenguaje del negocio que hace el
Product Owner de los requisitos del trabajo. Esos requisitos se analizan y desmenuzan
en unidades más pequeñas, abordables en el curso de un Sprint por el equipo. En el
proceso de estimación del Sprint Planning es cuando el equipo determina la
complejidad de la historia, de acuerdo con la explicación que haga el PO y si es posible
abordarla o no en el transcurso del Sprint. Se puede fijar un valor límite dependiente de
la velocidad media del equipo, a partir del cual se supone que la complejidad de la
historia excede al Sprint y debería subdividirse o variar su alcance.
Las historias de usuario son la unidad básica de cuenta del Sprint. La suma de los
puntos de historia del Sprint determina la velocidad del equipo y solo se consideran
completadas cuando se han realizado todas sus tareas y el Product Owner ha aceptado
sus resultados por completo.
• Las Épicas son agrupaciones de historias de usuario que definen grandes bloques
operativos dentro de un proyecto. Pueden ser el sistema de facturación en una tienda
electrónica, la estructura de un edificio, la operativa en oficina de una nueva cuenta
corriente, el alcantarillado en un proyecto de urbanización, el motor de un vehículo, la
instalación eléctrica en el diseño de una fábrica, etc.
A veces, las épicas no son suficientes y hay que crear agrupaciones aún mayores, como
los Temas, que definirían las grandes ideas o requisitos del cliente. A veces, por
simplificación, y porque el proyecto no es tan grande, se simplifica usando solo épicas y no
temas. En el diseño de un barco, los temas podrían ser las grandes características que lo
definen como capacidad de carga, autonomía, calado y dimensiones máximas, tripulación o
coste de combustible. Una épica podría ser el diseño de la planta motriz con unos requisitos
concretos de consumo, potencia, peso, volumen, tecnología... Una historia dentro de ella
sería el diseño concreto de la alimentación del motor, mientras que una tarea podría ser una
serie de pruebas de presión para seleccionar la tubería (material, sección, aislamiento) más
apropiada para llevar el combustible al motor.
En ocasiones, el equipo necesita incluir trabajos necesarios para el proyecto pero que no
forman parte de los requisitos de usuario. Eso no supone ningún inconveniente, siempre y
cuando se argumente su necesidad y se negocie con el PO la priorización adecuada. Este tipo
de historias de usuario pueden incluir necesidades de formación, de evaluación de
herramientas y técnicas o de creación de componentes comunes (una librería software, una
bancada de motor, armar una impresora 3D para prototipado) necesarios para continuar el
trabajo, aunque no se reflejen en los requisitos de usuario.
Artefactos
• Product backlog o pila de producto: Se trata de la lista que contiene todas las
entidades que definen el trabajo del proyecto. Gestionado por el Product Owner, refleja
la visión del cliente, por lo que las entidades que contiene se refieren a los requisitos:
épicas, temas e historias de usuario. El PO lo ordena de acuerdo con la prioridad de las
necesidades de negocio. La unidad de medida son los Story Points o puntos de historia,
que reflejan la medida del esfuerzo asignada por el equipo en el momento de la
planificación.
La descripción de cada historia y de los criterios que definen su cumplimiento es una
parte crítica de la creación del Product Backlog. Por eso, su creación es un trabajo muy
importante dentro del desarrollo de Scrum y, aunque es posible añadir y modificar su
contenido, es fundamental partir de un conjunto lo más amplio y detallado posible, que
describa al menos todos los elementos fundamentales del proyecto. Es una buena
práctica usarlo tanto para recoger el trabajo futuro, pendiente de realizar, como para
guardar un rastro de las actividades completadas.
• Sprint Backlog o pila de Sprint: Se trata de la lista de los trabajos que se van a
realizar en una iteración o Sprint determinado. Por ello, contiene las historias de
usuario y, sobre todo, las tareas que el equipo, que es quien gestiona este backlog, ha
identificado en el momento de la planificación de detalle.
La unidad de referencia es el tiempo, ya que las tareas concretas se pueden estimar con
más exactitud. También la descripción es más concreta, desglosando las acciones que
deben completarse en cada tarea, y no en forma de requisitos, como ocurre con las
historias de usuario.
El Sprint backlog se puebla a partir del Product Backlog, seleccionando historias en
función de la priorización hecha por el Product Owner. El equipo estima cada historia,
rechazando para que sean divididas aquellas que excedan una complejidad determinada
(generalmente indicada por un número alto de puntos, como 13 o más) y añadiéndolas
al backlog hasta que se alcanza una suma de Story Points en las historias similar a la
velocidad habitual del equipo.
Cada historia seleccionada se divide a su vez en tareas, descritas en el lenguaje del
dominio técnico del trabajo, pequeñas, detalladas y con una estimación de tiempo para
su realización. Por regla general, se asume que cada tarea debe poder ser realizada por
una persona.
• El Impediments backlog o pila de impedimentos: Es un repositorio que recoge todo
aquello que impide alcanzar los objetivos del proyecto, lo que incluye también
degradar o amenazar la calidad del producto final.
Este repositorio es gestionado por el Scrum Master y se mantiene actualizado a lo largo
del Sprint con todos los impedimentos que se detecten y que se manifiesten en la Daily
Meeting. Estos impedimentos se priorizan para su resolución de acuerdo con el
impacto que tengan en las actividades del proyecto.
Los otros artefactos importantes de Scrum son las gráficas. Por encima de todas hay una
que representa la evolución del trabajo: es la llamada burn-down chart. En ella, se representa
en un eje el tiempo X (u horizontal) y en el otro Y (o vertical) la cantidad de trabajo que se
debe realizar. Esa cantidad de trabajo puede medirse en puntos de historia o como la suma de
entidades (tareas e historias de usuario) que se van a realizar a lo largo del Sprint o del
conjunto del proyecto (lo que es menos habitual). Una línea recta marca la evolución ideal
del trabajo: se sitúa al principio en el número total de puntos o entidades que se van a
resolver y llega hasta el final del periodo señalando cero, o que se ha resuelto
completamente.
Diariamente, el SM se encarga de actualizar la cantidad de trabajo pendiente. Puede
ocurrir que en un día no se resuelva gran cosa (e incluso aumente, aunque no sea muy
ortodoxo, cuando ha sido necesario añadir más tareas al Sprint Backlog), mientras que en
otros se avance mucho. La distancia entre la evolución real y la ideal o estimada va a ir
señalando si el trabajo se está realizando a un ritmo adecuado o si hay algo que corregir en el
proceso. Se trata de una herramienta básica de consulta diaria.
Velocidad
La velocidad es un concepto de Scrum que define la capacidad del equipo para realizar sus
actividades. Se trata de una herramienta para la estimación y medida del proceso que debe
usarse con precaución. Esto se debe a su naturaleza arbitraria y subjetiva: los intentos de
medir el trabajo han fracasado históricamente, incluso en campos tan controlables como el
desarrollo de software (parece fácil cuando se pueden contar, por ejemplo, las líneas de
código). Hay que tener en cuenta que, cuando hablamos de la dificultad de medir un trabajo,
nos referimos a aquellos no repetitivos con un grado de incertidumbre alto, que implican
creatividad e innovación.
En Scrum, la medida de la velocidad, o capacidad de trabajo del equipo de trabajo, se basa
en la estimación que hace el propio equipo de la complejidad (e incluso del esfuerzo). Esa
estimación es un valor intuido a partir del conocimiento que se tiene de la actividad (que
puede no ser correcto) y de la experiencia previa del equipo (que puede no ser la adecuada)
complementado con todo tipo de distorsiones e interferencias: por ejemplo, un cliente que
presiona puede forzar una estimación demasiado optimista.
Hay muchas técnicas para obtener la medida de la velocidad. La más habitual es la
estimación de las historias de usuario durante el Planning y la recopilación de las historias de
usuario efectivamente cerradas en la Review. Esa medida puede basarse en cualquier medio a
condición de que el criterio seguido sea siempre el mismo por todo el equipo y a lo largo de
todo el proyecto.
Al tratarse de una estimación más intuida que medible, no tiene sentido alguno establecer
unas reglas muy estrictas sobre significado de los valores o la forma de obtenerlos. En este
caso, la experiencia continuada ayudará a afinar progresivamente la estimación, aunque
cualquier cambio en el entorno (el equipo, las herramientas, las técnicas, la forma de expresar
los requisitos de cliente) tendrá impacto sobre el acierto de la estimación.
La velocidad estimada para un Sprint es la cantidad de Story Points o puntos de historia
obtenidos de la valoración de complejidad que hace el equipo de las historias de usuario
incluidas en una iteración.
Al terminar la Review, la suma de los puntos de las historias completamente cerradas de
acuerdo con el Product Owner es el valor de la velocidad real alcanzada por el equipo en ese
Sprint.
Si la valoración se hace con criterios similares a lo largo de los distintos Sprints y el
entorno no varía dramáticamente, se debería ir viendo un valor estable de velocidad
alcanzada por el equipo, valor que servirá para estimar en el Planning la cantidad de trabajo
que se puede realizar en cada Sprint.
Aunque es posible jugar con estos números para obtener todo tipo de indicadores, su
fiabilidad es muy baja. Como mucho se puede llegar a corregir el valor de velocidad con la
cantidad de esfuerzo teórico (número de personas y jornadas laborales) en cada Sprint, de
forma que dos valores de velocidad similares no se consideren de la misma forma si en un
Sprint, por ejemplo, falta la mitad del equipo.
El uso de la medida de velocidad debe ser interno y circunscrito al seguimiento del trabajo
del equipo y como ayuda para su estimación. Tratar de usarlo como medida objetiva (por
ejemplo, para comparar a un equipo con otro) solo dará lugar a que surjan malas prácticas,
como podría ser sobrevalorar la complejidad de cada historia para así mostrar una velocidad
más alta.
La evolución del trabajo durante el Sprint se visualiza con algunas herramientas, que se
comentan en el siguiente apartado.
Herramientas
Scrum es una ayuda en nuestro trabajo, por lo que no debe suponer más esfuerzo, más
complicaciones ni problemas. Si la gestión de artefactos y gráficas puede suponer una
dificultad para la adopción de Scrum, conviene apoyarse en las herramientas disponibles.
Muchas de estas herramientas son sofisticadas aplicaciones con versiones para dispositivos
móviles, pero las hay muy simples igualmente útiles.
Una de las más conocidas, posiblemente la más sencilla y útil, es el uso de paneles con
etiquetas adhesivas o post-it. Por término general, se usan como una representación del
Backlog, especialmente del Sprint Backlog. En un panel, que puede ser móvil, o la propia
pared, se dibujan unas áreas que representan los distintos estados por los que pueden pasar
las historias de usuario y tareas (pendiente de iniciar, en curso, terminada, impedida) y unos
post-it que representan cada entrada en el Backlog, que se colocan en el área que le
corresponda.
Cuando se va a iniciar una tarea, se mueve del área “pendiente de empezar” al área “en
curso”. Si el panel se coloca en un lugar bien visible, todas las personas involucradas en el
proyecto podrán conocer de un vistazo su estado.
Usando símbolos y distintos colores para letras o etiquetas, se puede enriquecer la
información, añadiendo datos sobre los componentes a que se refieren, quién trabajan en ello,
a qué release corresponde, etc.
Otros diagramas, como el burn-down chart, también pueden construirse usando paneles,
papel y rotuladores, aunque en este caso puede resultar más complicado reflejar los cambios.
Por ello, existen herramientas informáticas que permiten reflejar el contenido y estado de un
proyecto desarrollado con Scrum. Las más básicas son hojas de cálculo en las que cada celda
refleja una tarea, historia, épica o tema, y que se disponen en columnas que representan
estados, componentes, entregas o cualquier otra clasificación de la información relevante
para el proyecto.
Hay herramientas más sofisticadas, que incluyen modelos que reflejan los elementos
básicos de la metodología, permiten participar a todos los miembros del equipo Scrum
(equipo, más PO y SM) y que representan todos los distintos artefactos.
Figura 2.10. Herramienta informática para la generación del burn-down chart de Scrum.
Sin embargo, hay una herramienta extremadamente simple y efectiva, cuya eficacia ha
sido constatada por años de uso de Scrum: mejorar la fluidez en la comunicación entre el
equipo y todos los involucrados en el proyecto haciendo que compartan un mismo espacio
físico.
El entorno de trabajo
A continuación
Los siguientes capítulos se dedican a mostrar detalladamente todos los conceptos
esbozados en este. Puede usar el contenido de este capítulo como una guía rápida o referencia
del resto del contenido de esta primera parte, pero es muy importante que estudie
detalladamente los demás capítulos. Allí es donde conocerá toda la riqueza de Scrum y
descubrirá lo útil que puede resultar para desarrollar proyectos de manera productiva y con
calidad.
Además, para hacer más fácil la comprensión de los conceptos presentados, se hará
referencia a un proyecto real y concreto: la elaboración de este libro que tiene en sus manos.
16 Busque el libro y, en él, descargue los complementos que lo acompañan.
17 Centrarse más no quiere decir dejar de lado los otros factores, solo dar más relevancia a los primeros.
Tenemos un proyecto: escribir un libro. Ese proyecto tiene unos plazos aproximados, un
esbozo de contenido, unos autores iniciales, un título provisional... Pero más allá de estos
precarios elementos iniciales es un lienzo en blanco.
Hemos convencido a nuestro editor de que merece la pena aprovechar nuestra experiencia
en el campo de los métodos ágiles y, en particular, Scrum, para publicar un texto divulgativo,
en castellano. Pero no seríamos consecuentes con nuestro propio conocimiento y experiencia
si no nos apoyáramos en estas técnicas para llevar a cabo nuestro proyecto.
Por ello, antes de empezar a escribir una sola palabra, vamos a dedicar un tiempo a
diseñar este libro. Trazaremos las grandes líneas de su contenido, identificaremos los trabajos
que vamos a realizar, organizaremos esta actividad. Todo esto lo haremos en función de su
grado de concreción y de la prioridad que tiene para el resto del proyecto. En pocas palabras,
vamos a empezar este libro por el Sprint 0.
Cuando es el momento de empezar a crear algo nuevo, en cualquier ámbito, existen una
serie de requisitos y una preparación mínima. Scrum no es una excepción y necesita de una
gestación que facilite el resto de las actividades que se realizarán posteriormente.
En muchos ámbitos de Scrum, a este proceso de gestación o preparación inicial, que
recoge todas las actividades necesarias para iniciar las iteraciones de trabajo, se le llama
Sprint 0, Sprint Zero o Inception Sprint.
Nota:
Muchos puristas de Scrum prefieren no asociar esta fase con la palabra Sprint. La razón
es que al final de un Sprint siempre se espera un incremento de valor para el cliente, que
en esta fase no se suele producir. Así, Ken Schawber, co-creador de Scrum, define el
término Sprint 0 como un término mal usado para describir la planificación que tiene
lugar previa al primer Sprint.
Más allá de las discusiones acerca de la idoneidad del término, lo que está completamente
asimilado y acordado es que tiene que existir una fase inicial. En esta fase, se prepara toda la
logística, mecánica y metodología a seguir durante todo el desarrollo del proceso de creación
o proyecto. ¿Quién será el desencadenante de esta gestación? El Product Owner.
¿Qué es un PO?
En Scrum, el PO es la voz del cliente, es el visionario que aúna las necesidades de todos
los clientes y personas a las que les puede afectar o resultar relevante el producto o proyecto
en desarrollo. A este conjunto de personas se les conoce colectivamente como stakeholders.
El PO es el responsable de inspeccionar y adaptar estas necesidades, al esquema de trabajo
definido en Scrum. Esto quiere decir que constantemente estará creando nuevos requisitos y
los priorizará para que el equipo de trabajo pueda manejarlos y llevarlos a cabo. Estos
requisitos se pueden crear continuamente porque el PO mantiene una Visión actualizada del
producto o proyecto. Esta visión, una vez convertida en el objetivo perseguido, representa
todas las características que aportan valor al usuario o cliente final.
Podría parecer que la responsabilidad del Product Owner simplemente se queda en
trasladar los requisitos de los clientes al equipo de trabajo. De hecho, esto ocurre en muchos
casos, restando potencial a esta forma de trabajar. El papel del PO acarrea muchas más tareas
o responsabilidades que suelen pasar desapercibidas y, a menudo, son ignoradas. El PO es el
estratega del producto, se encarga de definir una estrategia a largo y corto plazo para
garantizar el éxito del producto, ya que es el responsable final del éxito del proyecto y de su
ROI (Retorno de inversión). Por esta razón, el Product Owner debe tener a su alcance todos
los medios y poder de decisión para poder materializar ese éxito.
Además, cuando se realiza un proyecto, junto a los intereses del cliente final, se generan
muchas expectativas por parte de otras personas (gestores, proveedores, etc.) que deben ser
gestionadas correctamente. Es responsabilidad del Product Owner representar al producto
frente a todas estas personas o entidades, incorporando toda la información derivada de ellas
como requisitos del producto. Esta responsabilidad requiere unas capacidades especiales de
comunicación y negociación para poder conseguir siempre lo mejor para el producto o
proyecto en desarrollo.
También es interesante remarcar que el Product Onwer, como estratega del proyecto, debe
asumir ciertas tareas de gestión sobre él. Estas tareas implican definir y actualizar el plan de
entregas del proyecto, como se verá en una posterior sección de este capítulo, o controlar que
el presupuesto para la ejecución del producto o proyecto sea el correcto.
El Product Owner tiene que guiar al equipo en la dirección correcta para que llegue a
donde el cliente quiere llegar. Desde este punto de vista, el Product Owner es un líder, pero
siempre sin perder de vista que es también un miembro de un equipo que tiene un interés
común. Como es fácil de imaginar, tener intermediarios siempre es un problema, así que lo
ideal sería siempre que el cliente fuera el Product Owner. En muchas organizaciones, no es
posible que el cliente sea el propio PO, por lo que se crea la figura del Proxy Product Owner,
como representante de los clientes aunando sus peticiones.
Nota:
Cuanta más gente exista entre el equipo y el cliente, más distorsión sufrirán los requisitos
y menos se parecerá el resultado final a lo que el cliente está esperando.
Nadie más que el Product Owner puede interferir en el guiado del producto. El equipo
solo debe “obedecer” las directrices definidas por el PO. Estas directrices no son órdenes, son
las prioridades y requisitos que están definidos en el Product Backlog o pila de producto, al
que se dedicará el siguiente capítulo. El Product Owner no guía el producto o al equipo
diciendo cómo hacer las cosas. Especifica qué se tiene que hacer y en qué orden para que el
equipo se autogestione y encuentre la mejor manera de llevarlo a cabo. El Product Onwer
reta al equipo y este se compromete y responde al desafío.
Precisamente, compromiso es una de las palabras claves en Scrum y ayuda a que se
diferencien los roles. Para visualizar los distintos roles, se suele usar una historia sobre un
cerdo y una gallina que dice así: Estaban un cerdo y una gallina hablando tranquilamente
sobre el futuro y la gallina le dice al cerdo: “¿Por qué no abrimos juntos un restaurante?”. El
cerdo le responde: “Muy buena idea, ¿cómo llamaremos al restaurante?”. Se hace un silencio
y finalmente responde la gallina: “¿Y si lo llamamos ‘Huevos con jamón’?”. “No, gracias,
esto tiene truco.”, respondió el cerdo. “Yo estaría totalmente comprometido, mientras que tu
sólo estarías involucrada”, explicó el cerdo.
El Product Owner es un papel comprometido al 100% con el equipo y con el producto.
“Es un cerdo”. Cualquier otro implicado en el producto o stakeholder (usuarios, marketing,
ventas...) son como las gallinas, podrán aportar mucho al producto o proyecto pero no
llegarán a estar comprometidos.
Nota:
Algunas veces se habla de pasar el test del pato al Product Owner. Este test dice que, si
andas como un pato, hablas como un pato y tienes plumas como un pato... eres un pato.
Este test viene a decir que, si no participas en las reuniones como Product Owner, el
equipo no te hace partícipe de las decisiones. Por esta razón, no tendrás potestad para
modificar el Backlog, ya que puede que no estés lo suficientemente comprometido. Eres
una gallina que no está desempeñando correctamente su papel.
El Product Owner no es un héroe solitario, no tiene por qué resolver todos sus problemas
por su cuenta. El Product Owner puede (y debería) contar con un equipo de producto al que
recurrir siempre que sea necesario. En este equipo puede haber desde analistas de negocio o
expertos en marketing hasta diseñadores de servicios.
La información de la Visión se puede manejar de manera interna, con todos los implicados
en el proceso de creación del producto o del proyecto, así como de forma externa para
transmitir cómo se quiere que se perciba lo que se va a crear. La Visión debe contener la
esencia de lo que se está creando y sus claves. Es la base o cimiento sobre los que se
construirá todo lo demás, por lo que debe ser clara y fácilmente comunicable a todo el
mundo. Es muy importante que la Visión sea un instrumento de comunicación, ya que será lo
que ayude al Product Owner a definir la dirección en la que todos los miembros del equipo
deberán empujar. El equipo remará rumbo a la Visión, manteniendo la motivación, si la
entiende y la comparte. Debe convertirse en un activo compartido del equipo. La Visión no es
solo la base para crear algo nuevo, sino que también será un instrumento vital para conseguir
presupuesto para su realización. También proporcionará un material de apoyo en las fases de
lanzamiento, venta y promoción del producto.
En resumen, la Visión es el origen y el final de nuestro proceso, ya que es lo primero que
se tiene que hacer para poder empezar a trabajar, pero también representa al punto al que se
quiere llegar y dónde terminará el proceso.
Es relevante matizar que la composición de la Visión dependerá mucho de lo que se
quiere crear. En el caso particular en el que se esté creando un producto, definir la Visión
implica resolver una serie de preguntas, que van a llevar a la creación de los dos elementos
básicos de una Visión de un producto: la propuesta de valor y el modelo de negocio (véase
también el capítulo 16 donde se habla de los canvas o lienzos de negocio, o el 15 donde se
expone el método Lean startup, creado precisamente para diseñar modelos de negocio, entre
otras cosas).
Definir la propuesta de valor implica responder una serie de preguntas relacionadas con la
manera en la que los usuarios finales del producto se beneficiarán del mismo. Ejemplos de
estas preguntas son:
Nota:
Hay que darse cuenta de que la propuesta de valor resalta el problema al que se dirige el
producto, más que a los detalles solución del problema. Los detalles de la solución se
empezarán a conocer cuando se inicie la creación del Product Backlog, como se verá en el
siguiente capítulo.
Por otro lado, definir el modelo de negocio implica responder una serie de preguntas
acerca de cómo los creadores del producto se beneficiarán de él. Ejemplos de estas preguntas
son:
Nota:
Un ejemplo muy claro de problemas en la definición de la Visión se pudo observar en la
burbuja de las empresas .com, en las que la Visión estaba creada con una propuesta de
valor definida, pero sin existir un modelo de negocio detrás de este.
Al introducir la Visión, esta se definía como un resumen de la imagen mental que se tiene.
Tiene que ser clara y concisa. Para garantizar estas propiedades, es útil someter a la Visión al
test del elevator pitch, moore elevator o discurso del ascensor. Este test dice que la Visión
debería poder expresarse en dos frases que pudieran ser comunicadas durante el tiempo que
se tarda en subir varios pisos en un ascensor. Este test también indica una plantilla que
debería poder aplicarse a la Visión como se explica en el libro de Geoffrey Moore, Crossing
the Chasm 21 . Esta plantilla tendría el siguiente formato:
• Para: ... .
• Que actualmente están desconformes con: ... .
• Nuestro producto es: ... .
• Qué ofrece: ... .
• A diferencia de: ... .
• Nuestro producto consiste en: ... .
El modelo de Kano
En la década de los años ochenta, el profesor Noriaki Kano elaboró una teoría sobre la
creación de productos y la satisfacción de clientes. En este modelo se diferenciaban 3 tipos
de características que un producto puede tener, sobre las cuales se puede analizar la
satisfacción del cliente. Estas funcionalidades se clasifican en:
Nota:
Las características no son de un tipo para siempre. Lo normal es que las características
inesperadas o emocionantes de hoy se conviertan en las básicas de mañana. Hace tiempo,
el mando a distancia de la televisión era algo novedoso, pero hoy día se considera como
una característica básica de las televisiones.
La siguiente imagen indica cómo se comporta el grado de satisfacción del cliente según el
cumplimiento de las necesidades, dependiendo del tipo de funcionalidad.
Como se puede observar, existe un área de indiferencia donde la presencia de una
funcionalidad en esa cuantía no afecta en ningún modo al usuario; a esta área se le denomina
zona de indiferencia.
Personas y escenarios
El concepto “Persona” representa a personajes o usuarios determinados, aunque ficticios,
que permiten entender de manera clara quiénes serán las personas que utilicen el producto. El
concepto “Escenario” representa a las situaciones posibles en las que las “Personas” usarán el
producto. Esta técnica ayuda a enriquecer la Visión, aportando información concreta de las
situaciones en las que los usuarios emplearán el producto. Esto permitirá extraer los atributos
más críticos del producto, según los escenarios que se definan.
Para crear las “Personas” y los “Escenarios”, se cuenta como base con la información
obtenida en las preguntas de la definición del concepto. Particularmente, en la información
recopilada para quién va a usar el producto y en qué situación se va a usar el producto.
Prototipos y mockups
Cuando se está creando algo nuevo, se intenta identificar las necesidades de los clientes y
usuarios potenciales escuchándolas. Este proceso se conoce como VoC (Voice of Customer) o
VdC (Voz del cliente). En muchos casos, el cliente no sabe cuáles son sus necesidades y se
utiliza un proceso denominado MoC (Mind of Customer) o MdC (Mente del Cliente), que
intenta interpretar la necesidad del cliente, aunque este no sepa expresarla. En este caso, la
creación de la Visión es parte de un proceso de descubrimiento, de adquisición de
conocimiento, mediante la interacción con el cliente. Es un proceso de inspección, feedback y
adaptación, que necesita de artefactos que exploren y presenten las posibilidades al usuario
de una forma tangible, aunque no sea real. A estos artefactos se les denomina prototipos o
mockups. Cuando estos prototipos entran en detalle en la experimentación e intentan
profundizar en la tecnología que se va a usar para implementar el producto, se denominan
spikes.
Se invita a los clientes a probar estos prototipos para obtener sus comentarios en una etapa
temprana y poder incorporar esta información a la Visión del producto. El resultado es un
producto más cercano y satisfactorio para el cliente final.
Nota:
Un ejemplo de esta aplicación de la regla se enuncia como el 80% de los programas que
tienes en el ordenador los utilizas el 20% de las veces, mientras que el 20% restante de los
programas los utilizas el 80% de las veces.
Una vez se obtenga esta experiencia de usuario, como parte de definición de la Visión,
será sencillo el proceso de crear la versión inicial del Backlog, como se verá en el siguiente
capítulo.
Nota:
La Visión no es algo estático que se crea en el Sprint 0 y ya no se modifica. Como parte
del proceso Scrum, es algo que se retroalimentará al final de cada Sprint y se irá
enriqueciendo a medida que el proyecto avance. Esta modificación de la Visión afectará a
todos sus elementos y estos se tendrán que ir actualizando.
Lo primero que se tiene que organizar es un equipo Scrum para la ejecución de la idea.
Los equipos Scrum están formados por el Scrum Master y un equipo multidisciplinar. Con
multidisciplinar se hace referencia a que es un equipo en el que se aglutinan todos los perfiles
necesarios para la realización de la Visión. En Scrum no se cuenta con varios equipos
especializados que van realizando sus tareas de forma secuencial. La idea es que todas las
operaciones se hagan por un mismo equipo. Por ejemplo, en un proyecto de desarrollo
software, en vez de tener un equipo de diseño gráfico, otro de desarrollo y otro de QA
(calidad) independientes que se pasan trabajo entre ellos, se tiene un único equipo con
distintos perfiles.
Nota:
Los equipos se podrían ir creando progresivamente según va avanzando la ejecución del
producto o del proyecto, pero se recomienda formarlo desde el principio. Creando el
equipo desde el inicio se integrará rápidamente y se le sacará más partido a alguna de las
técnicas de Scrum, como la medida de la velocidad.
Aunque parecería lógico que el Scrum Master fuera el primer papel que se va a cubrir, en
realidad no es así. Cuando se está creando un equipo en una empresa con cierta cultura agile,
lo ideal es crear el equipo y que sea este quien elija a su Scrum Master. Como se verá en
capítulos posteriores, el SM es el representante del equipo y está para servirlo. El liderazgo
que sustenta está basado en el ejemplo y en la confianza que el equipo mantiene en él.
Elegirlo antes de la creación del equipo y que este participe en la formación del equipo crea
un sentimiento de jerarquía contrario a las bases de autogestión y de “otorgamiento de
poderes” o empowerment al equipo.
Nota:
Cuando no hay una madurez en metodologías ágiles, el Scrum Master se suele elegir antes
que al equipo para facilitar el proceso de inicio del proyecto.
Ya que idealmente no se debería empezar por el Scrum Master, ¿por dónde se debería
comenzar? Dado que en la Visión se han tratado los temas sobre los que va a girar el
producto o proyecto, se puede conocer la temática o dominio sobre el que se quiere trabajar.
Lo ideal sería elegir un líder tecnológico o experto en la materia. El Scrum Master debe
conocer el dominio en el que se trabajará, pero no debe ser el líder tecnológico o experto. Su
prioridad como SM le restaría tiempo para esta otra labor. Una vez se cuente con el experto,
los otros perfiles del equipo podrán definirse de manera específica gracias al conocimiento
que este aporte. Además del conocimiento específico necesario para formar un buen equipo
agile, sus miembros deben tener una serie de cualidades, que harán que la capacidad conjunta
del equipo se maximice:
• Trabajo en equipo: Scrum trata de trabajar en equipo. Establece que el trabajo de dos
personas en equipo es más que la suma de sus dos trabajos por separado. Los
miembros que no sepan trabajar en equipo quedarán aislados rápidamente.
• Generosidad: No se trabaja por objetivos individuales. Los objetivos son los del
equipo. Por esta razón, es casi más importante ayudar a un compañero, si tiene
problemas, antes que terminar una tarea propia. No falla un miembro del equipo, falla
el equipo.
• Comunicación: Un equipo funcionando es un equipo sincronizado. La base de la
sincronización es la comunicación. Miembros aislados y trabajando por su cuenta no
aportarán valor al equipo.
• Capacidad de aprendizaje: Scrum se basa en el principio de revisar y adaptar. Para
hacer esto, es necesario aprendizaje constante y adaptabilidad. Sin esta capacidad, no
se podrá progresar en el equipo, convirtiéndose en un lastre para este.
Una vez se forma el equipo, es necesario encontrar un sitio para que trabaje. Lo ideal sería
que se compartiera un mismo espacio físico y que estén colocados cerca. Esta es la mejor
manera de que se fomente la comunicación que se está buscando para sincronizar el equipo.
Una sala para tener al equipo junto, donde puedan tener en las paredes todo el material
relacionado con el producto o proyecto y donde no molesten al resto de la empresa en sus
reuniones o discusiones, sería perfecto.
Nota:
Muchos equipos encuentran la solución para que la separación física no se convierta en
una barrera para su comunicación, usando salas de videopresencia, videoconferencia o
sistemas de mensajería instantánea.
Finalmente, es necesario dotar al equipo con todas las herramientas y materiales que
vayan a necesitar en la ejecución del proyecto o la creación del producto, desde ordenadores
hasta martillos, es decir, todo aquello que se prevea que van a necesitar.
Una vez se tiene el equipo seleccionado, un sitio para trabajar y todo el equipamiento
necesario, es un buen momento para conocer en detalle qué es lo que se tiene que hacer. Es el
momento de crear el Product Backlog o pila de producto como materialización de la Visión y
el objetivo que se quiere alcanzar. El Product Backlog es la colección de funcionalidades o
características que nuestro producto debe cumplir para alcanzar el objetivo deseado. Dada la
importancia de este repositorio de funcionalidad, se ha decidido dedicar el próximo capítulo a
explicar en detalle su creación y gestión.
Para poder tener un equipo sincronizado, es importante acordar cuál va a ser la forma de
trabajar. Esta viene definida por dos dimensiones: por un lado, se debe identificar cómo
trabajará el equipo desde el punto de vista de procedimientos; y, por otro lado, se debe
acordar cómo trabajará el equipo a nivel ejecutivo.
Desde el punto de vista de los procedimientos, durante el Sprint 0, se puede definir la
mecánica de trabajo que se va a seguir y las herramientas que se van a usar. Así pues, en este
periodo, se suelen decidir acciones como la duración de los Sprints, qué herramientas de
comunicación se van a utilizar, cuál va a ser el procedimiento para realizar las entregas o
cualquier proceso que se tenga que definir.
Es importante recordar el principio agile que habla de destacar siempre a las personas y
sus interacciones sobre los procesos y las herramientas. Se debe mantener siempre la máxima
simplicidad en la organización del proceso, ya que garantizará estar centrados en el foco del
proyecto o producto y no perder la atención en el seguimiento de procesos complicados.
Como dijo Leonardo da Vinci, “la simplicidad es la sofisticación suprema”.
Nota:
Existe una colección enorme de acrónimos que giran alrededor del concepto de mantener
soluciones lo más sencillas posibles del producto, que aparecen constantemente
referenciadas en las metodologías ágiles. Ejemplos de estos acrónimos son: YAGNI (You
Aren’t Gonna Need It), KISS (Keep it simple and Short) o DRY (Don’t repeat yourself).
Desde un punto de vista ejecutivo, hablando de la propia ejecución de las tareas para
llevar a cabo el proyecto o el producto, el equipo tiene que definir o coordinar cómo va a
trabajar para maximizar su sincronización. Aquí es donde se fijan los estándares, principios,
reglas o criterios que el equipo va a compartir.
Por ejemplo, si se analiza el desarrollo software, un equipo debe definir cuáles van a ser
sus estándares de codificación. Haciendo esto, el resultado de programación de todos los
miembros del equipo será similar y fácilmente entendible por sus compañeros. El fijar estas
reglas o principios tiene como objetivo minimizar las discusiones internas o el tiempo
perdido en dudas relacionadas con elementos, que no sean de la propia ejecución de las tareas
del proyecto o producto.
Una vez creado el equipo y definido qué se tiene que hacer, puede existir cierta
incertidumbre. Esta incertidumbre viene del salto que pueda existir entre el plano de
definición de los requisitos, que se ha realizado en la creación del Product Backlog, y la
forma de ejecutarlo. Puede que no se tenga una idea clara de cómo ejecutar los elementos que
se están solicitando para la creación del producto o la ejecución del proyecto. Para resolver
esta incertidumbre, durante el Sprint 0 se puede hacer un análisis inicial de la viabilidad de la
solución.
Para hacer este análisis, se puede realizar un diseño inicial de lo que se quiere construir.
En términos de software, se hablaría de un planteamiento inicial de la arquitectura, pero, si se
tratara de construir una casa de madera para pájaros, sería un boceto de los planos de la casa.
Nota:
Se habla de planteamientos iniciales, un esbozo para clarificar y resolver incertidumbres.
Estos diseños serán evolutivos e irán cambiando Sprint a Sprint con los avances en el
proyecto y los nuevos requisitos emergentes.
Con el objeto de realizar este análisis de viabilidad o resolver incertidumbre, también se
pueden hacer pruebas de concepto que vayan más allá de los meros diseños. Crear un
pequeño prototipo o prueba de concepto sobre alguna idea poco clara del Product
Backlog puede ayudar al equipo a ver más clara la solución final y estimar de manera
correcta la funcionalidad del Backlog. A estas pruebas de concepto prácticas que tienen
como objetivo aprender y probar un elemento del Backlog se les suele denominar Spike,
como ya se vio en la anterior sección. Los Spikes se harán de manera previa a la
ejecución de una funcionalidad del Backlog, sobre la que el equipo tenga un alto grado de
incertidumbre.
Nota:
A este triángulo se le denomina “el triángulo de hierro”.
Nota:
Es importante tener claro que no se pueden fijar las tres variables con valores
predeterminados, sino que al menos uno de los valores debe ser libre para que se adapte a
los otros dos.
Hipótesis A. Se parte de que lo que se quiere hacer es una entrega en una fecha
determinada. Esto implicará que, en esa fecha, se tendrá un subconjunto de los elementos
definidos en el Product Backlog por orden de prioridad. ¿Qué funcionalidades? Dependerá
del equipo.
Hipótesis B. Se parte de que lo que se quiere tener es un subconjunto de funcionalidades
determinado. Esto implicará que, para cubrir esa funcionalidad, habrá que esperar a una fecha
determinada. ¿Qué fecha? Dependerá del equipo.
Depender del equipo significa que, para unos determinados recursos, y por tanto un coste
conocido, el equipo puede sacar adelante una cantidad determinada de trabajo durante un
Sprint o iteración de trabajo. Decir esto es lo mismo que hablar de la capacidad del equipo
durante una limitación temporal fija y conocida. El equipo tiene para ese marco temporal lo
que se denomina velocidad. La velocidad, que se explicará detalladamente en el capítulo 5, es
un número que se obtiene de sumar los valores de la estimación del esfuerzo que se habían
supuesto al inicio del Sprint para cada uno de los ítems terminados del Backlog. Por lo tanto,
para poder definir un plan de entregas, es necesario conocer la velocidad del equipo y que los
elementos del Backlog estén estimados.
Por esta razón, el plan de entregas es dinámico, porque depende de la velocidad,
estimaciones y prioridades del Backlog que van cambiando Sprint a Sprint. Una vez se
cuenta con el Backlog priorizado y estimado, a partir de la estimación individual de los
elementos del Backlog, ya se podrá establecer con unas simples relaciones nuestro plan de
entregas.
Dado un Backlog como el de la siguiente figura, en el que se tendrán los elementos A, B,
C, D, E y F con unas estimaciones de 2, 2, 5, 8, 20, 20, respectivamente, y partiendo de la
base en la que se tiene un equipo que tiene una velocidad de 10 puntos por cada Sprint de 2
semanas, ¿cómo se podría hacer un plan de entregas?
Figura 3.7. Backlog de ejemplo.
Por ejemplo, si lo que se quiere es hacer una entrega cada mes, eso implicaría que cada 4
semanas se avanzaría (2x 10) 20 puntos. Si se va sumando ítems del Backlog, se podría decir
que en la primera entrega se liberarían los elementos A+B+C+D =17<20, en la segunda E=20
y en la tercera F=20.
Figura 3.8. Plan de entregas I.
Si, por el contrario, lo que se quiere es fijar la funcionalidad y una entrega de A+B+C,
otra de D+E y otra de F, eso implicará que se tendrá una entrega a las 2 semanas (A+B+C =9
<10), otra al mes y medio de la anterior (D+E=28 < 30) y, por último, otra después de un mes
más (F=20<=20).
A la hora de crear el plan de entregas, siempre se tiene que tener en mente el concepto de
producto incremental. Lo ideal es crear entregas del producto o proyecto que, de alguna
manera, puedan ser autocontenidas y representen incrementos del producto que tengan
sentido y aporten un valor de negocio.
En resumen, el plan de entregas se construye según la experiencia del equipo, por medio
de sus estimaciones, ya que son quienes realmente conocen cuánto se tarda en hacer las
cosas. Además, no será un plan fijo, se adaptará como todo elemento en Scrum después de
cada iteración.
Figura 3.9. Plan de entregas II.
Conclusión
En este capítulo, se ha visto cómo poder empezar un proyecto utilizando Scrum,
definiendo el rol del Product Owner como clave en el equipo Scrum. También se ha
analizado la importancia de la creación de la Visión como base del Product Backlog y como
herramienta de cohesión del equipo Scrum. Finalmente, se ha analizado cómo se debe crear
un plan de entregas que represente de forma coherente el avance del trabajo.
En lo que respecta a nuestro libro, el Sprint 0 concluyó con una serie de acuerdos
importantes para el trabajo en lo que concierne a la organización del mismo, las herramientas
de comunicación, las convenciones y, en general, el diseño del marco de trabajo. También
creamos un plan de entregas a partir de nuestra estimación inicial de capacidad de trabajo, un
diseño preliminar del contenido, incluso una prueba de concepto a partir de textos y gráficas.
Se han dado los primeros pasos para lanzar el proyecto de escribir el libro que está en sus
manos.
19 Agile Product Management with Scrum: Creating Products that Customers Love. Roman Pichler. Ed. Addison Wesley
(2010).
20 Strategy Maps: Converting Intangible Assets into Tangible Outcomes. Robert Kaplan y David P. Norton. Ed. Harvard
Business Press Books (2003).
21 Crossing the Chasm. Geoffrey Moore. Ed. Harper Business Essentials (1991).
En este capítulo aprenderá:
• Desconexión entre las personas que definen los requisitos y las personas que los llevan
a cabo.
• Interpretación ambigua de los requisitos.
• Cambio de los requisitos desde que se definen hasta que se implementan.
• Necesidad de incorporar nuevos requisitos durante el ciclo de vida del desarrollo de un
producto.
Nota:
Es importante fijarse en el tiempo de los verbos. Se usa “se está llevando a cabo” en lugar
de “se va a llevar a cabo”, ya que es un elemento que se mantiene vivo durante toda la
duración del proceso de implementación de un producto o proyecto usando Scrum.
En este capítulo, se va a revisar el concepto, la estructura y buenas prácticas para explotar
al máximo este artefacto de Scrum.
• ¿El PB contiene todos los requisitos del Producto?: No, son los que se conocen en
un momento dado del proceso. Los requisitos se descubren y emergen constantemente,
así que el Product Backlog de ayer posiblemente no sea el de hoy. Los requisitos
surgen para aportar valor de negocio a lo que se está desarrollando. Por esta razón, su
aparición en cualquier momento es más que bienvenida, ya que mejorarán la calidad
del producto.
Nota:
Normalmente el Big-Bang de los requisitos en el PB no aparece de la nada y es la
consecuencia lógica de haber estado trabajando en la visión del producto durante el
Sprint Zero.
• ¿Es una lista ordenada o desordenada?: Es una lista ordenada por prioridad. De
mayor prioridad a menor. Esta prioridad la define el Product Owner o responsable del
producto, que es el dueño de la pila de producto. La definición de esta prioridad se
hace en función de la relevancia desde el punto de vista del producto, la coherencia
para ir creando un producto incremental o la incertidumbre de algunos requisitos.
• ¿Quiénes crean estos requisitos?: Cualquier persona involucrada en el proyecto, con
el beneplácito del responsable del Backlog, el PO, puede crear elementos en él. Estos
requisitos se discuten, trabajan, aclaran y estiman por todo el equipo Scrum. Son
requisitos creados de forma colectiva y colaborativa.
• ¿Estos requisitos son de distintos tipos?: Los requisitos pueden tener tipos, esto suele
ser a gusto del equipo. Lo mínimo que debe tenerse es una división de requisitos
funcionales y no funcionales (u operacionales). Los requisitos funcionales se conocen
como historias de usuario que identifican una situación funcional del producto. Esta se
describe desde el punto de vista de un usuario que desempeña un papel determinado.
Los requisitos no funcionales están relacionados con cualidades que son necesarias
para el producto y no se pueden definir mediante historias de usuario.
Por ejemplo, si se quiere construir un columpio, una historia de usuario podría ser:
“Como usuario, me gustaría disponer de un elemento que me permita balancearme
respecto a un plano vertical 30º cuando me impulso con los pies”. Que el columpio
pueda soportar usuarios con un peso de hasta 80 kilos sería un requisito operacional.
• ¿Tienen los requisitos alguna otra organización, además del tipo?: Cada equipo
puede tener su propia organización, pero en la literatura sobre el tema se suele hablar
de una estructuración en Temas (Themes), Épicas (Epics) e Historias de usuario (User
Stories).
Las historias de usuario se han definido como requisitos funcionales expresados desde
el punto de vista de los usuarios. Las historias de usuario son ítems realizables dentro
del marco de un Sprint. Cuando el caso de uso que representa una historia de usuario
es tan grande que no puede ser abordado dentro de un Sprint se denomina épica.
Normalmente, es necesario romperla en varias historias de usuario que puedan ser
realizadas de manera más cómoda dentro de un Sprint.
Finalmente, los temas son etiquetas que permiten agrupaciones de historias de usuario
y épicas que hablan de un mismo tema o parte del producto.
Nota:
Tener el PB segmentado ayuda a trazar el trabajo que se está realizando o incluso dividir
el trabajo en grupos por temática.
Independientemente del formato del Product Backlog que se utilice, lo importante es que
sea algo que esté al alcance del equipo en todo momento y con el que todos los miembros se
sientan cómodos. Si no ocurre esto, el Product Backlog se dejará de usar como base del
trabajo con consecuencias negativas sobre el proceso global.
Nota:
Los requisitos no funcionales no tienen por qué aparecer como un ítem en un Backlog
específico y pueden ser un criterio de aceptación o comentario de un requisito funcional.
Para crear un buen Backlog, sus cimientos, los ítems que lo conforman deben ser sólidos.
Una buena medida para conocer la solidez de estos criterios es analizar si cumplen la regla
conocida como 3C o de las tres C. Este criterio enuncia las características que un ítem del
Backlog debe cumplir:
• Card: Su redacción debe poder entrar en una tarjeta o cartulina de tamaño reducido. La
consecuencia es que debe poder ser resumido en un espacio pequeño sin perder
sentido.
• Conversation: Debe ser el resultado de la conversación y negociación entre el
responsable del producto y el equipo. La consecuencia es que los elementos no
aparecen por arte de magia y son el resultado de iteraciones y explicaciones dentro del
equipo.
• Confirmation: Su cumplimiento debe ser de fácil confirmación. La consecuencia es que
los elementos del Product Backlog deben contar con un criterio que indique cuándo
han sido cumplidos y terminados.
Una buena práctica que puede ayudar a homogeneizar la información de todas las
historias de usuario suele ser definir una plantilla. Existe una plantilla que se usa
comúnmente y consiste en definir una historia de usuario de la siguiente manera:
“Como [usuario desempeñando un papel] me gustaría [deseo o funcionalidad] de tal
manera que [beneficio o valor que se aporta al usuario]”.
Nota:
Es importante definir el rol del usuario, ya que permite identificar los distintos beneficios
que el producto aportará a los usuarios segmentados por sus roles. También ayuda a
organizar los equipos de trabajo implementando historias de usuario por roles.
• Con Detallado se refiere a que las historias de usuario deben estar definidas de tal
manera que el equipo pueda entenderlas y estimarlas. Es importante destacar la
segunda parte de la cualidad, la que indica que este detalle debe ser el apropiado. Con
apropiado se quiere recalcar que solo los elementos que estén más cercanos a la parte
superior del Product Backlog son los que tienen que estar más detallados, mientras que
el resto de los elementos puede permanecer con un menor detalle hasta que suban
dentro del Backlog. La parte superior del Backlog indica cuáles son los elementos que
con más alta probabilidad se implementarán antes, de ahí la razón de tenerlos
preparados y detallados.
• Con Emergente se quiere destacar el carácter dinámico de un Product Backlog: puede
cambiar en cualquier momento para adaptarse al contexto y necesidades del producto o
proyecto en desarrollo. “Emergente” significa que en cualquier momento pueden
aparecer nuevas historias de usuario.
• Con “Estimado” se pretende reflejar que un Product Backlog va más allá de la lista de
cosas que se deben hacer para cumplir la visión de lo que se quiere crear. Los
elementos de un Product Backlog deben estar estimados. Esta estimación habla de la
comparación entre los elementos del Product Backlog. Si se tienen dos historias de
usuario estimadas en valor 2 significa que son del mismo orden de magnitud, mientras
que si existe otra de valor 1 implicará la mitad de esfuerzo que las anteriores. Aunque
ese valor de estimación, en sí, no sea un valor tangible en términos de tiempo o coste,
una vez se conozca cuántas historias de usuario en media se realizan en un
determinado marco temporal se tendrá una potente herramienta de estimación. Se
podrá usar esta predictibilidad para prever cuánto trabajo estará implementado en un
momento concreto de la ejecución.
• Por último, Priorizado habla de la necesidad de priorizar los elementos del Backlog, lo
cual ayudará a saber qué elementos tienen que estar detallados, dónde colocar los
nuevos ítems emergidos y ayudará a conocer cuándo se tendrá una colección de
funcionalidades gracias a la estimación de estas. La priorización es uno de los procesos
clave para ir entregando progresivamente el valor adecuado en el incremento de cada
iteración. En la siguiente sección se analizará detalladamente el proceso de
priorización.
Una imagen que representaría a un Product Backlog bien formado sería la de un iceberg
como se suele usar en la documentación relacionada con Scrum. Pequeño en su parte
superior, con sus historias de usuario reducidas, de tamaño medio en su parte central y de un
tamaño mucho más grande y desconocido por debajo del agua con sus épicas. Así debería ser
el Product Backlog, ya que se desconocerá qué es lo que puede venir durante el desarrollo del
proyecto.
Como se ha visto en la anterior sección, un Backlog priorizado sirve para organizar el plan
del equipo y conocer cuál va a ser la ruta de trabajo a corto plazo. La primera pregunta
importante es saber qué hay que priorizar o a qué nivel hay que hacerlo. Lo que se tiene que
priorizar son los elementos que se tienen en el Product Backlog. Estos elementos son las
historias de usuario y los requisitos no funcionales. Como ya se ha comentado, también se
tienen las épicas, que son elementos demasiado grandes para entrar en un Sprint, que suelen
tener un etiquetado que ayuda a agruparlos, denominado tema. Una buena recomendación es
priorizar desde el punto de vista de épicas y temas. Cuando se desgrana hasta el nivel de
historia de usuario que podría entrar en un Sprint, el detalle es tan bajo que resulta muy
complicado comparar los elementos entre ellos. Quedándose en un plano de más alto nivel en
los requisitos, se pueden analizar qué elementos pueden tener impacto en el producto de una
manera mucho más transversal y más sencilla.
Por ejemplo, si se está hablando de hacer una reforma en una casa y se plantea la
prioridad de colocar unos azulejos en una pared y poner el suelo del baño, posiblemente no
se sea capaz de ordenar una tarea por encima de la otra. Si se habla de reformar el baño o el
salón de una casa quizás sí se tenga un criterio más claro para priorizar.
El responsable de priorizar es el Product Owner, pero no tiene por qué estar solo en esta
tarea. El Product Owner se puede valer de su equipo de producto, stakeholders o del propio
equipo Scrum (se ha de recordar que está compuesto por el PO, Scrum Master y equipo de
trabajo) para crear una prioridad que refleje una visión más universal del producto.
Nota:
En muchos proyectos, esta prioridad la fija una sola persona basada en decisiones
subjetivas y no suele resultar efectiva. Cuanta más gente representativa para el producto
participe en esta priorización y en más criterios objetivos se base, más valor se generará
con cada avance del proyecto.
Para realizar una buena priorización es importante definir un criterio sobre el que
priorizar. Si no se define, no se podrá alinear la opinión de todas las personas que están
participando en la priorización.
La priorización es una de las tareas más complicadas del proceso de Scrum y suele ser
fuente de debate en los equipos. Para facilitar su ejecución, se explica en esta sección una
colección de técnicas para que el lector las explore y elija la que más se adecúe a sus
necesidades. Para más información sobre la priorización, es muy recomendable visionar la
charla “Priorizando el Product Backlog 22 ”, impartida por Mike Cohn en el congreso “Agile
2008”.
Esta técnica es la más sencilla de todas. Se reúnen las personas que van a tomar parte en la
priorización. Cada participante cuenta con una baraja de cartas que están numeradas del 1 al
9, siendo el 9 la mayor prioridad. Se define cuál va a ser el criterio de priorización general
para el Backlog. Se toma cada elemento del Product Backlog, se enuncia y todos los
participantes sacan una carta con su prioridad, sumándose el total. Cuando se ha hecho este
proceso con todos los elementos del Backlog, se pueden ordenar todos los componentes de
mayor a menor teniendo ya un Backlog priorizado. Nótese que la prioridad está basada en
este caso en una media de la opinión subjetiva u objetiva, sobre un criterio de priorización
determinado, de los participantes en la reunión.
La figura indica el orden de las prioridades en función de la suma de las puntuaciones. En
este caso, ese orden sería D, E, A, B, C.
Ejemplos de estos criterios que se han comentado en la definición del priority poker
pueden ser los dos siguientes:
MoSCoW
En las anteriores técnicas se trata a todos los elementos del Backlog de una manera
homogénea. La técnica MoSCoW se basa en la segmentación y agrupación de los elementos
del Backlog para poder hacer una mejor priorización. MoSCoW en un acrónimo inglés cuyo
origen está en los siguientes valores para los elementos del Backlog:
• Must (El producto debe tenerlo): Si no se cumple este requisito, el proyecto podría ser
cancelado.
• Should (El producto debería tenerlo): No es tan crítico como el anterior, pero sí muy
valioso para el producto.
• Could (Estaría bien si lo tuviera. El producto podría o no tenerlo): Interesante pero no
clave.
• Won’t (El producto actual no contempla tenerlo): Estos requisitos se mantienen en PB
pensando en el futuro. No se eliminan porque son una característica que podría
contemplar el producto, pero no en este momento. Incluso puede darse el caso de que,
en un momento dado del proyecto, se convierta en un Must o Should.
Conforme a estos criterios, los asistentes a una reunión de priorización deberían discutir
qué letra asignar a los elementos del Backlog. Una vez las letras estén ordenadas con el orden
correcto (M-S-C-W), se podrá aplicar sobre cada segmentación alguna de las técnicas
anteriores para una reordenación interna.
Modelo de Kano
• Las básicas u obligatorias, que son aquellas características que producen un alto nivel
de insatisfacción del cliente si no están presentes, pero que, si lo están, producen al
cliente un sentimiento neutro, ya que es lo que esperaba del producto. Por ejemplo, si
se está redactando un libro y no se incluye un índice, generará insatisfacción al lector
porque esperaba encontrarlo, pero, si lo tiene, no le va a producir ninguna satisfacción
especial.
• Las de rendimiento o lineales, que son aquellas que producen más o menos
satisfacción al cliente según haya más o menos de ellas. En el ejemplo de un libro se
podría hablar de las imágenes y fotografías explicativas: cuantas más incluya, mayor
satisfacción puede obtener el lector.
• Por último, están las inesperadas o emocionantes, que son aquellas que producen un
sentimiento de novedad. Son los atributos de un producto cuya ausencia es neutra para
el cliente, pero, cuando están presentes, producen un alto grado de satisfacción.
Siguiendo con el ejemplo del libro, se podría hablar de un descuento 2x1 para comprar
otro libro. Si no está el descuento, al usuario le parecerá lógico, pero, si está el
descuento, le producirá un alto grado de satisfacción.
Ambas preguntas se deberían responder con la escala de 5 respuestas del modelo de Kano,
como se muestra en la siguiente figura.
Si se cruzan las 5 respuestas funcionales del modelo con las 5 disfuncionales, dará lugar a
las 5 categorías del modelo: Básico, Lineal, Emocionante, Indiferente, Reversible, además de
la opción Cuestionable, que habla de resultados que no son coherentes. Por ejemplo, si se
tiene una épica en el Backlog a la que un usuario responde que esperaba encontrarla cuando
se le pregunta “¿cómo te sentirías si esta funcionalidad estuviera presente?” y responde que
no le gusta cuando se le pregunta “¿cómo te sentirías si esta funcionalidad no estuviera
presente?”, aquí estará ante una épica básica, como indica la tabla. La tabla de referencia de
los cruces se puede comprobar en la siguiente figura.
Figura 4.6. Clasificación de las respuestas en el modelo de Kano.
Finalmente, se tiene que extraer, conforme a los resultados de las repuestas, qué elementos
del Backlog pertenecen a cada categoría para ordenarlos según la propuesta que se hacía con
anterioridad. Para esto, se suman las respuestas de todos los usuarios por cada épica
analizada para ver qué categoría es la que tiene más peso como indica la figura.
Recuerde:
Primero, todos los básicos; luego, gran parte de los lineales; y, finalmente, la inclusión de
algún inesperado. Esto daría un orden, según el ejemplo, de D, E, A, B, C.
Criba de temas
El método de criba de temas permite priorizar los elementos del Backlog para ordenarlos a
la hora de priorizar una nueva versión de un producto o entrega de un proyecto. Lo primero
que hay que hacer es establecer unos criterios de decisión, la misión o metas que se quieren
conseguir en la nueva entrega. Por ejemplo, mantener los clientes que ya tiene la empresa,
ganar respeto, mejorar la imagen de seguridad de la compañía o cualquiera que se considere
válido.
Nota:
Es bueno tener un buen número de criterios, pero tampoco hay que ser muy exigentes. 5 es
un buen número de criterios para llevar a cabo esta técnica.
Además de definir los criterios de selección, se tiene que elegir un tema o épica base. Es
un elemento que considerará obligatorio que esté en la siguiente versión o entrega que se
quiera realizar. A este elemento base se le asigna un valor de 0 y se revisan el resto de los
elementos del Backlog para el criterio de selección en comparación al base, preguntándose si
la inclusión de este elemento mejoraría la entrega, si es igual de importante que el base o no
aporta ningún valor especial respecto al caso base. En función de la respuesta, se le asigna
valores +1, 0, -1 a ese elemento del Backlog que se esté comparando. Cuando se ejecuta esta
comparación de todos los elementos del Backlog siguiendo los criterios de selección con el
elemento base, se obtiene una tabla de medidas como la de la siguiente figura.
Figura 4.8. Tabla de cribado de elementos.
Puntuación de elementos
Peso relativo
Por último, se va a analizar el método del peso relativo que se apoya en muchos conceptos
de los anteriores métodos. Para todos los elementos del Backlog se estima el impacto de tener
ese elemento del Backlog en el producto. Esta estimación se hace de 1 a 9, siendo 9 el
impacto mayor. Se realiza el mismo proceso, pero analizando el impacto de no tenerlo. Esta
valoración también se realiza desde el 1 hasta el 9.
Una vez se tienen ambas listas se calcula el Valor Total y el Valor porcentual de la
siguiente manera:
Figura 4.10. Tabla de costes y valores porcentuales de los ítems del Backlog.
Una vez se hubo definido las épicas, se priorizó el orden de ejecución de estas según el
criterio de ordenación sobre la facilidad de cada uno de los autores para la redacción de los
capítulos. Así el Backlog quedó ordenado conforme a los capítulos que tenían una estimación
más baja. Fueron estos primeros capítulos los que se detallaron dividiéndolos en historias de
usuarios más reducidas. Con el Backlog ya preparado después del Sprint 0, todo estaba listo
para iniciar la primera iteración y comenzar a redactar el libro.
Los ítems del Backlog que estén arriba serán los más prioritarios y detallados, mientras
que, según se baja, los ítems serán más ambiguos, permitiendo que nuevos requisitos emerjan
y puedan subir en prioridad.
Si cada vez que se va a realizar una estimación del Backlog o una planificación de un
Sprint siempre aparece el comentario: “Para poder hacer el elemento A, necesitamos también
el elemento B”, tienes un problema de historias de usuario siamesas. Las dependencias en el
Product Backlog son un problema, ya que imposibilitan tratar las historias de usuario de
manera autónoma. Este condicionante afectará a la priorización, ya que, por obligación, y no
por necesidades de negocio, un elemento tendrá que estar por encima del otro. También
afectará a la hora de definir el trabajo en un Sprint, ya que este factor implica decisiones
obligatorias a la hora de asumir una carga de trabajo.
La solución es dividir en partes más pequeñas y hacer una sesión con todo el equipo para
analizar las dependencias existentes e intentar aislar el punto común y sacarlo a una nueva
historia conjunta. Lógicamente, hay que tener cuidado en este proceso para evitar que una
dependencia entre dos elementos se convierta en una dependencia a tres bandas.
Si las dependencias no se pueden reparar, la solución que queda es priorizar ambos
elementos, de tal manera que siempre puedan ser llevados a cabo en el mismo Sprint.
Si aparecen constantemente elementos del Backlog que no se cierran Sprint tras Sprint y
siempre aparecen abiertos, se está claramente frente a la dolencia de las tres C, que se ha
comentado anteriormente. Se tienen que revisar los principios de Tarjeta, Conversación y
Confirmación, porque alguno de los tres debe estar fallando.
El criterio de Tarjeta o Card, como se pudo ver en este capítulo, indica que la redacción
del elemento de la pila de Producto debe ser lo suficientemente pequeña como para caber en
una tarjeta de indexación. Cumplir este criterio puede producir un problema de indefinición.
Aplicarlo no significa que solo se cuente con un espacio limitado reduciendo redacción, sino
que, si se necesita más espacio para definirlo, es porque hay que dividir el elemento en varios
más pequeños.
El criterio de Conversación o Conversation indica que tiene que haber existido una
conversación en el equipo Scrum sobre cada elemento, que el responsable de producto no ha
lanzado el requisito “por encima de la valla” y luego se ha desentendido de él. Mediante la
conversación y discusión se deberían resolver las ambigüedades del ítem del Backlog y
debería ser sencillo acometerlo sin incertidumbre.
Finalmente, el criterio de Confirmación o Confirmation define que los elementos del
Backlog pueden ser claramente validados. Esto implica que existe una definición y criterios
por los que se puede saber cuándo un ítem está claramente terminado.
Si para todas las historias de usuario se cumple el criterio de las tres C, no debería existir
una razón para que no se dieran por terminadas al final de un Sprint.
Infección operativa
Ocurre cuando la pila de producto no define la estrategia del producto, sino que habla de
la táctica del producto. Si el Product Backlog no habla de qué hay que hacer, sino que define
cómo hay que hacerlo, entonces se está ante una de las peores infecciones que puede sufrir
nuestro Product Backlog: la infección operativa. Suele empezar de forma inofensiva, sacando
la especificación de un par de ítems de la lista para que los validen ciertos roles en una
organización. Cuando esa especificación vuelve validada, para ejecutarla, se crean tareas
operacionales en el Backlog. El equipo siente una cierta comodidad con el proceso y se
empieza a repetir periódicamente dejando el Backlog como un campo yermo de requisitos y
plagado de tareas operacionales. Se ha creado un Sprint Backlog para todo el producto o
proyecto y se rompe el principio DEEP para el Backlog.
La solución a este problema reside en llevar un buen control sobre las tareas operativas e
intentar dejarlas siempre en el ámbito de los Sprints, dejando el Product Backlog libre de
estas tareas operativas.
Plaga de requisitos
Nota:
El concepto cómodo es muy relativo, pero, si ha tenido que empapelar su entorno de
trabajo con elementos de su Backlog, quizás no lo esté manejando de manera cómoda.
La plaga de requisitos implica que el Backlog está siendo usado no como una base de
datos coherente de requisitos de un producto o proyecto, sino como una lista de peticiones.
En la pila no se tendrá un plan o un roadmap, se está usando este artefacto de Scrum como la
carta a los Reyes Magos, donde volcar cualquier cosa que se les ocurre a las personas
implicadas en el proceso. Es importante recoger siempre los comentarios en todas las
reuniones que la metodología define, pero también es importante hacer algo con ese feedback
y que no se enquiste en la pila de producto de forma indefinida.
Una posible solución es la combinación de las técnicas de priorización por orden con la
técnica MoSCoW, vista en este capítulo. Esta técnica permite identificar posibles Won’t o
elementos que no se van a implementar y que deberían separarse del Backlog para su
correcto saneamiento.
Consejo:
Cree una lista de lluvia de ideas independiente para que todo el mundo pueda participar
en la propuesta de ideas para el proyecto. Posteriormente, esa lista puede ser ordenada,
segmentada y trabajada para que pueda ser progresiva y coherentemente volcada en el
Backlog del producto.
Carencia de las vitaminas de mis requisitos no funcionales
Si con todos los elementos que hay en la pila de producto, los incrementos de producto,
aunque cumplen lo que se espera de ellos a nivel funcional, no terminan de convencer, tal vez
sea porque el Product Backlog no esté completamente definido. La usabilidad, seguridad o el
rendimiento son valores que se relacionan con cualidades del producto que van más allá de la
funcionalidad y fortalecen al producto o al proyecto. Su falta de definición produce debilidad
en el producto o proyecto y futuros problemas.
La solución es prestar tanta atención a las historias de usuario como a los requisitos no
funcionales y priorizarlos de forma coherente a las necesidades de los incrementos del
producto en cada momento de su evolución.
Nota:
Para definir correctamente valores tan generales como la usabilidad de un producto es
necesario ser muy cuidadoso con la última C del criterio de las tres C: la confirmación.
Deben definirse criterios de aceptación ejecutables que permitan validar de forma
concreta que se cumple el requisito no funcional.
Inmunización tardía
Nota:
La muerte prematura de un producto o proyecto por la detección temprana de un
problema en el Backlog no es una derrota, sino que es un caso de éxito, ya que permite
mover al equipo a otro producto viable.
Muerte dulce por contrato
Se ha dejado para el final la peor de las enfermedades que puede sufrir su Backlog: la
muerte por contrato. Su descripción es sencilla: ocurre si su Backlog no es una herramienta
de trabajo dinámica del grupo, sino que funciona como un contrato. Si el Backlog se
establece con el cliente y las partes implicadas se aferran a él para exigir y reclamar, se
marchitará y languidecerá sin poder dar sus frutos. Nunca permita que el Backlog sea un
acuerdo formal o contractual de requisitos. No está pensado para esto y su uso indebido hará
que no funcione la metodología en su conjunto.
Cuando un proyecto o producto es muy grande, posiblemente sea necesario que varios
equipos trabajen en paralelo y el PB tendrá que estar preparado para esta situación. No se
deben tener Product Backlogs separados. Siempre que sea posible, se debería mantener un
único Product Backlog del que se pueda sacar partes de él para alimentar a los distintos
equipos durante una iteración.
Cada Product Backlog extraído del PB maestro puede tener su propio Product Owner que
lo gestione, pero siempre estará supeditado al Backlog maestro y a un PO que
jerárquicamente organice el trabajo de los otros Product Owners (ver el apartado dedicado a
Scrum of Scrums en el capítulo 12).
Las prioridades deben gestionarse desde el punto de vista del Product Backlog maestro y
se trasladará a los Product Backlog relativos. En términos de prioridad, cada equipo no puede
trabajar con su criterio, ya que se podría romper la priorización del trabajo entre todos los
equipos y aparecer problemas de bloqueos por dependencias.
En resumen
En este capítulo, se ha aprendido cómo debe ser un Product Backlog y los elementos que
lo componen. Los conceptos DEEP e INVEST deben ayudar a mantener un Product Backlog
saneado, actualizado y en buena forma. Esta será la única forma en la que su utilidad revierta
en un correcto funcionamiento del proceso y el aporte de un valor constante al producto o
proyecto que se esté desarrollando.
El trabajo de escribir el libro que tiene en sus manos fue avanzando con la construcción y
poblado inicial de un Product Backlog que describiera a grandes rasgos los principales
requisitos del trabajo. Aquellas partes del proyecto con mayor prioridad que debían iniciarse
antes contaban con mayor detalle. Por ejemplo, escribir un índice detallado; elaborar una
serie de apartados especiales (índice alfabético, glosario...) que se fueran poblando a medida
que se iba creando el texto; identificar fuentes de imágenes; o acordar convenciones de
vocabulario.
Nuestro Product Backlog no es completo, y seguramente no sea estable, pero no importa.
La naturaleza de Scrum nos permite hacer cambios e introducir modificaciones considerando
la construcción de nuestro producto, el libro, como una acción incremental.
Ya estamos listos para los próximos pasos y puede arrancar la primera iteración o Sprint
de nuestro trabajo.
22 http://www.infoq.com/presentations/prioritizing-your-product-backlogmike.
cohn
23 La muestra de usuarios para las encuestas no tiene por qué ser muy grande, con 10 repuestas se puede trabajar
cómodamente.
En este capítulo aprenderá a:
Introducción
Ya hemos fijado el alcance, el contenido y la forma de trabajo de nuestro proyecto, en este
caso la escritura de este libro. Hemos dedicado un buen tiempo en el Sprint 0 a la
organización del trabajo, a seleccionar las herramientas y a establecer las reglas. Hemos
trabajado en un Product Backlog que recoge los trabajos que hemos identificado hasta ahora,
aunque sea a grandes rasgos. Ya tenemos los elementos necesarios para poder empezar a
trabajar, pero esto no se puede hacer a la ligera.
Scrum y las metodologías ágiles, aunque eviten formalismos y burocracia, no son una
forma de trabajo sin control. Por eso se organiza la actividad del proyecto en una serie de
iteraciones o Sprints cuya duración se fija inicialmente en el Sprint 0. Al principio de cada
iteración hay que discutir su contenido, su alcance y cómo verificar que se han llegado a los
objetivos planteados.
Para la primera iteración del proyecto de escribir un libro sobre métodos ágiles, tenemos
que determinar qué tareas vamos a abordar y por parte de quién, y qué resultados tenemos
que ofrecer para considerar que se han alcanzado esos objetivos.
Hemos dedicado nuestro Sprint 0 a identificar todas las principales tareas que hay que
realizar.
Sin embargo, sabemos que es muy posible que se nos haya pasado alguna por alto o que
puedan aparecer otras nuevas a medida que avancemos. No importa, uno de los beneficios
del uso de Scrum es la facilidad para incorporar nuevos requisitos o tratar con cambios.
Así que ha llegado el momento de iniciar nuestro primer Sprint o iteración del ciclo de
trabajo. Tendremos que identificar el objetivo principal para el Sprint y las tareas concretas
que vamos a desarrollar en él. ¿Cómo lo haremos?
En este capítulo, se va a ver el proceso de planificación o Planning del Sprint. Se parte de
una revisión y priorización de los elementos del Product Backlog (historias de usuario,
épicas, requisitos del proyecto), a las que se añade criterios de aceptación para determinar
cuándo se han cumplido. Esta tarea de revisión y priorización la lidera el Product Owner,
que puede contar con la ayuda del Scrum Master, que entre otras muchas cosas (como se
verá más adelante) es el facilitador del trabajo, vigilante del cumplimento de los principios de
Scrum y puede actuar como intermediario entre PO y equipo. El PO puede apoyarse en otras
personas en esta tarea, por ejemplo, en miembros del equipo destacados por su conocimiento
o experiencia.
A continuación, ya como parte de la planificación del Sprint, se realiza una reunión
denominada Sprint Planning. En ella, el equipo revisa, junto con el PO, las tareas del Product
Backlog. Se valora la complejidad de cada tarea y se selecciona, siguiendo la prioridad, las
que podrán realizarse en el transcurso del Sprint.
En una segunda etapa de la planificación, el equipo traduce las historias a lenguaje de
proyecto y las subdivide en unidades menores o tareas. Con todo ello se construye el Sprint
Backlog o repositorio de los trabajos que se realizarán durante la iteración.
Figura 5.2. Un proyecto puede tener una o varias entregas, organizadas en Sprints, que se
realizan en un ciclo diario.
En este capítulo se va a dedicar también un espacio a hablar del Scrum Master, uno de
los roles principales en el proceso Scrum, que tiene una influencia decisiva en el éxito del
trabajo.
Nota:
Por supuesto que este objetivo debe consensuarse finalmente con el equipo. Scrum no
funciona por medio de la imposición. El PO tiene la potestad de modular el trabajo, pero
es el conjunto de los involucrados (SM y, sobre todo, equipo) quien finalmente define la
actividad.
Otra tarea muy importante previa al proceso de Planning es la priorización de las tareas
del Backlog. El repositorio o Backlog del proyecto contiene la lista de trabajos definidos
usando el lenguaje de negocio, que suelen expresarse usando el formato de historias de
usuario (User Stories). El Backlog del proyecto es un elemento dinámico y cambiante:
pueden aparecer nuevas historias que recojan cambios o novedades en los requisitos del
trabajo, de la misma forma que pueden desaparecer.
Una de las dimensiones más importantes del Product Backlog es la prioridad. Aunque
todas las historias de usuario son importantes para alcanzar el objetivo último del trabajo, se
deben ordenar de más a menos prioritarias, ya que no es posible abordarlas todas
simultáneamente. Esta priorización define el orden en el que se hará el trabajo en el proyecto
y, con él, el contenido aproximado de cada Sprint.
El gestor del Product Backlog es el Product Owner, así que él es quien se encarga de que
esté:
Por supuesto, hay otras características que debe cumplir un buen Product Backlog,
expresados por la regla “DEEP”, explicada en el capítulo anterior. Contiene requisitos
funcionales (del producto o de la actividad) y no funcionales (necesarios para el trabajo en sí
mismo y que definen sus características).
Así que el punto de partida antes de iniciar la planificación del Sprint es cuando el PO o
Product Owner, que puede contar con Scrum Master, revisa el Product Backlog para ordenar
sus elementos de acuerdo con su criterio de priorización. Esa ordenación determina qué
trabajos deberían abordarse en el transcurso del Sprint, por lo que debe hacerse
cuidadosamente y considerando la relación entre las distintas historias. Si se quiere que el
Sprint se dedique sobre todo a, por ejemplo, definir la ventilación de un edificio de oficinas
en un proyecto de arquitectura, lo normal es que las tareas relacionadas con esos aspectos
tengan mayor prioridad.
Figura 5.3. La planificación en Scrum es una actividad colaborativa.
Nota:
Una de las responsabilidades más importantes del Product Owner es poblar y priorizar el
Backlog. Sin embargo, una queja habitual de muchos equipos es el encontrarse con un
Product Owner que nominalmente acepta la aplicación de Scrum, pero delega estas tareas
en el Scrum Master. Los miembros del equipo y el propio SM no deben consentir esa
situación: hace que el PO se desligue de los principios de Scrum al verlo como algo ajeno,
que la aplicación de estas prácticas sea puramente cosmética y que al final se pierdan los
beneficios que ofrece esta forma de trabajo.
Si es usted un Product Owner no debe delegar nunca la gestión del Product Backlog. Es
aquí donde reside el control del trabajo, no en la jerarquía o la gestión de las reuniones.
El rumbo del trabajo diario y del conjunto del proyecto se marca desde el Product
Backlog.
Nota:
Si la priorización es numérica, no hay que olvidar usar números muy separados. En
cualquier momento puede aparecer un nuevo elemento que haya que colocar entre ambos
y habrá que asignarle algún valor. Aunque lo habitual es que sea el Product Owner quien
idee y genere las historias, hay ocasiones en las que otras personas pueden añadirlas. En
este caso, el Product Owner debe estar al tanto y comprender perfectamente el contenido
de la historia, ya que es él quien debe explicarla al equipo.
Con el Product Backlog priorizado, podemos continuar adelante. El punto de partida para
iniciar un Sprint es la planificación. Esa planificación se hace en dos etapas: una de selección
de historias, y otra de subdivisión en unidades más pequeñas o tareas. La primera requiere el
concurso del PO, mientras que la segunda es una actividad más propia del equipo. En ambas
puede participar el Scrum Master.
Véase ahora cómo se hace esa primera fase de selección de historias para poblar el Sprint
Backlog.
Sprint Backlog
El objetivo del proceso de Sprint Planning es rellenar el Sprint Backlog o pila de sprint.
Se trata de un repositorio que recoge los trabajos que van a realizarse en una iteración o
Sprint determinado. Es decir, que cada Sprint tiene un Sprint Backlog distinto. Este
repositorio contiene las historias de usuario y, sobre todo, las tareas, que el equipo, que es
quien gestiona este Backlog, ha identificado en el momento de la planificación de detalle
(una de las dos reuniones dentro del proceso de planificación del Sprint).
El Sprint Backlog es propiedad del equipo, que es quien lo gestiona y actualiza, mientras
que el Product Backlog está asignado al Product Owner. Para poblar el Sprint Backlog se
parte del Product Backlog, seleccionando historias en función de la priorización hecha por el
Product Owner. El equipo va estimando en orden cada historia, que va añadiendo al Backlog
hasta que se alcanza una suma de Story Points o puntos de historia (ver más adelante en este
capítulo) en las historias ligeramente superior a la velocidad habitual del equipo (más
adelante se hablará de este concepto de velocidad). Las historias demasiado “grandes”, es
decir, que tienen una complejidad tan alta que impide realizarlas en el tiempo fijado para
Sprint, se subdividen hasta convertirse en unidades más manejables. La siguiente figura
describe estas relaciones:
Figura 5.4. Los distintos repositorios o backlogs de Scrum.
Cada historia seleccionada se divide, a su vez, en tareas. Estas tareas tienen que estar
descritas en el lenguaje del dominio técnico del trabajo, ser pequeñas, detalladas y también
pueden contar con una estimación del tiempo necesario para su realización.
Aunque hay equipos que prefieren usar medidas relativas para comparar las tareas, es
bastante habitual que se tome como unidad de referencia el tiempo, ya que las tareas
concretas se pueden estimar con más exactitud. También la descripción es más concisa,
desglosando las acciones que deben completarse en cada tarea, y no en forma de requisitos,
como ocurre con las historias de usuario.
Nota:
Por regla general, se asume que cada tarea debe poder ser realizada por una persona y su
duración debería ser entre medio y tres días.
Si lo comparamos con el Product Backlog, el contenido del Sprint Backlog es mucho más
rico y detallado. Para empezar, cada historia seleccionada para el Sprint debe contener un
claro y preciso criterio de aceptación del resultado que se espera, que será introducido por el
PO. Este criterio de aceptación es uno de los elementos fundamentales de la operativa del
Sprint. Sirve de guía a los miembros del equipo a la hora de desarrollar el trabajo y alcanzar
los resultados (sobre todo si el Product Owner no está accesible) y permite validar si se han
alcanzado o no los objetivos del trabajo.
En paralelo, cada tarea va a tener una “definición de hecho” o Definition of done que
introduce el equipo para saber cuándo ha alcanzado el resultado esperado para esa tarea
concreta.
Nota:
Lo ideal es que el criterio de aceptación esté de antemano en todas las historias del
Product Backlog, pero por distintas razones no siempre es posible. Lo que sí que es
obligado e inexcusable es que cada historia del Sprint Backlog tenga un criterio lo más
detallado y completo posible, y las tareas su correspondiente definición de hecho. Es lo
que permite saber si ha conseguido su objetivo o no.
Las historias del Sprint Backlog también tienen un valor de complejidad que dé una idea
del esfuerzo requerido para su desarrollo. Son los llamados Story Points, que ya hemos
mencionado y sobre los que volveremos más adelante para ver cómo se obtienen.
Las historias deben ser independientes (aunque puedan tener relaciones con otras) y
pueden tener un historial de su evolución y, sobre todo, información y anotaciones que
documenten su resolución. Cada miembro del equipo que trabaje en una historia puede ir
añadiendo información relativa a su desarrollo y, si la herramienta usada lo permite (véase en
el siguiente capítulo el apartado correspondiente a herramientas), incluir todo tipo de
documentos, diagramas, planos, código o fotografías. Toda esta información permite seguir el
trabajo mientras se desarrolla y documentarlo a su finalización, de forma que sea fácil
entender por otras personas qué se hizo, por qué y cómo.
Nota:
En entornos de desarrollo software, por ejemplo, el llamado “diseño detallado” puede
verse sustituido por la información introducida para documentar cada historia de usuario
del Sprint Backlog.
Figura 5.5. Un posible tablero o panel con columnas para los estados de las tareas: Task
(pendientes de iniciar); In progress (realizándose); Stopped (impedidas) y Completed
(terminadas).
• Por definición, antes de empezar cualquier historia o tarea, estará en estado pendiente,
es decir, que nadie la ha seleccionado aún del Sprint Backlog para resolverla. Las
historias pendientes se ordenan por prioridad, de forma que la primera que se debe
acometer es la más prioritaria de las pendientes, salvo que haya alguna razón de peso o
impedimento que obligue a tomar otra menos prioritaria.
• Cuando un miembro del equipo de trabajo ha seleccionado una tarea para completarla,
la tarea pasa a estar en curso, en desarrollo o cualquier otra denominación que
implique que se está trabajando sobre ella. Cuando se aborda la primera tarea de una
historia, se asume que la historia está también en curso, y no solo esa tarea concreta.
Las tareas en curso están asignadas siempre a una persona concreta del equipo que es
quien se responsabiliza de su cumplimiento, aunque en determinados casos sea preciso
involucrar a otros miembros.
• Si la tarea se considera realizada de acuerdo con la definición de hecho (Deffinition of
Done), pasa al estado de terminada. En cuanto a las historias de usuario, no pueden
considerarse terminadas si no lo están todas las tareas que las componen. Por supuesto
que esa conclusión es desde la perspectiva del miembro del equipo y de acuerdo con
los criterios de aceptación que se haya introducido. Más adelante, en la reunión de
Review, el PO validará el resultado y determinará si la historia está o no completada.
• Una tarea (y con ella su historia) puede estar impedida, lo que significa que hay algún
elemento que no permite desarrollar el trabajo sobre ella. La naturaleza de ese
impedimento puede ser de lo más variada: falta algún elemento externo, como
documentos, diseños, o software; herramientas no disponibles; o imposibilidad de
contactar o ausencia de una persona relevante para la tarea. En realidad, lo más
importante es documentar el impedimento, identificar la manera de resolverlo y asignar
un responsable (generalmente el SM) para resolverlo y continuar.
Además, puede haber otros estados en función de la naturaleza del proyecto. Por ejemplo,
si se está desarrollando un producto tecnológico, como puede ser una aplicación software,
puede incluirse un estado adicional relacionado con QA o el aseguramiento de calidad. En
ese caso, este estado indicaría que, además de concluido, el resultado de la tarea o la propia
historia de usuario ha sido validado por el área de calidad. Se podrían definir otros estados
adicionales en función de la naturaleza del trabajo y las necesidades del proyecto, pero estos
que se han comentado son los básicos.
El tablero de tareas
Tableros como el anterior, puestos en un lugar visible para todo el equipo, permiten tener
en todo momento un estado actualizado de la evolución del Sprint. Se compone de etiquetas
autoadhesivas, carteles, textos escritos, etc., que contienen las historias de usuario y, si el
formato lo permite, las tareas en las que se dividen. Estos elementos se disponen en columnas
que representan cada uno de los estados (pendiente, en curso...).
Uno de los elementos clave de Scrum es facilitar a todo el equipo un modo de conocer en
todo momento y rápidamente el estado del proyecto. Aunque las herramientas informáticas
son muy útiles, nada sustituye a un tablero puesto en un lugar bien visible, donde es muy
fácil cambiar el estado de las tareas con solo mover una etiqueta de sitio.
Truco:
La información que se puede mostrar va a depender mucho del medio. En un post-it a
duras penas nos cabrá algo más que el título, alguna indicación de componente y, por
ejemplo, la medida de complejidad. Una forma fácil de añadir información es jugar con
los colores de las notas, con el color del texto, usar símbolos o alguna otra convención
(mayúsculas y minúsculas, la disposición horizontal o vertical para expresar la prioridad).
Ahora que se tiene un objetivo general para el Sprint y que se ha realizado la ordenación
de todas las historias pendientes, ha llegado el momento de definir el trabajo del Sprint,
incluido en el repositorio de la iteración o Sprint Backlog. Como ya se ha comentado, al igual
que el Product Backlog, el Sprint Backlog es una sucesión de historias de usuario contenidas
en alguna de las herramientas de Scrum. Ese es el guion del trabajo que se va a realizar y
cada uno de sus elementos, expresados en lenguaje de negocio, van a desgranarse en otros
más pequeños, las tareas, descritas con el lenguaje del dominio de aplicación del trabajo (el
marketing, la arquitectura, el diseño industrial o el desarrollo software).
Poblar el Sprint Backlog es el trabajo fundamental del proceso de planificación del Sprint
y ese trabajo se desarrolla en un par de reuniones que inauguran cada iteración.
Nota:
Dentro del ciclo de trabajo marcado por cada Sprint, hay una sucesión de reuniones que
encadenan el final de una iteración y el comienzo de la siguiente. Tras la Review o
revisión y la Retrospectiva, que marcan la conclusión de un Sprint, las reuniones de
planificación o Planning a las que nos referiremos en este capítulo abren el inicio de una
nueva iteración.
Truco:
Aunque el equipo de trabajo tenga una amplia experiencia y conozca la teoría de Scrum,
no está de más hacer un recordatorio periódico de los principios y mecánica. Con el
tiempo, los equipos adquieren hábitos y costumbres que relajan los principios de Scrum,
incluso van contra ellos. El Scrum Master puede dedicar unos minutos en cada Sprint a
repasar algunos de los aspectos clave de Scrum. Arrancar una reunión recordando su
cometido y objetivos es una buena forma de ayudar a alcanzarlos.
Nota:
Dentro de una organización, si el equipo no pone inconveniente, pueden asistir personas
de otras áreas a las distintas reuniones. Se trata de facilitar el aprendizaje, de manera que
grupos menos maduros en Scrum o personas que están introduciéndose puedan aprender
de la forma de proceder de equipos maduros. En cualquier caso, el carácter privado o
público de cada reunión, sea del tipo que sea, lo decide el equipo, con el apoyo del SM.
De la misma forma, en una reunión cuyo propósito es definir el trabajo del equipo y
garantizar que este conozca con precisión lo que se espera de cada historia de usuario, es
imprescindible la presencia del equipo o del mayor número posible de miembros.
En el caso particular del Sprint Planning, todas aquellas personas que puedan hacer
contribuciones valiosas y aportar valor están invitadas. En especial, todos los representantes
del cliente más allá del Product Owner; los llamados stakeholders. El propósito es ayudar al
equipo a entender todos los matices de los requisitos del trabajo que se quiere realizar en el
Sprint.
La mecánica de la reunión de planificación es en sí misma bastante simple.
Como ya se ha comentado, se parte de un Product Backlog revisado y priorizado. Si ha
habido algún cambio sustancial en él, debería empezarse por hablar de esos cambios y su
motivo. A continuación, el PO procederá a leer la primera historia de usuario del Backlog, la
de mayor prioridad. El objetivo es que el equipo entienda los requisitos de la historia, que
tengan una idea preliminar de las tareas concretas que deberán realizar y de la complejidad
del trabajo con vistas a poder estimar su tamaño y dificultad (si es que no se había estimado
previamente).
La lectura debe servir para aclarar todas las dudas que pueda tener el equipo, motivo por
el que está presente el Product Owner. Además, es muy importante que cada historia tenga
unos criterios de aceptación claros y detallados, como ya hemos dicho. Estos criterios de
aceptación servirán para contrastar al final del Sprint si puede darse o no por completada la
historia.
Una vez ha explicado el Product Owner qué es lo que espera y se han aclarado todas las
dudas, es el momento de la estimación. De acuerdo con su propia experiencia, los miembros
del equipo asignarán un valor de complejidad, llamado puntos de historia o Story Points, tal y
como se verá en el siguiente apartado. Este número es importante: se suma hasta que alcance
un valor cercano a la velocidad media del equipo. La velocidad representa la cantidad de
trabajo que un equipo es capaz de realizar en un Sprint y depende de muchos factores: desde
la madurez del equipo a la comprensión del problema, pasando por la capacidad para estimar
y medir ese valor.
Cada historia comprendida, valorada y seleccionada pasa a formar parte del Sprint
Backlog, manteniendo el orden de prioridad establecido originalmente por el PO. Cuando la
suma de los puntos de historia de las historias seleccionadas alcance a completar (e incluso
superar ligeramente) la velocidad media del equipo, será el momento de concluir la primera
etapa de la planificación. Para completar el Sprint Backlog todas esas historias deberán aún
ser divididas en tareas.
Nota:
Si un equipo ha alcanzado en los últimos Sprints velocidades de, por ejemplo, 28, 33, 36,
39, 32 y 30, podemos afirmar que se mueve en un rango de entre 30 y 36. Cuando se hace
la estimación y se valoran las historias, las podemos ir añadiendo hasta que la suma de
los puntos de todas ellas esté en el entorno de la velocidad media. En este ejemplo, cuando
se alcance un valor de, por ejemplo, 35 puntos, el equipo puede considerar que se puede
cerrar el Sprint con esas historias. También puede aplicarse el criterio del “tiempo de
ayer”: si en el último Sprint la velocidad alcanzada fue de 42, podemos pensar que el
próximo puede estar alrededor de este valor si el entorno permanece estable.
Truco:
Es conveniente valorar unas cuantas historias adicionales. Puede ser que el Sprint haya
sido especialmente productivo (o la estimación poco acertada), que hayan quedado
historias impedidas y se agoten en el Sprint Backlog, por lo que se debe continuar con las
historias más prioritarias del Product Backlog. Tenerlas valoradas será de ayuda a la
hora de calcular la velocidad final del Sprint.
La estimación de trabajo que puede realizar el equipo es una parte destacada del proceso
de planificación, pero la más importante es el compromiso. El equipo puede decir al PO:
“Creemos que podemos llegar a alcanzar esta cantidad de trabajo”, pero sobre todo debe
decir: “Pero nos comprometemos a realizar al menos estas tareas”. El compromiso es uno de
los principios de Scrum y es compartido por todo el equipo como si fuera una única persona.
Cuidado:
La presión de fechas y costes pueden traducirse en un Product Owner que trate de forzar
al equipo a adoptar estimaciones más agresivas, comprometerse a una cantidad de
historias superior o reducir la calidad para cumplir plazos. Todas estas medidas están
llamadas al fracaso: si un equipo no suele realizar más de 30 puntos de historia por
Sprint, es difícil que de forma sostenida duplique esa cantidad. Además, es un hecho
constatado que la presión se traduce en una reducción de la productividad y que solo
funciona en periodos muy cortos de tiempo. El otro aspecto, la calidad, debería ser
innegociable: reducir la calidad supone arriesgarse a tener la falsa impresión de
completar tareas, que luego habrá que revisar, corregir e incluso rehacer a un coste muy
superior al de aplicar la calidad debida desde el principio. No se engañe a sí mismo.
El trabajo que se compromete a realizar el equipo es la otra cara del objetivo del Sprint
que haya establecido el PO. Sin embargo, ese compromiso debe ser expresado libremente por
el equipo, sin que deban influir las presiones (prisas, urgencias) del PO.
Antes de hablar de la planificación detallada, vamos a contar cómo se calcula la
velocidad.
La velocidad y su estimación
Nota:
En entornos de desarrollo software donde se utilicen técnicas de programación en parejas
(Pair Programming), el día ideal debe corregirse para considerar el tiempo en el que dos
personas trabajan juntas en una misma actividad.
La estimación es una acción colectiva, en la que participa todo el equipo (o al menos las
personas directamente implicadas en la historia de usuario). Se puede hacer de muchas
formas, pero una técnica muy habitual y vistosa es el llamado Planning Poker o Estimation
Poker, en el que se usan unas cartas marcadas con números para que cada miembro del
equipo vote usando su criterio. Luego del consenso y compromiso entre todos se asigna una
valoración a cada historia.
Como se ve, todas estas alternativas buscan metáforas de tamaño que sean fáciles de
entender y manejar. Luego se puede usar una tarjeta o medio gráfico de proponerlas o
simplemente enunciarlas.
Sumando todos los puntos de las historias seleccionadas en un Sprint, se obtiene la
velocidad estimada de la iteración, es decir, la que se alcanzaría si se completaran todas las
historias. Sumando todos los puntos de las historias completamente terminadas del Sprint se
obtiene la velocidad real del Sprint.
La velocidad es un concepto de Scrum que define la capacidad del equipo para realizar sus
actividades. Es una herramienta que ayuda a estimar y medir el proceso, pero debe usarse con
todo tipo de precauciones. El motivo es su naturaleza arbitraria y subjetiva: los intentos de
medir el proceso de desarrollo de un trabajo, sobre todo de naturaleza intelectual y con un
cierto grado de incertidumbre, han fracasado históricamente. Incluso en campos tan
controlables como el desarrollo de software, todos los intentos de medida objetiva han
fallado. Con todos sus defectos, se verá que la estimación es una herramienta muy útil para
hacer más predecible el trabajo de un equipo.
Nota:
Solo se contabilizan los puntos de una historia completa. Si la estimación original era de 8
puntos para una historia que solo se ha completado a medias, no se suman 4 puntos, se
suma 0. El motivo no es caprichoso: una historia de usuario representa un requisito
completo de los clientes (ponerle frenos al coche, preparar la cartelería de una campaña,
añadir la gestión de usuarios de un programa, diseñar la calefacción de un edificio...), por
lo que únicamente tiene sentido cuando se verifica completamente, no cuando solo hay
ciertas partes realizadas.
Dado que se hace referencia a valores estimados subjetivamente, no tiene sentido tratar de
obtener cantidades muy precisas. Hay que saber vivir con la incertidumbre y la idea de que
hay un considerable error incluido en estas estimaciones. Sin embargo, es mucho mejor
trabajar con estimaciones imprecisas que con ninguna en absoluto.
El uso de la medida de velocidad debe ser interno y circunscrito al seguimiento del trabajo
del equipo y como ayuda para su estimación. Tratar de usarlo como medida objetiva (por
ejemplo, para comparar a un equipo con otro) solo dará lugar a que surjan malas prácticas,
como podría ser sobrevalorar la complejidad de cada historia para así mostrar una velocidad
más alta. Es decir, la medida de la velocidad de un equipo en Scrum solo sirve para comparar
al equipo consigo mismo y ver si mejora o no aumentando esa velocidad.
Hay una serie de herramientas que permiten hacer un seguimiento del cumplimiento de las
estimaciones. Aunque se hablará en detalle de ellas más adelante, merece la pena dedicar
ahora un espacio al llamado burn-down chart, una gráfica que muestra la evolución del
trabajo realizado de manera efectiva comparado con el previsto. Tal y como se puede ver en
la siguiente figura, el eje horizontal representa el tiempo, mientras que el vertical se dedica a
la cantidad de trabajo (puntos de historia, número de tareas) que va a realizar. Una línea une
la cantidad total de trabajo en el inicio del Sprint con el valor 0 al final, lo que señala que
todo el trabajo comprometido se ha realizado. Esa línea recta representa la evolución ideal
del trabajo en el Sprint. Día a día, se irá actualizando con la cantidad de trabajo completado
en las unidades que se hayan fijado. Esta gráfica, además de medir la evolución del trabajo
del equipo, permite detectar en etapas muy tempranas desviaciones sobre el plan previsto y
adoptar acciones correctivas. Y este es uno de los grandes beneficios de Scrum.
Figura 5.10. Burn-down chart, gráfica que representa la evolución del trabajo realizado
frente al estimado.
El cometido principal del Scrum Master, encargarse del seguimiento correcto de los
principios de Scrum, no es una tarea abstracta y se manifiesta en aspectos muy concretos,
como por ejemplo:
• Velar por la productividad del equipo, lo que se traduce de manera práctica en tratar
de aislar al equipo de interferencias externas que puedan distraerle y en resolver los
impedimentos que puedan aparecer en el trabajo. Un impedimento es cualquier
condición externa que impida llevar a cabo una historia de usuario o una tarea: puede
ser no contar con una herramienta o persona, falta de información, necesitar un
permiso, alguna contribución externa, etc. Poder resolver impedimentos requiere que el
SM tenga un conocimiento profundo de la organización en la que trabaja.
• Debe procurar que fluya la comunicación y la colaboración. Por eso asiste a todas las
reuniones y procura garantizar la asistencia de las personas necesarias para su éxito.
También busca este objetivo fuera de las reuniones, en el trabajo del día a día.
• Además, es responsable de introducir y fomentar las prácticas ágiles. Por ello, debe
conocer profundamente los principios, los métodos y sus variantes y hacer un esfuerzo
por difundir este conocimiento entre el equipo y PO. No es necesario que organice e
imparta cursos, a veces acciones tan simples como describir el propósito de cada
reunión antes de empezar es de gran ayuda.
• Supervisa el Backlog, asegurándose que todas las historias están correctamente
descritas, priorizadas y estimadas. Se trata de una acción derivada de velar por la
productividad, evitando así posibles impedimentos. No hay que olvidar que el
responsable del Backlog es el Product Owner, al que no debe sustituir.
• Analiza la velocidad obtenida haciendo un seguimiento de su evolución con las
herramientas apropiadas. Si decae o no crece (pudiendo hacerlo), tendrá que lanzar
iniciativas que mejoren la productividad.
• Es también el intermediario entre el mundo exterior (PO, otros equipos) y el equipo
de trabajo. Esto forma parte de su misión de fomentar la productividad protegiendo al
equipo de interferencias externas.
• Tiene un papel destacado en la preparación y formación del equipo, el PO e incluso los
clientes para que adopten las mejores prácticas de Scrum en su trabajo. El Scrum
Master es el primer coach del equipo.
¿Es el Scrum Master un rol especializado o puede rotarse entre los miembros del equipo?
Se trata de un dilema que aparece con frecuencia en la literatura especializada y en los
equipos de trabajo. Los autores de este libro nos inclinamos por considerarlo un rol
diferenciado y especializado debido, sobre todo, a la formación y experiencia necesarias para
llevarlo a cabo. Eso no impide que haya casos en los que sea viable y no cause conflicto, pero
depende fuertemente de la persona que vaya a realizar ese trabajo. Lo que resulta
absolutamente incompatible es combinar los papeles de Scrum Master y Product Owner: no
es posible.
Nada impide que un Scrum Master lo sea de varios proyectos: únicamente la cantidad de
trabajo y la capacidad de la persona determinará que sea o no posible. En este caso,
obviamente, se está hablando de un SM especializado que no realiza otra actividad.
¿Qué es lo que define a un buen Scrum Master? Hay numerosas listas de atributos y
características, pero, para simplificar, se facilita esta lista de los seis atributos principales que
selecciona Mike Cohn 24 :
Nota:
Existe un debate sobre el grado de conocimiento que debe tener el SM acerca del área de
conocimiento del proyecto. En general, puede decirse que, aunque su principal cometido
es Scrum y la aplicación de este método, es muy conveniente tener un conocimiento
suficiente, incluso dominio, del área de conocimiento específico del trabajo. Este es
también un argumento a favor de que el SM sea parte de la organización en la que trabaja
y no una persona externa que pueda contratarse temporalmente: el conocimiento que
posee es estratégico para la organización, por lo que no debería externalizarse ni dejarse
fuera de ella.
El papel del Scrum Master es decisivo en el desarrollo del proyecto. Esto es especialmente
cierto cuando se inicia la adopción de Scrum: un mal SM y una mala experiencia de trabajo
con Scrum puede condicionar la aceptación como método de trabajo. Por ello, es crítico el
encaje del SM en el equipo y su capacidad para conectar y transmitir.
A modo de resumen, estas son las responsabilidades concretas del Scrum Master:
El objetivo último del Scrum Master es dejar de ser necesario y hacer que el equipo se
auto-organice y aplique perfectamente Scrum sin su contribución. Lo ideal es que un equipo
de trabajo maduro y productivo no necesite de un SM.
La planificación detallada
Se había dejado el proceso de Sprint Planning en el momento en que se había alcanzado
un número suficiente de historias como para completar el trabajo del equipo durante el
Sprint. Ese es un hito importante, pero no se ha terminado aún: hay que desgranar esas
historias en unidades más manejables y cercanas al trabajo final del equipo. Se trata de
ahondar en la idea de Scrum de ir refinando sucesivamente en lugar de hacer planes
detallados desde el principio.
Por término general, la planificación del Sprint se divide en dos reuniones diferenciadas.
La primera, el Sprint Planning, de la que ya se ha hablado, sirve para poblar el Sprint
Backlog con una selección de historias del Product Backlog. En ella, es preciso contar con la
presencia del PO y de todas las personas que puedan contribuir a hacer que el equipo
comprenda perfectamente qué se espera de su trabajo.
La segunda reunión, la planificación detallada o táctica para el Sprint, busca dividir las
historias de usuario seleccionadas en el Sprint Backlog en partes más manejables llamadas
tareas. En esta segunda reunión (o segunda parte de la primera), no es necesaria la presencia
del PO. De hecho, el equipo de forma autónoma es capaz de realizar esta división por sí
mismo. El objetivo es obtener tareas: entidades pequeñas y manejables, descritas en el
lenguaje del dominio del trabajo, (arquitectura, desarrollo software, marketing o el que
corresponda) y no en lenguaje de negocio.
Una tarea tiene una descripción muy simple del trabajo concreto que se quiere hacer. Lo
ideal es que las tareas puedan realizarse por una persona en un tiempo limitado de entre
medio día a tres días, aunque en esto, como en tantas otras cosas en Scrum, puede tomarse
con una cierta flexibilidad. Una tarea describe un trabajo concreto que debe desempeñar el
equipo y sus resultados no tienen por qué ser revisados por el PO. El conjunto de las tareas
de una historia sí que da lugar a resultados de producto y sí que tienen que ser validados por
el Product Owner posteriormente en la reunión de revisión o Review.
Es muy conveniente recoger el resultado de esta división en tareas en la herramienta que
esté utilizando el equipo para reflejar el trabajo y su evolución, por ejemplo, en un panel con
post-it usando notas de distintos colores y/o tamaños, asociadas a las de las historias. Las
tareas también deben documentarse y contener, además de un nombre suficientemente
descriptivo, toda la información que pueda ser relevante para su conclusión.
Aunque a algunos equipos les pueda parecer un trabajo innecesario y redundante, lo cierto
es que hacer una división en tareas desde el principio del Sprint ayuda mucho a desarrollar y
hacer seguimiento del trabajo, aunque luego pueda cambiar y ajustarse.
La división en tareas se hace en una reunión independiente en la que los miembros del
equipo que vayan a abordar una historia determinada se ponen de acuerdo entre sí para
dividirla. Cuando se consigue la división en tareas de todas las historias, puede darse por
concluida la fase de planificación del Sprint.
El conjunto de las reuniones de planificación no debe suponer un tiempo excesivo y el que
se estime para ello debe ser rigurosamente respetado. No hay reglas establecidas para fijar la
duración de estas reuniones, aunque, cuando no hay otra referencia, se puede calcular una
hora por cada semana de duración del Sprint. La duración definitiva la definirá la práctica y
experiencia acumulada. Por regla general, en proyectos nuevos, en sus primeras fases y con
equipos inmaduros o que no hayan trabajado antes juntos, las reuniones de planificación
duran más que cuando se trata de un proyecto rodado con equipos experimentados. Lo
mismo cabe decir de los distintos actores y su participación: con el tiempo el equipo es cada
vez más autónomo y requiere menos explicaciones y tiempo para estimar y planificar.
El conjunto de historias de usuario y las tareas en las que se dividen conforman el Sprint
Backlog, la definición del trabajo que se va a desarrollar durante la iteración o Sprint.
A partir de este resultado, arranca el trabajo propiamente dicho durante el desarrollo del
Sprint. En los siguientes capítulos, veremos cómo discurre este proceso y cómo se evalúan
sus resultados.
Sin embargo, hay una actividad que, aunque no está incluida entre las típicas de Scrum,
conviene hacer inmediatamente antes de cada planificación: es el llamado refinamiento o
mantenimiento de Backlog (anteriormente se hablaba del Backlog grooming pero este
término está ahora en desuso). Se trata de garantizar que el Product Owner revisa el
contenido del Product Backlog para depurarlo, añadir las historias necesarias, eliminar las
que ya no lo sean, realizar las divisiones necesarias de épicas y temas y, por encima de todo,
garantizar que la priorización de historias es la correcta. En realidad, es este un trabajo
continuo que no debería tener un momento prefijado para hacerlo, pero concretarlo en una
reunión es una forma de garantizar que se hace.
El Refinamiento se realiza antes de cada planificación, excepto para la primera tras el
Sprint 0, momento en el que se considera que el repositorio del proyecto está perfectamente
ordenado y priorizado.
En los casos en los que el refinamiento es una actividad regular y diferenciada, puede
convertirse en una reunión a la que asiste todo el equipo Scrum (PO, SM y miembros del
equipo) con objeto de alcanzar la mejor comprensión posible de cada elemento del Product
Backlog. También puede ser algo que haga el Product Owner con la ayuda opcional del
Scrum Master.
El resultado debe ser el mismo: un Product Backlog revisado y priorizado que haga más
productivas las reuniones de planificación, y facilite las labores de estimación y subdivisión
en tareas.
Consejo:
Sea o no un procedimiento formal de Scrum, un buen PO deberá dedicar periódicamente
un tiempo a revisar el Product Backlog y garantizar que está completo y priorizado. Es
una de las principales responsabilidades del Product Owner y tiene un impacto directo en
el trabajo del equipo.
En resumen
Introducción
Para el trabajo de nuestro libro, hemos iniciado un nuevo Sprint con la planificación de lo
que vamos a hacer en él. Puesto que ya llevamos un tiempo trabajando juntos y conocemos
nuestro ritmo (velocidad) y el uso de las herramientas, hemos sido un poco ambiciosos. Nos
hemos propuesto terminar de revisar y componer tres capítulos (lo que significa realizar
correcciones y escoger imágenes), además de escribir otros tres. Esas historias de usuario han
sido divididas y las distintas tareas introducidas en el Backlog del Sprint. Así que, terminada
la planificación podemos empezar a trabajar, contrastando periódicamente nuestros avances y
superando los problemas que vayamos encontrando.
Veremos en este capítulo cómo es el desarrollo de un Sprint, qué implicaciones tiene
trabajar aplicando Scrum para un equipo, de qué forma se hace el seguimiento de su trabajo y
cómo se resuelven los problemas que puedan ir surgiendo. Finalmente, hablaremos de las
herramientas utilizadas como apoyo al desarrollo de proyectos con Scrum.
El Sprint
Ya se ha dicho que los proyectos que apuestan por Scrum se dividen temporalmente en
una serie de iteraciones o Sprints.
En un proyecto convencional, tras dedicar mucho tiempo y esfuerzo a diseñar el trabajo,
cada vez con más detalle, se realiza todo el desarrollo del proyecto de manera continuada
para entregar al final del proceso un producto acabado.
La realidad es que en ese tipo de proyectos rara vez se cumplen plazos y costes o lo hacen
sacrificando calidad. Pero como, por encima de todo, los requisitos rara vez permanecen
estables, es necesario realizar cambios y correcciones sobre un producto terminado que no
está preparado para ello.
Scrum aporta una aproximación incremental: el producto se construye poco a poco en
ciclos limitados, al final de los cuales hay una versión parcial pero funcional del producto.
Por ejemplo, en un proyecto de desarrollo de una aplicación para un dispositivo móvil, se
tendría un programa limitado, pero funcionando al final de cada Sprint. Ganaría
funcionalidades y complejidad en cada iteración, lo que facilita asumir requisitos cambiantes
y nuevas características para el producto.
Una forma de entender la diferencia entre Scrum y un proyecto convencional es pensar en
un pueblo que está creciendo: al principio hay pocas casas y, al final de cada Sprint, habría
más, pero siempre sería un pueblo, cada vez más grande y con más “funciones” (farmacia,
escuela, campo de deportes...). Una pirámide sería un proyecto convencional en el que, hasta
que no se pone la última piedra en la cima, no se tiene una pirámide, solo un trapecio cada
vez más alto.
Cuando el producto es suficientemente grande, pueden programarse Releases o entregas
(véase el capítulo 3), que son unas agrupaciones de Sprints al final de las cuales se entrega un
producto con un conjunto principal de funciones o características. Tanto si hay Releases
intermedias como si no, al final del proyecto se obtendrá una entrega final con todo el trabajo
desarrollado y validado.
La duración del Sprint es una decisión importante que tiene influencia en el desarrollo del
trabajo. Se fija en el momento de iniciar la primera iteración, incluso antes (en el Sprint 0),
pero esa decisión no es inamovible: puede ajustarse en función de las necesidades del
proyecto y el equipo.
Por término general, se considera que un Sprint debe durar entre una y cuatro semanas.
Menos tiempo parece escaso para poder desarrollar un conjunto mínimo de funcionalidades.
Más tiempo parece demasiado para garantizar la sincronización entre las necesidades del
cliente, expresadas en el Product Backlog, y la actividad del equipo. Sin embargo, puede
haber casos en los que tenga sentido salir de esas recomendaciones.
¿Qué consecuencias tiene una u otra duración de Sprint?
Los Sprints cortos permiten detectar de forma temprana posibles problemas en el curso
del desarrollo. Son más indicados en las etapas iniciales del proyecto, en actividades de
innovación o poco definidas, cuando los requisitos pueden ser más inestables y sujetos a
variación. También es conveniente cuando el equipo es inmaduro, se desconocen las técnicas
y herramientas usadas o sus miembros tienen poca costumbre de trabajar juntos. Al sucederse
con mayor rapidez los momentos de planificación y revisión de resultados, pueden detectarse
antes elementos o condicionantes negativos y actuar a tiempo para corregirlos.
Un Sprint corto tiene también un coste. Hay que considerar que el tiempo dedicado a
planificación y revisión tiene mayor impacto que en Sprints más largos, aunque su duración
sea proporcional a la duración de cada iteración.
Por eso, cuando hay una relativa estabilidad de requisitos, el entorno es conocido, el
equipo maduro y sus miembros acostumbrados a trabajar juntos, puede optarse por Sprints
más largos. Esto supone depositar una confianza mayor en el equipo, ya que la revisión de
resultados se demora más y, con ella, la posible corrección que haya que aplicar.
Esto no quiere decir que tras la planificación se dé un cheque en blanco al equipo para que
avance, haga y deshaga por su cuenta: los resultados se pueden ir conociendo a medida que
evoluciona el Sprint. Lo que sí hay que procurar es reducir, en la medida de lo posible, las
interrupciones que puedan desviar al equipo de su objetivo. Es una forma de conseguir el
“latido”, la estabilidad y carácter predecible del proceso que nos permitirá estimar mejor y
evitar los sobresaltos y sorpresas de última hora habituales en tantos proyectos.
Decidir la duración del Sprint es una tarea compartida por todo el equipo Scrum (PO, SM
y equipo de trabajo), aunque sea el Scrum Master, por su conocimiento de las técnicas
Scrum, y el equipo, por su mayor dominio del área de conocimiento del trabajo, quienes
tienen más que decir a la hora de alargar o reducir cada iteración.
En cambio, el número y frecuencia de Releases es una decisión en la que tiene más peso
el Product Owner, ya que tiene componentes de gestión y del negocio. Sea corto o largo el
Sprint, hay que centrarse en la consecución de sus objetivos. Esto supone cuidar
determinados aspectos:
Equipo de trabajo
Figura 6.2. Un equipo comprometido y autónomo es el pilar sobre el que se apoya Scrum.
Nota:
Hay que recordar que en Scrum se habla de dos equipos: el equipo de trabajo
propiamente dicho y el “equipo Scrum”, que incluye al Product Owner, al Scrum Master
y al equipo de trabajo.
Hay mucha literatura al respecto del tamaño del equipo. Lo cierto es que no se trata de un
tema menor: para equipos muy pequeños, Scrum puede suponer una innecesaria carga
adicional de trabajo que se podría evitar aplicando otro tipo de mecanismos. Equipos muy
grandes pueden volverse inmanejables, aunque eso ocurre con Scrum y con cualquier otro
método.
Por término general, se recomienda un tamaño de equipo entre los 4 y 10 o 12
miembros 26 . Aunque como recomendación que es, está sujeta a matices y excepciones. Un
equipo de tres, como el que ha elaborado este libro, puede gestionarse con Scrum, aunque un
equipo de dos puede difícilmente considerarse equipo.
Son admisibles equipos más grandes, aunque los problemas de comunicación y
comprensión (además de la logística), crecen exponencialmente con el tamaño del equipo. A
partir de cierto número de personas hay que considerar seriamente su división y escalar
Scrum. Este modelo (del que se hablará más en el capítulo 12 de este libro) significa, en
síntesis, crear varios equipos con su propia estructura, ciclo y Scrum Master, y luego crear
sobre ellos una pequeña organización que se encargará de garantizar la unicidad de objetivos
y la sincronización de trabajos.
La división del equipo puede deberse no solo a su tamaño. Puede ocurrir que haya una
distribución geográfica que dificulte el flujo de información y la colaboración. O que haya
una diferenciación muy clara de actividades y un tamaño de equipo en cada una de ellas que
facilite esa división.
La separación geográfica es un factor que dificulta el trabajo en equipo, algo clave para
Scrum (y, en realidad, en cualquier actividad en colaboración). Se ha demostrado muchas
veces que la productividad aumenta cuando la comunicación es más fluida y eso se consigue
especialmente si el equipo comparte un mismo espacio físico. De hecho, uno de los
paradigmas del método ágil de desarrollo software llamado XP (eXtreme Programming,
Programación Extrema), del cual se habla en otro capítulo, es la programación por pares en la
que dos personas trabajan sobre un mismo fragmento de código codo con codo, sentada una
junto a la otra.
Así que una recomendación recurrente en muchos de los textos sobre Scrum y en la propia
experiencia de los autores es procurar la mayor proximidad física posible del equipo. Lo
ideal sería poder disponer de una sala de proyecto que acogiera a todos los miembros, con
espacio común para reuniones y debates, y un lugar donde poder colocar un panel donde se
refleje el estado del Sprint con las historias y tareas en curso.
Los medios tecnológicos actuales son una gran ayuda y conviene apoyarse en ellos para
superar las barreras geográficas: mensajería, herramientas de colaboración o
videoconferencia serán una gran ayuda, aunque nunca pueden suplir la presencia física en
una misma sala del equipo.
Truco:
Siempre hay forma de sortear las limitaciones del entorno del proyecto, en este caso la
proximidad. En un proyecto distribuido, pero con los miembros relativamente próximos
geográficamente, se puede habilitar un día a la semana para trabajar todos juntos en un
mismo espacio ocupado temporalmente. En general, alternar en la medida de lo posible
presencia física con comunicaciones electrónicas es una solución que mitiga los
inconvenientes de mantener un equipo de trabajo disperso.
Para facilitar la sincronización entre todos los miembros del equipo, mantener el ritmo y
“tensión” y para fomentar la comunicación interna, Scrum propone la Daily Meeting,
reunión diaria, Scrum Diario o Daily Scrum. Es una reunión informal que se realiza
diariamente, en la que participan todos los miembros del equipo y el Scrum Master, y a la
que puede asistir el PO.
En ella, cada miembro del equipo, de manera voluntaria (sin turnos o listas), pasará a
comentar: qué actividades ha realizado, qué actividades va a realizar a continuación y qué
impedimentos ha encontrado para continuar su trabajo. Estos son los puntos que debe tratar y
ninguno más. No hay que entrar en el detalle de lo que ha hecho (salvo que sea
imprescindible, muy relevante para los demás o tenga implicaciones en el trabajo de otros);
no hay que discutir las soluciones que se han adoptado o podrían adoptar; no hay que divagar
sobre si el impedimento tiene su origen allí o allá, solo sobre cómo resolverlo y quién puede
hacerlo. Hay que centrarse en el objetivo de la reunión y hacerla breve y productiva. Si
quedaran temas pendientes, las personas directamente afectadas las tratarán con calma,
evitando así distraer a todo equipo. Si afectara a todo el equipo, se trataría igualmente fuera
de la Daily para mantenerla breve y centrada en su propósito.
Nota:
Aunque la Daily Meeting es, por definición, una reunión que se celebra cada día, puede
ocurrir que haya circunstancias que obliguen a elegir otra frecuencia. Scrum es muy
flexible y permite hacer ajustes y adaptaciones como estas, aunque eso sea también un
peligro y haya equipos que fuercen tanto Scrum que acabe por conservar solo el nombre
(véase el capítulo 9 y los llamados “Scrum buts”). De todas formas, aunque el equipo y
Scrum Master (y con el visto bueno del coach cuando lo haya) acuerden reunirse cada dos
días, por ejemplo, hay que garantizar el flujo constante de la información y el
conocimiento actualizado del estado del Sprint.
Truco:
Un riesgo habitual es que las reuniones diarias se alarguen más de lo conveniente. El
Scrum Master deberá buscar formas de dinamizarlas e insistir en su contenido, duración y
alcance. Hay muchos trucos para esto, pero casi todos pasan por reducir la comodidad
que invita a los asistentes a extenderse. Por ejemplo, realizarlas de pie es una forma muy
efectiva de que cada miembro no sienta la tentación de extenderse sin razón. Los autores
conocen casos más extremos en los que se ha optado por sujetar un objeto pesado
mientras se habla, pero irónicamente eso deja en situación de ventaja a los miembros más
fuertes físicamente del equipo.
Cuidado:
Hay equipos que optan por un sistema de “multas” para controlar situaciones como
retraso o falta de asistencia en reuniones, extenderse más de lo debido, interrumpir, etc. Se
trata de un tema delicado que hay que tratar con cuidado. En primer lugar, no debe
imponerse un sistema de castigo si no es con el consentimiento explícito de todos los
miembros sin excepción del equipo, y con unas reglas muy claras. En caso contrario debe
olvidarse. Y la naturaleza de la multa debe ser casi simbólica: por ejemplo, un euro cada
vez que se llegue manifiestamente tarde y con el objetivo de que ese dinero revierta en
todo el equipo, por ejemplo, para pagar unos dulces o una cena.
Las Daily Meetings permiten tomar el pulso del trabajo y detectar de manera temprana
problemas que de otro modo podrían crecer y convertirse en obstáculos serios. Con ellas, se
garantiza un conocimiento actualizado del estado de los trabajos por parte de todos los
miembros del equipo, lo que es una forma de incrementar su grado de compromiso, la
sincronización y la auto-organización.
La información recibida debe actualizarse, preferiblemente en un panel o herramienta que
sea fácilmente accesible para todos. Además de esta información de estado y evolución que
permite conocer cómo se está desarrollando el Sprint y que permite ir confirmando las
estimaciones de velocidad hechas en la planificación, hay un resultado muy importante de
cada reunión diaria: los impedimentos.
Backlog de impedimentos
Cuidado:
Los impedimentos no pueden quedar sin responsable. El Scrum Master lo es de su
seguimiento, pero no necesariamente de su resolución. La mejor manera de conseguir que
un impedimento no se resuelva es dejarlo sin responsable encargado de su resolución.
Scrum define una serie de artefactos que son en sí mismos herramientas que ayudan en el
control y seguimiento de un proyecto: los distintos Backlogs y el burn-down chart. Pero,
además, hay una serie de aplicaciones software que hacen más fácil la vida al equipo Scrum.
En esta sección se hará un repaso a algunos de ellos.
En Scrum, la herramienta más útil es también la menos sofisticada: un panel con una serie
de etiquetas pegadas en él. Posiblemente haya otra aún más simple y útil, que es facilitar la
comunicación entre los miembros del equipo, aunque seguramente haya muchas personas
que se resistan a considerarla una herramienta.
La forma más simple de representar y manejar los artefactos es usar paneles o tableros con
etiquetas adhesivas o post-it. Cada una de esas etiquetas representa una historia de usuario o
una tarea, que se pueden disponer en el tablero de acuerdo con el orden más conveniente para
equipo y proyecto, aunque el más recomendable es siempre la prioridad que fija el Product
Owner.
Este panel se usa, sobre todo, como forma de representar el Sprint Backlog y recibe
entonces el nombre de tablero de tareas o task board. Se trata de un sistema extremadamente
sencillo de mostrar toda la información de un vistazo si se ubica en un lugar visible para todo
el equipo. Permite tener en todo momento un estado actualizado de la evolución del Sprint.
En el panel, que puede ser móvil o la propia pared, se dibujan unas áreas o columnas que
representan los distintos estados de historias de usuario y tareas (pendiente de iniciar, en
curso, terminada, impedida). Unos post-it, etiquetas autoadhesivas, carteles, textos escritos,
etc. que contienen las historias de usuario y, si el formato lo permite, las tareas en las que se
dividen.
Figura 6.4. Un ejemplo de panel real.
Cuando se va a iniciar una tarea, se mueve del área “pendiente de empezar” al área “en
realización”. Usando símbolos y distintos colores para letras o etiquetas, se puede enriquecer
la información, añadiendo datos sobre los componentes a que se refieren, quién trabajan en
ello, a qué Release corresponde, etc. Como se ve, es una herramienta muy simple, fácil de
utilizar y útil.
Otra herramienta muy importante es el diagrama conocido como burn-down chart (la
traducción “diagrama de quemado” parece poco afortunada y apenas se usa).
El burn-down chart representa la evolución del trabajo durante un Sprint. El eje X
(horizontal) muestra el tiempo, expresado como días, desde el inicio hasta el final del Sprint.
El eje Y (vertical) muestra la cantidad de trabajo que se debe realizar. Esa cantidad de trabajo
puede medirse en puntos de historia o como la suma de entidades (tareas e historias de
usuario) que se van a realizar a lo largo del Sprint. También puede aplicarse al conjunto del
proyecto, aunque es algo menos habitual.
Una línea recta diagonal marca la evolución ideal del trabajo: se sitúa al principio en el
número total de puntos o entidades que se van a resolver y llega hasta el final del periodo
señalando cero, o que se ha resuelto completamente. La siguiente figura muestra un burn-
down chart en una herramienta informática.
Figura 6.5. Burn-down chart.
Herramientas informáticas
Paneles y tableros son fáciles de usar y muy accesibles, pero a cambio requieren esfuerzo
manual continuado y una cierta destreza (además tener inconvenientes como etiquetas que se
caen, pérdida de versiones anteriores y demás). Por ello, existen herramientas informáticas
que permiten reflejar el contenido y estado de un proyecto desarrollado con Scrum.
Estas herramientas son necesarias para equipos distribuidos, ya que no pueden tener
acceso constante al panel físico, pero sí a una herramienta informática.
Las más básicas son hojas de cálculo en las que cada celda refleja una tarea, historia, épica
o tema. Las columnas representan los estados u otra clasificación de la información relevante
para el proyecto.
Hay varias plantillas que funcionan sobre Excel. También se pueden usar versiones más
sencillas en servicios en red, como Google Docs o Trello. Todas estas herramientas operan de
forma parecida. Son compartidas por todos los miembros de equipo que van actualizando el
estado de sus actividades en ellas. De esa forma es posible tener una imagen actualizada al
momento del Backlog de producto y del Sprint, y ver cómo evolucionan las gráficas burn-
down.
Una herramienta muy difundida es JIRA y está tan extendida que hay artículos que
advierten sobre el riesgo de confundir el uso de JIRA con la aplicación de Scrum. Nació
como herramienta para dar soporte a la gestión de tickets, pero la extensión o plugin
GreenHopper 27 permite incorporar los elementos de Scrum.
Figura 6.8. Panel en la herramienta JIRA.
Para cada entidad (historia, tarea, épica) hay una completa ficha y se permite reflejar
estimaciones, agregar textos y documentación, establecer relaciones entre entidades y un
largo etcétera de funciones adicionales. La información se dispone de forma parecida a un
panel con las columnas que representan el estado de las historias y tareas.
También genera gráficas tipo burn-down con datos actualizados por Sprint y conjunto del
proyecto.
JIRA está pensada para empresas con múltiples equipos trabajando en distintos proyectos.
Permite un uso compartido de la aplicación, de forma que todos los miembros del equipo
pueden conocer el estado actual y realizar cambios y modificaciones. Eso supone que la
información está actualizada al instante y da una imagen precisa y real del proyecto.
Al tratarse de una herramienta orientada inicialmente a la gestión de tickets, cuando es
necesaria la contribución de departamentos especiales en una empresa, la integración es muy
simple.
Una prueba de la difusión de JIRA es la existencia de herramientas y extensiones que la
complementan y ayudan a superar algunas limitaciones. Por ejemplo, JIRAclient 28 es un
programa que facilita la edición masiva de entradas, algo complicado en JIRA y cuya interfaz
es Web.
Además de JIRA, hay un buen número de herramientas para Scrum: pmScrum, PlanBox,
Pango Scrum, Agile Solutions (antes Rally) 29 y muchas otras. En cuanto a herramientas
gratuitas, el catálogo es también bastante extenso: Kunagi 30 , ScrumDo 31 , Scrumy 32 o
Banana Scrum 33 .
De todas ellas, podemos destacar:
• Agilo for TRAC 34 (y su gemela Agilo for Scrum 35 ), que en realidad es un plugin para
Scrum de la herramienta de gestión de proyectos TRAC.Quizá lo más destacable es la
capacidad de albergar información detallada sobre todos los aspectos del proyecto y la
de enlazar los distintos elementos que definen el trabajo. Tiene perfiles específicos
para los distintos roles Scrum y una amplia serie de informes. Como el medio de
acceso es Web, se puede descargar e instalar localmente o acceder como servicio a la
Web del fabricante.
• Scrumworks 36 de Collabnet. Es una aplicación de escritorio pensada sobre todo para el
uso de Scrum en entornos de desarrollo software con XP (véase el capítulo 10 sobre el
tema). También hay una versión Web más limitada. Cuenta con una completa
herramienta de generación de informes que permite crear otros nuevos.
• ScrumDesk 37 es una herramienta directamente pensada para Scrum y que permite un
uso gratuito para un número limitado de usuarios. Contiene la información de los
distintos proyectos en servidores propios o compartidos y usa para acceder a ellos un
cliente PC. Además de Backlogs, fichas y gráficas más convencionales, contiene
gráficas exclusivas y algunas funcionalidades tan curiosas como una herramienta para
hacer el Planning Poker, tal y como se puede ver en la siguiente figura:
En resumen
En este capítulo, se ha visto cómo se desarrolla el trabajo en un proyecto Scrum a lo largo
de un Sprint o iteración. Cómo, para mantener el ritmo, evitar desviaciones y mantener el
flujo de información se organizan reuniones diarias con todo el equipo (Scrum diario, Daily
meeting o Daily Scrum). Uno de los resultados más importantes de esas reuniones es la pila o
Backlog de impedimentos para el proyecto y la identificación de responsables para su
resolución.
También se ha visto cómo se organiza un equipo y consejos sobre la forma de trabajar y
comunicarse.
Por último, se ha dedicado un apartado para hablar de las herramientas utilizadas en
Scrum y otras metodologías ágiles: desde los sencillos y efectivos paneles con etiquetas a
sofisticadas aplicaciones informáticas.
En lo que respecta a este libro, el Sprint ha terminado y hemos encontrado varios
obstáculos en el desarrollo del trabajo planificado. Varios de esos obstáculos han podido
solventarse, pero otros han impedido completar el ambicioso programa que habíamos
previsto.
Ahora que ha finalizado el Sprint llega el momento de revisar qué hemos hecho y cómo lo
hemos hecho para ver dónde podemos mejorar de cara al futuro.
Figura 6.10. La herramienta Mingle.
25 Clientes, usuarios y, en general, todas las personas interesadas en el resultado del trabajo.
26 Hay una sencilla regla llamada las dos pizzas, que limita el tamaño del equipo al número de personas que puedan comer
con dos pizzas.
27 http://www.atlassian.com/software/greenhopper/
28 http://almworks.com/jiraclient/
29 https://www.ca.com/us/products/agile-solutions.html/
30 http://kunagi.org/
31 http://www.scrumdo.com/
32 http://scrumy.com/
33 http://www.bananascrum.com/
34 http://www.agilofortrac.com/
35 http://www.agiloforscrum.com
36 http://www.collab.net/products/scrumworks/
37 http://www.scrumdesk.com/
38 https://www.thoughtworks.com/mingle/
En este capítulo aprenderá:
Ahora que se ha cumplido el tiempo que nos hemos dado para nuestra iteración o Sprint
llega el momento de verificar si el trabajo que hemos realizado se ajusta a nuestros planes y
expectativas iniciales. En el caso de nuestro libro, nos propusimos un objetivo bastante
ambicioso. A lo largo del Sprint han surgido y se han resuelto impedimentos, algunas tareas
han supuesto menos esfuerzo del que preveíamos en un principio y otras se han complicado
más de lo esperado inicialmente. Ahora ha llegado el momento de la revisión y veremos
hasta qué punto hemos cumplido con nuestro compromiso y estimación.
Uno de los principios de Scrum es instrumentalizar el proceso de aprendizaje. En Scrum
se elimina la suposición de que el cliente tiene claro lo que necesita o busca. Se considera
que el equipo va a tener que construir con cierto grado de incertidumbre y, por lo tanto, se
cuenta con la necesidad de aprendizaje y adaptación continua. Otra de las suposiciones que
se elimina es que el equipo sabe cómo trabajar en común. Es necesario también un
aprendizaje continuo en la forma de trabajar como equipo para encontrar la estabilidad y
productividad. Para conseguir este objetivo, dentro del método, se propone la realización de
una reunión denominada Sprint Review como resultado natural de cada iteración, como se
explica en el capítulo 6.
La Sprint Review es el punto de comunión entre los responsables de un producto o
proyecto y el equipo de desarrollo. Por medio de refuerzos positivos o negativos, los
responsables del producto asimilan el cómo se está desarrollando su producto y el equipo que
lo está desarrollando interioriza por qué y para qué se está desarrollando. Todo lo aprendido
debe incorporarse a las siguientes iteraciones de desarrollo o Sprints y así adaptar el proceso
a las necesidades específicas del proyecto.
Nota:
Jean Piaget definió que la adaptación está formada por dos movimientos: el de
asimilación y el de acomodación. Estos dos movimientos se retroalimentan y se pueden
repetir cíclicamente para facilitar la adaptación. Scrum es un ejemplo de proceso de
adaptación y aprendizaje cíclico.
La Sprint Review, también denominada Customer Sprint Review, es una reunión definida
en Scrum que tiene lugar el último día del Sprint. El objetivo principal de esta reunión es la
recogida de información o feedback sobre el estado del proyecto o producto en desarrollo.
Para ello, en esta reunión, se realiza una puesta en común de todo el trabajo realizado durante
el Sprint. Esta revisión sirve para poder repasar y discutir sobre los puntos clave de la
novedad generada durante la última iteración. En otras palabras, analizar en el valor añadido
al producto o proyecto.
Esta reunión tiene una duración que es dependiente de la propia duración del Sprint que
concluye, ya que, a más duración del Sprint, más trabajo hay que mostrar. Una posible regla
de ayuda es reservar de media a una hora por cada semana de Sprint. El aspecto más
importante es que esta reunión debe estar acotada en tiempo antes de comenzarla y no se
debe permitir que extienda indefinidamente. El concepto de limitar el tiempo en Scrum para
evitar que las reuniones se alarguen innecesariamente se denomina Time boxing y es uno de
sus valores básicos.
Es tan importante revisar el qué se ha hecho durante un Sprint como el cómo se ha hecho
para maximizar la adaptación durante el siguiente Sprint. Considerar la revisión de una
iteración solo como la revisión formal de lo que se ha hecho, sin tener en cuenta el cómo se
ha hecho durante una Retrospectiva, es uno de los errores más comunes que se pueden
encontrar en la aplicación de Scrum.
La finalidad fundamental de la Review es revisar el qué y se puede resumir en tres puntos:
Nota:
Es útil tener una plantilla para una Wiki o para un cartel y poder rellenarla y compartir
con todo el equipo rápidamente. Con esta práctica, se disemina la información del
proyecto en la organización en la que se está trabajando y se minimizan las interferencias
en las reuniones.
Nota:
Preparar la Review no implica tener en mente simplemente la demostración que se va a
realizar. Hay que tener en cuenta que la Review va más allá de una demostración o
presentación y se deben analizar todas las implicaciones que tiene. Una buena
recomendación es plantearla como un focus group, que es una técnica de recolección de
datos para grupos, con el fin de obtener información acerca de la opinión de los usuarios
sobre un tema en particular.
Los invitados
De todas las reuniones definidas en Scrum, la Sprint Review es la que admite más
invitados. Lógicamente, es necesario que asista el equipo de desarrollo del producto, el
Scrum Master y el Product Owner, pero otros roles, como usuarios, gestores y miembros de
otros proyectos, son igualmente bienvenidos. A todos estos roles fuera del equipo Scrum se
les denomina stakeholders.
En general, cualquier persona interesada en el proyecto debería poder asistir. Como uno
de los objetivos de esta reunión es recoger comentarios e información del producto para la
siguiente iteración, parece lógico que se abra el abanico de invitados a todas las personas que
puedan aportar información para el producto.
Obviamente, dependiendo del número de invitados, la logística y dinámica de la reunión
pueden verse afectadas. Se deberá sopesar el valor que aporte la asistencia de invitados a la
reunión frente a las trabas que puedan plantear al desarrollo de esta.
Como en todos los artefactos y medios definidos en Scrum, en la Sprint Review pueden
aparecer una serie de problemas que pueden afectar tanto a la propia reunión como al proceso
global y, en ocasiones, pueden ser mucho más nocivos de lo que aparentan a simple vista.
En los siguientes apartados se presenta una relación de posibles problemas que se pueden
encontrar al realizar este tipo de reuniones.
Nota:
Esta lista puede crecer en función de las peculiaridades de la organización en la que se
implante Scrum, ya que muchos de los problemas son causados por elementos de la
organización ajenos al equipo de trabajo.
La reunión móvil
Al tratarse de una reunión a la que pueden asistir muchas personas, algunas de ellas con
un cierto nivel de responsabilidad en la organización, es habitual que existan problemas con
las agendas de los asistentes. Se está tentado de modificar el día de la Sprint Review cuando
hay problemas de asistencia y, por lo tanto, variar la duración del Sprint sobre la marcha. Este
cambio tira por tierra el compromiso adquirido en la planificación del Sprint por parte del
equipo, ya sea porque se reduce el tiempo para realizar el mismo trabajo o porque se amplia.
Nota:
El compromiso que adquieren los miembros del equipo cuando se realiza la planificación
del Sprint es uno de los pilares de Scrum y el fundamento de muchos principios que
facilitan el desarrollo de la iteración, por ejemplo, la autogestión del equipo.
Aunque se cuente con mayor tiempo, la incertidumbre de fechas a las que se somete al
equipo hace que su compromiso pueda flaquear. Se puede abrir la puerta a plantearse por qué
van a esforzarse para tener un trabajo en una fecha si posiblemente esta acabe cambiándose.
Es importante no cambiar, por lo tanto, las fechas del final de un Sprint. Es preferible la
ausencia de algún invitado a la reunión de fin de Sprint que el cambio de fecha.
La mejor contramedida contra este problema es fijar con mucha antelación las fechas de
las Review y buscar el compromiso de todas las partes para respetarlas al máximo.
Figura 7.3. Reunión convocada con anterioridad suficiente para que todos los invitados a
la Review puedan asistir.
Aunque frecuentemente los Sprint Reviews se ven como “la demo del fin de Sprint”, su
propósito va más allá de una simple demostración o presentación de resultados. Como se ha
comentado anteriormente, estas reuniones se deberían enfocar como un focus group o
reunión de captura de opiniones para recoger comentarios e información sobre el Sprint
realizado, la funcionalidad obtenida y las adaptaciones necesarias que hay que aplicar en el
Backlog. Por otro lado, debe tomarse como un mecanismo de aprendizaje sobre las
implicaciones que las funcionalidades que se solicitan tienen sobre el producto. Esto quiere
decir que la reunión sirve a los responsables de producto para relacionar el valor que se ha
añadido al producto con el coste que ha implicado.
Tener una agenda de la Review preparada con distintas secciones, en las que la demo o
presentación de resultados es una de ellas, es una buena práctica para desacoplar el concepto
demo del de Review.
Nota:
El Scrum Master tiene que ayudar al equipo a no perder el rumbo durante el Sprint,
transmitiendo correctamente la visión del producto y el objetivo que el Product Owner
persigue.
Se tiene que evitar confundir los principios YAGNI (You Aren’t Gonna Need It o “No lo
vas a necesitar”), que nos hablan de crear solo lo que se necesita en el momento actual, con
desarrollar para la demostración en vez de para el producto. La labor del equipo trabajando
en un producto o proyecto es crearlo de forma incremental y periódicamente se muestra el
estado del desarrollo en la Sprint Review. No se trabaja para las demostraciones o
presentaciones de resultados, un conjunto de funcionalidades para contentar a los actores
implicados en el proyecto o producto y luego adaptar dicha funcionalidad al producto creado.
Nota:
Cuando un desarrollador del equipo plantea hacer algo con la justificación de mejorar la
demostración, es necesario analizar si estamos añadiendo valor al producto o simple y
exclusivamente a la demo.
En línea con el anterior punto, cuando se trabaja solo para poder realizar una buena
demostración, se dedica un tiempo excesivo para preparar la reunión. El tiempo efectivo del
Sprint se ve reducido, empeorando la velocidad del equipo y, por lo tanto, los tiempos de
desarrollo del producto.
Nota:
Como se ha mencionado antes, la Sprint Review debe ser un resultado natural de un
Sprint y no se debería dedicar más de 1 o 2 horas a su preparación.
El propósito y objetivos de la reunión deben estar claros para todos los asistentes. Se
puede ser flexible a la hora de cubrir los objetivos de la reunión, pero se debe evitar que la
reunión la monopolicen los stakeholders, gestores o usuarios. Su aportación tiene un espacio
perfectamente delimitado en la reunión y, por eso, se debe reconducir a su cauce, siempre que
se pueda, si se desvía de su propósito. Una buena práctica es comenzar haciendo un repaso
del objetivo y planteamiento de la reunión para que los asistentes tengan claro cuál será la
mecánica de esta.
Nota:
Si surge algún tema relevante para el producto, pero que no aplica a la reunión de Sprint
Review, siempre se puede crear una reunión específica para tratar y resolver ese tema de
forma dedicada.
La Sprint Review no es una reunión de aprobación de los ítems del Backlog. Los ítems del
Backlog deben llegar a esta reunión cerrados o no cerrados por el equipo, ya que se han
definido unos criterios de aceptación que delimitaban su realización. Si han surgido dudas
durante la realización del Sprint, se deberían haber resuelto con el Product Owner es ese
momento. Si al revisar la realización de un ítem del Backlog, se comprueba que este no cubre
las necesidades actuales del producto, se identificará esta nueva necesidad y se incorporará al
Backlog como una mejora sobre un ítem del Backlog o incluso se creará un nuevo ítem.
Si un ítem del Backlog no cumple los criterios de aceptación, el equipo de calidad, en el
caso de que lo hubiera, debería impedir que se diera por cerrado. Con esta premisa, en la
reunión, no se acepta o rechaza un ítem del Backlog. Más bien se recoge información sobre
este para tomar una decisión en el siguiente Sprint. Se debe evitar que, repetidas veces, un
ítem del Backlog se traslade abierto al siguiente Sprint porque no se apruebe su realización.
Si esto ocurre, los criterios de aceptación no se están fijando correctamente y se deben
revisar.
Aunque se respete la regla de una hora de reunión por cada semana de trabajo, muchas
veces la duración de este tipo de reuniones crece incontroladamente. Es importante fijar y
transmitir la duración de la reunión de forma anticipada a los asistentes para que se respeten
al máximo. El concepto de TimeBoxing o limitación del tiempo es muy importante en Scrum.
Para evitar que las demostraciones de los elementos del Backlog se alarguen demasiado,
es conveniente seguir la definición de cómo hacer la demo que se haya definido en la
preparación del Sprint y no intentar cubrir todos los casos de uso del ítem del Backlog. Se
puede entregar el incremento del producto o la información generada para la Sprint Review a
los asistentes y Product Owner después de la reunión para que experimenten o contrasten el
resultado del Sprint de forma completa.
Para evitar que se abran discusiones interminables sobre el producto en sí, es una buena
práctica que el Product Owner trabaje en la estrategia del producto o proyecto de forma
constante. Una buena práctica es reunirse con los implicados en las decisiones del producto o
proyecto durante el Sprint y cerrar allí estas discusiones para que no se traten solamente en la
reunión Review. De esta forma, se puede enfocar la discusión en el avance del proyecto y no
sobre la estrategia de este.
Nota:
Una de las reuniones que se deben mantener durante un Sprint es la denominada
Refinamiento del Backlog, que ayuda a preparar el Backlog para nuevas iteraciones y
genera discusiones sobre la estrategia del producto.
• Establecer las normas y reglas de conducta en la reunión si hay nuevos asistentes que
no hayan estado con anterioridad.
• Repaso de los objetivos del Sprint.
• Recapitulación del Product Owner identificando qué cosas se han terminado y cuáles
no. Aquí el concepto “terminado” define lo que el equipo considera listo según los
criterios de aceptación que se definieran para cada elemento del Backlog.
• Revisión por el equipo de sus estadísticas y métricas, repaso de los logros del producto,
los problemas que han aparecido en la realización de los ítems del Backlog y cómo se
han tomado medidas para resolverlos. Aquí se habla desde el punto de vista del
producto. En el siguiente capítulo se hablará de cómo se analizan los resultados desde
el punto de vista del equipo con la Retrospectiva.
• Demostración por equipo de los ítems considerados como terminados, respondiendo a
todas las dudas que puedan surgir en referencia a ellos.
• Repaso por parte del Product Owner del Product Backlog tal y como estaba antes de la
reunión y el plan de entregas preestablecido.
Nota:
Cada equipo, en función del ámbito en el que esté creado el producto o proyecto y según
los parámetros de calidad que quieran aportar, define un conjunto de métricas que se
pueden revisar en la Review para analizar su estado y evolución. Un ejemplo podrían ser
los datos de cobertura de las pruebas en un desarrollo software, como indica la siguiente
imagen.
Nota:
Es muy positivo ser conscientes de que las cosas pueden cambiar más de lo que pensamos
inicialmente y no conformarnos con frases como “esto siempre se ha hecho así”. Si no se
intenta hacer nada, nada cambiará. ¡No empecemos una Retrospectiva sabiendo de
antemano cómo va a acabar!
Se pueden realizar Retrospectivas en distintos momentos del proyecto: al final del Sprint,
después de una entrega intermedia o release o al final del proyecto.
Las Retrospectivas son tremendamente útiles siempre, se usen o no métodos ágiles. Si no
se utiliza Scrum, se pueden adaptar las Retrospectivas para revisar y adaptar la forma en que
se está trabajando en el curso del proyecto y hacer ese análisis una vez al mes o cada vez que
se cumpla un hito significativo.
Observación:
Sería injusto pensar que las Retrospectivas solo son necesarias y útiles para los equipos
que tienen problemas. Una Retrospectiva ayuda a mejorar a todos los equipos y esto
incluye a los que ya lo hacen bien y no tienen demasiados problemas. Todo puede ser
mejorado.
Algunas recomendaciones
La primera de ellas es que para abordar una Retrospectiva ante todo debemos ir con una
mentalidad positiva. ¿Qué significa esto? Pues que, aunque haya problemas, seguro que algo
se hizo bien y es crucial recordarlo. Hay que dedicar una parte de la Retrospectiva a comentar
los éxitos y las buenas prácticas utilizadas, así como recordar cualquier aspecto positivo para
el equipo que haya ocurrido a lo largo del Sprint. Si nos embarcamos en una Retrospectiva,
nuestra intención real debe ser tratar de mejorar las cosas, pero, si comenzamos con espíritu
destructivo, negativo o pesimista, francamente, poco conseguiremos. Por eso, viene muy bien
dedicar la primera parte de la Retrospectiva a los aspectos positivos.
Pero, para que la Retrospectiva tenga sentido, es necesario hablar de los temas que
molestan o inquietan al equipo por el motivo que sea. La práctica nos ha enseñado que es
infinitamente más útil hablar de “los temas que hay que mejorar” que de “las cosas que no
funcionan”. El primer enfoque da por hecho que es posible cambiar y hacer las cosas mejor y,
sin embargo, con el segundo enfoque, es muy fácil caer en el derrotismo.
En definitiva, debemos ser positivos y evitar a toda costa ser tremendistas y derrotistas.
Si realmente queremos ser constructivos, al comenzar una Retrospectiva debemos partir
de la premisa de que todo el mundo ha hecho el mejor trabajo posible teniendo en cuenta su
capacidad, conocimientos y los recursos disponibles. Sin embargo, no debemos engañarnos:
en ocasiones, dentro de los equipos puede haber personas que no tengan el perfil adecuado,
sean poco productivas o directamente sean conflictivas. Obviamente, esto es un problema
para la productividad del equipo y hay que solucionarlo. Este asunto debe tratarse con las
personas adecuadas dentro de la organización o con el departamento de recursos humanos,
pero desde luego no en el curso de una Retrospectiva. El objetivo último de la reunión debe
ser siempre buscar la forma de mejorar cómo trabajamos como grupo y no resolver
cuestiones que atañen solo a algunas personas.
Consejo:
Las Retrospectivas no deben ser utilizadas si nuestro objetivo es poner en evidencia
públicamente que alguien no está haciendo bien su trabajo o solucionar un problema que
venga arrastrándose desde hace tiempo entre varias personas. Estos temas deberán
tratarse en otro momento.
Está claro que la Retrospectiva es una reunión clave y, por ello, merece ser preparada
cuidadosamente antes de comenzar.
Aunque trabajemos juntos cada día, antes de una Retrospectiva es conveniente fijarse en
los detalles cotidianos del entorno de trabajo de los demás: puestos de trabajo, corchos,
mesas, Backlogs... Toda esta información tan familiar, mirada con detenimiento, es una
fuente muy valiosa de información.
El objetivo general de toda Retrospectiva es aprender, mejorar y adaptar. Pero debemos
concretar un poco más y pensar en objetivos más específicos. Por ello, es importante tener
claro por qué vamos a invertir un tiempo en esta reunión y qué beneficios pretendemos
obtener a raíz de ella. La Retrospectiva debe ser una reunión que merezca la pena mantener.
Algunos ejemplos de estos objetivos más específicos podrían ser: mejorar la relación entre
algunos miembros del equipo, aumentar la productividad, mejorar prácticas de programación,
buscar la forma de optimizar otras reuniones de Scrum o descubrir el origen real de algunos
problemas del equipo.
Estos objetivos no deben ser restrictivos y deben dejar la puerta abierta al diálogo y a
temas nuevos. También es necesario decidir qué personas deben asistir a la Retrospectiva e
invitarles con antelación y decidir qué datos se deben aportar para que la reunión sea
efectiva.
En definitiva, saber a qué nos vamos a enfrentar y con qué propósito. Por ello, lo ideal es
que esta información se comparta con todos los asistentes antes de comenzar.
Importante:
Asistir a una Retrospectiva es voluntario. Nadie está obligado a participar en estas
reuniones, pero, desde luego, si alguien no quiere ir a esta reunión, el SM deberá
investigar los motivos de esa decisión, ya que esto esconde un problema más profundo de
comunicación dentro del equipo, de colaboración o de algún tipo de presión.
El moderador de la Retrospectiva
Pocas personas, si hay alguna, disfrutan con reuniones en las que se pierde el tiempo en
discusiones que no conducen a nada y en las que sus opiniones, ideas o sugerencias caen en
el vacío más absoluto.
Las Retrospectivas tienen que ser reuniones prácticas y útiles. De no ser así, pierden su
razón de ser.
El moderador de la Retrospectiva debe ayudar al grupo a analizar datos, a compartir ideas
y a obtener conclusiones útiles, evitando en todo momento discusiones innecesarias y la
pérdida de tiempo.
El rol de moderador pueden desempeñarlo indistintamente el Scrum Master, un coach o
un miembro del equipo, aunque lo más habitual es que sea el Scrum Master la persona que
modere estas reuniones.
Sea quien sea la persona que esté desempeñando este rol, las siguientes recomendaciones
le ayudarán a obtener mejores resultados de la reunión:
• Qué es lo que estamos haciendo bien (para celebrarlo y continuar trabajando de esta
forma).
• Qué otras cosas tenemos que mejorar o incluso en ocasiones dejar de hacer.
• Qué vamos a hacer en la siguiente iteración teniendo en cuenta la información de los
dos puntos anteriores.
Para conseguir esta información, es muy eficaz seguir unas etapas 39 , de forma que
podamos obtener los datos realmente útiles y de una manera ordenada. Estas etapas
pretenden básicamente establecer las bases, recopilar datos, buscar el por qué de las cosas,
establecer un plan de acción y cerrar la Retrospectiva. A continuación, se trata un poco más
en detalle cada una de ellas.
Recopilación de datos
Para evitar divagar demasiado o especular sobre las posibles mejoras que hay que
implementar en el siguiente Sprint, o más lejos en el futuro, es necesario crear entre todo el
equipo una foto detallada y compartida de la situación actual. Recordemos algo que ya
hemos comentado antes y es que una visión compartida por todo el equipo nos permite
descubrir detalles que una persona sola no podría ver.
Esta foto debe contemplar tanto datos objetivos como subjetivos, teniendo muy presente
que los aspectos emocionales son tan importantes muchas veces como los aspectos objetivos
o más técnicos.
Se puede comenzar poniendo sobre la mesa datos relevantes, concretos y objetivos que
resuman el último periodo o Sprint. Para ello, escribiremos en post-it o tarjetas los datos que
surjan a raíz del análisis de las métricas o de los acontecimientos ocurridos durante la
iteración y los iremos pegando progresivamente en un lugar visible para todo el equipo.
Como métricas, se puede revisar la velocidad del equipo estimada frente a la realmente
conseguida, el número de requisitos completados frente a los estimados, el gráfico del
progreso del trabajo del equipo (burndown chart), la cantidad de defectos encontrados y
corregidos, etc.
Como eventos, se deben recordar decisiones transmitidas en otras reuniones,
incorporaciones, bajas o cambios en el equipo, hitos cumplidos, cambio en las máquinas de
trabajo, cambio en la tecnología utilizada, celebraciones, percances y cualquier otro evento
relevante que haya podido influir en el Sprint.
Nota:
Las métricas de un proyecto son una manera de documentar el proceso de mejora. El
análisis sucesivo de las mismas permite hacer un seguimiento de la evolución de dicho
proceso.
Otro tema que es necesario revisar son los resultados de la Retrospectiva anterior y
comprobar el estado de las acciones de mejora que surgieron para verificar si los temas
pendientes se han solucionado y actualizar su estado con el equipo. Si quedara algo
pendiente, se podrían tomar decisiones de nuevo en esta Retrospectiva. Esta recopilación de
datos estará incompleta si no se añaden los datos adicionales que vayan indicando
espontáneamente todos los participantes y que reflejen los asuntos que nos han hecho sentir
bien o, por el contrario, que han generado rechazo o malestar.
Recuerde:
Tan importante como detectar los problemas que tiene un equipo en su día a día es hacer
un reconocimiento de las buenas prácticas del equipo para potenciarlas o mantenerlas.
• Los cinco porqués: Se agrupan los participantes por parejas o en pequeños grupos.
Una persona pregunta a otra por qué ha ocurrido un problema o un evento y, cuando
responda, volverá a preguntar por qué y así hasta cuatro o cinco veces. De esta forma
se puede llegar a comprender la causa real y origen que causó un problema o
inconveniente.
Un ejemplo sencillo de esta práctica es el siguiente:
Plan de acción
Ya tenemos identificados los problemas y las causas que los producen y, ahora, ¿qué
hacemos?
De nada nos sirve lamentarnos si no vamos a hacer nada al respecto.
Lo lógico será pensar ya en las acciones que nos permitan solucionar, o al menos paliar,
esos problemas. Es decir, decidir las acciones de mejora para nuestro proceso.
Es de nuevo el equipo el más adecuado para pensar y proponer soluciones a los problemas
detectados por ellos mismos. Una forma eficaz de hacerlo es repasar cada uno de los
problemas detectados y utilizar una “lluvia de ideas” para buscar entre todos la mejor
solución.
Está claro que no siempre se pueden solucionar en el curso de un Sprint todos los
problemas detectados, por lo que habrá que decidir qué problemas van a ser abordados y qué
acciones de mejora se van a implementar.
Un primer filtro será tratar de poner solución a los problemas más dolorosos para el
equipo, es decir, los más urgentes. Para hacer esta primera clasificación, podemos utilizar un
sistema de votos y, para ello, podemos por ejemplo conceder 3 (o los que quiera: 5, 10...)
votos a cada asistente y él los asignará a los temas que necesitan ser abordados con más
urgencia según su criterio. Podrá incluso, si lo considera oportuno, asignar sus tres puntos a
un único asunto. Una vez finalizada la votación, se suman los puntos de cada entrada y ya
tenemos una primera priorización de los problemas.
Otro criterio que se debe tener en cuenta es el esfuerzo que supone implementar una
acción de mejora, su coste o el tiempo necesario para llevarla a cabo.
Y, por último, no debemos olvidar que es crucial tener siempre presente la satisfacción del
cliente a la hora de decidir qué acciones tomar.
Para que todo este esfuerzo no quede solo en buenas intenciones, y una vez que ya está
claro lo que tenemos que hacer y en qué orden hacerlo, es el momento de concretar. Es el
momento de hablar de quién va a hacer las cosas y cuándo. Las acciones de mejora se pueden
introducir en el Sprint Backlog (o en el Product Backlog si no son muy prioritarias) y podrán
empezar a ser asignadas por los miembros del equipo.
Importante:
Hay problemas que se resuelven solo con ser detectados, por ejemplo, si en un equipo falta
comunicación, si las reuniones diarias son largas y dispersas, si no están bien trabajados
los criterios de aceptación de un requisito o si no se actualiza el Sprint Backlog a diario.
Todos estos temas que, por el hecho de exponerlos, se consiguen mejorar casi sin tomar
medidas adicionales. La comunicación ayuda a identificarlos y solventarlos.
Además, no hay que perder de vista una verdad que a veces olvidamos: como en todos los
aspectos de la vida, hay problemas que tienen solución y otros que no la tienen.
En el primer caso, habrá que tratar de encontrar esa solución para aplicarla lo antes
posible. Sin embargo, en el caso de los problemas que no tienen solución, debemos pensar en
las acciones que nos ayudarán a disminuir, mitigar, el impacto del problema pero siendo
conscientes de que este impedimento seguirá existiendo.
Nota:
Un equipo debe ser capaz de decidir soluciones reales que puedan implementar ellos
mismos sin necesidad de permisos de sus superiores. Si los cambios los elige el equipo y
no han sido impuestos, las personas se implicarán más en que se lleven a cabo.
Empecemos dibujando tres columnas de forma que en cada una de ellas podamos ir
añadiendo tarjetas o post-it.
La primera columna representa lo que ha ido bien durante el Sprint, la segunda columna la
utilizaremos para exponer lo que no ha ido tan bien y la última la reservamos para trabajar en
las mejoras.
Una vez hecha la revisión de los datos objetivos ocurridos durante el anterior Sprint, por
ejemplo, comparación de la velocidad estimada con la real, comentarios de la Review,
revisión de las acciones de mejora comprometidas en el última Retrospectiva, etc., debemos
empezar a recopilar más datos entre todos.
De forma muy resumida, se podría decir que estamos buscando respuestas concretas a las
siguientes preguntas: ¿qué hemos hecho bien?, ¿qué podemos mejorar? y ¿qué mejoras
vamos a introducir?
Ahora hay que empezar a rellenar estas columnas y lo haremos de la siguiente manera:
Truco:
Es muy efectivo si cada participante se levanta para presentar y explicar sus notas al resto
del equipo y es él mismo quien las coloca en la columna que corresponda. Es una forma
sencilla de implicar a todos los asistentes en la Retrospectiva y evitar que se pierda el foco
o la concentración en la reunión.
Línea de tiempo
• En la parte superior de la línea, iremos proponiendo, entre todos, las cosas positivas
que han ocurrido: las buenas prácticas, éxitos conseguidos, decisiones acertadas o
cualquier cosa que nos recuerde un buen momento del Sprint y lo situaremos en el
momento temporal en el que tuvo lugar.
En la parte inferior, representaremos la cruz de la misma moneda, es decir,
recordaremos todo aquello que nos molestó, perturbó o disgustó durante el Sprint.
Las entradas pueden, así suele ser, aparecer simultáneamente arriba y abajo, es decir, se
irá completando la línea de tiempo sin un orden determinado.
Lo importante de esta práctica es representar lo que ha ocurrido durante todo el Sprint
y tener una visión compartida por el equipo.
Como en cualquier Retrospectiva, el moderador debe fomentar la participación de
todos los asistentes de forma activa.
• El siguiente paso será hacer una selección de los temas que necesitan una solución más
urgente y que aparecen en la parte inferior de la línea. Para ello, mediante un sistema
de votos se hace una primera criba eligiendo los tres o cuatro temas más urgentes (por
ejemplo, asignando un número de votos a cada participante, que reparten como
consideren oportuno entre los ítems).
• Continuaremos haciendo el ejercicio de buscar las causas a estos problemas, así que
uno por uno se analizarán en profundidad los temas seleccionados en el punto anterior
y se anotarán las causas que los producen.
• Una vez que tenemos identificadas las causas que producen nuestros tres o cuatro
problemas con más impacto, es el momento de pensar en acciones concretas para
solucionarlos o, al menos, aliviarlos.
De forma similar a la anterior, se pensará en las acciones de mejora asociadas a cada
problema o impedimento y se le asignarán dueño y fecha de implementación.
Figura 8.5. Retrospectiva con línea de tiempo.
Nota:
Esta técnica es muy útil para Retrospectivas que abarquen amplios espacios de tiempo,
por ayudar a refrescar la memoria de los participantes, y no quedarse solo con los
acontecimientos más recientes. Por ejemplo, puede serle útil para release o en el final de
un proyecto.
Estrella de mar
No todas las cosas son blancas o negras. Hay momentos en los que meter una escala de
grises puede sernos tremendamente útil para mejorar poco a poco, teniendo en cuenta todos
los aspectos del proyecto: los roles, técnicas, prácticas, tecnologías, etc. Por este motivo,
vamos a exponer otra técnica para hacer Retrospectivas que nos permitirá matizar algo más
lo que fue bien durante el Sprint y lo que no fue tan bien y qué debemos hacer pensando en el
siguiente Sprint.
Empiece su Retrospectiva dibujando un diagrama como el que se muestra en la siguiente
figura, en el que vendrá representado un espacio para trabajar cada una de las siguientes
categorías:
Este tipo de Retrospectivas proporciona una información muy visual del estado del
proyecto y es muy ilustrativo comparar cómo van evolucionando las estrellas obtenidas en
las Retrospectivas a lo largo de un proyecto.
Triste, Enfadado, Contento
Esta técnica nos ayuda a buscar, desde un punto de vista emocional, las mejoras que
debemos introducir en nuestro día a día.
Dibujaremos tres columnas para representar en la primera de ellas todo lo que nos produjo
alegría, satisfacción, y que nos motivó durante el Sprint.
En la columna central, representaremos todo aquello que nos enfadó o frustró durante el
Sprint y la última columna contemplará los aspectos que nos entristecieron y desmotivaron
de alguna manera.
La forma de trabajar para completar las tres columnas puede ser similar a la descrita para
la técnica “Bien, Mejorable, Mejoras”, explicada en el apartado correspondiente. Recuerde
que inicialmente se reserva un espacio de tiempo para la reflexión individual y
posteriormente se hace una puesta en común de las conclusiones individuales para llegar a
acuerdos.
Serán los aspectos detectados en las columnas de enfado y tristeza los que el equipo
deberá analizar para encontrar las causas que los produjeron y buscar la mejor solución.
Consejo:
En las Retrospectivas es mejor no ser demasiado ambicioso y concentrarse en unas pocas
mejoras que sea posible implementar durante el Sprint.
• Salga de su entorno habitual. Es una forma de romper con la rutina. Cambie la sala
donde se reúnen habitualmente para trabajar y realizar sus Retrospectivas,
planificaciones y reuniones por otra sala que sea poco frecuentada por el equipo.
A quién no le ha ocurrido alguna vez ir conduciendo al trabajo o a casa sin ser
conscientes de por qué calles hemos pasado. No pensamos por dónde tenemos que ir,
ya que lo hacemos casi como autómatas. Conocemos el camino de memoria y lo
tenemos perfectamente interiorizado. Dónde girar. Dónde aparcar. Cambiar la sala e
incluso el edificio para realizar nuestra Retrospectiva sería como cambiar la ruta para ir
a casa. Descubriremos infinidad de detalles nuevos y, desde luego, prestaremos mucha
más atención. Parece algo sin importancia, pero a muchos equipos les ayuda salir del
lugar habitual de trabajo para cambiar de perspectiva a la hora de dirigirse al resto de
su equipo. El cambio de sala suele ser útil para realizar una Retrospectiva en un
momento especial del proyecto como pueda ser el cumplimiento de un hito o cuando
sea necesario analizar un problema relevante o bien si se quisiera replantear la forma
de trabajo de forma sustancial.
• Incluya dinámicas y actividades. El convertir una Retrospectiva en algo lúdico tiene
varios beneficios. El inmediato es que dejan de ser aburridas en el caso de que así
fuera. Eso sí, debemos no olvidar que no solo se trata de pasarlo bien. Se trata de
buscar una forma amena pero productiva de encontrar la manera de mejorar en nuestro
trabajo. El objetivo final de incluir dinámicas es tratar de que el equipo se relaje y que
la gente hable con más soltura fomentando la participación de todos. A los tímidos les
costará menos hablar y los acaparadores tendrán que respetar su turno.
• Realice una Retrospectiva alternativa. ¿Qué hacemos si hay una persona que revienta
una Retrospectiva constantemente? o ¿qué hacemos si hay alguien que incomoda al
equipo de tal forma que si esa persona está presente no se habla con claridad y
franqueza? En definitiva, hay que pensar qué hacemos si hay alguien cuya presencia no
es deseada en la Retrospectiva. Una opción es realizar una Retrospectiva sin esa
persona en concreto para poder hablar relajados y que el equipo no pierda la
oportunidad de seguir mejorando. Eso sí, es necesario solucionar este problema en el
foro correcto. El primer sitio debe ser en la Retrospectiva alternativa (sin la persona
que incomoda), ya que uno de los temas que deberá tratarse en esta Retrospectiva es el
por qué no se puede hablar cómodamente en su presencia. Con esta información, el
Scrum Master debe trabajar en solucionar este problema, ya que muy probablemente
no afecte solo a las Retrospectivas, sino a más aspectos del proyecto. ¡Ah!, y,
obviamente, habrá que tratar el tema con la persona afectada.
• El anonimato. Puede darse el caso de que al equipo no le apetezca transmitir sus
opiniones en público o decir abiertamente lo que piensa. Una forma para no perder esta
información es trabajar en pequeños grupos y compartir las conclusiones de forma
anónima. De esta manera, será la opinión del grupo la que se exponga y no la de una
persona en concreto. Otra opción es que las propuestas, ideas y sugerencias se planteen
de forma anónima.
Todo esto no es más que solucionar de forma muy superficial un problema grave que
tiene el equipo y el Scrum Master deberá trabajar en profundidad este tema con ellos
ya que así se pone en evidencia o bien miedo a expresarse con franqueza; o bien una
ausencia gravísima de confianza dentro del equipo.
• Trabaje en paralelo los temas. Si el grupo es muy numeroso, discutir y comentar entre
todos cada tema podría desembocar en debates interminables y poco productivos. Si la
Retrospectiva la están realizando muchas personas, es útil abordar temas por subgrupos
y de esta forma no todos tienen que hablar de todo y así optimizará la reunión. De otra
manera, podría ser interminable. Forme subgrupos y que ellos voluntariamente elijan
los temas que quieran tratar y analizar. Una vez finalizado el tiempo reservado para el
análisis, debe hacerse una puesta en común de todo el equipo para exponer las
conclusiones.
• Cambie al moderador. Tal vez sea útil que no sea siempre el Scrum Master o el coach
la persona que facilite la Retrospectiva. Una buena práctica es que los mismos
miembros del equipo actúen de forma cíclica como facilitadores y, cuando sea su turno,
propongan nuevas prácticas o dinámicas. Esta práctica puede revitalizar enormemente
las Retrospectivas, ya que cada una de ellas tendrá un aire nuevo.
• Varíe la estructura de su Retrospectiva. Trate de aplicar las diferentes prácticas para
realizar las Retrospectivas de forma que se rompa la rutina y surjan preguntas y
enfoques nuevos. Una primera Retrospectiva podrá hacerse pensando qué hicimos
bien, no tan bien y qué podemos mejorar. Pero la siguiente Retrospectiva podemos
empezarla dibujando la línea de tiempo que nos sirva de guía para hablar sobre lo que
nos ha pasado y cómo nos hemos sentido a medida que avanzábamos en el Sprint.
Utilice las técnicas propuestas en el apartado “Algunas prácticas para Retrospectivas”,
una combinación de ellas o cualquier otra que le resulte útil. O aplique algunas de las
técnicas alternativas de Retromat 40 , una colección pública de herramientas para
dinamizar y variar la organización de retrospectivas.
• Cambie el objetivo. Revise las acciones de mejora acordadas en las últimas
Retrospectivas y analice cuál está siendo el foco del equipo y amplíelo o modifíquelo.
¿Qué significa esto?, pues si últimamente el equipo está centrado únicamente en
mejorar las prácticas de Scrum, tal vez sea el momento de analizar las prácticas de
programación que se están siguiendo o el trabajo en equipo o la comunicación con
otras áreas de la empresa, por ejemplo.
• Traiga invitados. Invite ocasionalmente (después del cumplimiento de hitos o
momentos clave del proyecto) a personas que aumenten la perspectiva del equipo y les
haga recordar que no trabajan solos y que su labor está relacionada con otros grupos a
los que les afectan sus resultados y decisiones. Puede ser muy útil invitar a alguien que
trabaje en la misma área de la empresa para que opine sobre el impacto de nuestro
trabajo en la organización o animar a participar en las Retrospectivas a grupos
transversales al del equipo, como, por ejemplo, alguien de marketing o mantenimiento,
y que haga entender al equipo otros puntos de vista del producto en el que se está
trabajando.
• Pida ayuda. Si nada de lo anterior ha funcionado y sus Retrospectivas siguen sin ser
todo lo eficaces que desearía, pida ayuda. Busque una persona que le ayude a reenfocar
las dinámicas y a liderar las reuniones. Es posible que un equipo no consiga romper
con sus rutinas y que le cueste dar un giro a su forma de trabajar, pero tal vez
simplemente contar con una ayuda externa es suficiente. Busque alguien que aporte un
nuevo enfoque a los problemas habituales, nuevas ideas y, sobre todo, alguien que no
esté condicionado ni por resultados anteriores del equipo ni por el día a día del trabajo
en el proyecto.
En resumen
En este capítulo, hemos visto por qué y cómo se realizan las reuniones de Retrospectiva al
final de una iteración o Sprint.
Para muchos autores, la Retrospectiva es la reunión más importante y es la seña de
identidad de Scrum. Su objetivo es favorecer la mejora continua de la forma en que se
trabaja, encontrar soluciones a los problemas y preocupaciones que encuentra el equipo en su
trabajo. Esa mejora continua se manifiesta, sobre todo, en incrementar la productividad del
equipo y la calidad del producto. Por el contrario, un equipo que no mejore, encuentre
problemas y no dedique un tiempo a exponerlos y encontrar solución está condenado a
repetirlos.
Además, las Retrospectivas ayudan a compartir diferentes puntos de vista y a descubrir
nuevos enfoques y planteamientos.
Como en otros momentos del ciclo de trabajo de Scrum, en la Retrospectiva, el Scrum
Master actúa como facilitador animando al equipo a revisar cómo se desarrolló el último
Sprint. En el curso de la Retrospectiva, el equipo debe identificar y priorizar los aspectos que
funcionan correctamente y aquellos otros susceptibles de mejorar para hacer las cosas mejor.
Hemos visto también varias técnicas para ayudar a aflorar esos aspectos positivos y
mejorables de la forma de trabajar, aunque nada de esto tiene utilidad si no se acompaña de
un compromiso de todos por poner los medios para mejorar los problemas encontrados y
aplicar las soluciones sugeridas.
39Agile Retrospectives: Making Good Teams Great, Esther Derby and Diana Larsen.
40https://plans-for-retrospectives.com/es/
En este capítulo aprenderá:
Modificar Scrum es posible, pero se tiene que tener especial cuidado en añadir sobre
Scrum lo que necesitamos y no variar la esencia de este. Scrum define una serie de artefactos,
reglas y acciones que se usan de manera conjunta para obtener todos los beneficios de la
metodología y, sobre todo, para generar predictibilidad. Esta predictibilidad nos puede ayudar
a adelantarnos a problemas que pueden aparecer en un proyecto, inspeccionando sus indicios.
Si modificamos los cimientos de Scrum al hacer estas modificaciones, se romperá este
ecosistema generando resultados no esperados. Scrum no es ni una bala de plata ni es el
camino al Nirvana. Es un conjunto de prácticas que bien aplicadas producen un beneficio. No
aplicarlas bien no implica tener un perjuicio, pero sí no obtener el mismo beneficio.
Existen distintas opiniones sobre el tema de la adaptación a Scrum, tantas como gente
aplicándolo. Aquí reside una de las bellezas de Scrum, da lugar a interpretaciones y
aplicaciones diversas. En la mayoría de los casos, todas estas opiniones tienen una
justificación y son válidas dentro de sus contextos. Existen corrientes más puristas que
definen que, en el momento en el que se modifica algo de Scrum, ya no se le puede
denominar como tal. Al hacer estas modificaciones se crea otra metodología que comparte
artefactos o reglas con Scrum, pero no es Scrum.
Hay quien opina que estas modificaciones forman parte de Scrum y generan lo que se
conoce como los Scrum Buts (literalmente “Scrum pero...”). Scrum But es un término que
fue creado por Eric Gunnerson en 2006 y normalmente se asocia a malas prácticas que se
adoptan para justificar por qué no se está siguiendo alguna de las reglas de Scrum. Tienen
una estructura que normalmente se suele expresar como: “Usamos Scrum pero + (práctica
de Scrum no seguida) + (excusa lógica) + (adaptación de la práctica)”.
Ejemplos de Scrum Buts son:
• “Nosotros usamos Scrum, pero no hacemos reuniones diarias cortas porque el equipo
está formado por personas de diferentes países con distintos idiomas y hemos decidido
hacerlas más largas para que la gente pueda expresarse con tranquilidad en un idioma
que no es el suyo”.
• “Usamos Scrum, pero no elegimos nosotros las tareas porque no tenemos demasiado
conocimiento del proyecto y un especialista nos las asigna por nosotros”.
Como se puede ver en los dos ejemplos anteriores, hay escalas en los impactos que los
Scrum Buts pueden producir. Algunos apuntan a la base de Scrum, como puede ser la
autogestión en el segundo ejemplo, y pueden ser realmente nocivos. Otros hacen ligeras
modificaciones que pueden estar justificadas y no tienen por qué degenerar en una mala
práctica de Scrum como el primer ejemplo. Se puede decir entonces que existen dos tipos de
aproximaciones para la adaptación de Scrum a un entorno. Por un lado, están las
modificaciones positivas, que añaden valor a la base de la metodología, respetando las bases
de Scrum. A este tipo de Scrum Buts en algunos ámbitos se les conoce como Scrum Ands
(literalmente “Scrum y...”), ya que se suele poder expresar en una frase con las siguiente
estructura: “Yo hago Scrum y, además, usamos un sistema de videopresencia para que los
compañeros del equipo, que no están algunos días por teletrabajo, puedan trabajar como si
estuvieran presencialmente”. En este caso, se tiene el añadido del videopresencia para
enriquecer o extender la práctica de tener al equipo sentado cerca.
Por otro lado, tenemos las modificaciones negativas. Estas modificaciones son atajos o
soluciones que toman los equipos cuando hay un problema que les imposibilita cubrir alguna
de las prácticas y normalmente afectan a la ejecución de Scrum. Estos ejemplos son la
versión de los Scrum Buts más conocida y por lo que siempre se asocia una visión negativa a
este concepto. Normalmente, a estos Scrum Buts se les denomina también como Scrum Bad o
mal Scrum. Lo más importante que hay que destacar cuando aparece un Scrum But es que
hay un problema que, en vez de solucionarlo de raíz, se está tratando de ocultar con la
modificación de Scrum.
Scrum expone una disfuncionalidad que está desencadenando el problema. Es esa
disfuncionalidad la que hay que reparar. A veces, se habla de que Scrum es el espejo en el
que las organizaciones se miran. Cuando ven algo que no les gusta, suelen culpar a Scrum del
problema, pero lo que realmente están viendo es el reflejo de su propia organización. A este
efecto se le conoce como disparar al mensajero de Scrum.
Si existe un problema, además de encontrar una solución temporal mediante un Scrum
But, se debería apuntar a ese problema en la organización e intentar resolverlo.
Nota:
Es importante evaluar la repercusión que el Scrum But puede generar. Esto se hace
generando un Scrum aargh!, que se define con los siguientes datos: el Scrum But, el
principio de Scrum que se está saltando y la consecuencia (beneficio potencial de Scrum
que se pierde, cuantificación de ese valor perdido).
Ken Schwaber habla de un nuevo artefacto para Scrum relacionado con los Scrum Buts. A
este artefacto lo denomina el ETC o el Enterprise Transition Team, que es un equipo Scrum,
con su Product Owner, Scrum Master y equipo organizado para resolver todas las
disfuncionalidades en la organización que se detecten con la aplicación de Scrum. Cuando se
detecte un problema que se resuelve temporalmente con un Scrum But, se debería crear un
elemento en el Backlog de este equipo que se priorizará y trabajará para resolverlo;
convirtiendo ese Scrum But de nuevo en Scrum. Es interesante ver cómo Scrum puede
convertirse en un agente de cambio de las organizaciones en las que se implanta.
Como se mencionaba anteriormente, la práctica de los Scrum Buts está muy extendida,
Ken Schwaber la visualiza por medio de la siguiente gráfica.
La imagen muestra una gráfica gaussiana en la que la inmensa mayoría de los practicantes
de Scrum están realmente ejecutando algún tipo de Scrum But. El resto de los practicantes
fuera de la media están realizando un Scrum de manera correcta o se quedan en la aplicación
simplemente de los valores y principios ágiles, sin entrar en Scrum.
Estos datos son muy significativos e indican que muchos equipos aplican parcialmente
Scrum. Si se analizan las razones de esta práctica parcial, se podrá comprobar que no se trata,
en muchos casos, de problemas que eviten aplicar todas las prácticas de Scrum. Muchos
equipos solo eligen las prácticas que les resultan más cómodas o atractivas, es lo que se
conoce como Cherry-picking practices: “Nosotros hacemos Scrum, pero solo las prácticas
que nos han parecido más interesantes”. Es muy importante ejecutar el conjunto completo de
las prácticas en Scrum, ya que, aunque cada una de ellas tiene un valor intrínseco por sí
misma, la realimentación que tienen con las otras prácticas las hace aumentar su valor. Kent
Beck usa el principio de Pareto que se explicaba en capítulo 3 para establecer que: “Si sigues
el 80% de los procesos, obtienes solo un 20% del beneficio total que se podría obtener”,
como ejemplo de la no aplicación de todas las prácticas de XP.
• Iteraciones.
• Pruebas.
• Metodología ágil.
• Product Owner.
• Product Backlog.
• Estimaciones.
• Burndown.
• Interrupciones.
• El equipo.
Una vez cumplimentado el test, se genera una graduación sobre nueve según los pesos de
las respuestas de cada pregunta.
Nota:
Es interesante realizar este test varias veces para observar cómo se va mejorando en las
prácticas de Scrum con el tiempo, como parte del proceso de aprendizaje continuo.
Top 10 Scrum Buts
Se pueden encontrar infinidad de ejemplos de Scrum Buts en foros, libros y conferencias.
En esta lista se han recopilado unos cuantos de ellos que resultan interesantes como ejemplos
didácticos. Es importante recordar que Scrum nos muestra problemas que, aunque se
minimicen u oculten con un Scrum But, deberían ser atacados y resueltos lo antes posible.
Cuando un Scrum But aparece, independientemente de tolerarlo o no, es importante ser
conscientes de la causa y, para ello, se suele usar la técnica de los cinco porqués. Esta técnica
explica que, si se consiguen resolver cinco porqués de una consecuencia, se suele llegar a la
raíz de esta. Por ejemplo, partamos de un Scrum But como pueda ser:
“Nosotros usamos Scrum, pero no hacemos reuniones de fin de Sprint con el Product
Owner porque no puede asistir a las reuniones y un miembro del equipo hace su papel”.
• ¿Por qué no puede asistir el PO a las reuniones?: Porque le coinciden con otra reunión.
• ¿Por qué le coinciden con otra reunión?: Porque es Product Owner de otro producto
también.
• ¿Por qué es Product Owner de otro producto y de este?: Porque este producto se quedó
sin Product Owner y le asignaron a él este producto.
• ¿Por qué le asignaron el producto?: Porque no hay Product Owners suficientes en la
organización.
• ¿Por qué no hay Product Owners suficientes en la organización?: Porque la
organización no está focalizada en pocos productos y asume más productos o
proyectos de los que puede ejecutar.
“Nosotros usamos Scrum, pero no elegimos nuestras tareas, ya que no tenemos suficiente
experiencia y un gestor nos dice lo que tenemos que hacer”.
Este Scrum But está relacionado con lo que se conoce como los smells de Scrum, que son
los síntomas de que Scrum no está funcionando correctamente. Cuando se llega a la situación
de este Scrum But, se está modificando el principio de autogestión de los equipos, cayendo
en la microgestión. Es muy importante crear un marco de aprendizaje para el equipo. Si el
equipo no se considera maduro para tomar decisiones y no se le deja intentarlo, nunca
alcanzará esta madurez. Sería interesante probar uno o dos ciclos permitiendo al equipo
decidir, dándole soporte en la elección de tareas y corrigiendo las disfuncionalidades que
puedan aparecer. Es importante hacerse las preguntas necesarias para destapar el problema
causante de esta situación. Podría ser que el equipo de creación de un producto estuviese
completamente integrado por personas con poca experiencia debido a que, para conseguir el
proyecto de ejecución del producto, se rebajaron los costes para resultar competitivo.
Las Retrospectivas son un elemento básico de Scrum para adaptarse y mejorar el proceso;
son extremadamente potentes, pero solo tienen sentido cuando el equipo está convencido de
sus beneficios. Si piensan que no tienen valor, es muy importante analizar por qué no les
aporta ese beneficio e intentar corregirlo. Por ejemplo, en algunos casos existen conflictos
entre los miembros del equipo que hacen que estos no se expresen libremente en la
Retrospectiva y hacen que se sientan incómodos. La resolución de estos conflictos debe
tratarse de forma eficaz para recuperar un clima de cooperación y feedback dentro del equipo.
“Nosotros usamos Scrum, pero no hacemos las reuniones diarias todos los días, ya que
no las necesitamos porque estamos todo el tiempo hablando y las celebramos una vez por
semana”.
Hablar muchas veces no es lo mismo que comunicarse. Las reuniones diarias aportan
muchos beneficios de comunicación y sincronización. Aunque los equipos estén
constantemente hablando entre ellos, no suelen ser conversaciones entre todos los miembros,
con lo que cada persona del equipo suele tener una visión parcial del estado de desarrollo del
proyecto en cada momento. Las reuniones diarias suelen ayudar a generar la foto global del
estado del proyecto para todos los miembros del equipo. Cuando los equipos intentan reducir
la frecuencia de las reuniones diarias, suele ser porque no les aporta ningún beneficio o
incluso les causa un perjuicio. La ejecución de las reuniones diarias debería ser revisada.
Muchas veces, la duración excesiva, desviaciones del objetivo de la reunión o el uso de estas
reuniones para la ejecución de un control sobre los miembros del equipo suele hacer que los
equipos intenten evitarlas.
“Nosotros usamos Scrum, pero no hacemos el diseño, la implementación y las pruebas de
cada historia de usuario en el mismo Sprint, porque no nos da tiempo a llevar a cabo
todas las tareas en el mismo Sprint y las hacemos en Sprints consecutivos”.
Cuando se llega a este Scrum But, el problema suele estar en dos sitios.
Puede estar en el Product Backlog y en su mantenimiento. En muchos casos, el Product
Backlog no está trabajado lo suficiente y se queda en una capa de épicas que difícilmente
pueden ser abordadas de forma completa en una iteración. La solución que toma el equipo es
trabajar esa épica en varios Sprints, pero cae en un modelo de mini-cascada, haciendo las
fases del desarrollo de una funcionalidad de manera consecutiva, en vez de realizarlas de
forma conjunta en un mismo Sprint.
La segunda razón puede ser que el equipo no esté estimando de manera correcta las
historias de usuario, centrándose solo en el concepto de la implementación de estas. Se
debe valorar el esfuerzo completo que implica el desarrollo de una historia de usuario:
desde que se empieza a pensar en ella hasta que se certifica que ha sido correctamente
implementada siguiendo sus criterios de aceptación.
“Nosotros usamos Scrum, pero no tenemos un Scrum Master y Product Owner separados
porque no los necesitamos y son la misma persona”.
Scrum Master y Product Owner son roles y no personas. Por esta razón, físicamente nada
impide que puedan ser una misma persona, pero no es una buena adaptación de Scrum, como
ya se vio en el capítulo 5. Por un lado, son roles que deberían consumir mucho tiempo. Si los
desempeña la misma persona, puede dar por seguro que las tareas de alguno de los dos roles
se quedarán sin hacer. Por otro lado, son dos roles que son incompatibles porque
inevitablemente sus atribuciones o principios van a entrar en conflicto constantemente. El
Product Owner vela por el producto que se quiere desarrollar mientras que el Scrum Master
vela por el proceso y el equipo. En muchas situaciones, las necesidades del producto pueden
empujar hacia un camino que vaya en contra del equipo o del proceso. En la situación en la
que están todas las competencias sobre la misma persona, normalmente la mitad Product
Owner suele ser la que gana llevándose el equipo la peor parte. Tras este Scrum But, se suele
esconder una organización que apuesta por Scrum a medias y no facilita los recursos
necesarios a un equipo para desempeñar los roles necesarios. Es este el problema que debería
tratar de resolverse. En caso de no poder encontrar una solución, suele ser más lógico
compartir el rol de Scrum Master entre los miembros del equipo. Muchos equipos lo rotan
entre Sprints para que no recaiga siempre sobre la misma persona.
Figura 9.4. Conflicto de criterios.
“Nosotros usamos Scrum, pero no hacemos iteraciones cortas porque nuestro proyecto
está muy claro y las hacemos cada 3 meses”.
Si un proyecto está tan claro que en 3 meses no va a cambiar en nada, posiblemente lo que
no esté claro es por qué se está usando Scrum. Es interesante usar Scrum cuando puede
aportar un valor dado ante una situación específica de realización de un proyecto o creación
de un producto. Si la situación no es aplicable a la utilización de Scrum, quizás sea
interesante utilizar una metodología que se adapte más a la naturaleza de la tarea que se está
llevando a cabo. Evitar utilizar plazos cortos de interacción con el cliente puede ocultar
adicionalmente otras disfuncionalidades que podrían analizarse. Debería revisarse la
implicación del cliente en el proceso, ya que quizás no tenga interés en la ejecución real del
proyecto. Otro posible problema podría ser la imposibilidad de generar un resultado tangible
en un corto periodo de tiempo, lo cual fuerce el alargamiento de los procesos de
realimentación.
“Nosotros usamos Scrum, pero no hacemos las reuniones diarias todos los días porque el
Scrum Master no puede estar todos los días y solo las hacemos cuando está él”.
• El origen de XP.
• El ciclo de vida de XP.
• Dónde es posible aplicar XP.
• Los valores, principios y prácticas de XP.
• A combinar Scrum con XP.
Las prácticas, valores y principios de la programación extrema, más conocida como XP
(eXtreme Programming), no fueron ideados todos a la vez. De hecho, muchas de las prácticas
que propone este método de programación no son en absoluto nuevas. Lo novedoso de XP
reside en su propuesta de aplicar las prácticas de forma simultánea y que se realimenten entre
ellas. Algunas de ellas son técnicas que se han aplicado con éxito anteriormente y han
demostrado resultar tremendamente valiosas. XP sigue evolucionando a lo largo de los años;
poco a poco, se han ido incorporando prácticas nuevas a su catálogo.
XP empezó a gestarse como método en los años 80 con Kent Beck y Ward Cunningham
cuando trabajaban en un proyecto utilizando Smalltalk. Smalltalk es un lenguaje de
programación orientado fundamentalmente al público en general y no solo para informáticos
especializados. La filosofía de este lenguaje se basa en elementos como la programación en
parejas, refactorización, adaptación al cambio, integración frecuente, desarrollo iterativo,
pruebas constantes y, sobre todo, una continua comunicación y relación con el cliente.
Hay algunos autores que incluso afirman 42 que XP es la cultura de trabajo de Smalltalk
ampliada a otros entornos de programación.
Poco a poco, se fueron incorporando más prácticas entre las que cabe destacar el
desarrollo dirigido por pruebas, en inglés Test Driven Development (TDD).
Kent Beck publicó el libro Extreme Programming Explained 43 en 1999, en el que
incorporaba a las prácticas puramente de programación numerosos conceptos de Scrum para
fortalecer así la convivencia del desarrollo de software con algunos conceptos de gestión de
equipos. Al final de este capítulo, en el apartado “Combinando Scrum con XP”, se comentan
los aspectos que comparte Scrum con XP y el porqué es posible y valiosa su convivencia.
XP ha continuado evolucionando a lo largo de los años y, en 2004, Kent Beck publicó la
segunda edición 44 del libro anterior para reflejar esta constante evolución.
Ciclo de vida de XP
Cada semana se realiza un ciclo completo o iteración en la que se aborda parte de cada
una de las fases tradicionales de un desarrollo software, es decir, se hace un poco de todo. La
manera de conseguir que esto funcione es trabajar con las llamadas “historias de usuario”,
que, en definitiva, son requisitos que dan valor al cliente. Cada semana se planifica en qué
historias trabajar y se llevan a cabo de forma completa con su análisis, diseño, pruebas y
desarrollo. Al final de la semana, se podrá mostrar al cliente el resultado de la funcionalidad
obtenida de forma que pueda opinar sobre ella.
Nota:
XP apuesta por realizar todas las fases simultáneamente de forma que la planificación,
análisis, diseño, desarrollo, pruebas y despliegue de un producto se produzca
frecuentemente y se genere funcionalidad completa en cada iteración.
A continuación, se detalla algo más sobre cómo llevar a cabo cada una de estas etapas de
planificación, análisis, arquitectura, diseño, codificación y pruebas aplicando XP:
Nota:
XP propone técnicas avanzadas para acercarse constantemente a la excelencia técnica.
Una de estas prácticas más conocidas es Test Driven Development (TDD). TDD permite
realizar de manera simultánea el diseño, las pruebas, la arquitectura y la codificación.
Esta técnica de desarrollar ayuda a los programadores a escribir el código que hace
exactamente lo que se espera que haga, ni más ni menos.
Por otro lado, los desarrolladores deben usar un sistema de control de versiones para la
gestión de la configuración y mantener actualizado su entorno de desarrollo y otras
prácticas de desarrollo como son usar estándares de código, prácticas de integración,
etc.
• Pruebas: Uno de los pilares sobre los que se fundamenta XP son las pruebas. Las
pruebas deben realizarse a todos los niveles y todos los implicados en un proyecto
contribuyen a su realización. Los desarrolladores construyen el código a la vez que lo
prueban, ya que utilizando TDD se están realizando pruebas completas del código. Por
otro lado, los usuarios realizan pruebas de aceptación. En ocasiones, una parte del
equipo está dedicado a realizar pruebas más amplias y completas, pero, si no fuera así,
el mismo equipo de desarrollo ejecutaría dichas pruebas.
Prácticas como la programación en parejas, que consiste en que dos personas escriban el
código en una única máquina, la revisión frecuente del código, la integración continua
y la automatización de pruebas contribuyen al aseguramiento permanente de la calidad
de lo que se está construyendo.
Nota:
Un equipo que aplique correctamente las prácticas de XP generará un número muy
limitado de fallos o errores (bugs) en el producto que desarrolle.
Recuerde:
La aplicación de las prácticas de XP depende más de las personas implicadas que del tipo
de proyecto.
Tal y como comentan Shore y Warden en el libro The Art of Agile Development 45 , existen
una serie de premisas que deben cumplirse para poder trabajar de esta manera y son las
siguientes:
Recomendación:
En el caso de encontrarse con alguna barrera que le impidiera aplicar XP, y realmente
deseara hacerlo, trate de eliminar dichos impedimentos, en vez de tratar de convivir con
ellos.
Los valores
Cuidado:
La valentía aislada puede ser peligrosa y mal entendida, por este motivo debe ir de la
mano de los otros valores de XP y tener siempre presente las consecuencias que una
acción puede tener.
• Respeto: Los cuatro valores anteriores llevan implícito el respeto. Ningún método
puede funcionar si no se trabaja con respeto mutuo, valorando el trabajo de los demás y
sus aportaciones. Es necesario tener siempre muy presente cómo puede afectar nuestro
trabajo a las personas que trabajan con nosotros y a su organización. De igual manera,
hay que tener en cuenta a todas las personas que puedan interactuar con el producto
que se está generando.
Los principios
Llevar al trabajo del día a día los valores anteriores no es algo trivial, ya que se trata de
conceptos demasiado abstractos. Es necesario concretar algo más para ponerlos en práctica.
Para ello, XP propone algunos principios útiles para un mejor desarrollo. Al igual que ocurre
en el caso de las prácticas, los principios aquí mencionados no son los únicos y dependerá de
cada sistema qué principios extra añadir. Los principios aplicables a todo desarrollo software
son:
Figura 10.5. La reflexión sobre la forma en que se trabaja es necesaria para buscar
mejoras.
• El flujo: Lejos de trabajar de forma secuencial e ir cerrando una fase del desarrollo
antes de comenzar otra, XP propone abordar simultáneamente todas las actividades del
desarrollo (análisis, diseño, pruebas y desarrollo). Todas las prácticas de XP están
basadas en que este flujo en el trabajo existe. Para mejorar constantemente lo que se
está desarrollando, es muy eficaz ir creando con frecuencia pequeños incrementos de
funcionalidad valiosa y, para ello, es necesario simultanear las fases del desarrollo.
• Oportunidad: Donde hay un problema, hay una oportunidad para mejorar.
Precisamente, todas las prácticas de XP son eficaces para tratar de poner solución a los
problemas tradicionales del desarrollo de software.
• Redundancia: Si existe algún aspecto crítico, se deben buscar varias soluciones de
forma que, si una de ellas falla, podrá funcionar la otra alternativa buscada. En
ocasiones, los defectos se encontrarán varias veces por diferentes caminos, pero se
tiene la tranquilidad de saber que se controlan más los posibles fallos. Es importante y
muy necesario controlar que la redundancia sea realmente útil y que siempre sea
valiosa para el sistema y revisar que no se estén utilizando prácticas que podrían ser
eliminadas sin causar mayor impacto en el producto.
• Los fallos: El cometer fallos o errores es algo tremendamente útil si se aprende de
ellos. Sin perder el sentido común, es más productivo intentar hacer algo y fallar en el
intento y, a continuación, volver a intentarlo, que tratar de buscar la forma perfecta de
construir algo y retrasarse demasiado en la ejecución.
• La calidad: Trabajar con un nivel alto de calidad aumenta la eficiencia y la
productividad y esto no se trata simplemente de un factor económico. Trabajar con
calidad afecta tanto a los beneficios del producto como a los creadores del mismo, ya
que, entre otras cosas, se sienten orgullosos de su creación. Por otro lado, la
experiencia demuestra que los proyectos no acaban antes si se acepta que su calidad
sea más baja de lo debido.
Sin embargo, la calidad no debe convertirse en algo obsesivo y no se debe utilizar esta
excusa y no actuar. En ocasiones, es necesario pasar a la acción construyendo siempre
de la mejor manera posible para ese momento y en las circunstancias que lo rodean.
Una muestra de calidad es también ir poco a poco construyendo grandes cambios.
• Pequeños pasos: Trabajar con iteraciones cortas en absoluto significa ir despacio. Se
pueden realizar numerosas y productivas pequeñas iteraciones. El beneficio de trabajar
así es que, si se da un paso equivocado, se podrá rectificar rápidamente, ya que se
revisa el trabajo realizado con frecuencia y el impacto de la equivocación será
pequeño.
• Aceptar la responsabilidad: Para que un equipo sea eficaz, las personas que lo
componen deben ser responsables. Es poco útil decir a cada persona lo que debe hacer
en cada momento, ya que las posibilidades de no acertar con el trabajo que se le asigna
son altas. Probablemente, pueda hacer más o tal vez menos. Será cada persona la que,
responsablemente, desarrolle la mayor cantidad de trabajo de la mejor manera posible.
Las prácticas
Las prácticas son simplemente la manera en que los equipos trabajan en su día a día. La
adopción de unas u otras prácticas variará en función de la situación en la que se apliquen.
Kent Beck clasifica las prácticas en dos bloques: las prácticas primarias y las prácticas
corolario. La adopción de las prácticas primarias puede hacerse de forma independiente y su
aplicación aporta valor de manera inmediata al producto. Para aplicar las prácticas corolario,
es necesario tener cierta experiencia en la aplicación de las primarias. El beneficio de utilizar
varias prácticas en paralelo es enorme, por lo que se recomienda ir añadiendo las diferentes
prácticas al desarrollo tan pronto como sea posible.
Prácticas primarias
• Historias: Los requisitos del sistema deben escribirse en lenguaje de cliente y deben
estar redactados de forma que reflejen pequeñas unidades de funcionalidad visible para
el cliente. Un ejemplo de historia puede ser: “Como usuario de una página Web de
música, quiero poder consultar los discos de mi cantante favorito para poder comprar
el que me falte”.
Una historia debe ir acompañada de la estimación del esfuerzo que supondrá
implementarla y es muy útil si va acompañada de una descripción corta de la misma o
incluso, cuando sea posible, un diseño gráfico de la funcionalidad que se espera.
• Ciclos semanales: XP propone trabajar en iteraciones de una semana de forma que al
inicio el cliente elija las historias que haya que desarrollar en la semana siguiente y el
equipo las divida en las tareas técnicas necesarias para llevarla a cabo. Al finalizar cada
iteración, se revisará el trabajo realizado durante esa semana para detectar posibles
desviaciones respecto al objetivo global del proyecto y se planteará el objetivo de la
siguiente iteración.
Los equipos aprenderán también a mejorar sus planificaciones de manera que organizar
el trabajo para la semana siguiente les ocupe cada vez menos hasta limitarlo al orden
de una hora.
• Revisiones y planificaciones trimestrales: Manejando una escala de tiempo mayor, se
propone revisar trimestralmente el estado del equipo, del proyecto y los progresos, a la
vez que se analizará si se mantienen los objetivos más generales establecidos para el
proyecto.
Así mismo, es el momento de plantear con qué nuevos temas se va a continuar
trabajando y analizar posibles impedimentos, pero desde una perspectiva más amplia
que la que ofrecen las iteraciones semanales.
Un trimestre también es un periodo de tiempo razonable para revisar o definir nuevos
hitos con suministradores, clientes, etc.
• Holgura: Cuando se realicen los planes para las iteraciones, deje cierta holgura de
forma que, si surgen imprevistos, siempre existan tareas que puedan dejar de realizarse
sin ocasionar demasiado impacto. Se trata, sobre todo, de no hacer promesas que no se
puedan cumplir. De igual manera, al trabajar en un ambiente de responsabilidad y
compromiso, si diera tiempo a realizar alguna tarea no comprometida en la
planificación inicial, debería llevarse a cabo.
• Sentarse juntos: La mejor forma de potenciar la comunicación es ubicar al equipo de
desarrollo en la misma sala y en un espacio abierto. Eso sí, es importante también que
exista algún lugar reservado para que las personas puedan mantener una conversación
privada, por ejemplo. Esto no significa que, si el equipo no trabaja en el mismo sitio,
no se pueda aplicar XP, pero habrá que prestar especial atención para que la
comunicación dentro del equipo no se vea afectada.
• El equipo completo: El equipo debe estar compuesto por personas que tengan todos
los perfiles necesarios para poder abordar el desarrollo con éxito y todos ellos deben
sentirse miembros de un mismo equipo con espíritu colaborador. Por otro lado, se
consideran miembros de este equipo todas aquellas personas que tengan algo que ver
con el producto, ya sean clientes, usuarios, etc.
Lo que se considera en XP “equipo completo” lógicamente es algo que va cambiando
con el tiempo, ya que, dependiendo del momento, será necesario incorporar diferentes
perfiles o hacerlo de forma parcial o temporal.
Figura 10.6. Equipo trabajando junto y de forma colaborativa.
Consejo:
Lo ideal es que las parejas cambien con mucha frecuencia, por ejemplo, una vez al día.
Hay programadores que optan por hacer revisiones de código como alternativa a la
programación por parejas y el beneficio es similar.
Recomendación:
Programar en parejas supone un gran esfuerzo y no debe hacerse durante toda la jornada.
Figura 10.8. Pareja de programadores.
Prácticas corolario
Tal y como hemos comentado antes, la aplicación de estas prácticas corolario debe
realizarse cuando las prácticas primarias ya están incorporadas dentro de la rutina de trabajo
de un equipo, ya que, mal utilizadas, pueden desencadenar graves problemas. Por ejemplo,
veremos que una práctica corolario propone, en determinadas circunstancias, reducir el
número de miembros de un equipo. Aplicar esta práctica puede ser peligroso si no se respeta
el ritmo sostenible del trabajo, la programación por parejas o conocimiento compartido.
Las prácticas corolario son las siguientes:
• Participación real de los clientes: Toda persona afectada por el producto se considera
parte del equipo y debe poder participar activamente en la planificación y en la
elaboración de los requisitos. En ocasiones, es necesario que una única persona
canalice todas las necesidades para transmitir una única petición al equipo de
desarrollo.
Figura 10.9. Participación del cliente.
Combinando Scrum y XP
Scrum y XP son dos métodos basados en los valores y principios Agile y coinciden en su
filosofía de trabajo. Ambos métodos comparten también numerosas prácticas que un equipo
de desarrollo debería aplicar a su trabajo diario para mejorar no solo desde el punto de vista
de la productividad, sino también desde un punto de vista más personal.
La aplicación tanto de Scrum como de XP en la creación de un producto implica un
cambio de mentalidad en todos y cada uno de los actores implicados. Es necesario dejar a un
lado ideas y patrones utilizados en el pasado y dar un giro para buscar la mejor forma de
trabajar y la manera de protegerse de las interferencias externas que puedan afectar a la
productividad de los equipos.
Se puede afirmar, sin correr demasiados riesgos a equivocarse, que Scrum y XP pueden
convivir en armonía en el caso en el que el proyecto que se esté llevando a cabo contenga un
desarrollo de software. El gran objetivo de XP es desarrollar software con menos defectos,
más barato, de forma productiva y con un mayor retorno de la inversión realizada. Scrum
trata de optimizar la forma en que los equipos organizan y gestionan su trabajo.
Nota:
Scrum es un método ágil que propone un conjunto de buenas prácticas para la gestión,
mientras que XP lo que sugiere son una serie de buenas prácticas de programación. Por
este motivo, ambos métodos no solo pueden convivir, sino que se complementan el uno al
otro.
Algunos de los aspectos que comparten Scrum y XP y que hacen que su convivencia sea
posible en perfecta armonía son los siguientes:
Figura 10.11. Scrum y XP comparten aspectos que hacen posible que convivan en
armonía.
Recuerde:
Tanto Scrum como XP basan su filosofía de trabajo en que todos los equipos, incluso los
mejores, independientemente de sus circunstancias, siempre pueden mejorar en algún
aspecto.
42 http://c2.com/cgi/wiki?HistoryOfExtremeProgramming.
43 eXtreme Programming Explained: Embrace Change. Kent Beck. Ed. Addison Wesley. (1999).
44 eXtreme Programming Explained: Embrace Change (2nd Edition). Kent Beck with Cynthia Andres Ed. Addison Wesley
(2004).
45 The Art of Agile Development. James Shore & Shane Warden. O´Reilly. 2008.
46 eXtreme Programming Explained: Embrace Change. Kent Beck with Cynthia Andres (2004).*
En este capítulo aprenderá:
Scrum en la empresa
Los métodos ágiles, especialmente los orientados al desarrollo de nuevos productos y
particularmente software, son una alternativa al clásico modelo en cascada o waterfall. Este
modelo, muy asentado aún hoy, se basa en una serie de premisas asumiendo que:
• Hay una serie de requisitos que definen por completo y de antemano el nuevo
producto.
• Estos requisitos permanecen estables y si hay cambios son menores y no afectan al
proyecto.
• Si hay necesidad de integrar sistemas o componentes, es un proceso predecible y
controlado.
• La innovación y desarrollo necesarios para un nuevo producto son predecibles.
• Rara vez los requisitos están completos y perfectamente descritos al inicio. Suelen
contener ambigüedades, lagunas y errores. Requieren habitualmente explicaciones
adicionales y aclaraciones.
• Los requisitos varían continuamente y ese cambio aumenta a medida que pasa el
tiempo desde que se enunciaron hasta que se concluye el producto.
• Y, en general, la naturaleza impredecible de este tipo de actividades hace inviable las
dos últimas premisas. Los sistemas y componentes acaban interaccionando de formas
inesperadas e impredecibles y el proceso creativo asociado a la innovación no puede
anticiparse ni pronosticarse.
Las empresas que adoptan métodos ágiles como Scrum están tratando de atajar algunos de
estos problemas y convertir la incertidumbre en un elemento natural del proceso.
Nota:
Entiéndase que no estamos hablando de LEAN, la fabricación JIT o técnicas similares,
sino de otros métodos mencionados en el libro como Scrum, Kanban o XP. Estos últimos
no se refieren tanto al proceso de fabricación y producción masiva como a trabajos donde
el diseño tiene un papel central, ejemplificados por el desarrollo software, pero que
abarcan actividades como la arquitectura, el diseño industrial, el marketing, banca,
proyectos de ingeniería, etc.
La adopción de estos métodos ágiles supone una serie de beneficios que no se pueden
ignorar, entre los que destacan 47 :
• Los clientes pueden ver resultados coherentes y funcionales casi desde el primer
momento, en lugar de esperar al final del proceso; además, esos resultados crecen
progresivamente con cada iteración.
• Los clientes también ganan en control y capacidad de influir en el proceso de forma
continuada. Es una manera de poder modificar rápidamente sus requisitos ante cambios
del entorno o condicionantes. El proceso es más eficiente, ya que reduce la cantidad de
esfuerzo invertido en actividades que no generan verdadero valor.
• Por el lado de la empresa, los métodos ágiles permiten contar con equipos motivados,
auto-organizados y comprometidos con la calidad y la mejora continua.
• El proceso se vuelve más controlable, medible y cuenta con una forma inequívoca de
determinar el cumplimiento de las expectativas de los clientes.
• Hay un control más cercano e inmediato que permite detectar mucho antes puntos de
mejora y facilita un uso más eficiente de los recursos.
Sin embargo, aunque es una fuente de toda clase de beneficios y ventajas para el conjunto
de una organización, la implantación de los métodos ágiles no puede hacerse de forma
descuidada y sin orden. Podría acabar volviéndose contra quienes lo impulsan y, de hecho,
hay referencias a empresas que han abandonado Scrum o Kanban por malas experiencias
iniciales.
Afortunadamente, hay autores que se han preocupado de diseñar una estrategia para ello.
Todas las empresas y organizaciones siguen un esquema parecido: la semilla de Agile aparece
en forma de algún proyecto o actividad pioneros, al que poco a poco se van sumando algunos
más. En otros casos, es un conocimiento que se extiende sin que se llegue a aplicar
formalmente, pero que se infiltra en la cultura de la compañía.
De una u otra forma, la Dirección de la organización, ahora consciente de la existencia de
los métodos ágiles, plantea una prueba controlada. Si el resultado es satisfactorio, la
aplicación de estos métodos continuará extendiéndose. Además, como Scrum y otros
métodos ágiles son bastante eficientes descubriendo fallos y destacando impedimentos, se
adoptan nuevas técnicas de calidad que hacen que la brecha entre proyectos ágiles y
convencionales sea cada vez más amplia y se demuestren los beneficios de la nueva forma de
trabajo.
Para completar de la forma menos traumática la adopción generalizada de métodos ágiles,
hay que trazar una estrategia que los introduzca progresivamente. Hay muchos ejemplos de
este tipo de estrategias. Nosotros nos fijaremos en una 48 , que define tres pasos:
Afortunadamente, hay una serie de componentes de los métodos ágiles que escalan con
facilidad a lo largo de una empresa, simplificando su difusión 49 :
Sin embargo, la parte más compleja del proceso de adopción de métodos ágiles en una
empresa es la que se refiere a los cambios en la propia organización. Y eso se debe a que la
filosofía del trabajo ágil choca con algunos de los principios establecidos hasta ahora. Por
ejemplo, los métodos ágiles priman el desarrollo empírico de productos frente al planificado
o deja en manos de equipos motivados y auto-organizados potestades que antes estaban en
manos de gestores.
Eso significa que los roles y jerarquías deben adaptarse a la nueva situación, lo mismo que
la formación, la política de reclutamiento y retribución y, en general, buena parte de los
aspectos más destacados de la gestión de una empresa. Además de cuestiones internas, hay
un aspecto externo crítico que también debe ser revisado: la relación con los clientes. Si
hablamos de proyectos cuyos requisitos se construyen iteración a iteración, sin unos
requisitos fijados al principio, abiertos a cambios y con un equipo que fija sus propios
objetivos, parece complicado realizar una contratación con estas premisas. Por ello, vamos a
dedicar el último apartado de este capítulo a los contratos ágiles, un tema rodeado de cierta
polémica.
Contratos ágiles
Si los métodos ágiles establecen una nueva forma de trabajar y de relación con los
clientes, una de las expresiones de esa relación, los contratos, también se verá afectada. Se
abandona la orientación tradicional en la que el trabajo está perfectamente definido antes de
empezar, por otra aproximación en la que se orienta hacia el cambio y facilita la introducción
continua de nuevos requisitos.
La expresión más extrema del contrato ágil se resume en la frase: “Money for nothing,
change for free” 50 (dinero a cambio de nada, modificaciones gratis), que no deja de ser una
forma de definir la confianza mutua, la que tiene el cliente en el equipo al pagar sin un
contrato formal que defina detalladamente lo que va a recibir al final del proceso, y la del
equipo, que realiza los cambios que se le soliciten sin exigir una evaluación económica a
cada paso.
Como se ve, es una filosofía completamente distinta a la de un contrato convencional. Los
contratos son más una herramienta de protección que la definición de una relación de
confianza. El cliente no espera recibir nada menos, ni el proveedor ofrecer nada más, y el
cambio se gestiona, cuando se hace, a través de complejos mecanismos que buscan la
protección antes que la colaboración. Al final, se corre el riesgo de pagar más de lo que se
preveía y recibir menos de lo que se esperaba.
Lo cierto es que un contrato debería ser un acuerdo y potenciar que ambas partes salgan
beneficiadas, más que proteger a una frente a otra. Un contrato debería reflejar una
colaboración y no ser un arma entre las partes.
El acuerdo se fija ante todo en tres dimensiones: alcance (lo que incluye calidad), coste y
plazos, y, como mucho, se establecen mecanismos para que la variación de una no afecte a
las demás. Sin embargo, en un contrato ágil, un cambio debe afectar a las restantes
dimensiones: si cambia el alcance debe variar el tiempo y/o el coste, es inevitable, o la
calidad se verá comprometida.
Figura 11.1. Los contratos ágiles se basan en la confianza y colaboración entre cliente y
proveedor.
Una forma de amortiguar el impacto del cambio es ser capaces de definir partes del
producto imprescindibles, junto a otras de prioridad menor. Trabajar en bloques pequeños y
ciclos cortos, propio de los proyectos ágiles, ayuda a reducir la complejidad y permite asumir
cambios como algo natural.
Otra premisa importante de los contratos ágiles es asumir que los riesgos son compartidos,
para evitar que el contrato se convierta en un arma arrojadiza. Si no se comparten riesgos en
lo que afecta a costes, expectativas y plazos, se reduce la posibilidad de obtener un beneficio
mutuo.
En un contrato convencional, que busca cubrir a las partes, se trata de contar con unos
requisitos cerrados de antemano y una aceptación única final. Eso hace que se trate de tener
la mayor cobertura posible haciendo que se incluyan requisitos “por si acaso”, aunque no
sean realmente necesarios, lo que da lugar a obtener un producto con funcionalidad que no se
necesita y a un desperdicio de recursos.
Tampoco se puede afirmar que un contrato ágil sea necesariamente una operación
arriesgada. Lo que se busca con estos contratos es llegar a trabajar como socios, no en una
relación cliente-proveedor.
Lo cierto es que todo este proceso se asienta en la confianza y, cuando se inicia una
relación entre dos partes, no se puede dar por hecho que esa confianza esté presente. Debe
ganarse poco a poco y ser muy cuidadoso a lo largo de la relación que se establezca. Por ese
motivo, hay bastantes modelos de contratos ágiles 51 , que recogen todo el rango de
graduación de confianza entre las partes 52 . En un extremo, estaría el “contrato por Sprint”,
que no es más que el acuerdo entre Product Owner y equipo sobre las funcionalidades de
cada iteración. Pero, a partir de ahí, tenemos otros tipos de contratos posibles, que se
exponen a continuación de forma muy resumida:
• Fijando precio y alcance, pero dejando abiertas el resto de las variables. En realidad, el
riesgo pasa al proveedor y a su capacidad de estimar.
• Tiempo y materiales, que supone pagar por unos recursos en un tiempo, aunque
dejando abierta la funcionalidad. En este caso, es el cliente el que asume todo el riesgo,
ya que no hay compromiso de alcance. Hay variantes para mitigar ese riesgo, como,
por ejemplo, establecer límites de coste o acordando un alcance por iteración y
permitiendo al proveedor cobrar el importe íntegro, como incentivo, si se consigue
cumplir antes.
• Desarrollo en fases. Una aproximación cooperativa en la que se establecen releases que
limitan el riesgo mientras el resto de los factores se acuerdan entre las partes. Puede
complementarse con un sistema de penalizaciones.
• Beneficio fijo. Se establece un beneficio y un coste fijos. Si se obtiene el alcance en
fechas, el proveedor recibirá ese beneficio; si no es así, el cliente seguirá pagando el
esfuerzo, pero esta vez no habrá beneficio posible para el proveedor.
• “Money for nothing, change for free” 53 . La expresión más extrema de los contratos
ágiles. El cliente paga por el esfuerzo, pero el compromiso del proveedor es total.
Aparentemente, el cliente paga por un alcance que no está completamente cerrado,
pero el proveedor se entrega al proyecto y asume todo el esfuerzo preciso para
completar el alcance comprometido en cada iteración, así como para respaldar la
calidad del producto. Exige un grado de confianza máximo, requiere una relación muy
madura entre ambos y solo funciona si ambas partes trabajan siguiendo metodologías
ágiles.
47 Top Eight Reasons Why Organizations Are Making the Switch, S. Elatta, Scrum Alliance.
50 Acuñada por Jeff Sutherland (), uno de los firmantes del manifiesto Ágil y una de las grandes referencias mundiales en
métodos ágiles.
51 10 Contracts for your next Agile Software Project, Peter Stevens, Agile Software, , 2009.
52 Xavier Albadalejo, .
53 Jeff Sutherland, Agile Contracts: Money for Nothing and Your Change for Free, .
En este capítulo aprenderá:
Un equipo que aplica Scrum tiene claro el objetivo que quiere conseguir. La revisión
diaria del trabajo, la búsqueda de la mejora y la coordinación continua hace que se puedan
obtener resultados visibles con mucha frecuencia. El equipo asume responsabilidades claras y
concretas, a la vez que establece las reglas de gestión que resultan más sencillas.
Scrum es un método que, en origen, está concebido para que los equipos tengan total
libertad para innovar y experimentar iteración tras iteración. Parte de la potencia de adoptar
este método reside en que la mayoría de las necesidades que le vayan surgiendo al equipo y
la resolución de sus problemas puedan gestionarse de forma muy sencilla por el mismo
equipo sin depender de terceros.
Imaginemos ahora una familia compuesta por cinco personas. El padre es un excelente
cocinero y durante años se ha encargado de cocinar exquisitos platos para su familia. Todos
le animan a montar un pequeño restaurante, pero él no está seguro de si será capaz de poder
cocinar para tanta gente. Su familia le recuerda que no piense que tiene que hacerlo todo él
solo. El hijo se ofrece para ir a la compra, la mujer será la encargada de pensar los menús, el
padre cocinará y entre todos los demás atenderán las mesas. En definitiva, formarán un
equipo. Desde luego la forma de organizarse nada tiene que ver con el día a día en su cocina
doméstica, pero ¡claro que es posible montar el restaurante!
Cuando un proyecto es grande, no basta simplemente con añadir más personas al equipo.
Un equipo tan numeroso de personas hace que la comunicación y la coordinación entre
ellas sea complicada. Es materialmente imposible que todos y cada uno de los miembros del
equipo puedan conocer en detalle el trabajo del resto de sus compañeros. La comunicación se
deteriora, ya que no hay forma de escuchar y sentirse escuchado por todos los miembros de
un equipo tan grande. Paralelamente, la gestión del trabajo se complica de forma notable. Las
Daily Meetings durarán mucho más tiempo y dejarán de tener el valor. El Product Owner no
podrá gestionar correctamente el enorme Product Backlog ni atender a las necesidades de
todos los miembros del equipo como debería.
La duración de los Sprint Planning se alargará enormemente y se tratarán numerosos
asuntos que no afectarán a una gran parte del equipo y un largo etcétera de inconvenientes.
Desde el punto de vista organizativo, los responsables de la empresa necesitan disponer de
una foto global del estado del proyecto actualizada y, a la vez, conocer detalles del avance del
equipo, pero ¿cómo se puede obtener esta información sin causar demasiado impacto en el
trabajo de los equipos?
Es un reto utilizar Scrum en un proyecto grande, sin embargo, los beneficios pueden ser
muchos.
A la hora de escalar Scrum, es decir, de aplicarlo a proyectos que necesiten llevarse a cabo
por equipos con muchas personas y gestionar un gran número de requisitos, se plantean dos
retos. Un primer reto es la adaptación de Scrum a esa situación especial, ya que, como se ha
comentado en los capítulos anteriores, Scrum está optimizado para proyectos con
dimensiones mucho más pequeñas tanto de personas como de requisitos. El segundo reto que
se plantea es el de ser capaces de responder a las necesidades propias de la organización de la
empresa. Existe una técnica que ayuda a manejar esta situación. Es la llamada Scrum of
Scrums.
Veamos en detalle, a continuación, en qué consiste exactamente Scrum of Scrums y
algunos consejos para implementarlo con éxito.
Los equipos
Esta es, sin duda, la decisión más delicada cuando se escala Scrum. ¿Cuántos equipos
formo? ¿Cómo divido el trabajo? ¿Qué personas incluyo en cada equipo? Como ya hemos
comentado en varias ocasiones con anterioridad, los equipos que trabajan aplicando Scrum
deben estar compuestos, en general, por un número de personas que oscile entre 4 y 12. Así
que el primer paso será organizar los nuevos equipos pequeños y repartir el trabajo.
Una muy buena opción a la hora de asignar el trabajo es hacerlo por bloques de historias
de usuario completas. De esta forma, cada equipo será capaz de completar la funcionalidad
sin depender de ningún otro grupo.
En ocasiones, puede ser necesario montar un equipo especializado enfocado a un asunto
en concreto, pero esto debe responder a necesidades puntuales, ya que, para completar el
producto, necesitarán la colaboración del resto de equipos y se perderá la rapidez de
respuesta que caracteriza a Scrum.
Dicho esto, continuaremos este capítulo optando por formar grupos que puedan completar
historias de usuario de forma independiente.
Cada uno de estos equipos aplicará Scrum y tendrá un Scrum Master y un único Sprint
Backlog priorizado y estimado. Realizará sus reuniones de sincronización diarias, Reviews,
Retrospectivas, etc.
Sin embargo, no se debe olvidar que su trabajo forma parte de la elaboración de un
producto más grande y que su labor consiste solo en la creación de una parte de un todo.
Cada uno de los equipos debe conocer la planificación global del producto, el estado del
trabajo del resto de los equipos y las posibles dependencias con ellos.
Importante:
En ningún caso debe permitirse que un equipo tenga más de un Product Owner, ya que
esto podría derivar en conflictos a la hora de establecer prioridades en el trabajo del
equipo.
Importante:
El equipo de Product Owners al completo debe asistir a las Reviews de todos los equipos
para tener una visión global del producto y poder continuar trabajando con el Backlog del
producto para gestionar dependencias y prioridades.
Scrum of Scrums
Tal y como se ha comentado, existe el riesgo de que cada uno de los equipos se centre en
“su” Sprint Backlog y en “su” objetivo para el Sprint y acabe desconectándose del resto de
los equipos.
Esto no significa que los equipos no estén haciendo bien su trabajo. Aunque los miembros
de cada uno de los equipos sean unos excelentes profesionales, se corre el riesgo de que el
objetivo global no se cumpla.
Para minimizar este riesgo, existe una técnica que permite la sincronización y
coordinación de todos los equipos y evitar los aislamientos. Son las reuniones conocidas
como Scrum of Scrums. En ellas, se trabajará la integración de unos con otros, así como la
detección de posibles dependencias.
Estas reuniones se centran principalmente en prevenir y solucionar los solapes entre los
diferentes equipos.
Para que estas reuniones funcionen correctamente, hay una serie de reglas que conviene
aplicar:
Recuerde:
Cada equipo mantendrá su reunión de sincronización diaria y, además, periódicamente,
representantes de todos los equipos mantendrán una reunión para la sincronización entre
ellos, conocida como Scrum of Scrums.
• Combinar a los miembros de los equipos: Entre Sprint y Sprint, es una buena
práctica intercambiar a algún miembro de un equipo a otro. Con esto, se favorece la
comunicación entre equipos, se transmitirá la forma de trabajar y pensar entre ambos
grupos y se eliminarán disonancias entre los equipos.
• Hacer reuniones de planificación de las entregas o releases: Reunir a todos los
equipos que están construyendo un mismo producto al inicio de una nueva etapa es una
práctica extraordinaria para alinear sus objetivos y crear equipo recordando el
propósito general del proyecto.
• Trabajar en la planificación del trabajo futuro: Tener presente el trabajo de los dos
Sprints siguientes ayuda a detectar, de forma prematura, las posibles dependencias con
otros equipos y a buscar la solución de forma temprana.
• Invitar a las Sprint Reviews: Hacer Reviews abiertas e invitar a miembros de otros
equipos es la manera más directa de compartir el estado del producto que está creando
un equipo en concreto. En estas reuniones, se detectarán puntos de enlace entre
equipos, así como oportunidades para aprender cómo trabajan otros. El equipo de
Product Owners al completo debe asistir a las Reviews de todos los equipos para tener
una visión global del producto y poder continuar trabajando con el Backlog del
producto para gestionar dependencias y prioridades.
• Realizar Retrospectivas generales: Al final de una etapa es un buen momento para
que todos los equipos realicen un análisis de cómo están trabajando para buscar las
mejoras colectivas que podrían aplicarse en la siguiente etapa. La dinámica y objetivos
serían los mismos que los de una Retrospectiva habitual de equipo, pero a gran escala.
La periodicidad debe decidirse por todos los equipos, pero un momento extraordinario
es al final de cada Release. Por supuesto, una retrospectiva general puede ser
convocada en cualquier momento si se considera necesaria.
• La sincronización de los Sprints: Todas las recomendaciones anteriores para la
gestión de dependencias entre los equipos son muchísimo más fáciles de aplicar si se
trabaja con Sprints sincronizados, es decir, tratar de hacer coincidir el inicio y fin de
los Sprints de todos los equipos que trabajan en el mismo producto.
No es necesario ser muy estrictos con las fechas, puede manejarse con facilidad un
margen de 2 o 3 días de desfase. La sincronización de Sprints puede realizarse
manejando múltiplos, es decir, los Sprints de un equipo logran durar una semana, los
de otro equipo dos y los de un tercer equipo cuatro semanas.
Recuerde:
Si las personas están distribuidas geográficamente, es necesario que se disponga de las
herramientas necesarias para que la comunicación sea la mejor posible. Nada como la
comunicación cara a cara, pero, si esto no es posible, al menos, se debe procurar que
haya ocasionalmente reuniones presenciales con la totalidad del equipo, así como
disponer de videoconferencias, herramientas que permitan hablar sin cortes ni
interrupciones, etc.
Grupos transversales
Consejo:
La agenda de los grupos transversales no debe ser rígida pero sí fiable para evitar que
dejen de reunirse. Inicialmente podrían fijarse reuniones periódicas hasta que este equipo
empiece a ser más maduro. Podrán existir tantos grupos transversales como sean
necesarios y podrán coordinarse de manera más o menos formal. En ocasiones, estarán
liderados por alguna persona en concreto, pero esto es algo que no debe imponerse.
Es necesario crear una cultura en la empresa en la que se esté escalando Scrum, ya que,
al trabajar de esta forma numerosos equipos, puede implicar cambios en la organización
para adaptarse a los nuevos roles.
Atención:
Para que escalar Scrum funcione, tan importante como mantener una visión global del
producto es poder transmitir un único y claro objetivo a cada equipo para cada Sprint.
• El origen de Kanban.
• Qué es y cómo trabajar con Kanban.
• Algunos trucos para aplicar Kanban con éxito.
Es muy útil tener presente que hay otros métodos ágiles para la organización del trabajo.
Además de Scrum, uno de los más extendidos es Kanban. Kanban se fundamenta en los
principios Lean que se tratan en el capítulo 14 y se centra en eliminar constantemente el
“desperdicio”, todo aquello que no aporta valor.
En el día a día de un equipo de soporte y mantenimiento, en el de una redacción de un
periódico o en un departamento de logística, tratar de fijar Sprints de duración determinada
puede no tener mucho sentido. Cada día, los equipos tienen que trabajar en las urgencias del
momento, que muy probablemente aparecerán de forma impredecible. Kanban puede ser la
solución que les ayude a trabajar de forma ordenada y productiva.
La primera vez que se aplicó Kanban en un proyecto de ingeniería de software fue de la
mano de David J. Anderson 55 en el año 2004 en Microsoft, con un equipo encargado del
mantenimiento de software. El resultado fue un éxito absoluto, ya que la productividad del
departamento se multiplicó por tres y los plazos de entrega disminuyeron en un 90%.
Kanban es una palabra de origen japonés que significa signo, señal o tarjeta y debe ser
entendido como un “otorgador de permisos”. Pero ¿otorgar permisos para hacer qué?
La forma de trabajo con Kanban está basada en definir un número máximo de tarjetas
admitido para cada estado del proceso. Será este número el que indique si se puede empezar
a realizar un trabajo o hay que esperar a que “haya sitio” para una nueva tarjeta en ese estado.
Se trata de esperar antes de continuar avanzando en un punto determinado del trabajo para
evitar que se acumule el trabajo en otro punto del proceso. Proceder así es una manera muy
efectiva para detectar, de forma temprana, atascos, cuellos de botella o impedimentos. De
esta manera, se puede pensar en la solución antes de continuar y evitar que los problemas se
hagan mayores y, en consecuencia, más difíciles de solucionar.
Kanban surge de la necesidad de entregar a tiempo un producto y de buscar la mejora en
los procesos. Se parte de la premisa en la que las personas implicadas en un proceso son las
más capacitadas para encontrar soluciones y mejoras eficaces, ya que son precisamente estas
personas las que lo conocen en profundidad.
Figura 13.1. Kanban, palabra de origen japonés que significa signo, señal o tarjeta.
Es interesante destacar que, para poder aplicar Kanban en una organización, es necesario
que ya existan unos procesos establecidos en la empresa. Kanban simplemente, y no es poca
cosa, ayudará a optimizar estos procesos.
Al empezar a aplicar este método, se debe cambiar lo menos posible la forma en la que se
trabaja y, poco a poco, ir detectando oportunidades de mejora para aplicarlas
progresivamente.
Las características de Kanban hacen posible su aplicación a cualquier tipo de proyecto o
situación. Kanban puede aplicarse con éxito a cualquier proyecto que se lleve a cabo con un
equipo de personas y que tenga que realizar entregas en un plazo determinado, sin necesidad
de que los ciclos sean periódicos.
La propuesta de Kanban es trabajar de forma que el estado del proyecto tenga una
transparencia constante para todos los implicados. Esto permite que todo el equipo pueda
identificar cuellos de botella y todo aquello que no es valioso. Cualquier persona puede y
debe tratar de eliminar, o al menos reducir, todos aquellos impedimentos que entorpecen la
productividad del equipo y que rompen el flujo del trabajo.
Kanban trata de eliminar la ambigüedad y la complejidad. Todo debe estar reflejado y ser
tratado de forma simple y clara. La clave está en reflejar solo y exclusivamente lo necesario.
Ni más ni menos.
Cuidado:
Un exceso de información hace que lo importante quede diluido entre datos prescindibles.
Los miembros del equipo deben trabajar en estrecha colaboración y con predisposición
para la innovación y la ayuda mutua. Kanban se basa en una confianza plena en el equipo y
en su profesionalidad, ocupe el rol que ocupe cada persona. El equipo podrá tomar, en
muchos casos, decisiones de actuación en su trabajo diario sin necesidad de que estas
decisiones sean supervisadas por un superior.
Pero ¿cómo se trabaja con Kanban?, ¿cómo empiezo? y ¿qué tengo que hacer? Veamos a
continuación los pasos que hay que dar para aplicar Kanban a un proyecto.
Kanban en la práctica
En Kanban, las tareas o requisitos que hay que realizar se escriben en tarjetas y se define
el número máximo de ellas permitidas en cada etapa del proceso. En función de esta sencilla
regla, se tomarán las decisiones correspondientes para actuar como mejor convenga en cada
momento.
Veamos, a continuación, todo esto con algo más de detalle.
Lo primero que hay que hacer es tener claro cómo se está trabajando, es decir, qué
secuencia sigue un requisito o necesidad desde que se detecta hasta que se da por finalizada.
Para ello, una acción realmente útil es definir el flujo de trabajo en detalle.
Al hacer esta definición del flujo de trabajo, es importante reflejar los tiempos empleados
en completar cada etapa, así como identificar el tiempo de espera empleado por cada ítem
entre paso y paso. Por último, este mapa debe completarse con cualquier información
necesaria que indique qué políticas seguir para poder dar por finalizada una etapa y poder
avanzar a la siguiente.
Los elementos de un flujo están identificados por símbolos definidos de manera estándar,
pero su uso correcto es algo que no debe preocuparnos demasiado en este punto. En
definitiva, en este primer paso para comenzar a aplicar Kanban, lo fundamental es poder
detectar:
Nota:
Según la filosofía Lean, filosofía en la que se fundamenta Kanban, la principal fuente de
desperdicio es la sobreproducción o producción innecesaria en una determinada etapa del
flujo, es decir, hacer más de lo que se puede asimilar. Otros focos de desperdicio son los
tiempos de espera, los pasos innecesarios o la repetición de tareas.
La creación de un tablero básico es sencilla. El panel debe disponer de una columna para
cada etapa del flujo definido anteriormente. Por ejemplo, para el diagrama representado en la
figura anterior, una primera aproximación al tablero Kanban sería la que se muestra en la
siguiente imagen:
Figura 13.4. Tablero básico.
A este panel le faltan dos cosas fundamentales: el limitador de trabajo por columna, es
decir, el WIP, y las tareas. Estos aspectos se tratarán en breve, pero ahora se continuará
hablando del tablero en sí.
Para que un tablero de Kanban sea útil, es muy importante decidir en qué momento del
flujo empieza y termina la representación del estado del trabajo en nuestro panel. Esto es
clave, ya que se está tratando de organizar el trabajo sobre el que tenemos capacidad de
acción. Sería un error tratar de “imponer” a personas de fuera de nuestro grupo esta forma de
trabajar. Lo que sí se debe articular desde el principio de la adopción de Kanban es la manera
de interactuar con los grupos que trabajan en la etapa anterior y posterior a las que nos ocupa
como equipo. Hay que buscar la compatibilidad entre la adopción de Kanban en nuestro
entorno con el ecosistema que le rodea.
Otro tema muy delicado que hay que tener muy presente cuando cree su tablero es que
este debe reflejar el flujo actual de su proceso y no el que le gustaría seguir. Poco a poco,
podrá ir adaptándolo y optimizándolo a medida que vaya incorporando mejoras progresivas
en su forma de trabajar.
Pero insistimos en que un tablero Kanban debe reflejar el flujo de trabajo real y no el
deseado para un proceso.
Importante:
No hay dos tableros de Kanban iguales. Cada equipo debe generar su tablero para que
refleje su flujo de trabajo con sus etapas y características específicas. Habrá que ir
adaptando el tablero en función de las necesidades concretas de cada situación.
Nota:
El valor para los WIP debe decidirse de manera colectiva.
Una regla sencilla para saber qué WIP asignar a cada columna del tablón Kanban es hacer
una relación directa con el número de personas responsables de esa etapa. Si tengo 2 analistas
y 5 desarrolladores, para comenzar definiré el WIP del análisis en 2 y el de desarrollo en 5.
Esto es una primera regla para empezar, pero luego habrá que revisar estos valores
observando el comportamiento del sistema y adaptarlos a medida que avance el proyecto.
Pero, tal y como se comentó anteriormente, no se trata de estar cambiándolo a cada
momento.
Al utilizar estos límites de trabajo permitido por columna, WIP hace que se detenga el
trabajo en un punto dado y que el equipo se centre en “desatascar” los cuellos de botella o
tapones que aparezcan en el proceso. El equipo entero tendrá una visión clara de dónde se
está produciendo el parón. En cualquier caso, es fundamental mirar más allá del tablero para
entender qué es lo que está ocurriendo. Puede que haya un bloqueo muy temporal y que no
sea necesario cambiar nada o, por el contrario, puede ser un síntoma de un problema real.
Asignar un límite al trabajo permitido en cada estado aporta un enorme beneficio al
producto, ya que evita que se aborden muchas tareas de manera simultánea. El problema de
trabajar en muchos temas a la vez es que conviven numerosos temas incompletos durante un
tiempo indefinido y esto implica directamente acumular desperdicio y ser fuente de posibles
errores. Como dice el conocido refrán: “Quién mucho abarca, poco aprieta”.
Asignar WIP a cada columna es un buen mecanismo para crear una cultura de mejora
continua a todos los miembros del equipo.
Atención:
El tablero de Kanban nos da mucha información sobre el proyecto, pero no toda.
Es frecuente que un problema se haga visible en un punto del tablón Kanban, pero que no
sea allí donde esté el origen del conflicto. Hay que mirar más allá de lo que abarca el
tablero Kanban para tener la información completa.
Ya tenemos nuestro tablero, pero ahora queda algo clave y es que hay que poblarlo con el
trabajo que hay que realizar.
Los tipos de tareas que un equipo debe realizar pueden ser muy variados y tener orígenes
muy distintos.
Un equipo puede tener que incorporar una nueva funcionalidad a un sistema o corregir un
defecto. Pueden existir trabajos de mantenimiento, tareas para solucionar un tema bloqueante
o simplemente realizar trabajos para la mejora de algo ya existente. En definitiva, una larga
lista de trabajos que tiene que llevar a cabo un equipo.
David J. Anderson propone clasificar los distintos trabajos o tareas en clases de servicio y
esta clasificación se realiza en función del impacto en el negocio que tiene la realización en
tiempo o el retraso de una tarea. Las clases de servicio más generales son las siguientes:
• Estándar: Reflejan los requisitos o necesidades del usuario que el producto debe
cumplir. Se corresponderían directamente con las historias de usuario más
tradicionales.
• Urgente: Estas tareas son indeseables, pero también son inevitables. Las tareas
urgentes son peligrosísimas porque se incorporan al flujo de trabajo del equipo de
forma inesperada y rompen su orden y el ritmo. Hay una práctica muy útil para tratar
de reducir el número de urgencias en curso de manera simultánea y funciona de la
siguiente manera: se crea una fila adicional en la parte superior del panel a modo de
“autopista” y se aumenta en uno (+1) el WIP de todas las columnas del tablero. Esto
implica que solo se pueden tratar las tareas urgentes de una en una. Es decir, hasta que
no acabe con ella no puedo empezar con otra. Al estar en la parte superior, refleja
urgencia y prioridad en su realización. La idea es quitarse las urgencias lo antes posible
para que el equipo recupere cuanto antes su ritmo de trabajo. Tratar así a las
“urgencias” tiene un gran impacto, ya que es un procedimiento muy llamativo (véase la
figura 13.6).
Esta práctica puede ser adaptada a su situación concreta y tal vez no le quede otro
remedio que aumentar el WIP en otro valor que no sea simplemente +1 para tareas
urgentes. Lo que sí se debe vigilar es que las tareas urgentes no se conviertan en una
forma habitual de trabajo y tratar de limitar su capacidad a +1 tan pronto como sea
posible.
Figura 13.6. Carril para tareas urgentes.
Nota:
Hay que tratar a toda costa que las tareas urgentes aparezcan solo ocasionalmente.
• Fecha de entrega fija: Este tipo de tareas corresponden a trabajos que deben
finalizarse en una fecha concreta y que el incumplimiento de dicha fecha pueda tener
un gran impacto en el negocio.
En la tarjeta debe aparecer de forma muy visible la fecha de entrega para que se tenga
muy presente este importante dato.
Por ejemplo, si se va a lanzar para la campaña de Navidad un producto al mercado en
Portugal y existe una tarea que sea “traducir la guía de usuario al portugués” con fecha
de entrega el 30 de noviembre de 2018, se trata realmente de una fecha fija. Esa guía
debe estar disponible para poder ser entregada al usuario final junto con el producto. El
impacto si esta tarea no se realizara a tiempo sería muy grande.
Nota:
Es necesario asegurarse de que estas tareas tienen una fecha de entrega fija y que esta no
es el “capricho” de alguien.
Anderson representa de forma muy sencilla el impacto que tiene el retraso en la entrega de
las diferentes clases de tareas (véase la figura 13.7).
Una práctica tremendamente útil es utilizar un código de colores para identificar de
manera rápida y visual la clase a la que pertenece cada tarea. Para identificar las tareas
urgentes, una buena elección es aplicar un color muy llamativo, por ejemplo, un rojo intenso.
Ya hemos clasificado las tareas, pero ¿qué información debe contener una tarjeta en un
tablero Kanban?
Una tarjeta debe contener toda la información necesaria asociada a ella, pero solo y
exclusivamente la necesaria (véase la figura 13.8). De forma muy resumida, toda tarjeta
Kanban debe contener:
Truco:
Si es posible, trate de dividir los ítems o tareas de forma que tengan un tamaño
equivalente para que, de un vistazo, pueda evaluar la cantidad de trabajo en cada estado
o columna.
Se entiende como tiempo del ciclo el que se emplea en trabajar en una determinada tarea.
Es decir, el tiempo real desde que un ítem se incorpora al tablón de Kanban hasta que se da
por finalizado completamente. El objetivo final debe ser tratar de mejorar el proceso,
eliminando todo aquello que no aporta valor y, en consecuencia, disminuir el tiempo del ciclo
de las tareas.
Tal y como se ha comentado, no hay dos tablones de Kanban iguales, ya que cada equipo
debe construirse el suyo adaptado a su situación y proyecto.
Sin embargo, existen una serie de prácticas que tal vez puedan ser valiosas en un proyecto
determinado:
• Hay equipos que priorizan los ítems en la columna de la izquierda del panel de manera
que el ítem más prioritario estará en la parte superior de la columna y el menos
prioritario estará en la parte inferior. De esta forma, en cuanto pueda entrar una tarea en
la siguiente columna, lo hará la más prioritaria. A lo largo de todo el flujo, los ítems
superiores en cada columna se deberán trabajar en primer lugar.
Figura 13.9. Tener claras las prioridades siempre es de gran ayuda para el equipo.
Importante:
Es un error confundir Kanban con la improvisación constante e incontrolada. Deben
existir políticas de actuación acordadas y conocidas por todo el equipo.
• Eliminar los cuellos de botella debe ser una prioridad para todo el equipo, aunque no
afecte inicialmente a todos sus miembros por igual. Si algo es beneficioso para el
proyecto completo, también lo es para cada uno de los participantes. Kanban basa su
éxito en la transparencia, de forma que los impedimentos o “tapones” serán visibles
para todos simultáneamente. La forma de proceder será la siguiente:
Al inicio de este apartado, se comentó que, para poder aplicar Kanban en una
organización, es necesario que existan unos procesos ya establecidos. Esto significa que se
pueden adaptar los roles que existan en su organización y empezar a trabajar con Kanban.
Si existe un jefe de proyecto, esta persona podrá encargarse tal vez de priorizar requisitos
en el panel, de eliminar los impedimentos del equipo, de generar las gráficas de trabajo, etc.
Kanban se basa en el principio de “menos es más”, de forma que no incorpore roles nuevos si
no van a aportar un valor directo al proceso o van a entorpecer el buen funcionamiento y
coordinación del equipo.
Nota:
Kanban no prescribe roles. Simplemente recomienda que se incorporen los roles que
vayan siendo necesarios para el correcto funcionamiento del equipo. En caso de que ya
existan, se debe tratar de optimizarlos.
En resumen
Kanban es un método útil y efectivo tanto para el desarrollo de productos de software
como para la organización de un departamento de recursos humanos o de un equipo de
soporte, entre otras muchas aplicaciones.
Recuerde que la forma de comenzar a aplicarlo es adaptando el método a los procesos,
roles y rutinas que tenga su empresa y, poco a poco, en función de las necesidades que se
vayan detectando, ir incorporando las mejoras de manera progresiva. Debido a la
transparencia que supone trabajar con Kanban, las deficiencias de un sistema saldrán a la luz
y será posible corregirlas de manera temprana.
Aplicar Kanban es una buena elección en aquellos proyectos que no pueden funcionar con
iteraciones de duración fija, en proyectos con un alto grado de inestabilidad en la aparición
de los requisitos o en cualquier proyecto de gestión o mantenimiento.
En definitiva, ¡pruebe, experimente y elija para su proyecto el método que más valor le
aporte!
55 Kanban: Successful Evolutionary Change for Your Technology Business. David J. Anderson. Ed. Blue Hole Press. 2010.
En este capítulo aprenderá a:
De la fabricación a la programación
Lean Software Development tiene su origen en la filosofía de fabricación Lean que tiene
sus raíces, como otros muchos elementos de los métodos ágiles, en la compañía Toyota. Se
considera que el punto de partida de estas nuevas formas de trabajo fue la visita de una serie
de expertos norteamericanos en los años 50 para ayudar en la reconstrucción de la industria
japonesa. Uno de esos expertos era William Edwards Deming, que introdujo conceptos
relacionados con la calidad que fueron aplicados con entusiasmo en Japón. De la
combinación de la necesidad de recuperar la industria con pocos recursos e infraestructuras
muy dañadas y dar una gran relevancia a la calidad del proceso y el producto, surge esa
nueva aproximación, Lean Manufacturing, que se resume muy bien en tres puntos:
Otra cara del Lean Manufacturing es la mejora continua o Kaizen, un término de origen
japonés, al igual que otros aplicados en el mundo de los métodos ágiles, como Kanban. La
mejora continua es uno de los elementos definidos en el manifiesto Ágil y no es otra cosa que
la acción proactiva para experimentar e identificar nuevas mejoras sin miedo a equivocarse,
sin culpables. Más que un proceso o una serie de técnicas, es una mentalidad, ya que debe
calar en las personas y hacer que cambien su actitud habitual.
Lean Manufacturing es un conjunto de técnicas muy probado y experimentado, que ha
beneficiado ampliamente a la fabricación industrial. Dado que define más una filosofía de
trabajo que un conjunto de técnicas, herramientas o procesos, es posible adaptarlo a otras
esferas de la actividad humana.
En este capítulo, veremos cómo se ha traducido al mundo del software dando lugar a una
de las filosofías (más que método) más aplicada y cómo ha sido puesto en práctica por
algunas organizaciones.
Eliminar desperdicio
El desperdicio se define como todo aquello que no aporta un beneficio al cliente, que no
es valioso para él. En un sentido amplio, esto implica también todo aquello que dificulta o
entorpece el proceso para llegar al producto. Seguramente, es uno de los principios de más
alcance e impacto para el conjunto de los métodos ágiles.
Los ejemplos de desperdicio en el mundo de la fabricación son la sobreproducción, el
exceso de inventario, el transporte innecesario, los defectos, las esperas... La primera
herramienta de Lean Software Development define las pautas para ayudar a identificar el
desperdicio, que, además, son una traducción del desperdicio de la fabricación al mundo del
software:
Para este último aspecto, el análisis para detectar y eliminar ineficiencias encaja
perfectamente el uso de retrospectivas. Tal y como se vio en el capítulo 8, las retrospectivas
son un proceso colaborativo, iterativo y continuado de mejora continua.
En definitiva, se trata de la traducción al mundo del software del principio Kaizen de
mejora continua. Las retrospectivas tienen la ventaja de la participación del equipo a la hora
de identificar los problemas y los puntos de acción. Esta participación del equipo ayuda
también a que hagan suyas las acciones correctivas, reduciendo las resistencias habituales en
gente acostumbrada a aplicar un determinado modo de trabajo (aunque no estén satisfechos
con él).
Nota:
Es habitual utilizar prácticas o procesos en el trabajo que por costumbre o tradición
siempre se han seguido, sin pararse a analizar si realmente es necesario seguir trabajando
de esta forma. Por ello, todos los implicados en la construcción de un producto deben
buscar los factores y procesos que reduzcan el valor del mismo para analizar su origen y
eliminarlo. Si no pudiera eliminarse el impedimento, al menos se debe tratar de reducir su
impacto.
Amplificar el aprendizaje
Nota:
En Lean se utiliza con frecuencia la expresión “último momento responsable”, que lo que
pretende transmitir es que se debe aprender e investigar todo lo posible antes de tomar
una decisión que afecte al producto. Pero esa decisión debe tomarse en el momento justo,
no más tarde. En definitiva, huir del exceso de análisis que pueda paralizar al equipo (el
llamado “análisis-parálisis”), pero también de la toma de decisiones de forma
precipitada.
Otra forma de ver este principio es como una forma de “mantener las opciones abiertas”
mientras sea posible. En áreas de gran incertidumbre y cambio, esto es especialmente
importante.
Otra consecuencia es añadir flexibilidad a las decisiones e incorporar por sistema un
análisis de opciones y alternativas, valorando impacto y consecuencias.
Una forma de demorar la toma de decisiones es el Sprint Planning de Scrum (véase el
capítulo 5), en el que la lista de las funcionalidades que se van a incorporar a un producto no
se define en el momento de iniciar el proyecto. En su lugar se realizan en cada iteración,
tomando los resultados y la experiencia ganada hasta ese momento.
El papel del equipo de trabajo es determinante. Uno de los cambios del Lean
Manufacturing es dejar atrás la visión de cadena de montaje, donde lo que se pide a las
personas es realizar una funciones estandarizadas y fácilmente automatizables. Los cambios
introducidos en Toyota supusieron dar más capacidad a las personas para, por ejemplo,
identificar puntos de mejora y aplicarlos.
La construcción de software es un trabajo de naturaleza intelectual y con una alta
incertidumbre: no es posible trabajar como en una cadena de montaje. Eso obliga a tratar de
forma distinta a los equipos y proporcionar el marco de trabajo más adecuado para sacar lo
mejor de cada persona. Desde la perspectiva Lean se ha demostrado muy eficaz el dar
responsabilidad (empowerment) al equipo.
Tener equipos responsables es un signo de una organización madura. Una organización
madura es aquella en la que todo el mundo es consciente del objetivo principal y no antepone
intereses menores y parciales. En una organización de este tipo, se pone el foco en el
aprendizaje y la autonomía para que las personas que hacen el trabajo tomen sus propias
decisiones.
Es por eso que una de las herramientas que se propone en Lean Software Development es
la autodeterminación. Con frecuencia, se trata de trasladar prácticas que funcionan en un
entorno a otro distinto y eso es un error porque cada entorno, equipo y circunstancias
requiere una aproximación distinta. En la transformación de las prácticas y procesos, una
forma muy eficaz de involucrar a las personas del equipo para que hagan suyo el cambio es
hacer que participen en su definición. Incluso las mismas medidas impuestas son peor
recibidas si no han sido definidas por los miembros del equipo. De esa forma, el papel de los
gestores es más de consejeros o coach que de aplicar el “ordeno y mando”.
Al final, esta autodeterminación es una forma de motivación, otra de las herramientas de
Lean para el equipo. Las personas motivadas se involucran más en el trabajo, siendo más
productivas y creativas. Hay muchas formas de motivar a las personas, pero, en relación a un
proyecto, tener la sensación de participar e influir en el trabajo es una de ellas. Conocer el
alcance final del trabajo, tener objetivos claros, información, acceso al cliente para feedback
y la sensación de influir en el trabajo, así como en su resultado, son buenas formas de
promover esa motivación. A algunas organizaciones les resulta difícil alcanzar ese grado de
delegación y confianza, pero los beneficios cuando se alcanza compensan a la incertidumbre
y la falsa sensación de perder control.
El que un equipo sea capaz de tomar sus propias decisiones no quiere decir que la
organización sea anárquica y descabezada. Es difícil alcanzar los objetivos sin contar con
liderazgo. Pero hay que entender que un líder no es una persona que ordena, es más una
persona que inspira, un referente, alguien que consigue con influencia y no solo por autoridad
jerárquica llevar al equipo a donde se quiere.
Hay que entender también que no todas las personas se sienten cómodas tomando todas
las decisiones. De hecho, suele haber un rechazo interno a la autodeterminación en los
equipos. Para muchas personas, ejecutar órdenes, incluso aunque no gusten, es una actitud
cómoda, que no requiere un esfuerzo mental. Además, permite hacer que la responsabilidad
recaiga en otros. Tener que tomar decisiones se ve como un inconveniente al hacerse
responsable de ellas. El papel del líder ayuda también a reducir esa resistencia, ya que sirve
de guía al equipo y puede encarnar esa figura de referente orgánico en el que delegar que
algunas personas demandan. Los métodos ágiles ponen a los equipos en una situación
incómoda, pero, a cambio, mejora su trabajo, su entorno y aumenta su grado de satisfacción.
Otra forma de dar capacidad al equipo es por medio del conocimiento, especialmente del
conocimiento experto. Cuando alguien siente que controla el dominio de conocimiento en el
que se desarrolla su actividad, gana también en seguridad para tomar sus propias decisiones.
Por ello, hacer que las personas ganen ese conocimiento experto es otra de las herramientas
de Lean. Hay varios medios para alcanzarlo, el más evidente es la formación, pero mejor aún
es la autoformación, es decir, aquella impulsada y dirigida por la propia persona en función
de sus intereses y circunstancias. Las comunidades de práctica ayudan a alcanzar ese
conocimiento, a identificar a las personas que lo pueden proporcionar y a crear un espíritu
transversal de equipo. El tener mentores para que guíen a las personas que se están
introduciendo en un tema o quieren profundizar en él ha demostrado ser un mecanismo muy
efectivo.
Para mejorar a las personas y a los equipos teniendo impacto en sus resultados, hay que
enfrentarse a muchas situaciones que influyen negativamente. Hay tres que destacan
especialmente:
• Calidad integrada: El producto debe construirse con una calidad óptima desde el
primer momento. Debe cubrirse todo tipo de pruebas, de forma que los defectos se
corrijan lo antes posible. Esto implica hacer una construcción dirigida por una
actividad constante de pruebas.
Asimismo, debemos construir el producto de manera que no existan dependencias y
que su arquitectura permita añadir nuevas funcionalidades en cualquier momento.
Nota:
No se debe esperar a probar el producto en la fase final: el coste de solucionar los
problemas aumenta a medida que se avanza en la creación del producto. Cuando antes se
detecte y solucione un defecto, más sencillo y económico resultará arreglarlo y será menor
su impacto.
• Respetar a las personas: El foco de la mejora debe centrarse en las personas y en los
procesos que hacen posible construir un producto, y no en mejorar exclusiva y
directamente el producto en sí. De esta forma, se mejorará el producto actual y el
sistema estará listo para poder crear otros productos con éxito en el futuro.
• Optimizar el todo: Hay que pensar desde un punto de vista global y orientado al largo
plazo. La optimización de una pequeña parte del sistema puede afectar negativamente
al conjunto del mismo.
Desde el punto de vista de la construcción del producto, es frecuente solucionar
localmente un problema, olvidando que esta parte que se acaba de arreglar forma parte
de un conjunto más amplio y que un pequeño cambio local puede afectar a todo el
sistema. Es necesario no perder la perspectiva de dónde se encuentra y tener muy
presente la relación con las otras partes del producto, así como las dependencias de
unas con otras.
Nota:
El cliente necesita un todo. No le aporta mucha información ver pequeños trozos de lo que
espera sin saber cómo va a encajar el puzle final. Necesita, desde el principio, tener una
visión global de lo que va a recibir. Esta es una característica de los métodos ágiles: la
construcción incremental del producto.
Hay muchas experiencias de la aplicación de Lean a proyectos software, pero ninguna tan
bien documentada y amena como la de Henrik Kniberg 57 , una de las personas más conocidas
y reputadas en el mundo Agile.
Entre sus varios libros y artículos, está “Lean from the Trenches 58 , un texto disponible
también como borrador de manera gratuita en Internet 59 . Escrito de manera muy directa y
accesible (en inglés, lamentablemente no hay aún traducción española), expone la
experiencia de un proyecto concreto abordado desde los principios de Lean y usando Kanban
como método. El proyecto es el desarrollo de una herramienta software para la policía sueca
que no solo se desarrolla usando la filosofía Lean, sino que pretende inculcar esa misma
filosofía al trabajo de la propia policía.
En su descripción, explica aspectos básicos de los requisitos y los criterios para
desmenuzarlos, de la iteración con el cliente y cómo se gestiona y recoge el feedback de las
iteraciones de trabajo. La organización del equipo de trabajo es también muy importante,
entre otras cosas porque se trata de un proyecto grande que requiere un escalado de Agile y
puede aplicarse la visión transversal que Kniberg ayudó a poner en marcha en empresas
como Spotify: una división por área de conocimiento y otra más operativa de equipos que
integran a personas de todos los perfiles requeridos. El proyecto en sí funciona como una
especie de “Scrumban”, mezclando elementos de Scrum y Kanban:
• Reuniones diarias al estilo de las Daily meetings para sincronización, aunque con una
diferencia importante: hay reuniones de los equipos de trabajo; a continuación, de las
personas de las distintas áreas funcionales; y, después, de representantes de cada
equipo y área. De esa forma se trata de mantener la necesaria sincronización en un
equipo de unas sesenta personas.
• Un tablero de trabajo, aunque con una orientación decididamente Kanban, ya que, por
ejemplo, incluye las limitaciones del WIP (Work In Progress): es decir, si la limitación
de trabajos que puede asumir el equipo de pruebas, por ejemplo, es 7, no se admitirá
ningún trabajo nuevo mientras no quede un hueco libre.
Dado que no se trabaja con el concepto de Sprint en Kanban, el equivalente del Sprint
Backlog es una columna limitada en tamaño con las funcionalidades que esperan su
turno para ser implementadas.
• Se mantienen algunas de las reuniones que marcan el ritmo en Scrum: una reunión de
planificación periódica para solucionar desajustes y Retrospectivas periódicas para
poner foco en la mejora continua (a las que llama “talleres de mejora” o improvements
workshops).
• Usa métricas de velocidad, aunque distintas de las de Scrum, ya que se basa en contar
las tareas completadas sin recurrir a puntos de historia o cualquier otro mecanismo que
considere el “tamaño” del trabajo. Otra medida es el tiempo medio empleado en cada
tarea o, más bien, el número de ciclos que se ha invertido desde su entrada hasta la
salida de la cadena de trabajo. Luego, se usa esa medida o, más bien, los valores
medios, para determinar si hay o no una mejora en el equipo y si se gana en velocidad
(menos tiempo en la cadena).
56 Lean Software Development. An Agile Toolkit. Mary and Tom Poppendieck. Alistair Cockburn and Jim Highsmith, Series
Editors. 2003.
Crear
A veces el PMV ni siquiera es un producto. ¿Qué es más barato y rápido para medir la
aceptación de un concepto que un anuncio? Si los posibles clientes quieren saber más,
incluso adquirirlo a partir de publicidad, se tiene una prueba palpable de la validez del
concepto a un coste muy inferior a desarrollar el producto. Piénsese en el ejemplo del Tesla
Model 3, con reservas del orden de cientos de miles de unidades (incluyendo el pago de una
señal) a partir del anuncio de la futura fabricación del vehículo.
Medir
El PMV definido en el primer paso del ciclo es una herramienta de aprendizaje que nos
ayuda a despejar dudas, pero ¿cómo lo hace exactamente? Junto a las hipótesis que el
Producto Mínimo Viable nos ayuda a validar, hay que definir la forma de evaluarlas. El paso
al mercado para hacer esa evaluación es lo que en Lean Startup se denomina medida, y
ayudará a obtener un aprendizaje valioso a partir de la reacción, del feedback de los clientes.
¿Por qué es tan importante medir? Porque es un conocimiento contrastado y validado. No
se trata de una presunción, una intuición, una idea preconcebida o un deseo. Son valiosos
datos empíricos y feedback de primera mano.
Además, hay que recordar que, en un entorno de alta incertidumbre, los objetivos que se
fijen serán de poca utilidad. En una empresa convencional, antes del lanzamiento de un
producto al mercado, se fijarían unos objetivos de venta. Esos objetivos no dejan de ser una
forma de predecir el futuro. En cambio, desde un punto de vista Lean, no se predice el futuro,
sino que se va a averiguar si ese producto tiene mercado y en qué medida. Fijar un objetivo
de venta no tiene ningún sentido cuando se carece de referencias previas.
Una vez se tienen esas referencias y el PMV empieza a evolucionar, ya es posible ver
cómo se dirige hacia un objetivo ideal derivado de la visión. A partir del punto inicial de
partida, se va poniendo el foco en aspectos definidos y controlados del producto o servicio
para evaluar su aceptación de forma individual.
Por ejemplo, en una tienda electrónica, ¿tendrá mayor aceptación un buscador o un
sistema de pago seguro? Se pueden añadir esas funcionalidades una a una para estudiar el
impacto de hacerlo antes de consolidarlas o de sustituirlas por otras.
La forma de valorar la mejora debe estar claramente definida de manera que sea una
medida a salvo de interferencias, fácil de entender, fácil de obtener, con impacto y
repercusiones, y que no influya provocando consecuencias no deseadas. Esas métricas son las
que van a dirigir el proceso, permitiendo ver si la evolución es positiva, por lo que hay que
perseverar o, si no lo es, por lo que hay que cambiar, o, en una expresión propia de Lean
Startup, “pivotar”.
Hay dos tipos de métricas o indicadores: los vanidosos y los accionables.
Los primeros pueden medir de manera indirecta el éxito o crear una falsa sensación de que
se está alcanzando. Tómese, por ejemplo, el número de visitas a nuestra tienda de electrónica.
Puede ser una medida de su popularidad y podría indicar que hemos acertado al atraer el
interés del público, pero ¿se transforma necesariamente en una venta, en un rendimiento
económico?
El porcentaje de visitas que se convierten en ventas, el volumen total de estas o el valor
medio de la compra por cliente sí que son indicadores accionables que realmente muestran la
validez de las hipótesis planteadas.
De hecho, un crecimiento de un indicador vanidoso como el número de visitas que no
tenga la contrapartida de crear valor, está mostrando que el esfuerzo invertido e inútil y que
se está invirtiendo en un aspecto que no produce retorno, generando en su lugar desperdicio.
Aprender
La última etapa del ciclo Lean startup es el momento de ver qué se ha aprendido: se ha
planteado una hipótesis, se ha diseñado un experimento (PMV) que la valide (métricas), así
que se tienen las herramientas para saber si se ha acertado.
Si las métricas se han diseñado adecuadamente para medir el progreso de la idea y no para
resaltar aspectos que puedan parecer interesantes pero también irrelevantes desde el punto de
vista de negocio, se habrá obtenido información valiosa y aprendido algo nuevo para refinar
la idea de negocio. Ese nuevo conocimiento, que ha sido contrastado de forma empírica en
condiciones de mercado, tiene una utilidad clara a la hora de definir los próximos pasos.
En Lean Startup solo hay dos acciones posibles: perseverar o pivotar. Perseverar quiere
decir que nuestra hipótesis era adecuada y que debemos aumentar e incluso potenciar ese
aspecto que estábamos valorando. Pivotar, por el contrario, quiere decir que la hipótesis no
era válida, que hay que desecharla y hacer un cambio. Ese cambio puede ser un ajuste
puntual, pero la expresión pivotar se aplica más sobre cambios radicales que alteran
significativamente la naturaleza del producto e incluso del negocio.
Hay ejemplos muy conocidos de empresas que han cambiado o pivotado completamente
su actividad. En algunos casos dentro de un mismo segmento de negocio, como Netflix, que
inicialmente funcionaba como un servicio de alquiler de DVD por correo. En otros,
cambiando de arriba abajo, como el juego de rol Neverending que acabó siendo la Web Flickr
para aficionados a la fotografía; o Nintendo, originalmente un fabricante de naipes.
No se podrá insistir lo suficiente en la importancia de las métricas, ya que de ellas
depende tomar una decisión acertada o errónea. Perseverar en un camino que no lleva a
ningún sitio o pivotar creyendo que la hipótesis no se ha verificado. En el primer caso, se está
hablando de generar desperdicio; en el segundo, de perder una oportunidad; y, en los dos, de
gastar una de las pocas oportunidades con las que cuenta la startup para reducir la
incertidumbre y alcanzar su propósito.
Si el experimento está bien diseñado, la hipótesis tiene sentido, y la métrica se ajusta a su
propósito, se podrá contar con un conocimiento adicional que permitará planificar el próximo
paso. En realidad, este modo de trabajo no es diferente del aplicado en métodos como Scrum,
donde el producto está delineado en sus aspectos más básicos, y un proceso de
descubrimiento sprint a sprint por parte de stakeholders y equipo permite ahondar en el
diseño final de lo que se está construyendo y completarlo.
Figura 15.3. El ciclo Crear-Medir-Aprender de Lean Startup.
Seguramente la decisión más difícil en una startup es la de pivotar, ya que debe romper
una doble inercia: la de la historia previa y, sobre todo, la de las asunciones e ideas
interiorizadas en todo el equipo. Pivotar es una corrección diseñada para probar una nueva
hipótesis básica sobre el producto y la estrategia de la startup. Acertar en el momento y
camino al pivotar puede marcar la diferencia.
Se distinguen varios tipos de pivotes:
61 Para entender cómo se aplica Lean Startup en grandes empresas, se recomienda el artículo Lean Elephants, por Susana
Jurado y Maria Olano, con participación de alguno de los autores.
http://www.tid.es/sites/526e527928a32d6a7400007f/assets/53bfe9f128a32d6733001f37/ Lean_Elephants.pdf o en
http://es.slideshare.net/InstitutLeanFrance/leanelephants-lean-product-development-in-a-large-organization-by-susanajurado.
62 The Four Steps to the Epiphany: Successful Strategies for Products That Win (Inglés). Steve Blank. K&S Ranch. 2005.
63 The Startup’s Owner Manual (Inglés). Steve Blank, Bob Dorf. K&S Ranch. 2012.
66 http://nodosenlared.com/espana-lean-startup-2013/.
67 En realidad, el primer cajero, instalado en Londres en 1967, ya era un sistema automatizado, aunque no se basara en el
uso de tarjetas, sino de cheques impresos con tinta radioactiva.
En este capítulo aprenderá:
¿Para quién creamos valor? ¿Cuáles son nuestros clientes más importantes?
Sin usuarios o clientes “rentables” no hay negocio y esto, que parece obvio, con
frecuencia es olvidado. Muchos proyectos nacen y se construyen enfocados al producto y no
a los clientes y usuarios potenciales. Esto es catastrófico porque, aunque la idea de negocio
sea maravillosa y el producto esté construido estupendamente bien, tal vez no tenga ningún
interés comercial y puede ocurrir que no se encuentre a nadie dispuesto a pagar por él. Y aquí
comienza el drama, cuando se descubre que la idea genial no cubre ninguna necesidad ni
soluciona ningún problema.
El modelo de negocio se debe basar en los clientes, así que lo primero que se tiene que
hacer es “salir a buscarlos”, empezar a estudiarlos y a conocerlos para ofrecerles algo que
necesiten o les interese.
Una organización sirve a uno o varios segmentos de clientes. En este bloque se debe
reflejar las personas u organizaciones para las que nuestro producto ofrecerá valor. Aquí se
tienen en cuenta tanto a los usuarios individuales como a los clientes que pagarán por el
servicio, así que se debe plantear a qué grupo se puede dirigir. Osterwalder y Pigneur indican
que los grupos de clientes pertenecen a segmentos diferentes cuando:
Se deben agrupar a los clientes o usuarios con perfiles similares en segmentos definidos y,
a continuación, investigarlos. Recopilar la máxima información posible sobre ellos: ¿dónde
viven?, ¿dónde trabajan?, ¿qué costumbres tienen?, ¿cuáles son sus gustos?, ¿qué
necesidades o problemas tienen?, etc. Algunos ejemplos clásicos de segmentos de clientes
son:
Truco:
No hay que obsesionarse por encontrar clientes y pensar que cuanto más mercado se
abarque mejor. Hay autores que recomiendan poner foco e iniciar un negocio buscando
nichos desatendidos. De esta forma, es posible centrarse en resolver una necesidad
concreta de un grupo muy específico y que estará dispuesto a pagar por ello. Y, a partir de
ahí, ir ampliando el negocio a otros segmentos.
Propuesta de Valor
Canales
¿Qué canales prefieren nuestros segmentos de mercado? ¿Cómo establecemos
actualmente el contacto con los clientes? ¿Cómo se conjugan nuestros canales? ¿Cuáles
tienen mejores resultados? ¿Cuáles son más rentables? ¿Cómo se integran en las
actividades diarias de los clientes?
Una vez identificados nuestros clientes y usuarios, se debe poner en contacto con ellos.
Este bloque del lienzo incluye el detalle de los canales que se van a utilizar para dar a
conocer el producto a las personas u organizaciones interesadas en él y explicarles en qué
consiste nuestra propuesta de valor. También se incluye la información necesaria para
hacérsela llegar, vendérsela y ofrecer un servicio de postventa. En resumen, se necesita
identificar los canales de comunicación, distribución y venta.
Todos los canales tienen cinco fases, aunque no siempre se siguen todas ellas. Estas fases
son:
Se tiene que estudiar y evaluar a través de qué canales los clientes quieren ser
contactados, cuáles tienen mejores resultados, los más eficientes también desde el punto de
vista económico y cómo integrarlos dentro del día a día de los clientes. El conjunto de
canales de una empresa será su red de distribución.
Los canales pueden clasificarse a su vez en dos grupos: canales propios o canales de
socios.
• Los canales propios proporcionan más beneficios, pero su coste es más elevado y la
puesta en funcionamiento es más compleja. Este tipo de canal suele ser directo, es
decir, sin intermediarios, como es el caso de un equipo comercial o las ventas por
Internet. También pueden ser indirectos como es tener una tienda propia.
• Los canales de socios ofrecen menos beneficios, pero permiten aumentar el ámbito de
actuación y aprovechar otros canales de distribución ya existentes. Estos canales son
siempre canales indirectos, como es el caso de una tienda asociada o trabajar con
mayoristas y minoristas.
¿Qué tipo de relación esperan los diferentes segmentos de mercado? ¿Qué tipo de
relaciones hemos establecido? ¿Cuál es su coste? ¿Cómo se integran en nuestro modelo
de negocio?
Se entra ahora en un terreno muy delicado: se tiene que “captar” y “cuidar” a los clientes
y usuarios. Se debe decidir cuántos recursos, tanto económicos como de tiempo, se quieren
utilizar para mantener el contacto con ellos. Se quiere conservarlos como clientes, motivar
que vuelvan a comprar los productos y, por supuesto, atraer nuevos clientes.
Las formas más comunes de relación con los clientes son:
Es en este apartado del lienzo es donde es posible enterarse si se hizo bien el trabajo, si el
producto está gustando o no y qué se podría cambiar para mejorarlo.
Nota:
Desde luego, no es necesario mantener el mismo tipo de relación con todos nuestros
segmentos de clientes. Lógicamente, si un servicio o producto es más caro, los clientes
esperarán y podrán exigir una atención más cercana y de mayor calidad.
Fuentes de ingresos
¿Por qué valor están dispuestos a pagar los clientes? ¿Por qué pagan actualmente?
¿Cómo pagan actualmente? ¿Cómo les gustaría pagar? ¿Cuánto reportan las diferentes
fuentes de ingresos al total de ingresos?
Se ha comentado en el apartado “Segmentos de mercado” que sin clientes no hay negocio,
pero necesitamos negocios “vivos” y la vida la dan las fuentes de ingresos. Osterwalder y
Pigneur comentan que las fuentes de ingresos se pueden generar de varias formas:
Además de las diferentes formas de generar ingresos, existen dos mecanismos para fijar
los precios: Fijo, con los precios basados en variables estáticas, y Dinámico, en el que los
precios varían dependiendo del mercado.
Recursos clave
• Físicos: Son los recursos materiales como vehículos, máquinas, locales, tiendas, redes
de distribución, etc. Estos recursos favorecen una clara ventaja frente a la competencia.
• Intelectuales: Este tipo de recurso es cada vez más importante en un modelo de
negocio con fundamento, ya que son “únicos”. Cuesta mucho esfuerzo conseguirlos,
pero su valor es estratégico. Un ejemplo de este tipo de recursos intelectuales son las
patentes, marcas o la cartera de clientes.
• Humanos: El trabajo humano es imprescindible en todas las empresas, pero, si además
se está inmerso en un ámbito creativo o donde se requiera de un conocimiento experto,
los recursos humanos son fundamentales.
• Económicos: A ninguna empresa le viene mal disponer de recursos económicos, pero,
si no se dispone de ese capital, tal vez solicitar un crédito puede ayudar en un momento
dado. Contar con una línea de crédito, préstamos a bajo interés, inversores o una
opción de venta pueden ser recursos financieros clave.
Actividades clave
Osterwalder lo ilustra con algunos ejemplos claros: “La actividad clave del fabricante de
software Microsoft es el desarrollo de software, mientras que la del fabricante de ordenadores
Dell es la gestión de la cadena de suministros. A su vez, una de las actividades clave de la
consultora McKinsey es la resolución de problemas”.
Nota:
Es fundamental reconocer cuáles son las actividades clave para destacar y lucirse en
ellas.
Asociaciones clave
¿Quiénes son los socios clave? ¿Quiénes son los proveedores clave? ¿Qué recursos
clave se adquieren a nuestros socios? ¿Qué actividades clave realizan los socios?
No se tiene por qué navegar solos por el océano del negocio. Por ese motivo, son cada vez
más frecuentes las alianzas entre empresas. Las asociaciones pueden ayudar a reducir riesgos
en entornos con mucha incertidumbre, obtener recursos sin necesidad de partir de cero en su
construcción y, hasta en ocasiones, ayudar a mejorar el modelo de negocio. Las asociaciones
se pueden agrupar en cuatro tipos:
Estructura de costes
¿Cuáles son los costes más importantes inherentes al modelo de negocio? ¿Cuáles son
los recursos clave más caros? ¿Cuáles son las actividades clave más caras?
Ya solo queda hablar de todos los costes necesarios para poner en marcha el modelo. La
creación, entrega y mantenimiento del producto tienen un precio. Aunque minimizar los
costes es un objetivo en cualquier negocio, está claro que, dependiendo del modelo de
negocio, la estructura de costes será más o menos importante. Los expertos hablan de dos
tipos de estructura de costes:
• Según costes: Basada en recortar gastos de donde sea posible con propuestas de valor
de bajo coste. Un claro ejemplo de esta estructura son los hostales de jóvenes o las
compañías aéreas low cost.
• Según valor: Aplicada en empresas donde el precio no debe condicionar el servicio
ofrecido. Es el caso de los hoteles de lujo o los vuelos en categoría business.
En la mayoría de los casos, la estructura de costes es una combinación de las dos
anteriores.
En resumen
Las startups o empresas emergentes son un desafío para las empresas que ya están en el
mercado que, o se ponen al día, o se quedarán obsoletas más pronto que tarde. Para
mantenerse en el terreno de juego del mercado, es fundamental que se mantenga actualizado
el modelo de negocio. Este capítulo pretende ser una introducción para ayudar a descubrir las
áreas que lo componen, la relación entre ellas y cómo trabajar en equipo con todos los
interesados para mantener vivo ese modelo.
El Business Model Canvas o lienzo del modelo de negocio nos ayudará a conseguir
plasmar de forma sencilla, que nunca simplista, nuestro modelo, con sus puntos fuertes,
riesgos, amenazas y apuestas.
68 Business Model Canvas, Alexander Osterwalder & Yves Pigneur. Published by John Wiley & Sons, Inc. Hoboen, New
Yersey. 2010.
En este capítulo aprenderá:
Aunque esta lista podría extenderse mucho más, se puede observar cómo, con cada uno de
los escenarios, se va enriqueciendo más el abanico de posibilidades que deben tenerse en
cuenta a la hora de implementar la funcionalidad de identificación de usuarios. Tómese como
referencia una de ellas para analizar su estructura, por ejemplo, “El usuario introduce mal su
clave”.
Siguiendo la referencia que se ha expuesto anteriormente, se tendría un título claramente
identificado: “El usuario introduce mal su clave”.
Como inicio o sumario, se podría explicar que el sistema de identificación de usuarios está
iniciado y operativo.
Como introducción, se podría plantear en qué situación tendría que estar el usuario para
poder describir esta escena. Rápidamente se podría concluir que se necesitará que el usuario
esté dado de alta en el sistema.
En la sección de cuerpo o procedimiento, se puede describir que el usuario introduce su
nombre de usuario correctamente y su clave de manera incorrecta. Finalmente, en el
desenlace o validación, se puede concluir que, dado que la clave es incorrecta, se le avisará al
usuario que ha introducido incorrectamente alguno de los valores.
Si se pone en forma de lista esta estructura, se llegaría a algo similar a esto:
Este lenguaje tiene una sintaxis orientada a línea. Esto implica que la redacción de los
escenarios se realiza en líneas separadas. Cada una de estas líneas se denomina paso o step.
Cada una de las secciones que se describieron anteriormente en la estructura de un escenario
podrá estar compuesta de uno o más pasos. En consecuencia, cada parte del escenario tendrá
una o varias líneas o pasos. Para mostrar visualmente la separación de los bloques del
escenario, se usa el sangrado. En Gherkin se pueden describir los escenarios con cualquier
idioma.
En la figura 17.1 se puede observar la estructura de una historia de usuario o feature tal y
como se describía previamente, detallando los pasos o steps de cada una de las secciones.
Notación en Gherkin
Aplicar Gherkin a una feature implica seguir unos elementos básicos de notación. Lo
primero que se encuentra en una feature en Gherkin es el nombre de la feature. Después, se
encontrará el valor desde el punto de vista de negocio de la historia de usuario con la
maquetación correspondiente. En otras palabras, se encontrará la definición tal y como se vio
en capítulos anteriores. Como usuario [rol], me gustaría [ funcionalidad], de tal manera que
[beneficio]. A continuación, se encuentra el primer encabezado del primer escenario, con el
título, también denominado outline, del escenario. La siguiente imagen da un ejemplo de una
apertura de la feature en Gherkin.
Lo siguiente que se encuentra en una feature son los prerrequisitos del escenario. A esta
sección en Gherkin también se la conoce como los Givens. Se le denomina de esta manera
porque el primer paso o step de esta sección se inicia en inglés con la palabra “Given”. En
castellano, iniciaríamos el paso con un “dado que”. Si se retoma el ejemplo de la
identificación de los usuarios y el escenario en concreto que manejábamos, la redacción del
prerrequisito quedaría como:
Dentro de cada sección, puede haber tantos pasos o steps como sean necesarios, aunque
estos ya no suelen iniciarse repitiendo la palabra Given: en su lugar, se suele usar “y” ()
cuando se quiere añadir algo o “pero” () cuando se quiere incluir una excepción. Así pues, se
pueden ampliar los prerrequisitos de la siguiente forma:
La siguiente sección que se encuentra es la del procedimiento. Esta sección se denomina
el “When” o “Cuando” en castellano. En esta sección, tal y como se comentaba con
anterioridad, se describe la acción que tiene lugar en la escena. A diferencia de en otras
secciones, aquí se recomienda que exista un único paso o step que defina la acción.
Retomando el ejemplo se tendría un procedimiento de la siguiente forma:
Finalmente, se tendrá la sección del desenlace o validación, también conocida como los
“Thens” o “entonces”. En esta sección, se observan los resultados del escenario y se pueden
validar para certificar que son correctos. Al igual en los prerrequisitos, pueden existir varios
pasos o steps pero solo el primero llevará un inicio característico, mientras que los otros steps
serán o , según sea el caso.
En resumen, juntándolo todo tendríamos un escenario definido de la siguiente manera en
Gherkin:
Continuando con el ejemplo, se puede ver cómo se utilizan los datos en Gherkin. Ya se
vio en el ejemplo inicial cómo se podían agrupar varios escenarios en uno solo: creando un
dataset. Se trata de un conjunto de datos aplicados al escenario. En este conjunto de datos,
tendríamos varias claves erróneas para aplicar al escenario. Con un dataset tendríamos algo
similar a:
Una vez está clara la estructura de los escenarios y la notación que se utiliza para narrar
los escenarios en un DSL común, queda definir el estilo que se quiere usar. Existen dos
estilos de narración de los escenarios: el modo imperativo y el modo declarativo.
En el modo imperativo, los pasos o steps se relacionan con la actividad concreta que hace
el usuario. Esta actividad está muy relacionada con la forma en la que interactúa con el
sistema del que se está definiendo la funcionalidad. Cada acción se describe con un paso o
step y estos tienen un grado de detalle muy elevado. Esto permite crear un DSL de muy bajo
nivel y que, en muchos escenarios, estos pasos o steps se reutilicen para describir las mismas
acciones.
Por otro lado, existe el modo declarativo. Este modo se centra más en el valor para el
usuario, en vez de en las acciones que este realiza, y describe cada uno de los steps o pasos
desde un punto de vista más amplio.
¿Cuál de estas aproximaciones es mejor? No hay una respuesta fácil. Depende del
contexto. El lenguaje imperativo da mucha más información sobre la interfaz de usuario,
además permite crear elementos reutilizables en los que más gente puede participar en la
construcción de los escenarios simplemente reaprovechando estos elementos del lenguaje.
Sin embargo, el lenguaje imperativo hace escenarios mucho más largos perdiéndose
demasiado en los detalles y perdiendo información sobre el marco general. El lenguaje
declarativo tiene la ventaja de que es más fácil de mantener y está más alineado con una
estrategia de criterios de aceptación basados en el dominio que se está tratando.
En resumen, con Gherkin ya se tienen dos de los elementos que se estaban buscando para
mejorar las especificaciones: un lenguaje y un artefacto comunes en el equipo. A
continuación, se verá cómo se puede convertir este lenguaje en un elemento ejecutable.
Volviendo a las 4 C
Cuando definíamos las historias de usuario, comentábamos que para ser de calidad
deberían cumplir la regla de las 3 C. Con el objetivo de tener una validación automática de
requisitos, la regla de las 3 C se convierte en las 4 C, tal y como se ha comentado
previamente. La cuarta C significará codificar. “Codificar” quiere decir convertir los
escenarios definidos en Gherkin anteriormente en código que se pueda ejecutar.
Gracias a la estructuración y normalización del lenguaje que se ha hecho al aplicar
Gherkin, el paso a codificación es mucho más sencillo. Para esto, existen frameworks de
automatización en los que se utilizan los ficheros de definición en Gherkin. En estas
herramientas se trabaja en programar acciones para cada uno de los steps definidos. De esta
manera, se obtienen piezas de código con las acciones que representa cada step. Así, cuando
se ejecuta el escenario en cuestión, se realizarán cada una de las acciones que se han previsto:
los prerrequisitos para configurar el sistema y llevarlo al punto deseado en el escenario, el
procedimiento para accionarlo y los resultados para tomar la salida del sistema y verificar su
resultado. De esta manera, si ponemos estas especificaciones ejecutables frente a un sistema
real, después de su ejecución, sabremos cuáles están completadas y cuáles no se comportan
de la manera definida o están pendientes por completar.
Tener esta capacidad de ejecución es extremadamente útil, ya que sirve para introducirla
dentro de los ciclos de implementación, ayudando a resolver muchos de los problemas
definidos al inicio de la sección.
En resumen, utilizando frameworks específicos de desarrollo se puede asociar a las
definiciones en Gherkin piezas de código ejecutable. Así, se conseguiría el último punto que
se estaba buscando para mejorar las especificaciones: la capacidad automática de saber si
algo está terminado o no.
BDD en acción
BDD no es una herramienta, es una forma de trabajar. ¿Cómo se aplica BDD dentro de
Scrum? Muy sencillo: los elementos del Backlog estarán definidos en función a escenarios,
tal y como se ha descrito en este capítulo. Siguiendo las recomendaciones de Scrum, los
elementos que estén en la parte superior del Backlog estarán mucho más trabajados y tendrán
completos estos escenarios. En este caso, se habrán trabajado y definido con notación
Gherkin. Además, irán acompañados de una codificación pertinente de tal manera que podrán
ser ejecutados.
Una vez se decida que ese elemento del Backlog es parte del Sprint y este comience, el
desarrollador que quiera implementar la historia de usuario tomará la especificación y la
ejecutará. Inicialmente fallará, es lo que normalmente se puede esperar. A partir de ese
momento, el desarrollador trabajará en ciclos añadiendo la funcionalidad hasta que la
ejecución de los escenarios de la historia de usuario se verifique de manera satisfactoria. En
ese momento, el desarrollador podrá dar por concluida la historia de usuario. Esta forma de
trabajar reducirá sus posibles dudas y ambigüedades en la interpretación de la historia de
usuario. Le ayudará a saber con claridad cuándo ha concluido su trabajo y, además, velará
por la calidad del producto que se está desarrollando.
La siguiente imagen resume el ciclo BDD aplicado a los ciclos de desarrollo en Scrum.
Figura 17.4. Ciclo BDD.
Ahora que ya se conoce como se aplica BDD, se puede retomar la guía para definir
buenos escenarios y su principio FIRST (Fast - Isolated - Repeatable - Self Validating -
Timely). Rápidos (Fast) porque, para utilizarlos como herramienta de desarrollo con
validación, deben serlo para no ralentizar los ciclos de desarrollo. Aislados (Isolated) para
que la ejecución de cada uno de ellos no influya en los otros. Repetibles (Repeateable) para
obtener los mismos resultados cada vez que se ejecuten. Autoevaluables (Self Validating)
para que pueda el propio escenario informar si el resultado de la implementación es o no
correcto. Y, por último, Oportuno (Timely) para que se defina y construya en el momento
necesario.
Recomendaciones
BDD es un arma de doble filo. Manejada de manera correcta puede atacar y resolver
muchos de los problemas que existen hoy en día con las especificaciones, pero también tiene
un lado oscuro. Uno de los mayores inconvenientes es que, independientemente de que se
utilice en formato declarativo o imperativo, se generan unas especificaciones bastante largas:
si se imaginan unas especificaciones en las que se tienen 10 historias de usuario, si se tienen
unos 10 escenarios por cada historia de usuario y 10 pasos por cada escenario, se tendrían
1.000 líneas de especificaciones a las que se tendría que prestar atención y mantener
actualizadas correctamente. Esto es un problema para su mantenimiento, pero también para
su rendimiento. Si se manejan especificaciones muy complejas, el tiempo de ejecución puede
incrementarse demasiado. En este punto, el utilizar la especificación ejecutable como una
herramienta rápida de construcción quedaría descartado. La especificación quedaría
únicamente como una validación puntual de los requisitos.
Otro de los riesgos que se sufre en este tipo de planteamientos es el riego del “corta-
pega”. Se abusa mucho de esta práctica y hace que, con mucha frecuencia, los errores se
extiendan por toda la especificación.
Usar BDD como herramienta para pruebas también puede llevar a malas prácticas. Forzar
su uso para testing hace que el lenguaje con el que se representan los casos de uso sea
retorcido y se lleve al límite, restando frescura a la redacción de la especificación.
¿Cuáles serían entonces las buenas prácticas que hay que seguir? La primera y
fundamental es la de escribir las especificaciones antes de la implementación. Parece una
obviedad, pero en muchos equipos se inicia el desarrollo con una simple conversación o
correo y las especificaciones se definen posteriormente. Se requiere un esfuerzo extra, pero
mantener las especificaciones actualizadas durante la creación de un producto o en un
proyecto es clave para evitar problemas. Mucho más en el caso de BDD, dado que, de no
tener la definición actualizada, aparecerán errores en la validación de las historias de usuario
y, por lo tanto, perderá valor el trabajo realizado.
Otra recomendación es intentar reducir la complejidad y longitud de cada escenario. Un
indicador de escenarios largos es que las historias de usuario no están suficientemente
desgranadas y merecen un ejercicio de desglose.
Por último, es muy importante que las especificaciones de BDD no sean un artefacto de
unos pocos, sino que se conviertan en un artefacto de todo el equipo, que sea ese elemento
vertebrador que una las conversaciones y debates de todo el equipo.
Todos los nombres propios de programas, sistemas operativos, equipos hardware, etc. que aparecen en este libro son marcas
registradas de sus respectivas compañías u organizaciones.
Está prohibida la reproducción total o parcial de este libro electrónico, su transmisión, su descarga, su descompilación, su
tratamiento informático, su almacenamiento o introducción en cualquier sistema de repositorio y recuperación, en cualquier
forma o por cualquier medio, ya sea electrónico, mecánico, conocido o por inventar, sin el permiso expreso escrito de los
titulares del Copyright.
Conversión a formato digital: REGA
www.anayamultimedia.es