5 Niveles de Planicacin gil: Desde la Visin Corporativa del Producto hasta el Stand-up del Equipo White Paper Este documento evala las prcticas giles aplicadas en proyectos multiequipos y proyectos con una duracin de mas de un ao. Esto se hace a travs de la inspeccin de los requerimientos impuestos al escalar proyectos y como se aplican los principios giles bsicos a estos requerimientos. En la introduccin se presentn los principios giles ms importantes, as como tambin los principios Lean sobre los cuales los mtodos giles son basados. Uno de estos principios Lean, denominado Muri o sobrecarga de personas, es tratado a travs de la extensin del proceso de planifcacin gil. La extensin de la tcnica de planifcacin gil ms usada (planifcacin de iteraciones) es descrita en detalle, tanto la motivacin para la extensin asi como las prcticas de colaboracin por de cada uno de los niveles de planifcacin. El ltimo captulo evala el impacto de la complejidad del producto sobre el proceso de planifcacin y presentamos una solucin para crear un fujo regular a lo largo del ciclo de planifcacin/entrega. 2 www.rallydev.com 2013 Rally Software Development ndice de Contenido 5 NIVELES DE PLANIFICACIN GIL: DESDE LA VISIN CORPORATIVA DEL PRODUCTO HASTA EL STAND-UP DEL EQUIPO ..........................................................................................1 NDICE DE CONTENIDO .............................................................................................................2 INTRODUCCIN .........................................................................................................................3 POR QU ENFOCAR LA PLANIFICACIN DE LAS ACTIVIDADES? ............................................................ 3 GIL Y LEAN ..................................................................................................................................................... 3 VOCABULARIO DEL GIL ................................................................................................................................ 3 LOS ELEMENTOS FUNDAMENTALES DEL LEAN MURI, MURA Y MUDA ................................................. 4 PLANIFICANDO PROYECTOS GILES DE GRAN ESCALA .....................................................5 VISIN DEL PRODUCTO - NIVEL 1 ................................................................................................................. 6 ROADMAP DEL PRODUCTO NIVEL 2 .......................................................................................................... 7 PLANIFICACIN DEL RELEASE NIVEL 3 ..................................................................................................... 8 PLANIFICACIN DE LA ITERACIN NIVEL 4 ............................................................................................. 10 PLANO DIARIO NIVEL 5 .............................................................................................................................. 11 CONCLUSIN ...........................................................................................................................12 REGULARIDAD EN EL PROCESO DE PLANIFICACIN .........................................................13 CONCLUSIN ...........................................................................................................................14 REFERENCIAS ..........................................................................................................................15 3 www.rallydev.com 2013 Rally Software Development Introduccin Por qu el enfoque en la Planifcacin de Actividades? La experiencia obtenida durante una implementacin de gran envergadura de conceptos giles en proyectos de desarrollo de software nos ensea que los actuales y populares mtodos giles de desarrollo de software (como Scrum) no pueden ser escalados para los niveles de programa, producto y organizacin al menos que sean modifcados. Los fundamentos para los cambios en estos mtodos son encontrados en los principios Lean, o: el futuro de los mtodos giles se encuentra en sus orgenes. Este documento describe una estructura de planifcacin que ha sido usada con xito en proyectos giles de gran envergadura 1 y examina el impacto de la introduccin de esta estructura de planifcacin en tres principios fundamentales Lean: Muri, Mura y Muda. gil y Lean Los orgenes del Scrum son encontrados en los escritos de Takeuchi y Nonaka ii y fueron desenvueltos como metodologa por Schwaber, Beedle y Sutherland iii,iv . En 2003, los principios de desarrollo gil de software fueron vinculados a los principios Lean, cuyo concepto fue explorado ms a fondo por Sutherland, Viktorov y Blount vi . Este raciocinio ha sido ampliamente desenvuelto en un proceso que agrega prcticas a la estructura Scrum para cubrir las complejidades que surgen cuando esta estructura es aplicada a programas de desarrollo de software involucrando diversos equipos y/o mltiples proyectos 2 . Este documento se basa en estas publicaciones y en la experiencia del autor en las diversas implementaciones de prcticas giles en proyectos y programas de gran envergadura. Vocabulario del Agil Este documento hace uso intenso del lxico Agil. Algunos de los trminos ms usados son: Mtodos giles El grupo de mtodos livianos de desarrollo de software que fueron creados con base al Manifesto Agil 3 . Ejemplos: Extreme Programming (XP), Scrum y Feature Driven Development. Product Owner La persona responsable por el xito del producto y, por lo tanto, califcado para priorizar las funcionalidades requeridas por el producto. Equipo de Entrega El grupo de personas responsable por la entrega de los elementos que en conjunto componen el producto. Son responsables de entregar la calidad adecuada y pueden, por lo tanto, determinar y estimar las tareas involucradas para la entrega de las funcionalidades requeridas por los productos. Muri, Mura, Muda o Load, Flow, Waste Tres principios primordiales Lean que describen la necesidad de planifcar la (carga) de trabajo correctamente, crear un ritmo (fujo de 4 www.rallydev.com 2013 Rally Software Development trabajo) regular en el equipo y evitar la entrega de productos que no tienen ningn valor (desperdicio) para el cliente. Backlog del Producto Una lista de funcionalidades, cada una con una nivel de prioirida, que componen el producto de acuerdo con los objetivos del Product Owner. Iteracin Un perodo de una a seis semanas en el cual el equipo de entrega produce funcionalidades operacionales (aceptadas) de los productos. Tambin conocido como Sprint en la metodologa Scrum. Funcionalidad Un componente del producto que el Product Owner y el cliente reconocen y valoran. La entrega de una funcionalidad se hace por medio de tareas, que son las actividades ms tcnicas reconocidas y valoradas por el equipo de entrega. La estimacin del trabajo involucrado en la entrega de las funcionalidades y tareas es hecha por el equipo de entrega, lo que representa una diferencia importante con relacin al desarrollo basado en planes, en el cual las tareas de estimacin son responsabilidad de un gerente del proyecto. Los Elementos Fundamentales del Lean Muri, Mura y Muda Los tres principios Lean utilizados para defnir mtodos giles de desarrollo de software tienen sus orgenes en los conceptos Muri, Mura y Muda: Muri Sobrecarga de personas o equipos Mura Irregularidad en la carga de trabajo Muda Desperdicio o actividades que no agregan valor Existe una relacin entre los tres principios: Mura crea Muri lo cual crea establece la incapacidad para reducir Muda 4 . O sea: el desperdicio puede ser reducido solucionando los problemas de desequilibrio de carga y de sobrecarga del personal vII : Todos los mtodos giles reducen rigurosamente los mtodos ya existentes de desarrollo de software a estructuras que son ms bien descritas como apenas sufcientes. Cuando estas estructuras apenas sufcientes son combinadas con disciplina y prcticas rigurosas de inspeccin y adaptacin, se crean metodologas robustas que propician la entrega ms rpida de software operativo. Los mtodos giles ya existentes se enfocan en proyectos pequeos (un solo equipo, duracin de pocos meses), y el impacto de los proyectos grandes (multiequipos, plurianuales) en prcticas giles no son contemplados con los 1 Los proyectos denominados grandes normalmente duran bien ms que un ao, y tienen 50 o ms personas involucradas para entregar la funcionalidad exigida. 2 Sutherland, Tabaka & Smits Program Management with Scrum Curso de dos das para ScrumMasters 2006 3 http://www.agilemanifesto.org/ 4 Womack: http://www.leanuk.org/articles/mura_muri_muda.pdf Muri Mura Muda 5 www.rallydev.com 2013 Rally Software Development mtodos giles. Este documento analiza los requisitos para el proceso de planifcacin gil y su vnculo con la sobrecarga de individuos y equipos (muri). Planifcando Proyectos Agiles de Gran Escala En mtodos giles, la asignacin de la carga de trabajo de un equipo es hecha a travs de la planifcacin de las iteraciones. Debido a la brevedad de la iteracin (normalmente dura de una a seis semanas) el plan tiene poca importancia y la planifcacin tiene mucha importancia. En caso de proyectos pequeos, puede ser sufciente planifcar una sola iteracin a la vez. La experiencia obtenida en la planifcacin de iteraciones cuando se aplica a proyectos que requieres un nmero alto de iteraciones y/o que utilizan un sin nmero de equipos, es que la visin a largo plazo de estas iteraciones se puede perder, lo cual es una desventaja. En otras palabras: se pierde la visin del todo. Una solucin es agregar niveles de planifcacin para incluir la visin del todo. En las metodologas basadas en planes y en cascada, este problema se supera a travs de una considerable fase inicial de diseo, teniendo por objetivo prever con precisin cuanto trabajo es necesario en cada una de sus tareas. Esto conlleva a una gran inversin inicial en el proyecto, a tal punto que no se puede tener certeza que la funcionalidad proyectada es, de hecho, la funcionalidad deseada por el Product Owner. Un abordaje con niveles diferentes de planifcacin debe evitar la reintroduccin de una nueva considerable fase de diseno. Las actividades de planifcacin para proyectos de desarrollo de gran escala deben basarse en cinco niveles: Visin del Producto Roadmap del Producto Planifcacin del Release Planifcacin del Sprint Compromiso Diario La certeza de la realizar las actividades defnidas en cada uno de los cinco niveles aumenta y, por lo tanto, la cantidad de los detalles abordados (dinero invertido), el nmero de personas involucradas y la frecuencia pueden aumentar sin que se corra el riesgo de gastar dinero en funcionalidades que van a hacer creadas, o ser creadas de una forma diferente. Cada uno de los cinco niveles se enfoca en los principios fundamentales de la planifcacin: prioridades, estimados y compromisos. 6 www.rallydev.com 2013 Rally Software Development Visin del Producto - Nivel 1 La fgura ms amplia que una persona puede dibujar del futuro es la visin de un Product Owner. En esta visin, l explica la forma como una organizacin o un producto deben verse. l indica que partes del sistema requieren ser alteradas (prioridad) y que esfuerzo se requiere para alcanzar sta meta (estimados y compromisos). Visin del Producto Cmo obternerla Un ejercicio para poder tener una visin del producto deseado es la elaboracin de un elevator statement vIII (un resumen muy muy corto de los objetivos) o un vision box (especie visin embalada o empaquetada) del producto. El objetivo de este ejercicio es crear un descripcin de las funcionalidades deseadas en el producto, de los clientes objetivos y las principales diferenciales con relacin a otros productos o productos de la competencia. Geoffrey Moore usa el siguiente formato en su elevator statement: Para que (cliente objetivo) que requiere(descripcin del requerimiento) el (nombre del producto) es un (categora del producto) que (principal benefcio del producto, motivo atrayente para comprar). A diferencia de (alternativa primaria de la competencia), nuestro producto (descripcin de la diferenciacin primaria). La visin del producto describe un estado deseado que se proyecta 12 meses o ms hacia el futuro. Las dems actividades de planifcacin (diseo) irn a detallar la visin, pero pueden desviarse de ella, ya que el futuro nos traer una perspectiva diferente acerca del mercado, del producto y de los esfuerzos requeridos para hacer la visin realidad. anualmente por el product owner dos vezes por ao por el product owner trimestralmente por el product owner y los equipos diariamente por los individuos dos vezes por semana por los equipos plan diario plan de la iteracin plan del release roadmap del producto visin del producto 7 www.rallydev.com 2013 Rally Software Development Roadmap del Producto Nivel 2 La era de los proyectos de gran envergadura que entregaban resultados a lo largo de los aos desapareci. Los clientes exigen cambios con mayor frecuencia y los plazos de entrega time-to-market se miden en semanas o meses. La mayor frecuencia y plazos ms cortos fuerzan al Product Owner a pensar en etapas, en un camino en direccin al producto fnal. De la misma manera como se planifca un viaje y se comparte con los otros viajantes, un roadmap de producto es creado y transmitido a las personas que contribuyen con su entrega. Las metas para hacerlo demandan que el Product Owner: Transmita informaciones sobre el todo Determine e informe para cuando los releases son requeridos Determine que funcionalidad es sufciente para cada release Se concentre en el valor que le produce al negocio cada uno de los releases El equipo de entrega, a su vez, deber: Ver el todo Conocer las etapas necesarias para obetner la visin Conocer las prioridades del negocio Aportar conocimiento tcnico para el roadmap Suministrar estimaciones para las funcionalidades proyectadas Roadmap del Producto Cmo logralo La creacin del roadmap es en gran parte motivada/conducida por el Product Owner (o por el equipo del Product Owner). Esta fase del programa no tiene mucho impacto de las restricciones tecnolgicas. En una reunin, o serie de reuniones, el roadmap ser diseado por el Product Owner. Este proceso puede ser tan simple como una representacin grfca de los releases, o ms formal, a travs de un documento que defne fechas, contenidos y objetivos de los releases previstos. Backlogs del Producto Para prepararnos para la prxima fase de la planifcacin (planifcacin del release), se debe crear una lista de las funcionalidades deseadas - el backlog del producto. En su forma ms simple, este backlog es una planilla de requisitos del producto descrita brevemente de forma que un equipo de entrega pueda suministrar estimados para la realizacin de cada funcionalidad. Lo ms importante es que la lista tiene que contener prioiridades. El xito de un proyecto gil depende de la entrega rpida de las funcionalidades con mayor prioridad. Como el xito de un proyecto es medido en trminos de negocios, la priorizacin 8 www.rallydev.com 2013 Rally Software Development de la lista de funcionalidades es responsabilidad de la empresa, o sea, del Product Owner. La interaccin con los equipos de entrega es obligatoria. Sin una discusin acerca de las funcionalidades, el equipo de entrega tendr difcultades para producir estimados con una imprecisin aceptable. Las caractersticas de un backlog de producto son: Un nico backlog de producto para todos los equipos (ver el todo) Funcionalidades de tamao grande a muy grande (que requieran hasta 20 das hombre(persona) para entregar una funcionalidad) Funcionalidad con prioridades defnida de acuerdo a las prioridades del negocio (descubiertas a travs de estudio de mercado) Funcionalidades tecnolgicas (a veces denominadas features no funcionales, tareas requeridas para que el producto funcione en el modo deseado, por ejemplo, la implementacin de un determinado DBMS para garantizar determinado desempeo del sistema) son limitadas a las que tienen un impacto directo sobre el xito del producto en el mercado. Planifcacin del Release Nivel 3 En pequeos proyectos (equipo nico que entrega producto en incrementos y en pocas iteraciones) el backlog del producto por s mismo puede proporcionar una visin general del proyecto. El tamao, la duracin y las entregas son fcilmente reconocidas. No hay necesidad de sincronizar o agrupar entregas y/o equipos. Esto cambia cuando se aplican conceptos giles a programas en los cuales habr dependencias entre equipos y entre proyectos. Algunos de los equipos podrn estar operando de acuerdo a diferentes principios giles o operando en estilo cascada (waterfall). El primer momento para iniciar la agrupacin de las actividades y asignarlas a los equipos ocurre durante la planifcacin del release. Un release es lo que el propio nombre implica: un conjunto de funcionalidad que se entrega en incrementos al cliente (interno). Algunas caractersticas de un release son: Releases son defnidos por fecha, tema y conjunto de funcionalidad. Las fechas del release pueden ser asociadas a eventos, como conferencias o cambios en el sistema jurdico. El alcance y no la fecha o la calidad es la variable clave, lo que destaca la necesidad de usar un backlog de producto con prioridades como base para un evento de planifcacin. Cuando una fecha del release es inalterable, un aumento en el presupuesto es improbable y normalmente to tine un efecto positivo en un release, el alcance es la nica variable que puede ser decisiva para la fecha de lanzamiento. Todos los equipos que trabajan en diferentes iteraciones necesitan operar al mismo ritmo. Cuando todos los equipos trabajan al mismo ritmo, el descubrimiento y la gestin de las dependencias ocurren automticamente durante las actividades de planifcacin. 9 www.rallydev.com 2013 Rally Software Development Hay fechas de release fjas entre todos los equipos del programa: un intervalo normal sera de dos a cuatro meses. Caractersticas del Release vs. Iteracin Un release es defnido al nivel del sistema o del programa, normalmente de acuerdo a la terminologa del Product Owner. El tema, su fecha de lanzamiento y sus funcionalidades con prioridades en conjunto forman un release; todos estos conceptos son defnidos por el Product Owner. Cuando los releases son vistos desde la perspectiva del roadmap, la alta visibilidad y confanza se manifestan en el corto plazo (release actual y prximo release). Esto se expresa a travs de ms detalles en las descripciones de las funcionalidades y de un tamao ms pequeo de las funcionalidades. Un release puede extenderse de seis a nueve meses, aunque dos a cuatro meses son ms comunes. El propsito de un release es proporcionar tanto al cliente como al equipo una visualizacin del todo y hacer que el Product Owner y el equipo de entrega realizaren una primera tentativa de subdividir los requisitos de alto nivel en funcionalidades del producto, guindolos detallar las funcionalidades que con mayour probabilidad a ser creadas. Por otro lado, la iteracin est defnida al nivel de la funcionalidad. El equipo de entrega y el Product Owner defnieron en forma conjunta el nmero de iteraciones de un release. La prioridad de las features determina cuales de ellas sern entregadas en cada iteracin; el nmero de funcionalidades que sern entregadas en la iteracin es defnida por la velocidad del equipo y por las estimaciones del equipo acerca de las funcionalidades. Las actividades de planifcacin de la iteracin normalmente determinan una nica iteracin a la vez, o a veces dos. Planifcar solamente para la prxima iteracin signifca que las actividades tienen una alta probabilidad de ser emprendidas. Esto garantiza la inversin de tiempo por el equipo de entrega en la subdivisin de las funcionalidades en tareas. Las tareas son tcnicas por naturaleza; el Product Owner no ir necesariamente a reconocerlas. La duracin de las iteraciones vara de una a seis semanas, siendo dos semanas el perodo ms frecuente. El propsito de la iteracin es hacer que cada equipo se comprometa a entregar las funcionalidades estimadas que fueron estimadas con mucha precisin. Planicacin del Release Cmo lograrlo Teniendo una visin del producto y un roadmap disponibles que son actualizados y analizados con mucha reguralidad por el Product Owner y por el equipo, todos entienden el enfoque o tema de los prximos releases y las fechas de release deseadas. Adems, las funcionalidades del producto ya habrn sido coleccionadas en su backlog, con su prioridad y estimado. A travs de estas labores, el Product Owner y los equipos de entrega obtienen un entendimiento de lo que necesita ser entregado, cuando, y por qu, en el orden pactado. Si el equipo estim las funcionalidades en storypoints o tamaos de T-shirts x , deber pactar su capacidad (velocidad esperada) tomando como base nmeros histricos - o por simple 10 www.rallydev.com 2013 Rally Software Development suposicin. La disponibilidad normal de los miembros de equipo es del 60 a 70%, pero pueden ocurrir nmeros bajos de hasta 25%, o altos, hasta 90%. Una sesin de planifcacin de release normalmente demora un da entero, y a veces dos das, si el programa es muy grande (se requiere cientos de miembros de equipo). Todos los miembros de equipo participan de la sesin: el Product Owner, todo el equipo de entrega y todos los dems involucrados. La sesin es altamente cooperativa e interactiva; las herramientas ms comnmente utilizadas son notas adhesivas, fip-charts y cuadros blancos. Un ejemplo de agenda xi podra ser: Introducciones, metas, actualizaciones de la agenda, Visin del producto, explicacin del producto por el Product Owner utilzando metforas Timeboxes para los releases e iteraciones Impacto de los releases e iteraciones concludos Clculo de capacidad por el equipo de entrega Acuerdo sobre entregables (cuando una funcionalidad se da por concluda) Trasladar funcionalidades a un release durante las sesiones de planifcacin por los diferentes equipos. Esto puede signifcar literalmente traladar las notas adhesivas donde estn escritas las funcionalidades y los releases estn representados en hojas separadas del fip-chart. Todos los miembros del equipo participan de este ejercicio. Transferencia de las funcionalidades del release para iteraciones dentro del release por los diferentes equipos Determinacin de dependencias a travs de la evaluacin de los resultados individuales de la planifcacin, trasladando funcionalidades para las iteraciones o releases necesarios a fn de resolver las dependencias Clculo fnal de la carga de trabajo por iteracin y comparacin con la capacidad disponible Anlisis de los riesgos y problemas descubiertos Compromiso con el plan del release por todos los participantes Retrospectiva de la sesin Planifcacin de la Iteracin Nivel 4 Durante la planifcacin del release, la entrega de funcionalidades fue defnidad tomando en consideracin las dependencias entre las funcionalidades y entre los equipos. Debido a la falta de detalles (no se invierte en actividades de diseo hasta que la probabilidad de crear la funcionalidad sea casi segura) los estimados son a grandes razgos y tienen una incertidumbre aceptable. En caso de iteraciones dentro del release, se hace una sesin de planifcacin. Antes de la sesin o durante la misma, se aaden detalles a las 11 www.rallydev.com 2013 Rally Software Development funcionalidades a travs de su subdivisn en tareas. La adicin de detalles aumenta la precisin de los estimados. La capacidad real de los diferentes equipos es conocida con ms certeza que durante la sesin de planifcacin del release. La combinacin de estos factores aumentada la certeza de que el equipo podr ser capaz de comprometerse a realmente entregar varias funcionalidades durante la iteracin, con un alto grado de certeza de cumplir con el compromiso. Planicacin de la Iteracin: Cmo logralo La estructura de la sesin de planifcacin de la iteracin se asemeja a la sesin de planifcacin del release. Aunque los equipos trabajen individualmente para producir su plan de iteracin, la sincronizacin entre los equipos proporcionar un mecanismo efcaz para detectar y solucionar dependencias. La programacin de la reunin de planifcacin trae grandes semejanzas con la de una reunin de planifcacin de release, con la distincin bsica del horizonte de la planifcacin: solamente una nica iteracin es observada en todas las actividades. El ncleo de las actividades es ejecutado equipo a equipo: Los equipos individuales determinan su capacidad real o la cantidad de trabajo que puede ser hecho dentro de la iteracin. Los equipos individuales descomponen en tareas tantas funcionalidades cuntas parecer compatible con la prxima iteracin - esto puede ser hecho como preparacin. Cada tarea es estimada con una duracin normal de medio da a dos das. La defnicin 5 de listo debe ser llevada en cuenta al descomponerse y estimarse funcionalidades: una funcionalidad no ser considerada concluida hasta que haya sido completamente testada y aceptada por el Product Owner. Los resultados de los equipos individuales son inspeccionados en una sesin conjunta para determinar dependencias (o su desaparicin) que no fueron vistas durante la sesin de planifcacin del release. Plano Diario Nivel 5 Muchos equipos giles adoptaron el hbito de mantener una reunin diaria: la reunin stand- up de Scrum. En una sesin de 15 minutos, los miembros del equipo actualizan sus status (lo que hice ayer), se comprometen con el trabajo de hoy (lo que har hoy) y relatan impedimentos (estoy siendo impedido por ). Esta reunin diaria normalmente no es vista como una sesin de planifcacin, pero seguramente lo es. Las personas miran hacia el da que est por venir, aprendieron con los das anteriores en la iteracin y dicen unas a las otras lo que planean hacer. Los problemas son planteados, posiblemente resueltos y la posibilidad de xito en la entrega de las funcionalidades deseadas dentro de la iteracin puede ser determinada despus de la reunin. 5 Una defnicin de las entregas de una funcionalidad (cuando una feature est lista) lista los artefactos que necesitan ser entregues con el cdigo real. Puede incluir tests, resultados de tests, varios tipos de documentacin etc. Algunos de estos artefactos sern defnidos al nivel de proyecto (como documentos exigidos para examinar equipos), otros dependen del equipo (como documentacin de usuario en caso de equipos que trabajan con funcionalidades relativas a la interfaz de usuario). 12 www.rallydev.com 2013 Rally Software Development Reunin Stand-up: Cmo logralo Tal como otras actividades de planifcacin, los planes diarios necesitan ser sincronizados entre los equipos. Esto ocurre en una reunin stand-up para coordinacin (reunin Scrum of Scrums en la metodologa Scrum). Los representantes de cada equipo reportan el status, los planes e impedimentos unos para los otros en un formato idntico. Las tres preguntas contestadas son las mismas que de la reunin stand-up individual (lo que el equipo concluy ayer, qu va a hacer el equipo hoy y lo que est impidiendo el equipo). Lo que se hace visible es: Cmo todos los equipos estn progresando? Cules son los impedimentos entre los equipos? Quin esta tomando providencias para eliminarlos? El principio de una reunin stand-up de coordinacin puede ser repetido para comportar un gran nmero de equipos: representantes de los equipos de los equipos reportan sobre el progreso de los equipos de los equipos. Estas reuniones normalmente coordinan esfuerzos de equipos que no tienen ningn inters en comn. Por ejemplo, todos los equipos de entrega de TI tienen una reunin stand-up de coordinacin (diaria), as como los equipos de entrenamiento, equipos fnancieros, de pre-produccin, etc. En una programacin semanal o (al fnal del ciclo del release) diaria, los representantes de los equipos se encuentran para reportar sobre progresos, planes e impedimentos. Conclusin Esta seccin abord la carga de los equipos de entrega a travs de la planifcacin de las actividades de entrega con el nivel adecuado de detalle en los momentos adecuados. A travs de las actividades de planifcacin organizadas en etapas, es posible obtener un equilibrio entre las visiones y los compromisos de largo plazo y las inversiones iniciales en las actividades de design y planifcacin. A travs de la propiedad del release y de la planifcacin de la iteracin por los equipos de entrega, los riesgos de sobrecargar equipos e individuos son mucho ms bajos. 13 www.rallydev.com 2013 Rally Software Development Regularidad en el Proceso de Planifcacin La irregularidad en la carga de trabajo puede ser resuelta tenindose siempre una cantidad de trabajo lista para los equipos e individuos. Esto permite a los equipos e individuos asumir el trabajo cuando haya capacidad disponible. En el documento de autora de Takeuchi y NonakaiI, The New New Product Development Game, los autores enfatizan que un mecanismo de inicio y parada impone retrasos en el proceso de entrega. A travs de una superposicin de actividades entre los equipos, o a travs del inicio anticipado del prximo equipo (mientras el equipo anterior todava est trabajando en sus tareas), o una ejecucin paralela de la mayora de los equipos (separando sus dependencias durante el progreso), la duracin total del desarrollo del producto es abreviada. Cuando un equipo no est familiarizado con el dominio del problema presentado por el Product Owner, va a exigir tiempo para preparar estimaciones a travs de la descomposicin de las funcionalidades en tareas. Esto genera atrasos entre las iteraciones: la primera iteracin entrega las funcionalidades solicitadas con xito y solo entonces el equipo determina el impacto de la entrega en el backlog del producto y empieza a estudiar y descomponer el prximo grupo de funcionalidades. Este trabajo puede ser hecho anticipadamente: los miembros del equipo (algunos o todos) pueden planear el trabajo que tiene ms probabilidad de ser emprendido en la prxima iteracin. De una forma simple (cuando los miembros estn familiarizados con las funcionalidades) esto exigir algunas horas de trabajo para estudiar el backlog del producto e interrogar el Product Owner. Cuando la familiaridad disminuye, estas actividades crecen para varias personas-da. La estructura ms extrema observada ocurre cuando dos miembros del equipo gastan la iteracin entera estudiando las funcionalidades para la prxima. Durante el perodo de planifcacin de la iteracin, ellos suministran orientacin al equipo y despus de la sesin de planifcacin vuelven a ser parte del equipo de entrega, asumiendo funciones de entrega reales. Dos otros miembros del equipo asumen entonces la tarea de preparacin. Los efectos de este abordaje son: Las iteraciones se sobreponen y son continuadas sin intervalos Algunas funcionalidades del backlog del producto son previamente divididas en fases El tope del backlog del producto siempre est listo para ser incluido en una iteracin Este abordaje reserva tiempo para abordar problemas que son causados por falta de conocimiento de las funcionalidades por el equipo de entrega. Un ejemplo de actividades que pueden ser ejecutadas durante esta fase de pre-preparacin es la creacin de prototipos de la funcionalidad de la aplicacin que pueden ser testados por un grupo de usuarios para estudiar sus experiencias. El resultado es la concordancia entre el Product Owner y el equipo de desarrollo de que los tems del backlog estn listos - el equipo est seguro de que puede estimar y descomponer las funcionalidades. 14 www.rallydev.com 2013 Rally Software Development Los equipos de desarrollo necesitan separar tiempo para crear prototipos para el Product Owner por lo menos una iteracin antes de la implementacin. En otras palabras, las ventajas de un proceso de planifcacin regular tiene su precio, pero el efecto puede ser signifcativo. En el caso descrito anteriormente (dos miembros del equipo estn ocupados con la preparacin de la sesin de planifcacin), ya que el atraso entre el fnal de una iteracin y el inicio de la prxima puede consumir el tiempo de una iteracin, o en otras palabras la preparacin duplica el rendimiento. Conclusin Es posible adherirse al principio apenas sufciente de los mtodos giles y expandir el nmero de proyectos en los que los mtodos pueden ser aplicados desde proyectos de un solo equipo, y de corto plazo, hasta proyectos multiequipos y de largo plazo. Los niveles adicionales de planifcacin no son engaosos y no requieren de mucho tiempo, y enfocan al grupo adecuado de personas en el producto fnal, con un nivel adecuado de detalle, evitando as desperdiciar grandes cantidades de tiempo y dinero antes del inicio de la entrega real de las funcionalidades. El signifcado del trmino aceptablemente errneo es de suma importancia, cuando cualquier miembro de los equipos desea apegarse a detalles de especifcacin y/o planifcacin del trabajo. De ser as la implementacin gil est en camino de vuelta para los mtodos de cascada. 15 www.rallydev.com 2013 Rally Software Development Referencias [i] Liker, The Toyota Way, McGraw Hill, 2005, pp. 114-115 [ii] Takeuchi & Nonaka, The New New Product Development Game, Harvard Business Review, Jan/Feb 1986 [iii] Schwaber & Beedle, Agile Software Development with SCRUM, Prentice Hall, 2001 [iv] Schwaber, Agile Project Management with Scrum, Microsoft Press, 2004 [v] Poppendieck & Poppendieck, Lean Software Development, Addison-Wesley, 2003 [vi] Sutherland, Viktorov & Blount, Adaptive Engineering of Large Software Projects with Distributed / Outsourced Teams, in International Conference on Complex Systems, Boston, MA, USA, 2006. [vii] Liker, The Toyota Way, McGraw Hill, 2005, pp. 114-115 [viii] Moore & McKenna, Crossing the Chasm, Capstone Publishing, 1999 [ix] Highsmith, Agile Project Management, Addison-Wesley, 2004 [x] Cohn, Agile Estimating and Planning, Prentice Hall, 2006 [xi] Tabaka, Collaboration Explained, Addison Wesley, 2006 [xi] Tabaka, Collaboration Explained, Addison Wesley, 2006