Metodologías ágiles: Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso
MBAs online reconocidos por Financial Times entre los mejores del mundo en 2012 y 2013 Mejor business school online del mundo según el Ranking Iberoamericano de Escuelas de Negocio en español 2015 por 5º año consecutivo Escogida 2ª mejor Escuela de Negocios según el Ranking de instituciones de formación superior online
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 2
ÍNDICE ¿Eres ágil?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
La transición a la gestión de proyectos ágil. . . . . . . . . . . . . . . . . . . . . . . . . .
4
Pasos para implementar Scrum.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Implementación de Kanban.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Extreme Programming: mejores prácticas e implementación . . . . . . . .
8
Lean: cómo implementar la metodología ágil en un proyecto waterfall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 3
¿Eres ágil?
Todo Director de proyecto que se plantee la implementación de una metodología ágil debe saber que, escoja la que escoja, percibirá una gran diferencia en la forma de afrontar el trabajo y el ánimo del equipo en su conjunto tras la entrega.
La satisfacción de cumplir los plazos más a menudo y el poder hacerlo con muchas menos complicaciones de las que se tienen que superar cuando el proyecto se plantea desde enfoques tradicionales, hace que los miembros de los equipos aumenten sus niveles de motivación. Ésta a su vez impulsa el compromiso, que se refuerza gracias a ese contacto directo y continuo con el cliente, muy beneficioso al permitir comprender mejor sus puntos de vista. Pero el resultado de la implementación de las prácticas ágiles dependerá de la manera en que todos los integrantes del equipo logren contar con el resto. Si se construye un ambiente de apoyo y colaboración, las personas consiguen aprender unos de otros, se vuelven más autónomas y su productividad se ve impulsada, a la vez que lo hace la calidad de los entregables. Las metodologías ágiles son un refuerzo positivo que ayuda a avanzar hacia la excelencia. Pero no todos los proyectos experimentan los beneficios del enfoque ágil de la misma forma. Mientras que en algunos casos la dedicación a las prácticas ágiles puede llegar a ser incluso excesiva, en otros sucede lo contrario y, ni el Director de Proyecto ni los desarrolladores tienen demasiado claro lo que implica el desarrollo ágil.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 4
Implementar alguna de las prácticas ágiles en un entorno tradicional no es ser ágil. Proponerse ser ágil no implica serlo. Ágil no es una solución automática que garantiza una mejora en el desarrollo y creer que lo es puede resultar no sólo frustrante, sino también destructivo para el equipo. La implementación es una etapa clave, que ayuda a asumir el cambio cultural que conlleva la transición a este enfoque y, para que el proceso transcurra con éxito, antes es preciso tratar de librar al equipo de algunos problemas crónicos que lo debilitan, como: • Plazos de entrega cambiantes. • Falta de requisitos de software. • Carencia de visión del proyecto por parte del Project Manager. • Acumulación de tareas sin las especificaciones suficientes. • Solicitudes de revisión inmediatamente después de la entrega. • Insatisfacción del cliente. • Ambiente de desarrollo enrarecido. Es necesario evitar todas estas barreras porque, pese a que ágil garantiza la mejor respuesta en muchas circunstancias, no puede emplearse para hacer frente a problemas más arraigados.
La transición a la gestión de proyectos ágil
Cada organización es diferente, y por lo tanto su transición hacia un estado ágil será distinta. Para asumir esta realidad y facilitar el proceso de implementación ágil, antes hay que plantearse algunas cuestiones: •C ómo es la organización: tamaño, visión, valores, forma de afrontar el trabajo. Es importante darse cuenta de que no se está hablando de proyecto, sino de empresa. •E n qué momento de su viaje hacia el enfoque ágil se encuentra: iniciando la transición, de vuelta tras un retroceso, avanzando con paso lento pero seguro. Conocer la experiencia adquirida en este viaje puede ayudar a optimizar los resultados en el futuro.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 5
• Qué capacidad tiene la organización para gestionar el cambio de forma efectiva: evaluar si se dispone de mecanismos para gestionar el cambio, si el management cuenta con las habilidades necesarias para liderar el proceso evolutivo y si las personas entienden el objetivo de la transición. • De qué forma podría definirse la estructura de la organización: hay que averiguar si es compatible con la de sus clientes y si la transición a ágil sería viable desde un enfoque global o si habría que partir de un área específica. Tras hacer este ejercicio de autoevaluación, las empresas podrán encuadrarse en alguno de los siguientes tipos estándar, siempre con sus propias particularidades: 1. Ágil en cascada: el objetivo de la organización es mantener en funcionamiento los dos tipos de enfoque para sus proyectos. Desean mantener una estructura funcional en línea con los principios waterfall. Las personas se centran en sus funciones. 2. E n plena transición hacia ágil: el objetivo de la organización es la entrega de productos a través de proyectos y para ello ya utiliza una estructura de equipo ágil. La atención de los desarrolladores y el Project manager se pone en el proyecto y el producto. 3. Ágil: en este caso, el objetivo de la organización es en la entrega de productos y soluciones. La organización se basa en equipos ágiles y el foco se pone en la entrega al cliente. Esta clasificación demuestra que, aunque el paso a la gestión de proyectos ágil es muy simple, al mismo tiempo puede resultar extremadamente difícil. En la práctica, la implementación de procesos ágiles es la parte sencilla; pero no ocurre lo mismo con el cambio de mentalidad asociado a este enfoque. Hay que dejar de pensar en proyectos y empezar a hacerlo en productos y no resulta fácil puesto que esta manera de afrontar el trabajo está arraigada en la cultura organizacional, en forma de principios y valores compartidos. Ése es el punto de inicio. Y no hay que subestimar la fuerza de la resistencia que se encontrará en el proceso, a veces causada por el miedo a lo desconocido y otras por lo contrario, opiniones sobre ágil basadas en experiencias que, en la realidad, no eran verdaderamente ágiles y que dificultan el avance. Entre los problemas que más habitualmente surgen en la implementación ágil destacan: • Creer que basta con contratar a un Director de Proyectos Ágiles. • Forzar la transición a ágil como medida de última instancia para conseguir un ahorro en costes. • Miedo a perder el control sobre el proyecto. • Falta de apoyo del liderazgo. • Interpretar que scrum, XP o cualquiera de los enfoques ágiles de gestión de proyectos son métodos o procesos, no principios rectores. • Excederse en la rigidez en la adhesión a las prácticas ágiles. • Centrar la atención en la entrega de proyectos en lugar de en los productos y servicios. • Complicaciones derivadas del trabajo con proveedores y trabajadores externos, cuya visión no está alineada con los principios ágiles. • Falta de confianza o de comunicación entre las comunidades empresariales y de desarrollo. • Adopción parcial de ágil. • Tratar de implementar ágil de forma automática, en vez de plantear la transición como un cambio incremental. • Ausencia de un equipo de proyecto ágil sólido y capaz.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 6
Pasos para implementar Scrum
Scrum proporciona una forma muy simple de gestión de desarrollo de software de manera más eficaz que otros planteamientos. Para implementar Scrum, el más conocido de los enfoques ágiles, basta con recorrer los siguientes pasos: 1. Conocer qué es Scrum: ir más allá de la moda, enterarse de los principios detrás de Scrum, leer libros, interesarse por casos de éxito y tratar de comprender lo que significa realmente. 2. Tener claro por qué se necesita: saber si lo que justifica la inversión es la búsqueda de una manera de optimizar el desarrollo o si se quiere avanzar hacia la excelencia en el servicio al cliente. Evaluar si Scrum se ajustará a la organización y si las personas que trabajarán en base a sus principios serán capaces de hacerlo en un entorno donde no se puede medir, predecir o estimar todo. 3. Trabajar la cultura organizacional: el desarrollo de software ágil significa autoorganización, confianza, atención a las personas, visión de conjunto, respuesta ante el cambio y no todas las empresas son capaces de avanzar si tenerlo todo controlado. Antes de realizar cualquier movimiento orientado a la implementación, hay que averiguar el tipo de cultura organizacional y valorar si se puede ajustar o no a los principios ágiles de Scrum. 4. Enfocar la implementación ágil como un proyecto en sí misma: implementar, por ejemplo, Scrum o XP; es un esfuerzo de organización complejo y, por ello, debe ser tratado como un proyecto. Para la implementación ágil hay que apoyarse en un enfoque ágil, por ejemplo Scrum. será la primera toma de contacto real con los nuevos principios y sentará precedente para todas las iniciativas que vengan después. 5. Avanzar hacia los objetivos: una vez identificada la brecha entre la visión Scrum y el estado actual de la organización hay que plantearse unas metas y trabajar por conseguirlas. Puede que, a priori, parezca un esfuerzo difícil de asumir pero es posible culminar el proyecto con éxito y no hay que plantearse el dar un paso atrás. 6. Recordar la importancia de la gestión del cambio: cada vez que cambia algo en la organización, la gente se resiste. Es lo esperable y también lo normal, pero hace falta saber gestionar esos impulsos para poder sobrevivir al proceso de transición.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 7
7. Predicar con el ejemplo: para que la implementación de Scrum culmine como estaba previsto es preciso contar con todo el apoyo de los niveles ejecutivos pero, además, los managers también deben mostrar que han completado con éxito su adaptación al nuevo enfoque. 8. F omentar la transparencia: la implementación de Scrum es un largo viaje y merece la pena mostrar la hoja de ruta con honestidad a todo el mundo, sin dudar a la hora de comunicar la visión, metas, logros y nuevas medidas. 9. P erder el miedo a experimentar: mientras se observen los principios ágiles de Scrum, no hay ningún inconveniente en probar soluciones y experimentar para averiguar si se ajustan a las necesidades particulares del proyecto y si aportan algún beneficio. 10. R evisar y ajustar: Scrum es una cuestión de adaptación y eso se nota desde el momento de implementar cualquiera de sus enfoques. Si se constata que se está avanzando en una dirección diferente de la planeada originalmente hay que verificar en qué punto se encuentra el proyecto y trabajar pro volver a ganar en ajuste.
Implementación de Kanban Aunque implementar Kanban sin experiencia previa puede parecer complejo en realidad no lo es. Basta con recordar que Kanban tiene que ver con la mejora continua y ponerse en marcha. Siempre habrá tiempo de ganar en ajuste en base a los tres principios fundamentales que deben seguirse a través de todo el proceso: 1. Visualizar el flujo de trabajo. 2. Limitar las actividades en marcha. 3. Optimizar el tiempo de ciclo. En base a estos principios, se puede determinar 5 pasos a seguir para la implementación de Kanban: a) Identificar y comprender los procesos actuales de la empresa, un paso necesario para conocer cuáles son las áreas de mejora futuras.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 8
b) Construir el tablero Kanban, que ayuda a visualizar lo que hay que ver, lo pendiente por hacer y lo que ya se ha completado. c) Determinación de los límites de trabajo en progreso, indicando cuántas tareas pueden estar en la columna para mantener al equipo productivo y comprometido a terminar una tarea antes de poder comenzar otra. d) Seguimiento y optimización del proceso en base al establecimiento de reuniones diarias de corta duración en las que identificar problemas y encontrar soluciones. e) Creación de informes que permitan conocer los datos más relevantes sobre el progreso, como el número de días que se tarda en completar una tarea, el número de tareas que el equipo está trabajando en en un momento y la forma en que está cambiando a través del curso del proyecto; que facilitan el comprender cómo puede mejorarse el proceso.
Extreme Programming: mejores prácticas e implementación
La metodología XP se centra en la adaptabilidad en lugar de en la previsibilidad. Con ello busca alinearse con las necesidades de los proyectos de desarrollo de software, procesos muy fluidos donde los requisitos no se pueden prever en su totalidad desde el principio y que, además, son de naturaleza cambiante.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 9
Este enfoque parte de cuatro dimensiones que, de aplicarse correctamente, mejorarán cualquier proyecto de desarrollo de software: 1. Optimizar la comunicación. 2. Buscar la simplicidad. 3. Proporcionar la retroalimentación necesaria. 4. Actuar con coraje. Además de la combinación de estos principios, la programación extrema trabaja promoviendo la cohesión del equipo y fomentando prácticas sencillas aplicadas en un entorno de información suficiente, que permite maximizar la sincronización, alcanzando niveles a los que no llegan otros planteamientos ágiles. Para la implementación de XP es importante observar las siguientes mejores prácticas: 1. B uscar la alineación del cliente con XP, en el sentido de intentar que logre definir lo más brevemente posible la especificación de la nueva aplicación (características, el valor, prioridad). Explicaciones que servirán como base para el equipo de proyecto a la hora de hacer la estimación de costes y llevar a cabo su gestión. 2. P lanificar el trabajo de forma que se puedan hacer entregas frecuentes en pequeñas dosis: XP hace hincapié en versiones pequeñas, sencillas y frecuentes actualizaciones de la aplicación. Cada requisito añadido se incorpora al instante y el sistema es nuevamente re-lanzado. 3. C onseguir que todos los miembros del equipo se familiaricen con la nomenclatura: hay que conocer las con las normas sobre nombres, nombres de clases y métodos. 4. D ejar claro desde el principio que no existe la autoría individual: en la metodología XP se considera que el código es propiedad colectiva, autoría de todo el equipo y no individual. Por lo tanto, todo el código es revisado y actualizado por todos. 5. A postar por la estandarización en todos los temas relativos al código: los estilos y formatos de codificación deben ser los mismos con el fin de permitir la compatibilidad entre los miembros del equipo. Este enfoque se traduce en una colaboración más rápida. 6. S implificar al máximo el diseño: hay que buscar siempre la implementación del sistema que resulte tan fácil como sea posible reuniendo todas la funcionalidades requeridas. 7. E sforzarse por mantener buenos niveles de comunicación desde el inicio de la implementación: ya que, una vez puesto en marcha un proyecto con XP, la aplicación debe ajustarse continuamente para que todos los miembros del equipo puedan introducir mejoras. Esto requiere muy buena comunicación entre ellos para evitar la aparición de fricciones o la duplicación de trabajo. 8. E ntender que en XP las pruebas son lo primero: para liberar software antes hay que someterlo a pruebas. La singularidad de XP en este aspecto es que las pruebas se crean primero y luego se desarrolla el código capaz de superarlas. 9. Conocer la posición de los desarrolladores ante la programación en parejas: una de las peculiaridades del XP es que los programadores trabajan en parejas en una sola máquina. Esto lleva a producir código de mayor calidad al mismo o menor costo, pero hace falta que los miembros del equipo estén dispuestos a trabajar de esta forma. 10. A sumir las necesidades en materia de horario de trabajo y ubicación: no se debe dedicar ni un minuto extra que supere las cuarenta horas semanales dedicadas al desarrollo XP, ya que los miembros del equipo deben ser capaces de mantener las condiciones mentales y físicas para garantizar un buen rendimiento. Además, hay que tener claro que es muy probable que gran parte de esa labor deba llevarse a cabo en las instalaciones del cliente, dado que se trata de una parte integral del proyecto. El cliente debe estar disponible en todo momento con el fin de asegurar que el proyecto va por el camino correcto.
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 10
Lean: cómo implementar la metodología ágil en un proyecto waterfall Pese a que para una mayoría ésta es una solución intermedia y nada recomendable, en la práctica se puede constatar que es el entorno de proyecto habitual de muchas organizaciones. Los motivos de no decidirse a terminar de dar el paso a ágil son variados y van desde la rigidez de los procesos internos o el estancamiento de la cultura corporativa, a la actitud de la Dirección con escasos conocimientos de lo que implica el planteamiento ágil o demasiados reparos por la pérdida de control (entendido en el sentido tradicional -cascada- del término) que supone. La pregunta es si es posible ser ágiles en cascada. Y la respuesta es sí, es posible ser más ágiles, aunque la cuestión más importante a responder es por qué dar este paso. Normalmente, las motivaciones de las empresas que se deciden a iniciar su etapa ágil tienen que ver con: • Adaptarse a los cambios en las necesidades o las prioridades de negocio. • Reducir el tiempo necesario para las fases de concepto y plan y añadir más tiempo para la fase de desarrollo. • Alcanzar el objetivo de aumento de calidad en las entregas.
Lo que no saben quienes apuestan por las metodologías ágiles es que, gracias a ellas, lograrán controlar mejor las influencias externas y adaptarse de forma más eficaz a sus requisitos cambiantes a la vez que impulsarán la solidez de sus procesos, en los que se percibirá un aumento de calidad en el código, una mayor eficiencia y niveles de rendimiento superiores. Al mismo tiempo, la adopción de un enfoque ágil constituye un medio para transformar la cultura corporativa e impulsar la satisfacción del cliente. Pero, en la implementación ágil, las empresas de estructura, cultura y procedimientos tradicionales han de asumir que les será necesario hacer frente a grandes desafíos derivados del trabajo con dos estilos inherentemente diferentes de gestión de proyectos. Entre estos retos destacan los relacionados con:
Síguenos en:
Metodologías ágiles. Implementación de Scrum, Kanban, XP y Lean en proyectos paso a paso 11
• Terminología: las metodologías ágiles tienen su propia jerga, que hay que conocer para poder llevar a cabo el desarrollo, pero también para cada interacción con el cliente. • Programación: los plazos más reducidos, la mayor flexibilidad y la necesidad de trabajar colaborativamente son requisitos que ponen a prueba las aptitudes ágiles de los desarrolladores, sobre todo si no están acostumbrados a moverse a ritmo de Sprint. • Pruebas: en vez de llevarse a cabo una vez el desarrollo se da por finalizado, los tests tienen lugar de forma frecuente y, en algunos casos, incluso antes de cada ciclo de programación, condicionando su planteamiento y objetivos. • Cliente: a diferencia de otros enfoques, en todos los planteamientos ágiles la participación el cliente es imprescindible y sus aportaciones tenidas en cuenta de forma prioritaria, resultando determinantes para el curso del desarrollo. La complejidad de los desafíos puede dar una idea de la presión que supone el tratar de aplicar los principios ágiles en un entorno de proyecto y dentro de una cultura organizacional que no están alineados con este enfoque. Pese a que no es una opción recomendable, ya que es preferible definir si se puede dar el paso hacia ágil o no, en vez de quedarse a medio camino, para muchas organizaciones este planteamiento temporal puede suponer el impulso necesario para iniciar la transición hacia Scrum o XP, perdiéndole el miedo a las peculiaridades que hacen de ágil tan distinto a cualquier otro planteamiento de desarrollo. Sin embargo, las empresas que se encuentren en esta situación, deberían apostar por iniciar su etapa ágil con lean, cuya implementación pueden llevar a cabo en cinco etapas: 1. Especificar el valor: definir el valor desde la perspectiva del cliente final, en términos de un producto específico, que cumpla con las necesidades del cliente a un precio determinado y en un momento determinado. 2. Concretar la hoja de ruta: identificar la cadena de valor, el conjunto de todas las acciones específicas que se requieren para llegar hasta ese resultado planteado. Es necesario crear un mapa del estado actual y del estado futuro de la cadena de valor en el que se han de identificar los residuos para poder proceder a eliminarlos. 3. Dejar fluir el desarrollo: eliminar las barreras funcionales y desarrollar una cultura organizacional centrada en el producto. 4. Dejar las riendas en manos del cliente: aceptando que la tracción llegue desde esta dirección. 5. Avanzar hacia la excelencia: con la mejora continua en mente, aceptar que siempre es posible esforzarse más, ganar en ajuste y minimizar errores. Volver al primer paso y comenzar la siguiente transformación lean, ofreciendo un producto que cada vez más está más cerca de lo que el cliente busca.
Síguenos en:
Síguenos en: