-
- Lean
- Kanban
- Scrum
-
- [Definicion y caracteristicas de las User Stories]
- [Diferencia entrre requerimientos tradicionales y User Stories]
- [Caso de Aplicacion]
- [Criterios de Aceptacion]
- [Como definir criterios de aceptacion de calidad]
- [Roadmap & User Story Mapping]
- [El Roadmap]
- [El User Story Mapping]
SE HACE LO QUE DICE EL JEFE
- Estructura clara y procesos definidos
- Estructura jerarquica
- Direccion y control
- Estructura rigida
- Obstaculo para la innovacion y adaptabilidad
Estructura plana, con menos niveles jerarquicos y mas redes de equipos interconectados
- Rapida adaptacion
- Estructura flexible
- Toma de decisiones descentralizada
- Dificultad para instaurar una vision de equipo
- Falta de procesos definidos
Las organizaciones tradicionales son preferidas en entornos estables y predecibles donde la eficiencia es critica. En cambio las organizaciones agiles son preferidas ante entornos dinamicos y cambiantes.
"Las organizaciones no se transforman, son las personas que se transforman para cambiar las organizaciones"
- Retrasos
- Presupuestos mal calculados
- Entregas incompletas
- Usuarios y clientes insatisfechos
Durante los 60 se presento la crisis del software. En respuesta a esta crisis, surgen:
- Nuevas metodologias de desarrollo
- Herramientas y tecnicas
- Desarrollo de software estructurado
- Programacion orientada a objetos (POO)
- Metodologias agiles
- Educacion y formacion para proveer mayor personal calificado
-
- Secuencialidad
- Documentacion extensa
- Poca flexibilidad
- Previsibilidad
- Facil de entender
- Requerimientos
- Diseño
- Desarrollo
- Pruebas
- Implementacion
- Mantenimiento
-
Conjunto de practicas de desarrollo de software que priorizan la flexibilidad y entrega continua de valor
- Scrum(Divide el desarrollo en sprints o iteraciones cortas)
- Kanban(Centrado en el flujo y limitacion de trabajo en progreso)
- Lean(Eliminar desperdicios y entregar valor de manera eficiente)
- Flexibilidad y adaptabilidad
- Colaboracion
- Entrega continua de valor
- Iteracciones
- Descentralizacion de la toma de decisiones
- Feedback y mejora continua
Aspectos a considerar: Depende de
- Cuan estable y cambiante son los requisitos
- Las caracteristicas del equipo
- Disponibilidad de las partes interesadas
- Importancia que se le de a las entregas tempranas
Los metodos tradicionales buscan definir todo desde el principio no dando lugar a cambios, mientras que los metodos agiles aceptan el cambio y promueven una evolucion continua
El manifiesto Agil (Creado en 2001) fue elaborado por un grupo de expertos en desarrollo de software con el fin de discutir el enfoque de gestion mas adaptable y enfocado en las personas. Centrado en las realidades cambiantes del entorno y reconocer que la flexibilidad, la comunicacion y colaboracion son las claves para el exito Estos valores no solo ofrecen una guia para la creacion de software, sino que tambien apunta a un cambio cultural en las organizaciones, reflejan un cambio a una mayor agilidad en todas las areas de una empresa.
- Individuos e interacciones sobre procesos y herramientas. (Resalta la importancia de las personas y sus interacciones en el equipo. En lugar de depender estrictamente de un software de gestion de proyectos, se fomenta la comunicacion directa, reuniones y sesiones de trabajo colaborativo. Esto no significa descartar las herramientas, sino usarla como apoyo para las interacciones humanas).
- Software funcional sobre documentacion exhaustiva. (El enfoque esta en producir software que funcione y aporte valor real en lugar dedicar esfuerzo excesivo a la documentacion detallada que luego queda desactualizada)
- Colaboracion con el cliente sobre negociacion de contratos. (Prioriza trabajar mano a mano con el cliente. Ej: Equipo de desarrollo en constante contacto con el cliente presentando el progreso para asi alinear cambios, correcciones y ajustes del proyecto.)
- Responder al cambio sobre seguir un plan.(Fomenta la adaptabilidad y capacidad de responder a cambios inesperados.)
Van a ofrecer una guia practica para implementar valores. Tienen en cuenta la entrega continua y adaptabilidad hasta la importancia en la comunicacion y mejora continua.
- Satisfacer al cliente mediante entregas tempranas y continuas de software valioso. (Centrarse en comprender y satisfacer las necesidades del cliente por medio de entregas frecuentes [versiones menores])
- Bienvenidos los cambios en los requisitos, incluso en etapas tardias de desarrollo.
- Entregar software funcionando frecuentemente entre dos semanas a dos meses. (Crear un ciclo de feedback corto)
- Los profesionales del negocio y los desarrolladores deben trabajar juntos diariamente a lo largo del proyecto. (Hace foco en la comunicacion entre los equipos)
- Construir proyectos alrededor de individuos motivados, dandoles el entorno y apoyo que necesitan. (Se enfoca en el capital humano como el punto mas alto)
- El metodo mas eficiente y efectivo de transmitir informacion es la conversacion cara a cara. (Enfoca en que la comunicacion directa construye un equipo mas conectado y agil para llegar a un consenso)
- Software funcionando como la principal medida de progreso. (Que cada incremento de software añada un incremento de valor para el usuario)
- Los procesos agiles promueben un desarrollo sostenible. (Equilibrio entre la vida laboral y personal)
- La atencion continua a la excelencia tecnica y al buen diseño mejora la agilidad. (Equipo buscando mejor calidad de codigo, bien documentado y construido con practicas solidas)
- La simplicidad es esencial. (Destaca la importancia de la eficiencia descartando trabajo innecesario)
- Los mejores arquitectos, requisitos, y diseños emergen de equipos auto-organizados. (Se reconoce el valor de la autonomia y auto-organizacion del equipo)
- A intervalos regulares, el equipo reflexiona sobre como ser mas efectivo y ajusta su comportamiento en consecuencia. (La mejora continaua es el nucleo de este principio)
Adoptar la agilidad es mas que seguir reglas, es transformar nuestra forma de trabajar y pensar, fomentando la adaptabilidad, colaboracion , entrega, reflexion y mejora continua.
Una cultura agil no se limita solo a una serie de practicas o metodos, cuando hablamos de una cultura agil nos referimos a una filosofia que se encuentra en cada aspecto y area de una organizacion. Una cultura agil se caracteriza por poner enfgasis en la flexibilidad y adaptacion, las interacciones humanas, la comunicacion y la colaboracion.
- Flexibilidad y adaptabilidad.
- Colaboracion y comunicacion.
- Empoderamiento y autonomia del equipo.
- Iteraciones y mejora continua.
- Foco en el cliente.
Ser agil no es ser rapido. Mientras la velocidad aplica a cuan rapido se puede finalizar el proyecto, la agilidad es la velocidad en la que finalizamos el proyecto sumado a la flexibilidad que tiene el equipo de adaptarse a todos los obstaculos y cambios que se generen en el transcurso del mismo. Ej: Una empresa que actualiza su software en base a las tendencias actuales, es una empresa que demuestra agilidad.
- Mayor satisfaccion del cliente.
- Mejora en la calidad del producto.
- Eficiencia operativa mejorada.
- Mayor motivacion y satisfaccion del equipo.
La cultura agil trasciende metodos y herramientas. Es un viaje hacia la excelencia operativa, la innovacion continua y el exito compartido.
Las herramientas ágiles facilitan:
- La planificación y seguimiento de proyectos.
- Refuerzan los principios de colaboración, transparencia y adaptabilidad.
- Y maximizan la eficiencia y efectividad del trabajo del equipo.
Es software o sistemas diseñados para ayudar en la organización, programación, y seguimiento del progreso de proyectos o tareas. Algunas de las herramientas más populares para la gestión de proyectos ágiles son JIRA y Trello
Las herramientas de comunicación y colaboración son plataformas y software diseñados para facilitar la interacción, el trabajo en equipo y el intercambio de información entre individuos y grupos. Como por ejemplo Microsoft Teams y Slack
Las herramientas integración y despliegue continuo son fundamentales en el desarrollo de software moderno. Permitiendo automatizar partes del proceso de desarrollo para mejorar la eficiencia, calidad y velocidad de entrega. Algunas de las herramientas más populares en este ámbito son Jenkins y Git
Las herramientas de monitoreo y retroalimentación son esenciales para la gestión de proyectos. Estas herramientas ayudan a las organizaciones y a los equipos a rastrear el rendimiento, obtener información valiosa y mejorar continuamente sus procesos y productos.
Las herramientas ágiles potencian los marcos de trabajo, transformando la colaboración, eficiencia y transparencia en pilares de un cultura ágil efectiva.
El metodo lean con origen en la manufactura se adapto con exito al ambito del desarrollo de software permitiendo gestionar proyectos agiles y crear sistemas eficientes y centrados en el usuario, impulsando innovaciones y mejoras continuas
Parte del desarrollo de sistema de Toyota:
Los principios de lean se convirtieron en una fuente de inspiracion para poder afrontar los desafios en el desarrollo de software.
- Just in time
- Mejora contina y adaptabilidad
- Eficiencia del equipo
- Eliminacion de desperdicios
- Entregar valor al cliente
Esta historia trata sobre la empresa SoftTech que sufre retrasos en entregas, presupuestos sobrepasados y desconexion entre lo que producia el equipo y lo que el cliente necesita
Lo primero que realizaron a traves de encuestas, reuniones de feedback y analisis de datos, comprendieron que es lo que el cliente queria o necesitaba
Lo siguiente fue el mapeo de la cadena de valor, desgloso su proceso de desarrollo de software en etapas individuales para detectar cuales son las etapas que no agregaban valor. Al eliminar o simplificar estas etapas lograron acortar los tiempos.
Crearon un flujo continuo de software, CI-CD.
Implementaron el sistema pull. En lugar de tener un plan rigido, empezaron a trabajar en etapas mas cortas y recolectar rapidamente informacion de los clientes.
Lean Startup es una metodologia que transformo el mundo del emprendimiento y el desarrollo de productos digitales:
El enfoque es "aprender rapido fallando rapido"
Lo que difiere Lean startup de Lean Manufacturing, es que Lean Startup se enfoca en experimentacion y adaptacion, y Lean Manufacturing se enfoca en la eficiencia del proceso
Lean Startup pone al cliente en el centro de todo el proceso de desarrollo. No se desarrolla en lo que creemos que quieren, sino en lo que quieren mediante feedback en las primeras etapas del desarrollo.
Desarrollar una version inicial del producto, medir y aprender de los resultados para luego hacer los ajustes y modificaciones necesarios.
Al principio del proceso de desarrollo se formulan una serie de hipotesis. Luego se diseñan experimentos para validar o invalidar estas hipotesis.
MVP es la version mas simplificada de un producto que permite recopilar la maxima cantidad de aprendizaje validado sobre los clientes con el menor esfuerzo. El objetivo no es desarrollar un producto fin al sino aprender sobre lo que los clientes realmente quieren y necesitan.
El objetivo principal no es simplemente hacer dinero, o servir a los clientes. Sino aprender como construir un negocio sostenible y viable.
Pivotar es hacer cambios significativos, y Preservar es mantener lo realizado y mejorar u optimizar el producto actual.
- Cambio cultural y resistencia organizacional.
- Manejo de la incertudimbre y la ambiguedad.
- Desafios de implementacion practica.
- Gestion de expectativas y metricas de exito.
- Enfoque en el aprendizaje vs resultados inmediatos.
- Enfoque en el cliente.
- Agilidad y adaptabilidad.
- Optimizacion de recursos.
- Innovacion y diferenciacion en el mercado.
- Reduccion de riesgos.
Enfocado en transformar la gestion de proyectos con eficiencia, adaptabilidad y vision.
El origen y la filosofia de Kanban #
- Visualizar el trabajo.
- Limitar el trabajo en progreso.
- Gestionar el flujo de trabajo.
- Mejora continua.
- Mejora la visibilidad.
- Flexibilidad.
- Eficiencia en el flujo de trabajo.
- Mejora continua.
- Moral del equipo.
- Resistencia al cambio.
- Menos efectivo en proyectos estructurados.
- Gestion del tablero.
- Proyectos grandes o distribuidos.
- Falta de planificacion a largo plazo.
Wip -> Work in Progress | DOR --> Definition of Ready | DOD --> Definition of Done
- Es la cantidad de tareas en curso en un momento dado.
- Previene la sobre carga y mejora la eficiencia.
- Reduce el estres y mejora la moral del equipo.
- Varia segun el tamaño y capacidad del equipo, complejidad de las tareas y caracteristicas del proyecto.
- Establece criterios para determinar cuando una tarea esta listo para ser trabajada.
- Actua como un acuerdo entre todo el equipo.
- Asegura la comprension y calidad de requisitos y expectativas, herramientas u otros.
- Los criterios tomados deben ser realistas, medibles y comprensibles.
- Previene retrasos y malos entendidos.
- Establece criterios para determinar cuando una tarea esta completamente finalizada.
- Actua como un acuerdo entre todo el equipo.
- Debe reflejar las necesidades del proyecto y capacidades del equipo.
- Evita el avance de trabajo incompleto o de baja calidad.
- Es importante la determinacion de los criterios y sus significados.
- Se debe educar y motivar al equipo sobre su importancia y beneficios.
- El uso de herramientas digitales puede colaborar en la aceptacion y aplicacion de esos conceptos.
- Permiten mejorar la gestion y promover una cultura de trabajo organizada.
- Mejora en la comunicacion y colaboracion.
- Cultura de mejora continua.
- Mejora en la ejecucion de proyectos.
- Mejora en la dinamica y satisfaccion del equipo.
- Resistencia al cambio.
- Mantener criterios realistas y alcanzables.
- Asegurar una aplicacion consistente.
- Integracion con otros procesos y herramientas de uso.
Es crucial que podamos entender el porque detras de la eficacia de kanban. Factores criticos para el exito: configuracion del tablero, definicion de criterios y adaptacion de herramientas. Es importante conocer los desafios y beneficios que puede proporcionar su implementacion.
Marco de trabajo que transformo el desarrollo de software en el mundo: Es una filosofia de colaboracion y eficiencia, que se basa en una comprension profunda de sus valores y pilares.
Establece de manera clara y concisa los principios fundamentales, roles, eventos y artefactos de scrum. Es un recurso indispensable para quien este implementando o trabajando con scrum.
- Compromiso: Va mas alla de simplemente cumplir tareas, es un compromiso con los objetivos del equipo y proyecto
- Coraje: Valentia de enfrentar desafios, hablar abiertamente y de hacer lo correcto incluso cuando es muy dificil
- Enfoque: Se deben concentrar en el sprint y los objetivos del equipo
- Apertura: Abierto siempre a nuevas ideas, a los cambios, y colaboracion efectiva dentro del equipo
- Respeto: Hacia los compañeros del equipo como profesionales y personas
- Transparencia: Todos los aspectos del trabajo del equipo deben ser visibles a quienes son los responsables de los resultados
- Inspeccion: Los equipos deben inspeccionar regularmente su progreso hacia los objetivos definidos.
- Adaptacion: Realizar ajustes tan pronto como sean posibles, cuando se detectan desviaciones indeseadas.
En Scrum cada rol tiene responsabilidades unicas que son esenciales para el exito del equipo y proyecto. Son partes fundamentales del marco de trabajo Scrum. Cada rol contribuye al proceso agil y los hace esenciales para el proyecto.
- Facilitador: Ayuda a moderar y organizar las reuniones, asegurando que sean productivas y se mantengan dentro del marco de trabajo Scrum(Sprint, Dailys).
- Mentor: Guiar al equipo para la comprension y aplicacion de los principios de Scrum, y ayuda los integrantes a mejorar sus habilidades dentro del marco de trabajo agil. Debe empoderar y motivar.
- Elimina Obstaculos: Debe buscar solventar rapidamente los inconvenientes para no generar retrasos en el proyecto.
- Intermediario: Media entre el equipo y el resto de la organizacion.
- Corazon del equipo
Es el principal tomador de decisiones para con el producto:
- Visionario: Debe entender las necesidades del mercado, los usuarios, y la empresa.
- Gestor del Backlog: Identificar y priorizar los elementos del backlog, asegurando que se prioricen las tareas mas importantes y valiosas.
- Comunicador.
- Decisor: Toma decisiones oportunas sobre caracteristicas a desarrollar y el orden.
- Clave para el exito: Vision estrategica, habilidades de gestion y comunicacion efectiva.
- Autoorganizacion: El equipo toma decisiones en conjunto sobre como abordar los problemas y resolverlos.
- Colaboracion y Comunicacion.
- Compromiso.
- Flexibilidad y Adaptabilidad.
- Impulsa la Innovacion.
- Sinergia entre los roles.
- Comunicacion Efectiva.
- Responsabilidad compartida.
- Adaptacion y mejora continua.
En Scrum cada evento esta diseñado con un proposito especifico. Sirven como puntos de control y oportunidades de ajuste. No solo son reuniones sino que son momentos estrategicos. Son la columna vertebral del proceso scrum.
Es el corazon de Scrum. Establece un ciclo de tiempo durante el cual se crea un producto o se mejora. Dura de una a cuatro semanas. Es importante que los objetivos del sprint sean claros y alcanzables.
Establece la direccion y los objetivos para el sprint. En este evento el Product Owner presenta los elementos del product backlog y sus prioridades. El objetivo es seleccionar que items del backlog pasaran a formar parte del sprint backlog.
Reunion todos los dias. No deberia durar mas de 15'. En este evento cada miembro del equipo comparte su progreso, identifica posibles obstaculos y planifica las acciones del dia. Esta reunion ayuda a detectar problemas rapidamente.
Se realiza al final del sprint. En este evento se recopila el feedback de los stakeholders. Se inspecciona el incremento y determina futuras adaptaciones. Incluye a stakeholders, clientes o usuarios finales. El equipo presenta lo que ha completado en el sprint.
Se realiza luego del Sprint Review. En este evento se reflexiona acerca del sprint y se planifican las mejoras para el proximo. El objetivo es identificar que funciono bien, que podria mejorarse y comop se pueden implementar esos cambios para el proximo sprint. Aqui el equipo discute y propone aspectos de mejora del proceso.
Sirven como punto de control y oportunidades de ajuste, son momentos estrategicos y la columna vertebral del proceso Scrum.
Gestionado por el Product Owner. Priorizacion y Refinamiento. Transparencia y Comunicacion. Adaptacion.
Colaboracion y Autoorganizacion. Transparencia y Adaptabilidad Monitoreo del progreso
Definicion y Proposito Calidad y Cumplimiento Transparencia y Feedback Evolucion continua
Las User Stories son una tecnica fundamental para ayudar a comprender y entregar exactamente lo que nuestros usuarios necesitan
Una User Story es una descripcion narrada que captura una caracteristica deseada por el usuario en pocas oraciones, siempre resaltando el valor que proporciona (INVEST)
- Las User Stories son breves y se centran en la experiencia y necesidades del usuario
- Son conversacionales y colaborativas, diseñadas para evolucionar a traves de la retroalimentacion y las iteraciones
- Las User Stories invitan al equipo a explirar y definir conjuntamente como se puede satisfacer mejor la necesidad del usuario
Imaginemos el caso de una empresa de tecnología que enfrentaba dificultades en la gestión de expectativas de sus clientes. Al adoptar User Stories, el equipo comenzó a redactar historias que representaban las necesidades de los usuarios finales en escenarios reales, facilitando así la identificación de funcionalidades clave y la priorización de tareas.
Son un componente fundamental que transforma un User Story de una simple declaracion de necesidad a una guia precisa para la creacion de valor. Don condiciones especificas que un software o funcion debe cumplir para ser aceptados por los usuarios.
Para definir criterios de aceptacion efectivos, cada US debe ser acompañada de indicadores claros y cuantificables. Incluyendo aspectos de usabilidad, rendimiento y conformidad. Un buen criterio de aceptacion cumple con el criterio SMART.
Ejemplo:
- El usuario debe poder añadir o editar fechas limite en cada tarea individualmente.
- La fecha limite seleccionada debe mostrarse claramente en la interfaz de la tarea.
- El sistema permite seleccionar las fechas dentro del rango de un año desde la fecha actual.
- Las fechas limite establecidas deben ser sincronizadas y visibles en todas las plataformas donde se utilice la app.
- El usuario recibe una notificacion de recordatorio 24hs antes de la fecha limite.
Estas herramientas son vitales en la transformacion de una vision de proyecto en una realidad palpable y ejecutable. El roadmap proporciona una vision estrategica, mientras que el User Story Mapping nos adentra en el corazon de la planificacion del proyecto.
Es un mapa de ruta estrategico que proporciona una vision panoramica de donde queremos ir con el proyecto.
Es una herramienta tactica que ayuda a los equipos a desglosar y priorizar el trabajo de desarrollo en segmentos manejables, asegurando que cada paso del proceso este alineado con las necesidades y expectativas del usuario.
Ventajas:
- Aporta claridad al proceso.
- Permite visualizar el proyecto desde la perspectiva del usuario.
- Ayuda a priorizar tareas.
- Facilita la planificacion.
El Product Owner es el responsable de asegurar que las historias reflejen las necesidades del usuario y se alineen con la vision del producto. Trabaja estrechamente con el equipo y clientes para priorizar y organizar las historias.
- Planning Poker: Tecnica Ludica y colaborativa para estimar el esfuerzo o complejidad de las tareas del proyecto, por medio del usi de cartas con diferentes valores.
- Story Points: Unidad de medida abstracta que se utiliza para estimar la complejidad de una historia de usuario. En lugar de estimar el tiempo, se estima el esfuerzo relativo
- T-Shirt: Son una unidad de medida abstracta que se utiliza para estimar la complejidad de una historia de usuario. En lugar de estimar el tiempo, se estima el esfuerzo relativo.
- Falicita la planificacion.
- Comunicacion y transparencia.
- Adaptacion y flexibilidad.
- Mejora continua.
- MoSCoW: Se destaca por su simplicidad y eficacia. Su nombre es un acronimo de cuatro categorias prioritarias: Must have (Debe tener), Should have (Deberia tener), Could have (Podria tener), Won't have this time(No tendra esta vez). Esto ayuda a enfocar en lo realmente importante.
- Matriz de Eisenhower: Hace uso de una matriz la cual divide las tareas en 4 cuadrantes basados en su urgencia e importancia, ayudando a identificar lo que debe hacerse de inmediato y lo que puede delegarse o posponerse.
- Basada en el Valor: Implica evaluar cada tarea o historia de usuario en terminos de su retorno de inversion y el valor que aporta al cliente o usuario final
- Maximiza el valor entregado.
- Gestion de recursos.
- Facilita la toma de decisiones.
- Respuesta a los cambios.
La priorizacion es esencian en la agilidad ya que guia a los equipos en la toma de decisiones sobre que trabajar primero para maximizar el valor entregado
- La velocidad del equipo: Se calcula sumando los Story points de todas las historias completadas en un sprint. Esta metrica varia entre los equipos.
- Burndown chart: Es uno de los graficos que muestra el trabajo restasnte en el eje vertical frente al tiempo en el eje horizontal. Un grafico ideal muestra una linea descendiente constante hacia cero indicando que el trabajo se esta completando en un ritmo regular
- Lead Time y Cycle Time: Mientras que el Lead Time mide el tiempo total desde la concepcion hasta la entrega, el Cycle Time se centra en el tiempo de produccion activa.
- Throughput: Se refiere al numero de tareas o historias completadas en un periodo de tiempo determinado.
- Indice de Satisfaccion del cliente: Esta metrica se obtiene a traves de encuestas y feedback del cliente.
- Facilita la toma de decisiones
- Mejora continua y adaptabilidad
- Optimiza la planificacion
- Orientacion al cliente