Está en la página 1de 32

Introduccin a la Agilidad y Scrum

Web | www.kleer.la Facebook | facebook.com/kleer.la Twitter | twitter.com/kleer.la

Introduccin a la Agilidad y Scrum

ndice

Introduccin a las Metodologas giles...................................................................................................................................................................................... 3 Por qu una nueva metodologa?.........................................................................................................................................................................................4 Qu son las metodologas giles?.........................................................................................................................................................................................7 Manifiesto gil.................................................................................................................................................................................................................................7 Valores.........................................................................................................................................................................................................................................7 Principios................................................................................................................................................................................................................................... 8 Metodologas giles Existentes...............................................................................................................................................................................................8 Agile Unified Process (AUP)..............................................................................................................................................................................................8 Releases.............................................................................................................................................................................................................................. 9 Essential Unified Process (EssUP)................................................................................................................................................................................. 9 Dynamic Systems Development Method (DSDM)..................................................................................................................................................9 Extreme Programming (XP)...........................................................................................................................................................................................11 Valores.............................................................................................................................................................................................................................. 12 Caractersticas...............................................................................................................................................................................................................13 Open Unified Process (OpenUP).................................................................................................................................................................................. 14 Principios........................................................................................................................................................................................................................ 14 Fases.................................................................................................................................................................................................................................. 15 reas de inters............................................................................................................................................................................................................15 Scrum........................................................................................................................................................................................................................................ 16 PRINCE2...................................................................................................................................................................................................................................16 Lean Software Development..........................................................................................................................................................................................16 La filosofa Lean........................................................................................................................................................................................................... 18 Kanban......................................................................................................................................................................................................................................18 Introduccin a Scrum........................................................................................................................................................................................................................20 Qu es Scrum?.............................................................................................................................................................................................................................20 Principios de Scrum................................................................................................................................................................................................................... 21 Cambio organizacional..................................................................................................................................................................................................... 22 Roles de Scrum............................................................................................................................................................................................................................. 23 Equipo.......................................................................................................................................................................................................................................23 Product Owner..................................................................................................................................................................................................................... 23 ScrumMaster......................................................................................................................................................................................................................... 24 El ScrumMaster es un Lder Facilitador................................................................................................................................................................... 25 Elementos de Scrum.................................................................................................................................................................................................................. 26 Backlog del Producto.........................................................................................................................................................................................................26 Prioridades por Valor de Negocio de cada PBI............................................................................................................................................. 26 Prioridades por ROI (Retorno de la Inversin Return on Investment) de cada PBI............................................................... 26 Prioridades segn la Importancia y el Riesgo de cada PBI..................................................................................................................... 27 Backlog de Impedimentos...............................................................................................................................................................................................27 Dinmica (Flujo del Trabajo).................................................................................................................................................................................................28 Iteraciones (Sprints)..........................................................................................................................................................................................................28 Retrasos y Adelantos en un Sprint...................................................................................................................................................................... 28 Incremento Funcional Potencialmente Entregable.................................................................................................................................... 28 Reunin de Planificacin de Sprint.............................................................................................................................................................................28 Parte Estratgica: Qu vamos a hacer?........................................................................................................................................................... 29 Parte Tctica: Cmo lo vamos a hacer?...........................................................................................................................................................29 Reuniones Diarias............................................................................................................................................................................................................... 30 Reunin de Revisin del Producto..............................................................................................................................................................................31 Reunin de Retrospectiva............................................................................................................................................................................................... 32 Reunin de Indagacin y Estimacin.........................................................................................................................................................................32

Esta obra fue realizada por Martn Alaimo para KLEER, con aportes de Pablo Tortorella y Daniela Casquero y se encuentra bajo una Licencia Creative Commons Atribucin-NoComercial-SinDerivadas 3.0 Unported.

Pgina 2

Introduccin a la Agilidad y Scrum

Introduccin a las Metodologas giles

El desarrollo de software no es una disciplina sencilla. En las ltimas dcadas los lenguajes de modelado (UML)1 2 3 y posteriormente varias herramientas 4 intentaron sin xito posicionarse como las "balas de plata"5 para resolver algunos de sus problemas pero sin encontrar una solucin sino hasta la adopcin amplia y consciente de un tercer elemento que haba sido injustamente relegado a un papel secundario: La Metodologa de Desarrollo. Esta situacin inicial incluso nos haba llevado a contar con herramientas poderosas y procesos de modelado y diseo sin tener muy en claro cmo aplicarlos a la hora de construir el software. Este problema motiv la necesidad de adoptar Metodologas de Desarrollo. La mayora de ellas fueron introducidas desde la Ingeniera Civil, lo que result en un exhaustivo control sobre los procesos y las tareas. El modelo metodolgico ms utilizado dentro de la industria es el Modelo Secuencial de Procesos, tambin conocido como "Waterfall Model" o "Modelo en Cascada". Este modelo data de principios de los aos '70s y tiene sus orgenes en los mbitos de la manufactura y la construccin, ambientes fsicos altamente rgidos donde los cambios una vez producido el hecho se vuelven prohibitivos desde el punto de vista de los costos, sino prcticamente imposibles. Como no exista proceso alguno para la industria del software, este tipo de procesos fue adoptado. La primera mencin pblica (reconocida) de este tipo de metodologas fue realizada en un artculo6 que data de 1970 donde el Dr. Winston W. Royce presenta -sin mencionar la palabra "Waterfall"- un modelo secuencial para el desarrollo de software. El enfoque original de Royce del modelo en cascada comprende las siguientes fases: Especificacin de Requerimientos Diseo Construccin (tambin conocida como Implementacin o Codificacin) Integracin

1 - Edward Yourdon, Anlisis Estructurado Moderno, Prentice-Hall, 1993 2 - Unified Modeling Language (UML), ISO/IEC 19501:2005 Information technology, Open Distributed Processing Unified Modeling Language (UML) Version 1.4.2 3 - http://www.uml.org/ 4 - Herramientas CASE (U-CASE, M-CASE, L-CASE), http://es.wikipedia.org/wiki/Herramienta_CASE 5 El trmino ha sido adoptado en una metfora en general que se refiere a cualquier solucin sencilla que tienen una eficacia extrema. Suele aparecer con la expectativa de que algn nuevo desarrollo tecnolgico o la prctica fcil de implementar resuelva alguno de los problemas vigentes principales. Fuente: http://en.wikipedia.org/wiki/Silver_bullet#Idiomatic_usage 6 Royce, Winston, "Managing the Development of Large Software Systems", Proceedings of IEEE WESCON 26, 1970: 19

Pgina 3

Introduccin a la Agilidad y Scrum Verificacin o Prueba y Debugging Instalacin Mantenimiento

El proceso Waterfall sugiere una evolucin secuencial, por ejemplo: primero se realiza la fase de "Especificacin de Requerimientos", una vez que esta se encuentra completa se procede a un "Sign-Off" (firma/aprobacin) que congela dichos requerimientos, y es recin aqu cuando se inicia la fase de Diseo. El software es diseado y es en esta fase donde se produce un "Blueprint" o plano del mismo para que los codificadores/programadores lo implementen. Hacia el final de la fase de implementacin, diferentes componentes desarrollados son integrados con el fin de pulir las interfaces entre ellos. El siguiente paso es la fase de Verificacin en la que los testers someten el sistema a diferentes tipos de pruebas funcionales mientras los programadores corrigen el cdigo donde sea necesario. Una vez que el sistema responde satisfactoriamente a la totalidad de las pruebas, se pasa a una etapa de instalacin y mantenimiento posterior.

Por qu una nueva metodologa?


Los problemas detectados en los modelos tradicionales o de tipo Waterfall se fundamentan, por un lado, en el entorno altamente cambiante propio de la industria, y por el otro, en el proceso mismo de desarrollo de software donde el resultado depende de la actividad cognitiva de las personas ms que de las prcticas y controles empleados. A medida que han pasado los aos y con el advenimiento de las economas globalizadas y los entornos web, el contexto de negocio de los sistemas se ha transformado de un contexto relativamente estable a un contexto altamente voltil, donde los requerimientos expresados hoy, en muy pocas oportunidades son vlidos unos meses ms tarde. Bajo esta realidad, las metodologas waterfall resultaron muy pesadas y prohibitivas frente a los cambios de negocio, a los cuales no han podido responder satisfactoriamente. En el ao 1994 el Standish Group public un estudio conocido como el "CHAOS Report"7 donde se encontr la siguiente tasa de xito en los proyectos de desarrollo de software en general: 31.1% es cancelado en algn punto durante el desarrollo del mismo 52.7% es entregado con sobrecostos, en forma tarda o con menos funcionalidades de las inicialmente acordadas 16.2% es entregado en tiempo, dentro de los costos y con las funcionalidades comprometidas Sobrecostos Menos del 20% 21 - 50% 51 - 100% % de Respuestas 15.5% 31.5% 29.6%

Los datos publicado, entre otros, mostraron estos ndices:

7 The CHAOS Report (1994), Standish Group - http://www.standishgroup.com/sample_research/chaos_1994_1.php

Pgina 4

Introduccin a la Agilidad y Scrum 101 - 200% 201 - 400% Mayor al 400% Demora Menos del 20% 21 - 50% 51 - 100% 101 - 200% 201 - 400% Mayor al 400% Funcionalidad Entregada Menos del 25% 25 - 49% 50 - 74% 75 - 99% 100.00% Factores mas importantes para el xito de un proyecto Involucramiento del usuario Apoyo de la Gerencia Claridad en los requerimientos Planificacin Apropiada Expectativas Realistas Hitos ms acotados Staff Competente Compromiso Objetivos y Visin Claras Staff enfocado y dedicado Otros 10.2% 8.8% 4.4% % de Respuestas 13.9% 18.3% 20.0% 35.5% 11.2% 1.1% % de Respuestas 4.6% 27.2% 21.8% 39.1% 7.3% % de Respuestas 15.9% 13.9% 13.0% 9.6% 8.2% 7.7% 7.2% 5.3% 2.9% 2.4% 13.9%

Factores mas importantes de desafo para los proyectos Pgina 5

% de Respuestas

Introduccin a la Agilidad y Scrum Falta de Input del usuario Requerimientos y Especificaciones Incompletas Requerimientos y Especificaciones Cambiantes Falta de Apoyo Gerencial Falta de Conocimientos Tcnicos Falta de Recursos Expectativas Ireales Objetivos poco claros Calendario poco realista Nuevas tecnologas Otros 12.8% 12.3% 11.8% 7.5% 7.0% 6.4% 5.9% 5.3% 4.3% 3.7% 23.0%

Factores mas comunes de cancelacin de proyectos Requerimientos Incompletos Falta de Involucramiento del Usuario Falta de Recursos Expectativas Irreales Falta de Soporte Gerencial Requerimientos y Especificaciones Cambiantes Falta de planificacin No se necesitaba ms Falta de Gestin IT Analfabetismo Tcnico Otros

% de Respuestas 13.1% 12.4% 10.6% 9.9% 9.3% 8.7% 8.1% 7.5% 6.2% 4.3% 9.9%

Las conclusiones de la investigacin sugieren que el involucramiento del usuario y el empleo de periodos de tiempo ms cortos son claves para incrementar los ratios de proyectos exitosos Bajo esta realidad surgieron nuevas metodologas, como por ejemplo Metodologas en Espiral Metodologas Iterativas Metodologas giles

Tanto las metodologas en espiral como las metodologas iterativas se encuentran fuera del alcance del presente trabajo, que toma las metodologas giles como marco aplicable al Pgina 6

Introduccin a la Agilidad y Scrum desarrollo del sistema en cuestin.

Qu son las metodologas giles?


En Febrero de 2001 se reunieron en Utah (EEUU) un grupo de 17 profesionales reconocidos del desarrollo de software. El objetivo era determinar los valores y principios que les permitiran a los equipos desarrollar software de forma ms rpida y responder mejor a los cambios que pudieran surgir a lo largo de un proyecto de desarrollo. Se pretenda ofrecer una alternativa a los procesos de desarrollo de software tradicionales, caracterizados por la rigidez, y dominados por la documentacin. En esta reunin fue que se cre la Agile Alliance8, una organizacin sin fines de lucro cuyo objetivo es el de promover los valores y principios de la filosofa gil y ayudar a las organizaciones en la adopcin de las mismas. La piedra angular del movimiento gil es conocida como "Manifiesto gil" (Agile Manifesto9)

Manifiesto gil
El Manifiesto gil se compone de 4 valores y 12 principios:

Valores
Valorar a las personas y las interacciones entre ellas por sobre los procesos y las herramientas Las personas son el principal factor de xito de un proyecto de software. Es ms importante construir un buen Equipo que construir el contexto. Muchas veces se comete el error de construir primero el entorno de trabajo y esperar que el Equipo se adapte automticamente. Por el contrario, Scrum propone crear el Equipo y que ste construya su propio entorno y procesos en base a sus necesidades. Valorar el software funcionando por sobre la documentacin detallada La regla a seguir es "no producir documentos a menos que sean necesarios de forma inmediata para tomar un decisin importante". Estos documentos deben ser cortos y centrarse en lo esencial. La documentacin (diseo, especificacin tcnica de un sistema) no es ms que un resultado intermedio y su finalidad no es dar valor en forma directa al usuario o cliente del proyecto. Medir avance en funcin de resultados intermedios se convierte en una simple "ilusin de progreso". Valorar la colaboracin con el cliente por sobre la negociacin de contratos Se propone que exista una interaccin constante entre el cliente y el Equipo de desarrollo. Esta colaboracin entre ambos ser la que marque la marcha del proyecto y asegure su xito. Valorar la respuesta a los cambios por sobre el seguimiento estricto de los planes

8 http://www.agilealliance.org 9 http://www.agilemanifesto.org

Pgina 7

Introduccin a la Agilidad y Scrum La habilidad de responder a los cambios que puedan surgir a lo largo del proyecto (cambios en los requisitos, en la tecnologa, en el equipo, etc.) determina tambin su xito o fracaso. Por lo tanto, la planificacin no debe ser estricta sino flexible y abierta.

Principios
Los valores anteriores son los pilares sobre los cuales se construyen los doce principios. De estos doce principios, los dos primeros son generales y resumen gran parte del espritu gil del desarrollo de software, mientras que el resto son ms especficos y orientados al proceso o al Equipo de desarrollo: 1. Nuestra mayor prioridad es satisfacer al cliente a travs de entregas tempranas y frecuentes de software con valor. 2. Aceptar el cambio incluso en etapas tardas del desarrollo. Los procesos giles aprovechan los cambios para darle al cliente ventajas competitivas. 3. Entregar software funcionando en forma frecuente, desde un par de semanas a un par de meses, prefiriendo el periodo de tiempo ms corto. 4. Expertos del negocio y desarrolladores deben trabajar juntos diariamente durante la ejecucin del proyecto. 5. Construir proyectos en torno a personas motivadas, generndoles el ambiente necesario, atendiendo sus necesidades y confiando en que ellos van a poder hacer el trabajo. 6. La manera ms eficiente y efectiva de compartir la informacin dentro de un Equipo de desarrollo es la conversacin cara a cara. 7. El software funcionando es la principal mtrica de progreso. 8. Los procesos giles promueven el desarrollo sostenible. Los sponsors, desarrolladores y usuarios deben poder mantener un ritmo constante indefinidamente. 9. La atencin continua a la excelencia tcnica y buenos diseos incrementan la agilidad. 10. La simplicidad el arte de maximizar la cantidad de trabajo no hecho es esencial. 11. Las mejores arquitecturas, requerimientos y diseos emergen de equipos autoorganizados. 12. A intervalos regulares, el Equipo reflexiona acerca de cmo convertirse en ms efectivos, luego mejora y ajusta su comportamiento adecuadamente.

Metodologas giles Existentes


Agile Unified Process (AUP)
El Agile Unified Process es una versin simplificada del IBM Rational Unified Process (RUP) 10. Describe un enfoque simple y comprensible para la construccin de sistemas mediante la utilizacin de prcticas y tcnicas giles sin dejar de cumplir con RUP. A diferencia de este
10 http://www-01.ibm.com/software/awdtools/rup/?S_TACT=105AGY59&S_CMP=WIKI&ca=dtl-08rupsite

Pgina 8

Introduccin a la Agilidad y Scrum ltimo, AUP cuenta con 7 disciplinas: 1. Modelado: Entender el modelo de negocio de la organizacin, comprender el modelo de dominio sobre el que trata el proyecto e identificar una solucin viable que lo resuelva. 2. Implementacin: Transformacin del modelo en cdigo y realizacin de un nivel bsico de pruebas, en particular pruebas unitarias (Unit Testing)11. 3. Prueba: Realizacin de una evaluacin objetiva para garantizar la calidad del sistema construido. Esto incluye encontrar defectos, validar que el sistema se comporte segn se ha diseado y que los requerimientos sean cumplidos. 4. Despliegue: Planificacin para la entrega del sistema y ejecucin del plan para disponibilizar el sistema a los usuarios finales. 5. Gestin de la Configuracin: Gestin del acceso a los diferentes artefactos del proyecto. No solo gestiona las versiones de stos a travs del tiempo, sino adems sus cambios. 6. Gestin del Proyecto: Dirige las actividades que se realizan como parte de la gestin del proyecto en s. Esto incluye la gestin de riesgos, alcance, recursos humanos, tiempo, costos, proveedores, contrataciones, etc. 7. Ambiente: Soporta el resto del proyecto asegurando que los procesos adecuados, estndares, guas y herramientas estn a disposicin del Equipo cuando los necesita.
Releases

El proceso AUP distingue entre dos tipos diferentes de iteraciones: Iteracin de Desarrollo: Realiza el despliegue del producto terminado en un ambiente de QA o Demo. Iteracin de Entrega: Realiza el despliegue del producto en produccin.

Essential Unified Process (EssUP)


El "Essential Unified Process" (EssUP) es un conjunto de prcticas que reunidas conforman el conocimiento esencial de un ciclo de vida de desarrollo de software. Este enfoque de la prctica centrada en el desarrollo de software incorpora y se basa en prcticas establecidas de la industria. Las prcticas en EssUP integran los principios del xito del proceso unificado, la agilidad y los conceptos de madurez de procesos o Capability Maturity Model Integration(CMMI), aprovechando sus capacidades diferentes: la estructura, la agilidad y la mejora de procesos.

Dynamic Systems Development Method (DSDM)


DSDM es un proceso de desarrollo gil que divide el proyecto en tres fases, una de ellas, a su vez dividida en cinco etapas: Pre-Proyecto

11 http://en.wikipedia.org/wiki/Unit_testing

Pgina 9

Introduccin a la Agilidad y Scrum Durante esta etapa se identifican los proyectos candidatos, se asegura la financiacin del proyecto y se realizan los compromisos referentes al proyecto. Ciclo de Vida del Proyecto Estudio de Factibilidad Durante esta etapa se estudia la factibilidad de la utilizacin de DSDM para la gestin del proyecto. Esta etapa produce cuatro entregables: El "Reporte de Factibilidad", el "Prototipo de Factibilidad", el "Plan Global" para el resto del proyecto y la "Bitcora de Riesgos" identificados. Estudio de Negocio La etapa de Estudio de Negocio es la segunda etapa secuencial (junto a la etapa de Estudio de Factibilidad) dentro de la fase de Ciclo de Vida del Proyecto. Durante esta etapa se realizan actividades con los stakeholders del proyecto, generalmente workshops/talleres, para identificar los requerimientos que luego sern volcados a una lista priorizada de requerimientos. Esta asignacin de prioridades se realiza con la tcnica MoSCoW 12. Los entregables principales de esta etapa son la "Lista Priorizada de Requerimientos", una "Definicin de rea de Negocios" que describe el proyecto y su entorno de negocio, una "Definicin Global Inicial de Arquitectura" y un "Plan de Desarrollo". A partir de este punto el proyecto se torna iterativo. Iteracin del Modelo Funcional Esta etapa es una etapa iterativa mediante la cual se tornan los requerimientos en un prototipo funcional contra el cual se ejecuta una serie de verificaciones (testing) funcionales. Habitualmente divisible en cuatro sub-etapas: Identificacin del Prototipo Funcional: Determinacin de las funcionalidades a ser implementadas como parte de esta iteracin. Acuerdo del Cronograma: Se acuerdan las fechas y forma de desarrollo de las funcionalidades. Creacin del Prototipo Funcional: Es aqu donde se realiza la investigacin, refinamiento y consolidacin con la funcionalidad construida en iteraciones anteriores. Revisin Funcional: Meadiante eta sub-etapa se valida la funcionalidad construida.

Iteracin de Diseo y Construccin El foco principal de esta iteracin es la integracin de la funcionalidad construida durante la etapa previa en un sistema mayor que satisfaga las necesidades del usuario. El testing tambin forma parte importante de esta etapa, en la cual se atienden tambin requerimientos no-funcionales. La etapa de Diseo y Construccin tambin se puede dividir en cuatro sub-etapas: Identificacin del Prototipo de Diseo: Identificacin de los

12 http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method#moscow

Pgina 10

Introduccin a la Agilidad y Scrum requerimientos funcionales y no funcionales que deben ser incorporados al sistema. Acuerdo del Cronograma: Acuerdo sobre la forma y fechas del desarrollo de los requerimientos identificados en la sub-etapa anterior. Creacin del Prototipo de Diseo: Creacin de un sistema que puede ser entregado a los usuarios finales para su utilizacin. Revisin del Prototipo de Diseo: Verificacin (Testing) del sistema construido. Tanto los resultados del testing como el feedback del usuario se transformarn en la documentacin de usuario.

Implementacin Durante esta etapa, el sistema y la documentacin es entregada a los usuarios finales y se realizan entrenamientos de futuros usuarios. Por lo general, esta etapa tambin se puede dividir en cuatro sub-etapas: Aprobacin y Guas de Usuario: Los usuarios finales aprueban el sistema para su pasaje a produccin y se crean las guas de usuario referentes al uso del sistema. Entrenamiento de Usuarios: Se entrenan usuarios finales y futuros usuarios en la utilizacin del sistema. Implementacin: Instalacin del sistema en el lugar donde los usuarios finales lo utilizarn. Revisin de Negocio: Se realiza una revisin del impacto que la instalacin del sistema tiene en el negocio. Desde este punto el ciclo de vida de desarrollo puede moverse a la prxima etapa (Post-Proyecto) o hacia una nueva iteracin si se necesita desarrollo adicional.

Post-Proyecto El foco de esta etapa se encuentra en lograr que el sistema opere en forma eficiente. Las actividades que caracterizan esta etapa es el mantenimiento evolutivo y/o correctivo.

Extreme Programming (XP)


Tambin conocida como Programacin Extrema (o XP)13, estas metodologas enfatizan las prcticas de ingeniera de software. La Programacin Extrema se diferencia de las metodologas tradicionales, al igual que las metodologas giles en general, por ser un enfoque basado en la adaptabilidad ms que en la previsibilidad. XP considera que los cambios de requerimientos durante el ciclo de vida de un proyecto son algo natural y hasta deseable en el desarrollo de software: poder incorporar cambios en cualquier momento durante el desarrollo de un sistema es una aproximacin ms realista que aquellas que intentan definir todo desde un principio y condensar el esfuerzo en controlar y evitar los cambios.
13 Kent Beck (1999), Extreme Programming Explained: Embrace Change

Pgina 11

Introduccin a la Agilidad y Scrum


Valores

Los Valores originales de la programacin extrema son: simplicidad, comunicacin, retroalimentacin (feedback) y coraje. Un quinto valor, el respeto, fue aadido en la segunda edicin de Extreme Programming Explained. Los cinco valores14 se detallan as: Simplicidad Descripto por la agilidad como "el arte de maximizar la cantidad de trabajo no realizado", la simplicidad es el valor principal de la Programacin Extrema. Simplificar los diseos y arquitecturas agiliza el desarrollo y facilita el mantenimiento. Un diseo complejo del cdigo junto con sucesivas modificaciones realizadas por diferentes desarrolladores aumenta la complejidad en forma exponencial. Una de las prcticas fundamentales a la hora de mantener la simplicidad en el diseo es la llamada "refactorizacin", sobre la que se tratar ms adelante. Otro punto importante sobre la simplicidad es la documentacin, donde se busca que el cdigo se comente lo justo y necesario, y que por medio de tcnicas de nomenclatura de variables, mtodos y clases; el cdigo se transforme en un activo "autodocumentado". Comunicacin La comunicacin se realiza de diferentes formas. Para los programadores el cdigo comunica mejor cuanto ms simple sea. Si el cdigo es complejo hay que esforzarse para hacerlo legible. El cdigo autodocumentado es ms fiable que los comentarios ya que estos ltimos pronto quedan desfasados con el cdigo a medida que es modificado. Por ello debe comentarse slo aquello que no va a variar, por ejemplo, el objetivo de una clase o la funcionalidad de un mtodo. Las pruebas unitarias son otra forma de comunicacin ya que describen el diseo de las clases y los mtodos al mostrar ejemplos concretos de cmo utilizar su funcionalidad. Los programadores se comunican constantemente gracias a la programacin por parejas. La comunicacin con el cliente es fluida ya que el cliente forma parte del Equipo de desarrollo. El cliente es quien decide qu caractersticas tienen prioridad y l siempre debe estar disponible para solucionar dudas. Feedback Al estar el cliente integrado en el proyecto, su opinin sobre el estado del proyecto se conoce en tiempo real. Como los ciclos son muy cortos, los resultados se muestran con frecuencia y se minimiza la necesidad de rehacer partes que no cumplan con los requisitos, ayudando a los programadores a centrarse en lo que es ms importante. Considrense los problemas que derivan de tener ciclos muy largos. Meses de trabajo pueden tirarse por la borda debido a cambios en los criterios del cliente o malentendidos por parte del Equipo de desarrollo. El cdigo tambin es una fuente de retroalimentacin gracias a las herramientas de desarrollo. Por ejemplo, las pruebas unitarias informan sobre el estado de salud del cdigo. Ejecutar las pruebas unitarias frecuentemente permite descubrir fallas debido a cambios recientes producidos en el cdigo.
14 Wikipedia: http://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema

Pgina 12

Introduccin a la Agilidad y Scrum Coraje Los puntos anteriores parecen tener sentido comn, entonces por qu coraje? Para la alta gerencia, la programacin en parejas puede ser difcil de aceptar porque a primera vista pareciera que la productividad disminuye a la mitad ya que solo la mitad de los programadores est escribiendo cdigo. Hay que ser valiente para confiar en que la programacin por parejas beneficia la calidad del cdigo sin repercutir negativamente en la productividad. La simplicidad es uno de los principios ms difciles de adoptar. Se requiere coraje para implementar las caractersticas que el cliente quiere ahora sin caer en la tentacin de optar por un enfoque ms flexible que permita futuras modificaciones. No se debe emprender el desarrollo de grandes marcos de trabajo (frameworks) mientras el cliente espera. En ese tiempo el cliente no recibe noticias sobre los avances del proyecto y el Equipo de desarrollo no recibe retroalimentacin para saber si va en la direccin correcta. La forma de construir marcos de trabajo es mediante la refactorizacin del cdigo en sucesivas aproximaciones. Respeto El respeto se manifiesta de varias formas. Los miembros del Equipo se respetan los unos a los otros porque los programadores no pueden realizar cambios que hagan que las pruebas existentes fallen o que demore el trabajo de sus compaeros. Los miembros respetan su trabajo porque siempre estn luchando por la alta calidad en el producto y buscando el diseo ptimo o ms eficiente para la solucin a travs de la refactorizacin del cdigo. Los miembros del Equipo respetan el trabajo del resto no menospreciando a otros, sino orientndolos a mejorar, obteniendo como resultado un mayor autoestima en el Equipo y elevando su ritmo de produccin.
Caractersticas

Las caractersticas fundamentales de la Programacin Extrema son: Simplicidad: Mantener los diseos y arquitecturas simples. No sobredimencionar y evitar el hecho de caer en la prediccin de funcionalidades. Estndares de Codificacin: El objetivo de un estndar de codificacin es que todos los programadores escriban el cdigo siguiendo una serie comn de parmetros, para que parezca escrito en su totalidad por una nica persona. Propiedad Colectiva: El principio de la propiedad colectiva intenta evitar que ciertas porciones de cdigo o del sistema en s pertenezcan en la prctica a un programador o grupo de programadores especficos sin dejar a otros acceder y/o modificar dicho cdigo. En Extreme Programming, todos son dueos de todo y todos estn autorizados a revisar y cambiar el cdigo de las aplicaciones cuando lo crean conveniente, sin importar quien lo haya escrito. Este principio debe estar reforzado por medio de la simplicidad y los estndares de codificacin. Pruebas Unitarias: las pruebas unitarias son fragmentos de cdigo destinados a evaluar el comportamiento de los diferentes mdulos o componentes en forma aislada del resto de la solucin.

Pgina 13

Introduccin a la Agilidad y Scrum Pruebas Automatizadas: debera haber tantas pruebas unitarias, de integracin y aceptacin automticas como sea posible. En la Programacin Extrema existe la idea de que cualquier accin que se repita ms de tres veces es candidata a ser automatizada. Integracin Continua: Este principio determina que el sistema debe estar integrado todo el tiempo, y funcionando. El hecho de que est funcionando hace referencia a que la totalidad de las pruebas automatizadas debe ejecutarse de forma exitosa, y el hecho de que sea continuamente tiene como finalidad que tan pronto como se detecte un cambio en la base de cdigo, se deben ejecutar las pruebas. Programacin de a Pares: est demostrado que la productividad y la calidad del cdigo producidos por una pareja de programadores es mucho mayor al resultado obtenido por la suma de los logros de los programadores en forma aislada. Desarrollo iterativo e incremental: La solucin o aplicacin de software debe ser construida en ciclos cortos, entregando software frecuentemente y logrando as feedback temprano y continuo.

Open Unified Process (OpenUP)


OpenUP15 es parte del Eclipse Process Framework (EPF) 16, un proceso de desarrollo de software open source. Este proceso naci bajo la tutora de varias empresas 17, entre ellas IBM, que luego lo donaron a la Fundacin Eclipse18. El proceso solo incorpora las partes fundamentales del Rational Unified Process (RUP) y no provee lineamientos para todos los artefactos y procesos como tiene su metodologas "madre".
Principios

OpenUP se basa en los siguientes principios19: Colaborar para sincronizar intereses y compartir conocimiento, buscando as un ambiente de equipo saludable donde se facilite la colaboracin y se desarrolle un conocimiento compartido del proyecto. Equilibrar las prioridades para maximizar el beneficio obtenido por los interesados en el proyecto. Promover el desarrollo de una solucin que maximice los beneficios obtenidos por los participantes y que cumpla con los requisitos y restricciones del proyecto. Centrarse en la arquitectura de forma temprana para minimizar el riesgo y organizar el desarrollo

15 http://epf.eclipse.org/wikis/openup/index.htm 16 http://www.eclipse.org/epf/ 17 Derechos de Autor de OpenUP: http://epf.eclipse.org/wikis/openup/core.default.release_copyright.base/guidances/supportingmaterials/openup_copy right_C3031062.html 18 http://es.wikipedia.org/wiki/Eclipse_(software) 19 http://es.wikipedia.org/wiki/OpenUP

Pgina 14

Introduccin a la Agilidad y Scrum Desarrollo evolutivo para obtener retroalimentacin y mejora continua. Obtener retroalimentacin temprana y continua de los participantes del proyecto mediante entregas frecuentes de incrementos progresivos en la funcionalidad.

Fases

OpenUP divide el proyecto en cuatro fases enfocadas a diferentes disciplinas cada una: Concepcin (Inception) Fase compuesta por "n" iteraciones de concepcin destinadas a: Dar inicio y panificar el proyecto Elaborar la visin tcnica Identificar requerimientos Elaborar los casos de uso detallados

Elaboracin Fase compuesta por "n" iteraciones destinadas a: Identificar y refinar requerimientos Identificar, desarrollar y entregar incrementos de la arquitectura base de la solucin Desarrollar, probar y entregar incrementos funcionales de la solucin

Construccin Fase compuesta por "n" iteraciones destinadas a: Identificar y refinar requerimientos Desarrollar, probar y entregar incrementos funcionales de la solucin

Transicin Fase compuesta por "n" iteraciones destinadas a: Identificar y refinar requerimientos de mantenimiento evolutivo y/o correctivo Desarrollar, probar y entregar incrementos funcionales de mantenimiento evolutivo y/o correctivo

reas de inters

Las reas de inters de la metodologa OpenUP hacen nfasis en tres niveles diferentes del contexto: El nivel personal El nivel del Equipo El nivel de proyecto

Pgina 15

Introduccin a la Agilidad y Scrum

Scrum
Scrum ms que una metodologa es un "framework" (marco de trabajo) para la gestin de proyectos complejos. Se basa principalmente en la premisa de ejecutar un proyecto en iteraciones de entre dos y cuatro semanas, llamadas sprints, y de duracin fija (timebox). Esto quiere decir que las fechas de finalizacin de cada iteracin no pueden ser pospuestas. El desarrollo del producto se realiza en forma incremental y evolutiva, teniendo como base la priorizacin de caractersticas segn el valor de negocio que las mismas representan, entregando las caractersticas de mayor valor al comienzo y dejando para las iteraciones finales las caractersticas de menor valor de negocio. Desarrollaremos Scrum en detalle en el prximo captulo: Scrum.

PRINCE2
PRINCE2 (PRojects IN Controlled Environments o Proyectos en Entornos Controlados) es un mtodo basado en procesos para la gestin eficaz de proyectos. PRINCE2 es un estndar de facto utilizado ampliamente por el Gobierno del Reino Unido y reconocido y utilizado en el sector privado en mltiples pases. El mtodo PRINCE2 es de dominio pblico, ofreciendo guas de mejores prcticas no propietarias en gestin de proyectos. PRINCE2 es una marca registrada de la OGC20. Las caractersticas principales de PRINCE2 son: Se centra en la justificacin de negocios Una organizacin define la estructura para el equipo de gestin de proyectos Su planificacin basada en el producto enfoque Su nfasis en la divisin del proyecto en fases manejables y controlables La flexibilidad que se aplicar a un nivel apropiado para el proyecto

Lean Software Development21


La filosofa Lean de desarrollo de software surge de la mano de Mary y Tom Poppendieck quienes basados en el enfoque de Lean Manufacturing adaptaron sus principios al desarrollo de software. Los principios Lean resultantes son: Eliminar los desperdicios Mediante una tcnica conocida como "Value Stream Mapping" se debe analizar los procesos de desarrollo e identificar los desperdicios y eliminarlos, en forma iterativa, hasta llegar a incluso eliminar aquellos que se crean esenciales. Se considera desperdicio todo aquello que no aporta valor al cliente, como por ejemplo: Cdigo y funcionalidades innecesarias

20 OGC: Office of Government Commerce http://www.ogc.gov.uk/ 21 http://en.wikipedia.org/wiki/Lean_software_development

Pgina 16

Introduccin a la Agilidad y Scrum Retraso en el proceso de desarrollo de software (cuellos de botella) Requisitos poco claros Burocracia (micromanagement, gestin sobrante) Comunicacin interna lenta

Amplificar el aprendizaje El desarrollo de software es una disciplina que exige un continuo proceso de aprendizaje, especialmente el entendimiento de los requerimientos de negocio como la mitigacin de riesgos tcnicos. El proceso de aprendizaje es potenciado con el uso de iteraciones cortas, cada una de ellas acompaada con refactorizacin y sus pruebas de integracin, incrementando el feedback mediante reuniones frecuentes y ciclos de entrega cortos con el usuario.

Decidir lo ms tarde posible El desarrollo de software est siempre asociado con cierto grado de incertidumbre, los mejores resultados se alcanzan con un enfoque basado en opciones y retrasando las decisiones tanto como sea posible hasta que se basen en hechos y no en suposiciones y pronsticos inciertos. Esto tambin permite la adaptacin tarda a los cambios y previene de las costosas decisiones delimitadas por la tecnologa.

Reaccionar tan rpido como sea posible Cuanto antes el producto final se entrega sin defectos considerables, ms pronto se puede recibir feedback del cliente e incorporarse en la siguiente iteracin. Cuanto ms cortas sean las iteraciones, mejor es el aprendizaje y la comunicacin dentro del Equipo.

Potenciar el Equipo Ha crecido una creencia en la mayora de las empresas tradicionales acerca de la toma de decisiones: los gerentes deben decirle a los trabajadores cmo hacer su propio trabajo. En una tcnica Work-Out, los roles cambian: a los gerentes se les ensea a escuchar a los desarrolladores, de manera que ellos puedan explicar mejor qu acciones podran tomarse, as como ofrecer sugerencias para mejoras. Los gerentes de proyecto ms experimentados simplemente han declarado la clave de xito de los proyectos: "buscar la buena gente y dejarles hacer su propio trabajo".

Integridad innata El cliente debe contar permanentemente con una experiencia general del sistema: a esto se llama percepcin de integridad. La Integridad Conceptual significa que los componentes separados del sistema funcionan bien juntos, como en un todo, logrando equilibrio entre la flexibilidad, mantenibilidad, eficiencia y capacidad de respuesta. Esto podra lograrse mediante la comprensin del dominio del problema y resolvindolo en forma evolutiva, todo junto al mismo tiempo, y no secuencialmente. Una de las maneras ms saludables hacia una integridad innata es la refactorizacin. Cuanto ms funcionalidades se aadan a las del sistema, ms se pierde del cdigo base para futuras mejoras. Mediante la refactorizacin se intenta mantener la sencillez, la Pgina 17

Introduccin a la Agilidad y Scrum claridad y la cantidad mnima de funcionalidades en el cdigo. Las duplicidades en el cdigo son signo de un mal diseo y deben evitarse. El proceso de construccin debe ir acompaado de una suite completa y automatizada de pruebas, tanto para desarrolladores como clientes que tengan la misma versin, sincronizacin y semntica que el sistema actual; las cuales se mantienen en constante ejecucin, garantizando as la integracin continua de todos los componentes. Al final, la integridad debe ser verificada con una prueba global, asegurando que el sistema haga lo que el cliente espera. Las pruebas automatizadas tambin son consideradas como parte del proceso de produccin y, por tanto, si no agregan valor deben considerarse residuos. Las pruebas automatizadas no deberan ser un objetivo, sino ms bien un medio para un fin, especficamente para la reduccin de defectos. Ver todo el conjunto Los sistemas de software hoy en da no son simplemente la suma de sus partes, sino tambin el producto de sus interacciones. Los defectos en el software tienden a acumularse durante el proceso de desarrollo, por la descomposicin de las grandes tareas en pequeas tareas y por la normalizacin de las diferentes etapas de desarrollo. Las causas reales de los defectos deben ser encontradas y eliminadas. Cuanto mayor sea el sistema, ms sern las organizaciones que participen en su desarrollo y ms partes sern las desarrolladas por diferentes equipos. Por eso es mayor la importancia de tener bien definidas las relaciones entre los diferentes proveedores con el fin de producir una buena interaccin entre los componentes del sistema.
La filosofa Lean

La filosofa Lean tiene que ser bien entendida por todos los miembros de un proyecto antes de aplicarlo de manera concreta en una situacin de la vida real. "Piensa en grande, acta en pequeo, equivcate rpido; aprende con rapidez". Estas consignas resumen la importancia de comprender el terreno y la idoneidad de implementar los principios Lean a lo largo del proceso de desarrollo de software. Solo cuando todos los principios de Lean se aplican al mismo tiempo, combinado con un fuerte "sentido comn" en relacin con el ambiente de trabajo, hay una base para el xito en el desarrollo de software.

Kanban
Kanban es un enfoque Lean de desarrollo de software gil. Literalmente, Kanban es una palabra japonesa que significa "tarjeta visual". En Toyota, Kanban es el trmino que se utiliza para el sistema de sealizacin visual y fsica que une todo el sistema de produccin Lean. La mayor parte de los mtodos giles como Scrum y XP estn bien alineados con los principios lean. Sin embargo, en 2004 David Anderson fue pionero en una aplicacin ms directa de Lean Thinking y Teora de las Restricciones al desarrollo de software. Bajo la gua de expertos como Don Reinertsen, se convirti en lo que David llama un "sistema Kanban para el desarrollo de software", y al que la mayora de la gente ahora se refieren simplemente como "Kanban". Curiosamente, mientras Kanban en su aplicacin al desarrollo de software es nuevo, Kanban en la produccin lean tiene ms de medio siglo de edad. Kanban, significa a grandes rasgos: Pgina 18

Introduccin a la Agilidad y Scrum Visualizar el flujo de trabajo: Dividir el trabajo en pequeas porciones, escribir cada tem en una tarjeta y ponerla en la pared. Utilizar el nombre de las columnas para ilustrar donde est cada elemento dentro del flujo de trabajo. Lmite WIP (work in progress): Asignar lmites explcitos a la cantidad de tems que podran estar en marcha en cada uno de los estados del flujo de trabajo. Medir el tiempo de espera ("Lead Time"): Tiempo promedio para completar un tem, a veces llamado tiempo de ciclo (o "Cicle Time") Optimizar el proceso para que el tiempo de entrega sea lo ms pequeo y predecible posible.

Pgina 19

Introduccin a la Agilidad y Scrum

Introduccin a Scrum

Qu es Scrum?
Scrum es un enfoque gil para el desarrollo de software. No es un proceso completo o una metodologa, sino un marco de trabajo. As, en lugar de proporcionar una descripcin completa y detallada de cmo deben realizarse las tareas de un proyecto, deja mucho en manos del equipo de desarrollo. Esto ocurre debido a que es el equipo quien conocer la mejor manera de resolver las problemticas que se presenten. Por esta razn y a modo de ejemplo, una reunin de planificacin de Sprint se describe en trminos del resultado deseado (un compromiso de entrega de un conjunto de caractersticas que se desarrollarn en el siguiente Sprint) en lugar de un conjunto de criterios de ingreso, definiciones de tareas, criterios de validacin y criterios de salida que se proporcionan en la mayora de las metodologas. Scrum se basa en la auto-organizacin y la multi-funcionalidad. Un equipo Scrum es autoorganizado, no hay ningn lder del equipo que decide qu persona va a hacer qu tarea o cmo un problema se resolver. Esas son cuestiones que las decide todo el equipo en conjunto. Tambin se espera que el equipo de desarrollo sea multi-funcional, esto es, que existan todos los perfiles necesarios para que una funcionalidad sea llevada desde el plano de la idea hasta su implementacin. El equipo de desarrollo se encuentra apoyado en dos roles: el ScrumMaster y el Product Owner. El ScrumMaster es quien vela por la productividad del equipo de desarrollo, puede ser considerado un coach o lder servil/facilitador encargado de acompaar al equipo de desarrollo de forma tal que el mismo encuentre su punto de mayor eficiencia. El Product Owner, quien representa al negocio, stakeholders, cliente y usuarios finales, tiene la responsabilidad de conducir al equipo de desarrollo hacia el producto adecuado. El progreso de los proyectos que utilizan Scrum se realiza y verifica en una serie de iteraciones llamadas Sprints. Estos Sprints tienen una duracin fija, pre-establecida de no ms de un mes. Al comienzo de cada Sprint el equipo de desarrollo realiza un compromiso de entrega de una serie de funcionalidades o caractersticas del producto en cuestin. Al finalizar el Sprint se espera que estas caractersticas comprometidas estn terminadas, lo que implica su anlisis, diseo, desarrollo, prueba e integracin al producto en desarrollo. En este momento es cuando se realiza una reunin de revisin del producto construido durante el Sprint, donde el equipo de desarrollo muestra lo construido al Product Owner y a cualquier stakeholder interesado en participar. El feedback obtenido en esta reunin puede ser incluido entre las funcionalidades a construir en futuros Sprints.

Pgina 20

Introduccin a la Agilidad y Scrum

Principios de Scrum
Esta informacin fue obtenida desde el Blog de Tobias Mayer: Essence of Scrum22 con aportes propios del autor.

Scrum se considera una manera simple de manejar problemas complejos, proporcionando un marco de trabajo para soportar la innovacin y permitir que equipos auto-organizados entreguen resultados de alta calidad en tiempos cortos. Scrum es un estado de la mente; es una manera de pensar que libera el espritu creativo mientras se sostiene firmemente en principios slidos y largamente respetados, incluyendo el empirismo, los elementos emergentes y la auto-organizacin. Empirismo se refiere al proceso continuo de inspeccin y adaptacin que permite tomar decisiones en tiempo real y en base a datos reales. Como resultado, los decisores pueden responder rpidamente en contextos cambiantes, como por ejemplo ocurre en la industria del desarrollo de software. Los elementos emergentes son consecuencia de una aproximacin emprica. Implica que todas las soluciones a todos los problemas emergern y se volvern visibles a medida que avancemos en los proyectos. No se volvern visibles si simplemente hablamos de ellos. El Big Up Front Design (gran diseo anticipado) slo producir un Big Wrong Design (gran diseo errneo) o a lo sumo un Big Working But Totally Inflexible Design (gran diseo que funciona pero totalmente inflexible). Cuando permitimos que las soluciones emerjan estamos frente a la solucin ms simple y apropiada para el contexto actual. Este surgimiento, junto con el empirismo, nos guiarn a la solucin ms apropiada y flexible (es decir que podremos cambiar). Auto-organizacin se refiere a la estructura de los equipos que crean el producto. Se otorga autonoma a pequeos equipos multidisciplinarios para que puedan tomar decisiones importantes, necesarias para 1) crear un producto de alta calidad y 2) manejar su propio proceso. La razn de este enfoque se fundamenta en que aquellos que hacen el trabajo son quienes mejor conocen cmo hacerlo. Estos equipos trabajan de una manera altamente interactiva y generativa, donde el producto emerge del dilogo continuo, de la exploracin y de la iteracin. La auto-organizacin funciona cuando hay objetivos y lmites claros. Adems de estos principios, Scrum se apoya en dos mecanismos principales: priorizacin y timeboxing (poner lmites de tiempo a una actividad). Priorizacin simplemente significa que siempre hay cuestiones que son ms importantes que otras. Esto es tan obvio que muchas veces se olvida cuando pensamos necesitamos TODO ESTO AHORA. Scrum nos ayuda a volver a poner el foco en seleccionar cules son las cosas ms importantes y hacerlas primero! Tomarse el tiempo para priorizar y ser riguroso sobre eso es esencial para el xito de Scrum. Timeboxing es un mecanismo simple para manejar la complejidad. No podemos imaginar el sistema completo de una vez y todo junto. Entonces, tomamos un pequeo problema y en un corto espacio de tiempo, digamos una semana o un mes, trabajamos en solucionar ese problema. Los resultados de esa accin nos guiarn hacia una solucin para el prximo problema y nos darn ms conocimiento sobre las necesidades del sistema en conjunto. El concepto de Timeboxing refuerza el hecho de cumplir nuestros compromisos dentro de los tiempos prometidos. Un timebox no se puede achicar o agrandar, esto es, la entrega del
22 http://agilethinking.net/essence-of-scrum

Pgina 21

Introduccin a la Agilidad y Scrum resultado no se debe adelantar ni retrasar. La variable de ajuste es el alcance del producto comprometido en un determinado timebox.

Cambio organizacional
Con Scrum, las jerarquas gerenciales de las organizaciones tienden a ser niveladas y los equipos de desarrollo tienen ms contacto directo e inmediato con los clientes. El estilo de liderazgo y el ambiente de trabajo se aparta del comando-y-control y transita hacia un estilo ms colaborativo. Scrum promueve el dilogo regular y abierto por sobre la documentacin extensiva, as como el acuerdo negociado es preferido a los contratos de trabajo formales e impersonales. Las cualidades de apertura, honestidad y coraje son fomentadas en todos los niveles, y el beneficio individual se vuelve secundario ante el avance colectivo. Un ambiente Scrum es aquel que prioriza a la gente, donde las personas de todos los niveles muestran respeto y confianza entre ellos. Las decisiones se toman por consenso, ms que por imposicin de alguien de mayor jerarqua, y todo el conocimiento es compartido de una manera transparente y sin recelos.

Pgina 22

Introduccin a la Agilidad y Scrum

Roles de Scrum
En un equipo Scrum se espera que intervengan tres roles:

Equipo de Desarrollo
El equipo de desarrollo est formado por todos los individuos necesarios para la construccin del producto en cuestin. El equipo de desarrollo es el nico responsable por la construccin y calidad del producto. El equipo de desarrollo es auto-organizado. Esto significa que no existe un lder externo que asigne las tareas ni que determine la forma en la que sern resueltos los problemas. Es el mismo equipo quien determina la forma en que realizar el trabajo y cmo resolver cada problemtica que se presente. La contencin de esta auto-organizacin est dada por los objetivos a cumplir: transformar las funcionalidades comprometidas en software funcionando y con calidad productiva, o en otras palabras, producir un incremento funcional potencialmente entregable. Es recomendable que un equipo de desarrollo se componga de hasta 9 personas. Cada una de ellas debe poseer todas las habilidades necesarias para realizar el trabajo requerido. Esta caracterstica se conoce como multi-funcionalidad y significa que dentro del equipo de desarrollo no existen especialistas exclusivos, sino ms bien individuos generalistas con capacidades especiales. Lo que se espera de un miembro de un equipo de desarrollo es que no solo realice las tareas en las cuales se especializa sino tambin todo lo que est a su alcance para colaborar con el xito del equipo. El equipo de desarrollo tiene tres responsabilidades tan fundamentales como indelegabes. La primera es proveer las estimaciones de cunto esfuerzo ser requerido para cada una de las caractersticas del producto. La segunda responsabilidad es comprometerse al comienzo de cada Sprint a construir un conjunto determinado de caractersticas en el tiempo que dura el mismo. Y finalmente, tambin es responsable por la entrega del producto terminado al finalizar cada Sprint.

Product Owner
El Product Owner es la persona responsable del xito del producto desde el punto de vista de los stakeholders. Sus principales responsabilidades son: Determinar la visin del producto, hacia dnde va el equipo de desarrollo Gestionar las expectativas de los stakeholders Recolectar los requerimientos Determinar y conocer en detalle las caractersticas funcionales de alto y de bajo nivel Generar y mantener el Release Plan: fechas de entrega y contenidos de cada una Maximizar la rentabilidad del producto Determinar las prioridades de cada una de las caractersticas por sobre el resto Pgina 23

Introduccin a la Agilidad y Scrum Cambiar las prioridades de las caractersticas segn avanza el proyecto, acompaando as los cambios en el negocio Aceptar/rechazar el producto construido al final de cada Sprint y proveer feedback valioso para la evolucin del mismo El Product Owner se focaliza en maximizar la rentabilidad del producto. La principal herramienta con la que cuenta para poder realizar esta tarea es la priorizacin. De esta manera puede reordenar la cola de trabajo del equipo de desarrollo para que ste construya con mayor anticipacin las caractersticas o funcionalidades ms requeridas por el mercado o la competitividad comercial. Otra responsabilidad importante del Product Owner es la gestin de las expectativas de los stakeholders mediante la comprensin completa de la problemtica de negocio y su descomposicin hasta llegar al nivel de requerimientos funcionales.

ScrumMaster
El ScrumMaster es el Coach del equipo y es quien lo ayuda a alcanzar su mximo nivel de productividad. Se espera que el ScrumMaster sea un lder servil, facilitador, que acompae al equipo de trabajo en su da a da y garantice que todos, incluyendo al Product Owner, entiendan y utilicen Scrum de forma correcta. Las responsabilidades principales del ScrumMaster son: Velar por el correcto empleo y evolucin de Scrum Facilitar el uso de Scrum a medida que avanza el tiempo. Esto incluye la responsabilidad de que todos asistan a tiempo a las Daily Meetings, Reviews y Retrospectivas, por ejemplo Asegurar que el equipo de desarrollo sea multi-funcional y eficiente Proteger al equipo de desarrollo de distracciones y trabas externas al proyecto Detectar, monitorear y facilitar la remocin de los impedimentos que puedan surgir con respecto al proyecto y a la metodologa. Estos impedimentos podrn ser resueltos dentro del equipo de desarrollo (usualmente), entre diferentes equipos (Scrum de Scrums) o necesariamente con la intervencin de la gerencia Asegurar la cooperacin y comunicacin dentro del equipo Estar al corriente del progreso de las actividades del equipo de desarrollo, de las nuevas tareas que hayan surgido como consecuencia del trabajo que el equipo de desarrollo realiza y de los cambios en las estimaciones Mantener actualizadas las mtricas que denotan el avance del Sprint

Adems de estas cuestiones, el ScrumMaster debe detectar problemas y conflictos interpersonales dentro del equipo de trabajo. Para respetar la filosofa auto-organizativa del equipo, lo ideal es que el equipo mismo sea quien resuelva estas cuestiones. En el caso de no Pgina 24

Introduccin a la Agilidad y Scrum poder hacerlo, deber involucrarse al ScrumMaster y eventualmente a niveles ms altos de la gerencia.

El ScrumMaster es un Lder Facilitador


No es casualidad la aparicin de un nuevo nombre o rol. Mediante este nuevo concepto del enfoque gil se representa el cambio respecto de las responsabilidades y el modelo de gestin de los gerentes de proyectos tradicionales en relacin al equipo de trabajo. El ScrumMaster puede ser visto como un Facilitador, incluso muchas veces se lo referencia as en lugar de ScrumMaster. Su responsabilidad es asegurar que se cumpla con el proceso de Scrum sin interferir directamente en el desarrollo del producto final. Es importante establecer que el Equipo de Scrum elige la forma de trabajo que ms prefiera, siempre que se cumplan las pautas bsicas de Scrum, por ello mientras lo hagan no existe una forma errnea de trabajar. El rol del ScrumMaster tambin incluye asegurar que el desarrollo del producto tenga la mayor probabilidad de ser completado de forma exitosa. Para lograr este cometido, trabaja de cerca con el Product Owner asegurando una correcta priorizacin de los requerimientos, por un lado, y con el Equipo de desarrollo para convertirlos en un producto funcionando, por el otro. Por lo que hemos visto, el ScrumMaster tiene un rol ms indirecto que un Gerente de Proyectos tradicional, a pesar de esto es un rol vital para el xito de Scrum. Para todo Gerente de Proyecto tradicional, el cambio hacia esta nueva filosofa de Gestin es desafiante. Se dice que Scrum es Fcil, Hacer Scrum es Difcil23, esta afirmacin tiene sus fundamentos en la idea de que una cosa es Aprender Scrum y otra muy diferente es Aplicar Scrum exitosamente. Emprender este camino significa adoptar una filosofa de liderazgo servil por sobre el comando-y-control. Finalmente, cuando un ScrumMaster logra cubrir exitosamente su rol, la implementacin de Scrum sucede sin sobresaltos. Las responsabilidades del ScrumMaster deberan cubrir la totalidad de su tiempo. Si bien hay casos en los que el ScrumMaster cumple, adems de su rol, el rol de desarrollador, no siempre es la mejor de las situaciones ya que ambas responsabilidades podran llegar a exceder la disponibilidad de una sola persona, y as alguno de ambos roles no estara siendo cubierto satisfactoriamente.

23 Scrum is simple, Doing Scrum is hard - Jim York, CST.

Pgina 25

Introduccin a la Agilidad y Scrum

Elementos de Scrum
El proceso de Scrum posee una mnima cantidad necesaria de elementos formales para poder llevar adelante un proyecto de desarrollo. A continuacin describiremos cada uno de ellos.

Backlog del Producto


El primero de los elementos, y principal de Scrum, es el Backlog del Producto o tambin conocido como Pila del Producto o Product Backlog. El Backlog del Producto es mantenido por el Product Owner, y como su nombre lo indica es bsicamente un listado de tems (PBIs: Product Backlog Items) o caractersticas del producto a construir, priorizadas por el Product Owner. Es importante que exista una clara priorizacin, ya que es esta priorizacin la que determinar el orden en el que el Equipo de Desarrollo transformar las caractersticas en un producto funcional acabado. Esta prioridad es responsabilidad exclusiva del Product Owner y, aunque el Equipo de Desarrollo pueda hacer sugerencias o recomendaciones sobre las prioridades, es el Product Owner quien tiene la ltima palabra sobre la prioridad final de los tems del Product Backlog teniendo en cuenta el contexto de negocio, el producto mismo y el mercado en el que est inserto.
Prioridades por Valor de Negocio de cada PBI

Una forma de priorizar los tems del Product Backlog es segn su Valor de Negocio. Podemos entender el Valor de Negocio como la relevancia que un tem tiene para con el cumplimiento del objetivo de negocio que estamos buscando. Si planteramos un ejemplo que ilustre el Valor de Negocio de los PBIs podramos decir: En un proyecto cuyo objetivo es aumentar la afluencia de alumnos y facilitar la comunicacin de los contenidos de las diferentes carreras de una universidad o un instituto educativo se ha decidido crear un sitio web con diferentes caractersticas, las cuales estn listadas en el Product Backlog. Dos de ella son 1) que el alumno pueda acceder a los programas de estudios de las diferentes carreras y sus contenidos y 2) que el alumno pueda efectuar el pago en lnea de su matrcula y cuotas utilizando una tarjeta de crdito. En esta situacin, muchos podramos pensar que el requerimiento que implica el pago online con tarjeta de crdito da mayor valor de negocio que darle acceso a los alumnos a los contenidos de los programas de estudio, cuando la realidad es a la inversa: 1) el hecho de que un alumno pueda acceder a los contenidos de los programas de las diferentes carreras aporta un mayor valor hacia el cumplimiento del objetivo del producto (aumentar la afluencia de alumnos e incrementar a comunicacin de los programas) que lo que el pago online podra hacer y 2) un alumno podra seguir abonando con tarjeta de crdito telefnicamente.
Prioridades por ROI (Retorno de la Inversin Return on Investment) de cada PBI

Un enfoque diferente de medir la prioridad de un determinado tem del Backlog es calcular el beneficio econmico que se obtiene en funcin de la inversin que se debe realizar. Esto, si bien es es una simple frmula matemtica, tiene implcita la problemtica de encontrar o conocer el valor econmico ganado por la incorporacin de una determinada caracterstica a Pgina 26

Introduccin a la Agilidad y Scrum un producto. Una vez identificada, el clculo es relativamente simple:

ROI = Valor de Negocio/Costo


Donde el costo representa el esfuerzo necesario para la construccin de una determinada caracterstica de un producto y el Valor de Negocio es el monto econmico ganado por su incorporacin.
Prioridades segn la Importancia y el Riesgo de cada PBI

Independientemente de la forma elegida para priorizar los tems del Backlog (ya sea por Valor de Negocio o ROI: llamemos esto importancia) estos pueden verse afectados -complementariamente- por el riesgo asociado a cada uno de ellos. De esta manera, deberamos aprovechar la construccin iterativa y evolutiva de Scrum para mitigar riesgos en forma implcita: construyendo primero aquellas caractersticas con mayor riesgo asociado y dejando las que poseen menor riesgo para etapas posteriores.

Figura 1: Priorizacin por Riesgos

Los PBIs de baja importancia y alto riesgo se recomienda sean evitados, por ejemplo, transferidos o eliminados del alcance.

Backlog de Impedimentos
Como hemos comentado al describir el rol del ScrumMaster, una de sus principales responsabilidades es asegurar la remocin de impedimentos mediante facilitacin o accin concreta. El Backlog de Impedimentos es un elemento opcional que puede ayudar al ScrumMaster y al Equipo de Desarrollo a llevar un registro de impedimentos ordenados por prioridad. Si bien el Backlog de Impedimentos se debera mantener actualizado durante todo el tiempo, es especialmente utilizado en la Daily Standup Meeting, la cual ser descripta en la prxima seccin.

Pgina 27

Introduccin a la Agilidad y Scrum

Dinmica (Flujo del Trabajo)


Antes de describir en detalle la dinmica de Scrum, recordemos el principio de timeboxing promueve Scrum y los principios de ritmo sostenible, entrega frecuente de software valioso y adaptacin constante que encontramos en el Manifiesto gil. La razn es que son las piedras fundamentales de la dinmica de Scrum: Aprendizaje, Inspeccin y Adaptacin.

Iteraciones (Sprints)
Las iteraciones en Scrum se conocen como Sprints. Scrum, como todos los enfoques giles, es un proceso de desarrollo incremental e iterativo. Esto significa que el producto se construye en incrementos funcionales entregados en periodos cortos para obtener feedback frecuentemente. En general, Scrum recomienda una duracin de Sprint de entre 1 y 4 semanas, siendo 2 o 3 semanas lo ms habitual que encontraremos en la industria. Una de las decisiones que debemos tomar al comenzar un proyecto o al adoptar Scrum es justamente la duracin de los Sprints. Luego, la idea es mantener esta duracin constante a lo largo del desarrollo del producto, lo que implica que la duracin de una iteracin no cambiar una vez que sea establecida. Como excepcin podemos mencionar aquellas situaciones donde el Equipo mismo decida probar con iteraciones ms largas o ms cortas. Esta decisin se basa principalmente en la volatilidad del contexto: mientras ms voltil sea (negocio cambiante, requerimientos desconocidos, etc.) ms corta ser la duracin del Sprint. Lo importante es recordar que se logra mayor ritmo y previsibilidad teniendo Sprints de duracin constante, tratando de no alterarlos durante la ejecucin del proyecto.
Retrasos y Adelantos en un Sprint

Muchas veces podremos encontrar situaciones en donde el Equipo de Desarrollo se atrasa o se adelanta. En estos casos, la regla del timeboxing no nos permite modificar (adelantar o postergar) la fecha de entrega o finalizacin del Sprint. La variable de ajuste en estos casos ser el alcance del Sprint, esto es, en el caso de adelantarnos deberemos incrementar el alcance del Sprint agregando nuevos PBIs y reducirlo en el caso de retrasarnos.
Incremento Funcional Potencialmente Entregable

El resultado de cada Sprint debe ser un Incremento Funcional Potencialmente Entregable. Incremento Funcional porque es una caracterstica funcional nueva (o modificada) de un producto que est siendo construido de manera evolutiva. El producto crece con cada Sprint. Potencialmente Entregable porque cada una de estas caractersticas se encuentra lo suficientemente validada y verificada como para poder ser desplegada en produccin (o entregada a usuarios finales) si as el negocio lo permite o el cliente lo desea.

Reunin de Planificacin de Sprint


Al comienzo de cada Sprint se realiza una reunin de Planificacin del Sprint (Sprint Planning Pgina 28

Introduccin a la Agilidad y Scrum Meeting) donde sern generados los acuerdos y compromisos entre el Equipo de Desarrollo y el Product Owner sobre el alcance del Sprint. Esta reunin de planificacin habitualmente se divide en dos partes con finalidades diferentes: una primera parte estratgica y enfocada en el Qu, y una segunda parte tctica cuyo hilo principal es el Cmo.
Parte Estratgica: Qu vamos a hacer?

Podramos decir que se trata de un taller donde el Product Owner expone todos y cada uno de los PBIs que podran formar parte del Sprint, mientras que el Equipo de Desarrollo realiza todas las preguntas que crea necesarias para conocer sus detalles y as corroborar o ajustar sus estimaciones. Estamos asumiendo que los PBIs ya han sido estimados con anterioridad (la mecnica de esta estimacin ser explicada ms adelante). De todas formas, y debido al principio de aceptar los cambios aun en etapas avanzadas del proyecto, es posible que en esta reunin aparezcan PBIs que no haban sido estimados con anterioridad. Frente a esta situacin, el Equipo de Desarrollo indagar y estimar esos PBIs de inmediato. El objetivo buscado durante esta parte de la reunin es identificar qu es lo que el Equipo de Desarrollo va a realizar durante el Sprint, es decir, todos aquellos PBIs que el Equipo de Desarrollo se comprometer a transformar en un producto funcionando y utilizable (en otras palabras: Incremento Funcional Potencialmente Entregable). Tanto el Product Owner como el Equipo de Desarrollo deben participar de esta parte de la reunin como protagonistas principales. El ScrumMaster, al tiempo que facilita la reunin, tambin debe asegurar que cualquier stakeholder del proyecto (Persona Interesada) que sea requerido para profundizar en detalles est presente o sea contactado. El Equipo de Desarrollo utiliza su Capacidad Productiva (tambin conocida como Velocidad o Velocity), obtenida de los Sprints pasados, para conocer hasta cunto trabajo podra comprometerse a realizar. Esto determinara en un principio cules seran los PBIs comprometidos en este Sprint. Como se ha visto, hemos hablado en potencial: el Equipo de Desarrollo podra, esto determinara. La razn es que cada uno de los PBIs debe ser discutido para entender cules son sus criterios de aceptacin y as conocer en detalle qu se esperar de cada uno. De esta manera, el Equipo de Desarrollo discute con el Product Owner sobre cada PBI y genera un compromiso de entrega para aquellos que considera suficientemente claros como para comenzar a trabajar y que adems podran formar parte del alcance del Sprint que est comenzado. A esto se lo conoce como Planificacin Basada en Compromisos o Commitment-based Planning. Al finalizar esta primera parte de la reunin tanto el Product Owner como los stakeholders involucrados (si hubiese) se retiran, dejando as al ScrumMaster y al Equipo de Desarrollo para que den comienzo a la segunda parte de esta reunin.
Parte Tctica: Cmo lo vamos a hacer?

Durante este espacio de tiempo el Equipo de Desarrollo determina la forma en la que va a llevar adelante el trabajo. Esto implica la definicin inicial de un diseo de alto nivel, el cual Pgina 29

Introduccin a la Agilidad y Scrum ser refinado durante el Sprint mismo y la identificacin de las actividades que el Equipo de Desarrollo en su conjunto tendr que llevar a cabo. Se espera que el diseo sea emergente, que surja de la necesidad del Equipo de Desarrollo a medida que ste avance en el conocimiento del negocio. Por esta misma razn es que indicamos la no necesidad de realizar un diseo completo y acabado de lo que ser realizado durante el Sprint. En cambio, se buscar un acuerdo de alto nivel a ser bajado a detalle durante la ejecucin de la iteracin. Esto mismo sucede con las actividades del Sprint, es decir que no es estrictamente necesario enumerar por completo todas las actividades que sern realizadas durante la iteracin ya que muchas aparecern a medida que avancemos. Recordemos que a esta altura los PBIs ya hn sido estimados y el surgimiento de actividades durante el Sprint no habilita a incrementar las estimaciones de los PBIs, salvo excepciones donde la estimacin inicial no haba considerado la totalidad del esfuerzo necesario. Adicionalmente, es recomendable que las actividades duren idealmente menos de un da. Esto permitir detectar bloqueos o retrasos durante las Reuniones Diarias (ver siguiente). Si bien el Product Owner no participa de esta reunin, debera ser contactado en el caso de que el Equipo de Desarrollo necesite respuestas a nuevas preguntas con la finalidad de clarificar su entendimiento de las necesidades. Al finalizar esta reunin, el equipo habr arribado a un Sprint Backlog o Commited Backlog que representa el alcance del Sprint en cuestin. Este Sprint Backlog es el que se coloca en el TaskBoard (pizarra de actividades) del Equipo de Desarrollo. Al finalizar esta reunin, se comenzar con el desarrollo del producto para este Sprint.

Reuniones Diarias
Uno de los beneficios de Scrum est dado por el incremento de la comunicacin dentro del equipo de proyecto. Esto facilita la coordinacin de acciones entre los miembros del Equipo de Desarrollo y el conocimiento en vivo de las dependencias de las actividades que realizan. Por otro lado, se requiere adems aumentar y explicitar los compromisos asumidos entre los miembros del Equipo de Desarrollo y dar visibilidad a los impedimentos que surgen del mismo trabajo est siendo realizando y que muchas veces nos impiden lograr los objetivos. Estos tres objetivos: 1) incrementar la comunicacin, 2) explicitar los compromisos y 3) dar visibilidad a los impedimentos, son logrados mediante las Reuniones Diarias o Daily Standup Meetings. Estas reuniones tienen, como su nombre lo indica, una frecuencia diaria y no deberan llevar ms de 15 minutos. Estos 15 minutos son un timebox, es decir, que no se pueden superar. A la Reunin Diaria acude el ScrumMaster y el Equipo de Trabajo. En el caso de que sea necesario, se puede requerir la presencia del Product Owner y de los stakeholders. De todas maneras, se intenta que sea una reunin abierta donde cualquier interesado en escuchar lo que sucede pueda participar en calidad de observador. Se recomienda que los observadores no participen activamente en la reunin, y mucho menos, que soliciten a los miembros del Equipo de Desarrollo justificacin del progreso y explicacin de los problemas. Esta reunin es facilitada por el ScrumMaster. Todos y cada uno de los miembros toman turnos para responder las siguientes tres preguntas, y de esa manera comunicarse entre ellos: Pgina 30

Introduccin a la Agilidad y Scrum 1. Qu hice desde la ltima reunin diaria hasta ahora? 2. En qu voy a estar trabajando desde ahora hasta la prxima reunin diaria? 3. Qu problemas o impedimentos tengo? Es importante destacar que en ningn momento se trata de una reunin de reporte de avance o status al ScrumMaster ni a otras personas. Por el contrario, es un espacio de estricta comunicacin entre los miembros del Equipo de Desarrollo. El objetivo de la primera pregunta (Qu hice...?) es verificar el cumplimiento de los compromisos contrados por los miembros el Equipo de Desarrollo en funcin del cumplimiento del objetivo del Sprint. La finalidad de la segunda pregunta (Qu voy a hacer...?) es generar nuevos compromisos hacia el futuro. Cuando hablamos de compromisos, hacemos referencia a aqullos que los los miembros del Equipo de Desarrollo asumen ante sus compaeros. La tercera pregunta apunta a detectar y dar visibilidad a los impedimentos. Estos impedimentos no se resuelven en esta reunin, sino en posteriores. Es responsabilidad del ScrumMaster que ellos se resuelvan lo antes posible, generando las reuniones que sean necesarias e involucrando a las personas correctas. En el caso de que los PBIs del Sprint se hubiesen podido dividir en actividades de menos de un da: si una de estas actividades se encuentra en progreso durante dos Reuniones Diarias seguidas (con 24hs de separacin) claramente se advierte un retraso.

Reunin de Revisin del Producto


Al finalizar cada Sprint se realiza una reunin de Revisin (Review/Demo) del Incremento Funcional Potencialmente Entregable construido por el Equipo de Desarrollo (el Qu). En esta reunin el Equipo de Desarrollo expone el resultado del Sprint frente al Product Owner. Cuando decimos resultado hablamos de Producto Utilizable y Potencialmente Entregable que el Product Owner utilizar y evaluar durante esta misma reunin, aceptando o rechazando as las funcionalidades construidas. El Product Owner evala en tiempo real las funcionalidades construidas y provee su feedback. Los stakeholders del proyecto tambin pueden participar esta reunin para aportar sus impresiones. Estas impresiones pueden ser acerca de cambios en la funcionalidad construida, o bien nuevas funcionalidades que surjan de ver el producto en accin. Toda la retroalimentacin que el Product Owner y los stakeholders aporten debe ser ingresada como PBIs en el Product Backlog. Para esto, los PBIs nuevos deben ser priorizados con respecto a todos los ya existentes en el Product Backlog. Tambin es necesario que estos nuevos PBIs sean estimados antes de incluirlos como parte del Product Backlog ya que el Product Owner deber decidir cules de los PBIs existentes cuya estimacin de costo es similar a la de los nuevos PBIs deben ser eliminados para no incurrir en el incremento desmedido del alcance (Scope Creeping): si se agrega trabajo entonces debemos quitar trabajo de otro lado. El Product Owner cuenta para esto con la priorizacin de los tems del Backlog como herramienta para la toma de este tipo de decisiones. En el caso de que una funcionalidad sea rechazada, el PBI correspondiente reingresa al Pgina 31

Introduccin a la Agilidad y Scrum Product Backlog con mxima prioridad, para ser tratado en el siguiente Sprint. La nica excepcin a esta regla es que el Product Owner, por decisin propia, prefiera dar mayor prioridad a otros. En este caso, nada debe salir del Backlog ya que esto no sera considerado como un incremento en el alcance. Al finalizar la revisin del producto, es recomendable definir la fecha de la prxima reunin de revisin, que corresponder al final del Sprint siguiente. De este modo ya se tendrn las agendas bloqueadas a tal fin.

Reunin de Retrospectiva
En un mtodo emprico como Scrum, la retrospeccin del Equipo es el corazn de la mejora continua. Mediante el mecanismo de retrospeccin, el Equipo de Desarrollo reflexiona sobre la forma en la que realiz su trabajo y los acontecimientos que sucedieron en el Sprint que acaba de concluir para mejorar sus prcticas. Todo esto sucede durante la Reunin de Retrospectiva. Esta reunin tiene lugar inmediatamente despus de la reunin de Revisin, y mientras que la reunin de Revisin se destina a revisar el Producto (el Qu), la Retrospectiva se centra en el Proceso (el Cmo). Este tipo de actividad necesita un ambiente seguro donde el Equipo de Desarrollo pueda expresarse libremente, sin censura ni temores, por lo cual se restringe solo al Equipo de Desarrollo y al ScrumMaster. En el caso de que se requiera la participacin del Product Owner, stakeholders o Gerentes, estos pueden ser convocados. Valindose de tcnicas de facilitacin y anlisis de causas races, se buscan tanto fortalezas como oportunidades de mejora. Luego, el Equipo de Desarrollo decide por consenso cules sern las acciones de mejora a llevar a cabo el el siguiente Sprint. Estas acciones y sus impactos se revisarn en la prxima reunin de retrospectiva.

Reunin de Indagacin y Estimacin


Tambin conocida como Backlog Grooming, la Reunin de Indagacin y Estimacin se realiza durante el Sprint y en funcin de las necesidades. Su objetivo es profundizar en el entendimiento de los PBIs que se encuentran ms all de el Sprint actual y as dividirlos en PBIs ms pequeos, si as lo requieren, y estimarlos. Idealmente se revisan y detallan aqullos que potencialmente estaran involucrados en los prximos dos o tres Sprints. Otro objetivo importante que se debe perseguir en esta reunin es la deteccin de riesgos implcitos en los PBIs que se estn analizando, y en funcin de ellos revisar y ajustar las prioridades del Product Backlog. La participacin del Equipo de Desarrollo y del Product Owner es esencial para el xito de esta reunin, sin los cuales no tendra sentido. La responsabilidad de convocarla es del Product Owner y se realiza entre una y dos veces por Sprint, facilitadas por el ScrumMaster. A diferencia de las anteriores, este tipo de reunin no se encuentra enunciado como una ceremonia oficial de Scrum, pero dejando los purismos de lado, muchos Equipos han encontrado al Backlog Grooming extremadamente beneficioso.

Pgina 32