Академический Документы
Профессиональный Документы
Культура Документы
Scrum II
Rev. 2.2
Scrum II
Gestin flexible de proyectos con Scrum
Rev. 2.2 Agosto 2013
Diseo de cubierta: Scrum Manager. Imagen derivada de la original: The Albert Bridge 04 Belfast de William Murphy (http://www.streetsofdublin.com/)
2013 Juan Palacio De la edicin: Scrum Manager Informacin de derechos y licencia de uso:
Ms informacin: http://www.safecreative.org/work/1308225627323
Scrum Manager es marca registrada propiedad de Iubaris Info 4 Media S.L. El marco y plataforma de formacin abierta ScrumManager es propiedad de Iubaris info 4 Media S.L.
Contenido
Contenido Formacin Scrum Manager Servicios de formacin y asesora presencial Scrum Manager Evaluacin para mejora continua y control de calidad de Scrum Manager SCRUM II Principios de Scrum Manager 1.- Conocimiento en continua evolucin 2.- Empresa como sistema 3.- Flexibilidad Metodologas Coordenadas del mapa de metodologas. Conceptos Patrones de gestin del proyecto Personas, Procesos y Tecnologa Procesos Personas FLEXIBILIDAD Incremento continuo con gestin visual kanban Introduccin: De la artesana a la produccin Lean Lean Lean Software Development Kanban Origen y definicin Trabajando con tableros kanban: conceptos Trabajando con tableros kanban: operativa Casos prcticos de formatos de tableros kanban Kanban Box Muda, Mura y Muri y algunos consejos para ajustar el flujo. Responsabilidades con Scrum a nivel de gestin Responsabilidades de producto. Responsabilidades del equipo Responsabilidad de funcionamiento de Scrum en el proyecto Bibliografa Tabla de ilustraciones ndice 4 5 5 7 9 10 10 12 13 14 14 14 15 16 16 17 19 20 21 23 24 26 28 30 33 38 41 43 44 45 46 47 49 50
Para impartir cursos de Scrum Manager: puedes consultar cmo hacerlo en Preguntas Frecuentes de scrummanager.net o contactando en admin@scrummanager.net
SCRUM II
Scrum flexible.
El patrn dialctico
La evolucin y mejora del conocimiento se produce al cuestionar el conocimiento actual, siguiendo de este modo un patrn dialctico de tesis, anttesis y sntesis. De manera esquemtica el patrn dialctico puede definirse como la evolucin que contrapone una anttesis a una determinada concepcin, entendida como tesis. Esta anttesis muestra los problemas y contradicciones de la tesis. De la confrontacin surge un tercer momento llamado sntesis, una resolucin o una nueva comprensin del problema.
De esta forma la estrategia de aplicar ingeniera de procesos para atajar los retos de los proyectos de software es la tesis a cuyos problemas y contradicciones se contrapone la agilidad. El reto de los proyectos TIC se identific por primera vez en 1968 en la primera conferencia sobre desarrollo de software celebrada por la organizacin OTAN, en la que se acu el trmino crisis del software para definir los problemas comunes y recurrentes de los proyectos de software que siempre desbordaban las agendas y los presupuestos de sus planes iniciales, adems de no conseguir resultados con la calidad esperada. La conclusin de la conferencia de la OTAN de 1968 (Bauer, Bolliet, & Helms, 1969)fue la necesidad de crear una disciplina cientfica que como ocurra en otras reas, permitiera aplicar un enfoque sistemtico disciplinado y cuantificable al desarrollo, operacin y mantenimiento de los sistemas del software, es decir, la aplicacin de la ingeniera de procesos al software. Fue el nacimiento de la Ingeniera del Software. La primera estrategia de la Ingeniera del software (tesis) se ha basado en dos pilares: Ingeniera de procesos: Gestin predictiva: El primero para aplicar el principio bsico de calidad contrastado con xito en los entornos de produccin industrial: la calidad del resultado depende de la calidad de los procesos empleados. El segundo para garantizar el cumplimiento de agendas y presupuestos.
10
Mientras este conocimiento iba evolucionando y perfeccionndose a travs de diferentes modelos de procesos y cuerpos de conocimiento de gestin de proyectos (MIL-Q9858, ISO9000, ISO9000-3, ISO 12207, SPICE, SW-CMM) en la industria del software surgan dudas y se cuestionaba esta estrategia. La planificacin predictiva es apropiada para cualquier proyecto? Los criterios de xito son siempre el cumplimiento fechas, costes y funcionalidades preestablecidas? Empiezan a surgir proyectos que no tienen como finalidad construir un sistema que previamente se ha definido y planificado en su totalidad, y para los que no es realista trazar un plan cerrado desde su inicio. Proyectos en los que no interesa saber si el sistema final tendr 20 o 200 funcionalidades y conocer cmo sern stas en detalle: Su inters es poner un nuevo sistema en el mercado lo antes posible y desde ese momento evolucionar la visin y mejora el valor de forma continua. Por otra parte se le cuestiona tambin a la tesis el considerar al desarrollo de software como un proceso industrial. Se empieza a aceptar que puede ser ms importante para la calidad del resultado, el conocimiento tcito de la persona que lo realiza que la calidad del proceso que emplea.
Desde los orgenes de la agilidad, mediados de los 90, hasta 2005-2010 han sido habituales las posturas radicales entre los defensores de los modelos de procesos y de los marcos giles, posiblemente ms enfocados en descalificar al otro que en revisar y depurar los propios mtodos. Algunos ejemplos de esta tensin: "La diferencia entre un atracador de bancos y un terico de CMM es que con el atracador se puede negociar" "La evaluacin en CMM depende ms de una buena presentacin en papel que da la calidad real del producto de software. Tiene que ver ms con el seguimiento a ciegas de una metodologa que con el desarrollo y puesta en produccin de un sistema en el panorama tecnolgico". (Orr., 2003) "Si uno pregunta a un ingeniero de software tpico si cree que CMM se puede aplicar a los mtodos giles, responder o con una mirada de sorpresa o con una carcajada histrica" .
11
En disciplinas no tcnicas y en generaciones anteriores el ritmo de avance sobre esta espiral dialctica permita a los profesionales desempearse con los conocimientos adquiridos en su licenciatura durante toda su carrera profesional. Sin embargo hoy esto no es posible, especialmente en el sector TIC No hay mtodos, prcticas o modelos de trabajo que nos ayuden con solvencia durante mucho tiempo, sino conocimiento en evolucin. Esta es una consideracin clave en el marco de Scrum Manager y la razn por la que no define un modelo fijo, sino un conocimiento actualizado como base para una gestin ms experta que tcnica. Ms basada en el criterio documentado y experto del gestor que en la aplicacin de prcticas o procesos.
12
Por ejemplo, en una organizacin cuya gerencia dirige con orientacin a modelos de produccin industrial, y el rea de ingeniera en consecuencia trabaja con modelos basados en procesos con ciclos de vida secuenciales o de cascada, la adopcin de prcticas giles en el rea de gestin de proyectos generar problemas de funcionamiento.
3.- Flexibilidad
El objetivo no es implantar el modelo estndar de Scrum, o cualquier otro. El objetivo es lograr los mejores resultados en escenarios de trabajo que evolucionan rpidamente, o tienen dosis altas de incertidumbre por las que no cuentan con requisitos estables al concebir nuevos productos o servicios. Se trata de clientes que necesitan empezar a usar un producto lo antes posible y mejorarlo de forma continua. De productos en los que la innovacin es un valor clave. Por esta razn, el principio de flexibilidad de Scrum Manager se refiere a adaptar las prcticas de trabajo a la organizacin y no al revs. Se trata en definitiva de realizar una gestin experta ms que una gestin tcnica. Una gestin dirigida desde el conocimiento, experiencia y criterio del gestor y no tanto una gestin orientada a la bsqueda e implantacin del mejor modelo. Una gestin basada en la persona antes que en el modelo. El conocimiento de las distintas tcnicas y metodologas amplia el criterio y el fondo de recursos del gestor. Para seguir la evolucin del conocimiento profesional y para ampliar y mejorar de forma continua el criterio e inventario de recursos profesionales propios es aconsejable Vencer la resistencia al cambio y evitar actitudes de aceptacin o defensa dogmtica de un modelo. Espritu crtico-constructivo: Cuestionar continuamente de forma antittica los modos actuales, con el conocimiento y criterio profesional adecuar el sistema de trabajo propio a las caractersticas del proyecto, equipo y organizacin.
13
Metodologas
Coordenadas del mapa de metodologas.
Desde los 80 se han desarrollado tantos modelos de procesos, marcos y prcticas de trabajo para mejorar la calidad y eficiencia en los proyectos de software, que resulta til trascender las etiquetas y llegar a la base de los principios que subyacen, y las estrategias con las que los desarrollan; de forma que con tres conceptos (desarrollo, trabajo y conocimiento) y dos modelos de gestin (predictiva y evolutiva) se despeja y simplifica el aparente laberinto de modelos de procesos, marcos o prcticas de trabajo a los que nos referimos: CMM-SW, CMMI, PMBOK, DSDM, Crystal, ISO 15504, RUP, XP, Scrum, ITIL, ASD, PRINCE 2, LEAN, KANBAN, TDD, etc..
Las diferentes prcticas y metodologas responden a combinaciones de tres conceptos y dos patrones de gestin de proyectos.
Conceptos
1.- Desarrollo
Completo: La descripcin de lo que se desea obtener est disponible al inicio del proyecto, es completa y detallada, sirve de base para estimar el plan del proyecto: tareas, recursos y agenda de trabajo. Durante la ejecucin se gestiona su cumplimiento. Incremental: La descripcin de lo que se desea obtener no est disponible de forma completa y detallada al inicio: se complementa y evoluciona en paralelo al desarrollo, que genera el resultado de forma incremental y que se puede gestionar con dos tcticas diferentes:
14
Desarrollo incremental continuo: Empleando tcnicas para lograr y mantener un flujo continuo de desarrollo de funcionalidades o partes del producto que entrega de forma continua al cliente. Desarrollo iterativo: El marco de produccin emplea tcnicas de tiempo prefijado o timeboxing para mantener la produccin de incrementos del producto de forma cclica y continua. Este es el marco de produccin empleado en scrum estndar, que define como sprint a cada iteracin de desarrollo al final de la cual se produce un incremento del producto.
2.- Trabajo
Secuencial (cascada): Secuencia las tareas en fases, cada una de las cuales comienza al terminar la anterior y con el resultado que se ha obtenido en ella. El ejemplo ms habitual es el ciclo de cascada definido en Ingeniera del software con las fases de requisitos, anlisis, diseo, codificacin, pruebas e implementacin. Concurrente: Solapa en el tiempo los diferentes tipos de tareas. Siguiendo con el ejemplo de ingenera de software, la definicin de requisitos, el anlisis, la codificacin y el despliegue del resultado se realiza y revisa de forma simultnea y continua.
3.- Conocimiento
Principal conocimiento empleado, protagonista de la calidad del resultado. El conocimiento o know-how protagonista de la calidad del resultado se encuentra en mayor medida en los procesos y la tecnologa empleada. La calidad del resultado depende de la calidad de los procesos empleados. El conocimiento o know-how protagonista de la calidad del resultado se encuentra en mayor medida en el conocimiento tcito de las personas que lo consltruyen.
Gestin evolutiva
Modelo de gestin de proyectos cuyo objetivo es la entrega en el menor tiempo posible un producto mnimo viable, e incrementar su valor de forma iterativa y continua. Emplea una estrategia de desarrollo incremental, que puede obtener con tcticas iterativas o de mantenimiento de flujo continuo, y un modelo de trabajo de fases solapadas. Puede emplearse con produccin basada en procesos (ingeniera concurrente) o con produccin basada en personas (agilidad). Es importante esta distincin porque sin ella se generan situaciones confusas que llegan a considerar agilidad a la simple aplicacin de un marco de desarrollo estndar de scrum (ciclo de incremento iterativo con roles y artefactos definidos), o al simple uso de tcnicas de gestin visual kanban para mantener un flujo continuo de tareas.
15
Procesos
A fin de poder diferenciar distintos tipos de procesos procedimientos podemos decir que en unos, las personas ayudan al proceso, y en otros son los procesos las prcticas las que ayudan a las personas. En el primer caso el proceso es el protagonista, el que sabe cmo hacer el trabajo, y la persona se integra en el sistema como instrumento, como operario de apoyo. En el segundo, el artfice es la persona y el proceso la prctica una ayuda, una herramienta que simplifica aspectos rutinarios para que pueda lograr ms eficiencia y no diluir el esfuerzo en rutinas mecnicas.
La principal diferencia entre unos y otros es el tipo de conocimiento con el que trabajan. El conocimiento pueden ser: Explcito: contenido en los procesos y la tecnologa Tcito: que es contenido por la persona Scrum Manager aporta una consideracin sobre el tringulo tradicional personas-procesos-tecnologa, considerando que los procedimientos de trabajo pueden ser: procesos: cuando el conocimiento clave para lograr el resultado est en su mayor parte explicitado en el proceso y la tecnologa empleada. prcticas: cuando los procedimientos ayudan a las personas, que son quienes tienen el conocimiento clave, y por tanto operan en sistemas aportando su conocimiento tcito. Se puede decir que en los primeros la persona ayuda al procedimiento, y en los segundos es el procedimiento el que ayuda a la persona.
Los modelos de gestin y mejora basados en procesos, centran el foco de la produccin en los procesos y la tecnologa, como los elementos ms valiosos de la produccin. Su anttesis, las prcticas giles, focalizan el valor de la produccin en las personas.
16
Desde el punto de vista de Scrum Manager, ambas opciones son posibles, pero cada una para un entorno diferente. En entornos de produccin industrial que centran el conocimiento en los procesos y tecnologa empleada, las personas aportan trabajo para auxiliar a los procesos y la tecnologa, y el valor del resultado depende principalmente de los primeros. Sin embargo para las empresas del conocimiento que trabajan en escenarios rpidos e innovadores, el principal valor es el talento de las personas.
Personas
Las organizaciones que necesitan imprimir un componente innovador importante y frecuente, o se mueven en sectores de innovacin muy rpido, obtienen mejores resultados si hacen responsables de esa innovacin al talento de las personas ms que a la ejecucin de procesos. En este tipo de organizaciones es importante asegurar, adems del nivel de creatividad del equipo, su capacidad para aprehender. El modelo de conversin del conocimiento definido por Nonaka y Takeuchi (Nonaka & Takeuchi, The Knowledge-Creating Company, 1995) define con sus 4 fases el proceso para la adquisicin de las personas del conocimiento tcito a travs de compartir experiencias, comunicacin directa, documentos, manuales y tradiciones, que aade conocimiento novedoso a la base colectiva de la organizacin.
17
FLEXIBILIDAD
Adaptacin de las prcticas a la organizacin.
Flexibilidad
La caracterstica principal del marco estndar de Scrum es el uso de pulsos de sprint, para emplear la tcnica de tiempo prefijado (timeboxing) y mantener as un avance continuo gracias al ritmo marcado por la secuencia de sprints. La tctica de timeboxing muestra al equipo el avance de forma pragmtica, al tiempo que mitiga la tendencia habitual a dilatar los tiempos de entrega previstos. Los equipos originales de Scrum observados y descritos por Nonaka y Takeuchi (Nonaka & Takeuchi, The New New Product Development Game, 1986) y los principios de la agilidad no prescriben el uso de una determinada tctica para lograr un desarrollo incremental. Tambin es posible trabajar con un avance constante de las tareas una tras otra, sin empaquetar en incrementos para hacer en pulsos de timeboxing. Lograr un flujo continuo de tareas no es fcil porque suelen formarse zonas con cuellos de botella que bloquean el avance, mientras en otras reas del equipo se producen tiempos muertos sin tareas que realizar. La gestin visual kanban es la tcnica ms empleada actualmente para regular el flujo continuo en proyectos TIC y de servicios del conocimiento gestionados evolutivamente.
20
Flexibilidad
Para Smith el principal factor para mejorar la productividad del trabajo es su divisin, que ilustr en su clebre ejemplo de la manufactura de alfileres, en el que comparaba la produccin que puede alcanzar un herrero realizando todas las tareas necesarias, con la obtenida en un sistema con divisin del trabajo entre obreros especializados en cada tipo de tarea (estirado del alambre, cortado, afilado, etc.). Como demostr, la divisin del trabajo hace posible producir 5.000 alfileres diarios por obrero, frente a los 50 que producira un artesano.
Taylorismo es el nombre dado al mtodo de produccin cuyo principal objetivo fue el aumento de la productividad basado en la divisin y especializacin del trabajo. Al taylorismo se le denomina tambin organizacin cientfica del trabajo o gestin cientfica del trabajo por aplicar principios bsicos del mtodo cientfico en el diseo de los procesos de trabajo. Taylor expuso su sistema de organizacin racional del trabajo en su obra Principles of Scientific Management (1912) que de forma somera se puede condensar en cuatro principios: Reemplazar los mtodos artesanales por mtodos basados en el anlisis cientfico del trabajo. Seleccionar y formar a los empleados con criterios cientficos, en lugar de dejar que aprendan de forma autnoma.
2005 - 2013 ScrumManager Project http://www.scrummanager.net 21
Flexibilidad
Dividir las tareas en gestin y trabajo, de forma que los gerentes puedan gestionar los principios de planificacin y ejecucin del trabajo. Proporcionar instrucciones y supervisin detallada a cada trabajador.
Produccin en cadena
La produccin en cadena, tambin denominada fordismo, es el sistema de produccin desarrollado por el fabricante de automviles Henry Ford para la fabricacin de los primeros automviles de su factora en la primera dcada del siglo XX. Pone en prctica los principios de la divisin y la organizacin cientfica del trabajo, y ha sido ampliamente utilizado para la produccin industrial hasta que en la dcada de los 70 comenz a ser reemplazada por el toyotismo. El fordismo hizo posible: Reduccin significativa del costo de produccin. (El precio del Ford T pas de $850 en 1908 a 250$ cuando se produjo en cadena en 1927). Flujo constante de la produccin. Ingeniera de procesos: la calidad del resultado depende de la calidad del proceso empleado en su fabricacin.
22
Flexibilidad
Lean
La palabra lean en ingls significa magra, es decir, sin grasa.
Lean es un sistema de mejoramiento de procesos de manufactura basado en la eliminacin de desperdicios y actividades que no agregan valor al proceso.
14 principios Lean
1. Las decisiones del negocio estn basadas en una filosofa de largo plazo, an a expensas de las prdidas financieras a corto plazo. 2. Los ciclos son cortos y rpidos. 3. Se prefieren los sistemas pull, que evitan la sobreproduccin 4. La carga de trabajo debe ser balanceada (Heijunka) 5. La cultura est basada en detener la produccin para arreglar problemas, as como en ensear el estudio metdico de los problemas (Jidoka) 6. Las tareas se estandarizan para lograr la mejora continua (Kaizen) 7. La gestin visual simple revela problemas y permite la coordinacin 8. Se utiliza solamente tecnologa probada que pueda ser provechosa para la gente y su proceso. 9. Se forman lderes que comprendan el trabajo, vivan la filosofa de la empresa y la enseen a otros. 10. Se desarrollan equipos y personas excepcionales que siguen la filosofa de la compaa 11. Se respeta la red de colaboradores y proveedores (Keiretsu) , desafindolos a crecer y ayudndolos a la mejora. 12. Se valora que los responsables vayan y miren las situaciones en el lugar de trabajo, para entenderlas y poder ayudar. 13. Tome tiempo para decidir, basndose en el consenso y considerando minuciosamente todas las opciones. Implemente rpidamente. 14. Convierta y mantenga a su empresa en una organizacin que aprende a travs de la reflexin constante (Hansei) y de la mejora continua (Kaizen)
23
Flexibilidad
2.
24
Flexibilidad
El desarrollo de software implica un proceso de aprendizaje: entender qu es lo que el cliente quiere y cmo entregar la mejor solucin posible. El desarrollo incremental proporciona cuantiosa y frecuente retro-informacin. 4. Diferir el compromiso Lean sostiene que el compromiso no puede hacerse con el cliente no se puede asumir hasta que los mismos no se encuentran claramente expresados y entendidos. Comenzar con requisitos incompletos, inestables e incoherentes es augura el fracaso del proyecto. En los proyectos giles que parten con una visin definida que evolucionar durante el desarrollo el compromiso con el cliente se asienta y evoluciona en la misma medida que se van concretando y comprometiendo los incrementos del producto.
5. Entregar rpido El desarrollo incremental realiza entregas rpidas a los clientes, quienes se encuentran con cdigo operativo desde etapas tempranas. Dicho cdigo debe ser desarrollado con calidad ya que no se puede mantener una velocidad importante de entrega si no se cuenta con calidad y un equipo disciplinado, comprometido y confiable. La entrega rpida permite a la organizacin ser competitiva respecto a otras, posicionarse en el mercado, y obtener ingresos de manera ms temprana. 6. Respetar a las personas Lean se basa en el respecto por las personas que son el elemento nico y diferenciador de cada organizacin. Deben estar suficientemente capacitadas y ser responsables de los procesos en los que intervienen, de modo que cuando resultan necesarios cambios y mejoras, cada persona colabora en su desarrollo. Optimizar el todo Lean invita a contemplar el proceso completo, es decir todo el flujo de valor, en lugar de hacerlo en cada etapa. El problema de optimizar cada fase por separado es que genera inventarios grandes en los puntos de transicin. En el mundo del software, estos "inventarios" representan al trabajo parcialmente terminado (por ejemplo, requisitos completos, pero sin disear, codificar o probar). Lean demostr que un flujo de "una pieza" (por ejemplo, enfocarse en construir un tem de manera completa) es un proceso ms eficiente que concentrarse en construir las partes separadas de forma rpida.
7.
25
Flexibilidad
El trmino kanban aplicado a la gestin gil de proyectos se refiere a tcnicas de representacin visual de la informacin para mejorar la eficiencia en la ejecucin de las tareas de un proyecto
26
Flexibilidad
Al entrar en un modelo de gestin basado en la experiencia y conocimiento propio, y abandonar el modelo de gestin tcnica, se flexibilizando las prcticas, y pierden relevancia cuestiones tcnico -metodolgicas como las siguientes: Situacin A: Por un lado se desea usar kanban, pero por otro se quiere estimar las tareas (por ejemplo para registrar la velocidad por razones organizativas de mi empresa) Situacin B: La empresa gestiona proyectos simultneos con una organizacin de oficina de proyectos y por eso encaja mejor el establecimiento de roles; pero sin embargo se quiere trabajar con kanban en lugar de con scrum Debera hacer scrumban? qu es eso? o lo que se va a hacer es Scrumbut? es la solucin de un mal gestor?. El uso de kanban como metodologa definida es una opcin de trabajo para la gestin tcnica, pero no para la autogestin y la gestin experta, porque limita la flexibilidad en la implantacin
27
Flexibilidad
En algunos casos puede resultar conveniente marcar sub-estados (por ejemplo: Testeado, Validado). El orden de los trabajos desde el rea pendiente, indica ya en el inicio la secuencia de las tareas segn sus prioridades. Los trabajos monitorizados puede ser del tamao de tareas, historias de usuario o epics, segn el uso que interese en cada tablero. Lleva a la superficie la informacin de los problemas. Los conflictos en la priorizacin de los trabajos, los problemas en el flujo por impedimentos o cargas de trabajo, las incidencias en el desarrollo, etc. se ponen de manifiesto de forma inmediata en la actualizacin continua sobre el tablero del estado de los trabajos. Facilita un ritmo sostenido y evita la ley de Parkinson Genera un avance continuo de trabajo cuyo ritmo no est marcado por una planificacin temporal: Gantt o Sprint (incremento iterativo).
28
Flexibilidad
La ausencia de hitos temporales evita la tendencia habitual de alargar el tiempo de trabajo hasta completar el tiempo estimado (ley de Parkinson).
Por otra parte, la ausencia de hitos temporales, sin tcnicas de monitorizacin y gestin del avance generara alargamiento de tiempos y retrasos por procrastinacin y perfeccionismo.
Los procesos giles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
Principio del Manifiesto gil
Facilita el incremento continuo Dando respuesta de esta forma al principio gil imprescindible: entrega frecuente de valor. Tareas que se completan con un ritmo sostenido y de forma continua, y con ellas historias de usuario que se van sumando al producto, proporcionndole un incremento continuo de valor segn las prioridades de negocio marcadas por el propietario del producto.
Secuencia y polivalencia
Al disear la estructura y el funcionamiento de un tablero kanban adecuado a un entorno determinado, dos son las variables de ese entorno a las que debe dar respuesta: Secuencia (del trabajo). Polivalencia (de las personas).
Secuencia.
Los trabajos reflejados en las tarjetas del tablero tienen que ejecutarse en un orden determinado o pueden realizarse en cualquier orden.?
29
Flexibilidad
No es lo mismo disear un tablero para el equipo de programadores de un sistema, que para el de mantenimiento de los sistemas informticos de una empresa. Para los primeros los trabajos se deben hacer en un orden de secuencia determinado. As por ejemplo, no es posible realizar la tarea de pruebas si antes no se ha hecho la de programacin. Sin embargo las siguientes podran ser las tareas de un equipo de mantenimiento: instalacin de nueva impresora en el equipo de direccin actualizacin del sistema operativo en el servidor web, etc. Este tipo de tareas se pueden realizar en cualquier orden. No hay una relacin de dependencia entre ellas de forma que no se pueda realizar una si la otra no se ha completado.
Polivalencia
Es un equipo polivalente o de especialistas? Por el tipo de trabajo y el perfil de los integrantes del equipo, cualquier miembro puede realizar cualquier tarea? Siguiendo con los ejemplos anteriores, es posible que en el equipo de mantenimiento una persona pueda indistintamente instalar una impresora, o un sistema operativo; o es posible que no: que haya tcnicos de hardware y tcnicos de software. De forma similar un proyecto de programacin puede incluir tareas especficas de diseo grfico, o programacin integracin testing, etc que pueden realizar slo determinados miembros del equipo.
Cuatro son los patrones posibles segn se combinen un tipo de trabajo secuencial o libre, con un equipo polivalente o de especialstas:
30
Flexibilidad
Ilustracin 11: reas de informacin y mejora reveladas por los tableros kanban
31
Flexibilidad
WIP es un trmino ingls que en el campo de la manufactura lean, de donde proviene, se emplea para designer la cantidad de productos a medio fabricar que ann no estn terminados. En el uso de tableros kanban, por analoga se emplea este trmino para indicar las tareas que se encuentran en una fase del proyecto pendientes de pasar a la siguiente o de completarse, y en este entorno el trmino WIP se suele emplear con la acepcin de lmite o nmero mximo de tareas que pueden llegar a acumularse en un rea determinada. As por ejemplo, decir que en un tablero kanban para programacin de software el rea de testing o pruebas tiene un WIP de 3 quiere decir que no puede haber ms de tres tareas simultneamente en esa fase.
32
Flexibilidad
Ejemplo de tablero para ofrecer informacin relativa al estado de desarrollo del producto.
El ejemplo muestra un posible tablero instalado en la oficina de responsable de producto para reflejar el estado en el que se encuentra la construccin del producto. En este caso no se emplea la faceta de herramienta de gestin visual, sino solamente la de radiador de informacin visual. Tablero para mostrar visualmente la siguiente informacin relativa al estado de desarrollo del producto: Posibles historias de usuario sugeridas, que se encuentran en evaluacin sin determinar an si se incorporarn al producto. Historias de usuario aprobadas: se incorporarn al producto. Historias de usuario ya valoradas y priorizadas, previstas para ser programadas. Historias de usuario que se estn programando actualmente. Historias de usuario ya programadas que se pueden evaluar en el servidor de pruebas. Historias de usuario ya evaluadas, pendientes de desplegar. Historias de usuario desplegadas en las dos ltimas versiones.
Ilustracin 12: Ejemplo de tablero kanban para monitorizar el estado del producto
33
Flexibilidad
Este es un buen ejemplo del principio de flexibilidad o adecuacin de las prcticas a la organizacin y no al revs. Kanban, adems de ofrecer informacin visual, permite aplicar tcnicas como limitacin del wip y muestra las lneas de mejora para ajustar la cadencia del flujo. Resulta por tanto til, como ya hemos visto para trabajar con incremento continuo. Pero puede emplear kanban un equipo que haga scrum con incremento iterativo para emplear la representacin visual del avance de las tasreas en lugar de usar un grfico de avance? (por ejemplo)?. Por supuesto. Este apartado muestra ejemplos de tableros para ambos casos.
Pila de tareas. Tareas ya estimadas y preparadas para entrar a desarrollo. Tareas en anlisis. Tareas en codificacin. Tareas terminadas. Tareas integradas en el servidor de desarrollo (labs). Tareas integradas en produccin.
34
Flexibilidad
Ilustracin 14: Ejemplo de tablero kanban para monitorizar y gestionar incremento continuo.
35
Flexibilidad
Ilustracin 17: Ejemplo de tablero kanban para monitorizar y gestionar incremento iterativo
36
Flexibilidad
Estado de las tareas programadas para la semana y persona que est trabajando con cada una. Estado de incidencias no previstas y urgentes, y personas que estn trabajando en cada una.
Ilustracin 18: : Ejemplo de tablero kanban para monitorizar y gestionar tareas de mantenimiento
37
Flexibilidad
Kanban Box
Una prctica diseada para responder a las dificultades de gestionar tareas de varios proyectos en el mismo departamento de produccin de software es una implementacin Kanban diseada en Scrum Manager, denominada Kanban Box. La configuracin es la siguiente: La organizacin mantiene una pila de produccin o lista de historias de usuario, pendientes, estimadas y priorizadas. Si la organizacin trabaja en un nico producto, la pila de produccin es en definitiva la pila del producto o product backlog. Si lleva a cabo el desarrollo o mantenimiento simultneo de varios sistemas, la pila de produccin es gestionada por los propietarios de producto, o la oficina de proyectos; en definitiva quienes sean responsables segn la estructura de la organizacin.
En la pila de produccin las tareas estn estimadas y ordenadas segn los criterios de prioridad compartidos entre los intereses de los diferentes proyectos y de la organizacin en conjunto. El equipo que va a hacerse cargo de una historia, la descompone en tareas que representa en una caja kanban:
38
Flexibilidad
(1) (2)
Estimacin temprana de la historia, realizada por juicio de experto por el propietario del producto. Estimacin de la tarea realizada por el equipo al descomponer la historia en tareas.
De esta forma se van encajando las historias de usuario, o preparando para pasar a produccin.
Las cajas preparadas van entrando en los slots disponibles en la columna pendiente del tablero general de la organizacin.
39
Flexibilidad
A diario, cada equipo realiza la reunin de seguimiento o reunin de pie frente al tablero, actualizando el estado de cada tarea (pendiente -> en curso -> hecho), y la actualizacin de las barras de velocidad: La barra de velocidad prevista (1) se actualiza todos los das considerando la velocidad media de la organizacin y el n de miembros del equipo. Si por ejemplo se trata de un equipo de 3 personas y la velocidad media es de 3 puntos por persona/da, cada da la barra de velocidad prevista disminuye e 9 puntos. La barra de velocidad real (2) representa la suma del esfuerzo de las tareas que an se encuentran en estado pendiente y en curso. La diferencia de altura entre las barras de velocidad muestra desviaciones del esfuerzo previsto, en uno u otro sentido, de forma visual y rpida, de forma similar a un grfico burn-down.
40
Flexibilidad
Mudas
Las mudas o razones de desperdicio ms habituales en los proyectos TIC son: Burocracia: Procedimientos, documentacin y papeleo innecesario que no aportan valor al resultado. Sobreproduccin: Desarrollar ms caractersticas de las necesarias. Multiproyecto: Alternar el tiempo de trabajo entre varios proyectos e interrupciones del flujo de trabajo. Esperas: Tiempos de espera por falta de cadencia en el flujo de trabajo. Ir haciendo: Encargar trabajo para ir avanzando algo no definido y as no tener paradas a las personas. Desajustes de capacidad: Personas de gran talento asignadas a tareas rutinarias, y viceversa. Errores: Retrabajo por bugs. Los tableros kanban resultan especialmente tiles para detectar y gestionar las otras dos variables kaizen: Mura y Muri.
Muri
Analicemos cmo el WIP se convierte en un mtodo para ajustar los cuellos de botella (Muri): Al emplear kanban como tcnica con la que regular un incremento continuo desaparece el concepto de sprint. El incremento no es en este caso el resultado de un sprint, sino cada historia de usuario que se termina y entrega. Para lograr un flujo continuo de funcionalidades que, una a una van aportando incrementos de forma sostenida, es necesario evitar la aparicin de cuellos de botella (Muri): la acumulacin de tareas en una determinada fase del proceso. Una tcnica muy til es limitar la cantidad de trabajo que puede acumularse en las fases y generan cuellos de botella.
41
Flexibilidad
Al parmetro que indica el nmero mximo de tareas en un rea del tablero kanban se le denomina WIP: Work In Process, o bien in-process inventory (inventario en el proceso). No se debe confundir con Work in progress (trabajo en progreso) trmino que designa un trabajo que ha comenzado pero an no est terminado. Un valor WIP demasiado bajo puede producir cuellos de botella en otras fases, en especial si el sistema es demasiado rgido (tareas secuenciales y equipo de especialistas). La experiencia ayuda al equipo a ir ajustndolo para lograr un flujo continuo, o lo ms continuo posible. Si no se cuenta con experiencia previa, y considerando que las tareas no deberan tener tamaos mayores de 4 horas ideales, el equipo debe establecer un criterio de inicio, y a partir de l ir ajustando. En este sentido una recomendacin generalmente til (en equipos de personas polivalentes) es empezar con un WIP igual al n de miembros del equipo x 1.5, redondeando el resultado por exceso, x 2. No es aconsejable trabajar con tareas de tamao que se prevea superior a un da de trabajo, y si esto ocurre lo aconsejable es dividirlas en otras de menor tamao. Ejemplo: La figura siguiente presenta una implementacin kanban con lmite de trabajo en los estados Producto analizado y En curso.
Ilustracin 24 WIP
En este ejemplo, el propietario de producto tiene una zona para registrar y ordenar de forma priorizada el backlog (A). Es el rea en la que el responsable de producto aade, modifica, y reordena la prioridad de cada historia de forma continua. Pero slo son tres las historias que pueden estar en estado decididas para pasar a produccin. Tres con la que ya est previsto analizar y revisar la estimacin con el equipo. De igual forma, el rea en curso tiene un lmite de tres historias. Hasta que una no pasa a HECHO, no puede entrar ninguna a produccin, y de igual forma mient ras haya tres en la zona ANALIZADO no se decide cul ser la prxima historia del backlog. De esta forma se crea un flujo de trabajo sin cuellos de botella, continuo y enfocado.
Mura
Los principales factores responsables de la variabilidad del flujo y la aparicin de Mura o tiempos muertos son: Grado de multifuncionalidad de los miembros del equipo Flexibilidad en el orden en el que se deben hacer las diferentes fases de cada tarea Flexibilidad para alterar el orden de entrada de las historias de usuario desde la pila de producto Cuanto mayores sean estos aspectos, ms fcil resulta evitar la aparicin de tiempos muertos.
42
Flexibilidad
De gerencia
Equilibrio sistmico de la organizacin Coherencia del modelo Medios y formacin
De procesos
Configuracin flexible de Scrum Mejora continua Garanta de funcionamiento de Scrum en cada proyecto (en Scrum estndar asignada al rol de Scrum Master)
De produccin
Producto(en Scrum estndar asignada al rol de Propietario del producto) Auto-organizacin (en Scrum estndar asignada al equipo) Tecnologa gil (en Scrum estndar asignada al equipo) El uso de prcticas y tecnologas giles, el trabajo en equipos autoorganizados, disponer de una visin de producto definida y gestionada durante todo el proyecto y garantizar el funcionamiento de scrum durante la ejecucin, son responsabilidades que pertenecen al mbito del proyecto. Que las diferentes reas de la empresa se encuentren comunicadas y alineadas con una visin comn, coherente con un modelo de trabajo gil, disponga de medios para el diseo e implantacin de una implantacin gil adecuada a la empresa, mejora continua del modelo y formacin a las personas, son responsabilidades en el mbito de la organizacin.
43
Flexibilidad
En un marco estndar de Scrum las responsabilidades del mbito del proyecto las asumen roles definidos: La responsabilidad de funcionamiento de Scrum se asigna a un rol de gestor especfico para el funcionamiento de Scrum: Scrum Master. La responsabilidad de visin y gestin del producto al rol especfico de propietario del producto, o product owner. La responsabilidad de autoorganizacin y uso de prcticas y tecnologas giles es propia del equipo. Lo ms comn y aconsejable en fases de implantacin, en equipos no familiarizados con desarrollo gil es la adopcin de este modelo de roles estndar de Scrum. En la evolucin hacia un nivel ms maduro y global de agilidad en la organizacin es aconsejable adaptar el marco de scrum a la realidad de la organizacin, de forma que lo relevante no es la adopcin de determinados roles, sino dar respuesta adecuadamente a todas las responsabilidades. Un ejemplo de asignacin flexible de las responsabilidades del mbito de poroyecto sobre los roles ya existentes en la organizacin podra ser: Garanta de funcionamiento de Scrum => Calidad o procesos Garanta de gestin de producto => Product manager Auto-organizacin y tecnologa gil = Equipo Tanto si en la implantacin de agilidad en la organizacin, las responsabilidades necesarias se asignan a roles de la estructura de la empresa, o se crean nuevos puestos (Product Owner o Scrum Master), lo importante es que las personas que los desempean tengan la experiencia y conocimiento profesional necesario.
Responsabilidades de producto.
Para simplificar la comunicacin y toma de decisiones es necesario que las responsabilidades de gestin del producto las asuma una nica persona. Si se trata de organizaciones cliente grandes o con varios departamentos, stas pueden tener la forma de comunicacin interna que consideren oportuna, pero en el equipo de desarrollo slo se debe incorporar a una persona representando al cliente y con las responsabilidades de producto. Esta persona debe tener el conocimiento suficiente del producto y las atribuciones necesarias para tomar las decisiones que le corresponden.
44
Flexibilidad
Un grupo de trabajo es un conjunto de personas que realizan un trabajo, con una asignacin especfica de tareas, responsabilidades y siguiendo un proceso o pautas de ejecucin. Los operarios de una cadena, forman un grupo de trabajo: aunque tienen un jefe comn, y trabajan en la misma organizacin, cada uno responde por su trabajo. El equipo tiene espritu de colaboracin, y un propsito comn: conseguir el mayor valor posible para la visin del cliente. Un equipo Scrum responde en su conjunto. Trabaja de forma cohesionada y autoorganizada. No hay un gestor que delimita, asigna y coordina las tareas. Son los propios componentes del equipo los que lo realizan. En el equipo: Todos conocen y comprenden la visin del propietario del producto. Aportan y colaboran con el propietario del producto en el desarrollo de la pila del producto. Comparten de forma conjunta el objetivo de cada sprint y la responsabilidad del logro. Todos los miembros participan en las decisiones. Se respetan las opiniones y aportaciones de todos Todos conocen el modelo de trabajo con Scrum.
45
Flexibilidad
Hay un responsable o lder del equipo que asume las responsabilidades de garanta de funcionamiento del campo de Scrum en el proyecto. En las fases de implementacin de Scrum, con equipos sin demasiada experiencia en desarrollo gil con Scrum, y en organizaciones con demasiada rotacin de personas de los equipos entre proyectos, es recomendable la figura de un Scrum Master para asumir estas responsabilidades.
Asesora y formacin al Propietario del producto. Asesora y formacin al equipo. Revisin y validacin de la pila del producto. Moderacin de las reuniones. Resolucin de impedimentos que en el sprint pueden entorpecer la ejecucin de las tareas. Gestin de la dinmica de grupo en el equipo Respeto de la organizacin y los implicados, con las pautas de tiempos y formas de Scrum Configuracin, diseo y mejora continua de las prcticas de Scrum en la organizacin.
Cuanto ms institucionalizada se encuentra la cultura gil en la organizacin menos necesaria es la asignacin de esta responsabilidad a un rol especfico, por estar implcitamente asumidas por los implicados en el proyecto. En casos intermedios es habitual la figura de un team leader en el equipo para cubrir las responsabilidades anteriores con nuevos miembros o propietarios de producto.
46
Bibliografa
Bauer, F., Bolliet, L., & Helms, H. (1969). Software Engineering. Report on a conference sponsored by the NATO SCIENCE COMITEE. Software Engineering (pg. 136). Garmisch: Peter Naur & Brian Randell. Hino, S. (2006). Inside the Mind of Toyota: Management Principles for Enduring Growth. Productivity Press. Kniberg, H., & Skarin, M. (2009). Kanban and Scrum, making the most of both. crisp. Nonaka, I., & Takeuchi, H. (1995). The Knowledge-Creating Company. University Press. Nonaka, I., & Takeuchi, H. (1986). The New New Product Development Game. Harvard Business Review . Nonaka, I., & Takeuchi, I. (2004). Hitotsubashi on Knowledge Management. Singapore: John Wiley & Sons. Ohno, T. (1988). The Toyota Production System: Beyond Large-scale Production. Productivity Press. Orr., K. (2003). CMM versus Agile Development: Religious wars and software development. Cutter Consortium, Executive Reports 3(7) . Poppendieck, M., & Poppendieck, T. (2003). Lean Software Development: An Agile Toolkit for Software Development Managers. Addison Wesley. Schwaber, K. (1995). SCRUM Development Process. Burlington: OOPSLA 95. Turner, R., & Jain, A. (2002). Agile Meets CMMI: Culture Clash or Common Cause? XP/Agile Universe 2002 , 153-165.
Tabla de ilustraciones
Ilustracin 1: Patrn dialctico ......................................................................................................................... 10 Ilustracin 2: Evolucin de los primeros modelos de mejora .......................................................................... 11 Ilustracin 3: Espiral dialctica del conocimiento ............................................................................................ 12 Ilustracin 4: La empresa como sistema ......................................................................................................... 13 Ilustracin 5: Diagrama de conceptos de la gestin de proyectos .................................................................. 14 Ilustracin 6: Personas, procedimientos y tecnologa ..................................................................................... 16 Ilustracin 7: Agilidad con desarrollo incremental iterativo ............................................................................. 20 Ilustracin 8: De la artesana a la produccin lean ......................................................................................... 21 Ilustracin 9 Estructura bsica de un tablero kanban .................................................................................. 28 Ilustracin 10: Fortaleza y variables clave de los tableros kanban ................................................................. 30 Ilustracin 11: reas de informacin y mejora reveladas por los tableros kanban ......................................... 31 Ilustracin 12: Ejemplo de tablero kanban para monitorizar el estado del producto ...................................... 33 Ilustracin 13 Tableros: incremento continuo incremento iterativo ........................................................... 34 Ilustracin 14: Ejemplo de tablero kanban para monitorizar y gestionar incremento continuo. ...................... 35 Ilustracin 15 Ejemplo de tablero kanban para monitorizar y gestionar incremento continuo. .................... 35 Ilustracin 16 Ejemplo de tablero kanban para monitorizar y gestionar incremento continuo ..................... 36 Ilustracin 17: Ejemplo de tablero kanban para monitorizar y gestionar incremento iterativo ....................... 36 Ilustracin 18: : Ejemplo de tablero kanban para monitorizar y gestionar tareas de mantenimiento ............ 37 Ilustracin 19: Ejemplo de pila de producto con tarjetas kanban .................................................................... 38 Ilustracin 20: Ejemplo de implementacin: kanban box ................................................................................ 38 Ilustracin 21: Ejemplo de implementacin: kanban box ................................................................................ 39 Ilustracin 22 : Ejemplo de implementacin: kanban box ............................................................................... 39 Ilustracin 23 : Ejemplo de implementacin: kanban box ............................................................................... 40 Ilustracin 24 WIP........................................................................................................................................ 42 Ilustracin 25: reas de responsabilidad Scrum Manager .............................................................................. 43 Ilustracin 26: mbitos de responsabilidad Scrum Manager .......................................................................... 44
ndice
Cascada, 15 Conocimiento explcito, 16 tcito, 16 Conocimiento tcito, 15 Crisis del software, 10 Desarrollo completo, 14 Desarrollo incremental, 14 Desarrollo incremental continuo, 15 Desarrollo incremental iterativo, 15 Divisin del trabajo, 21 Ejemplo de tablero kanban para ofrecer informacin, 33 Ejemplo detablaro kanban para operacin y mantenimiento, 37 Empresa como sistema, 12 Equipo Caractersticas, 45 Equipo (rol), 45 Espiral dialctica del conocimiento, 12 Flexibilidad, 13, 27 Fordismo, 22 Gestin evolutiva, 15 Gestin experta, 10, 12, 13, 27 Gestin predictiva, 10, 15 Gestin tcnica, 10, 12, 13, 27 Incremento Continuo Ejemplo de tableros kanban, 34 Iterativo Ejemplo de tableros kanban, 36 Incremento iterativo, 20 Ingeniera concurrente, 15 Ingeniera de procesos, 10 Ingeniera del software, 10 Kanban Aplicacin en el sector TIC, 26 Definicin, 26 Kanban Box, 38 Origen y definicin, 26 Lean 14 principios, 23 Definicin, 23 Lean Software Development, 24 Ley de Parkinson, 28 Muda, 41 Mura, 41, 42 Muri, 41 Organizacin cienttica del trabajo, 21 Patrn dialctico, 10 Polivalencia, 30 Procesos, 16 Produccin en cadena, 22 Responsabilidades Scrum Manager, 43 Scrum estndar, 20 Scrum Manager Prcticas, 16 Procedimientos, 16 Secuencia, 29 Tablero kanban conceptos, 28 estructura bsica, 28 lneas de informacin y mejora, 31 operativa, 30 Toyotismo, 22