Metodologías Agile y trabajo en equipo
Un grupo de cuatro educandos del preuniversitario quiere hacer una aplicación en LiveCode para controlar los préstamos de la biblioteca escolar. Al principio piensan que lo saben todo, pero a las dos semanas la bibliotecaria pide cambiar cómo se registran los libros. ¿Habrá que rehacer el proyecto entero? Los marcos ágiles responden a esta pregunta: sirven para trabajar cuando los requisitos cambian, sin improvisar.
Cascada frente a Agile
En el proceso de desarrollo de software (epígrafe 2,5) vimos las fases de un proyecto: análisis, diseño, construcción y pruebas. El modelo en cascada las hace una tras otra y solo se ve el resultado completo al final. Los marcos ágiles entregan en cada ciclo corto un incremento pequeño pero funcional.
¿Por qué importa esto? En cascada, un error de requisitos se descubre al final, cuando corregirlo cuesta mucho más. En un marco ágil hay realimentación (opinión del cliente) cada pocos días, así que el cambio se detecta pronto y sale barato.
Ejemplo escolar: un programa de cálculo de notas del grupo, con reglas claras y estables, encaja bien en cascada. La app de la biblioteca, donde la bibliotecaria irá descubriendo lo que necesita, encaja mejor en un enfoque ágil.
Explica con tus palabras qué es una metodología ágil y en qué se diferencia de un desarrollo en cascada clásico (análisis → diseño → construcción → pruebas, todo por…
Explica con tus palabras qué es una metodología ágil y en qué se diferencia de un desarrollo en cascada clásico (análisis → diseño → construcción → pruebas, todo por fases cerradas). Pon un ejemplo de proyecto escolar donde encaje mejor cada enfoque.
Una empresa encargó a un estudio el desarrollo «llave en mano» de su tienda en línea con contrato en cascada y requisitos cerrados. A los ocho meses, al realizarse la…
Una empresa encargó a un estudio el desarrollo «llave en mano» de su tienda en línea con contrato en cascada y requisitos cerrados. A los ocho meses, al realizarse la primera entrega completa, el mercado había cambiado y el 50 % de las funciones ya no eran competitivas.
- a) Justifica técnicamente las causas del fracaso del proyecto apoyándote en el concepto de ciclo de realimentación y en la curva del costo del cambio a lo largo del tiempo.
- b) Diseña una propuesta de reorganización completa del proyecto bajo el marco Scrum: define el alcance de un Producto Mínimo Viable (MVP) para el primer mes, determina el rol y la implicación del cliente en las decisiones de negocio y explica el mecanismo que permitiría pivotar el desarrollo si cambian las prioridades del mercado.
Scrum: roles, sprints y eventos
Scrum organiza el trabajo en sprints: ciclos de duración fija (una o dos semanas, normalmente) en los que un equipo pequeño construye un incremento del producto.
En un equipo Scrum aparecen estas tres funciones: (a) decide qué se construye y prioriza la lista de tareas del producto, (b) elimina obstáculos y vela porque se respete…
En un equipo Scrum aparecen estas tres funciones: (a) decide qué se construye y prioriza la lista de tareas del producto, (b) elimina obstáculos y vela porque se respete el marco de trabajo, (c) construye el producto en cada sprint. Indica qué rol (Product Owner, Scrum Master o equipo de desarrollo) corresponde a cada función y justifica tu elección.
Explica qué es un sprint y qué significa que tenga una duración fija («timeboxing»). ¿Qué ventaja tiene comprometerse a no cambiar el alcance de un sprint una vez…
Explica qué es un sprint y qué significa que tenga una duración fija («timeboxing»). ¿Qué ventaja tiene comprometerse a no cambiar el alcance de un sprint una vez empezado?
Estos eventos de un sprint de Scrum están desordenados: (a) retrospectiva, (b) planificación del sprint, (c) reunión diaria de seguimiento, (d) revisión del incremento…
Estos eventos de un sprint de Scrum están desordenados: (a) retrospectiva, (b) planificación del sprint, (c) reunión diaria de seguimiento, (d) revisión del incremento con el cliente. Ordénalos, explica qué se hace en cada uno y quién participa.
En la reunión diaria de un equipo cada miembro responde a tres preguntas fijas. Enúncialas y redacta las respuestas que daría un desarrollador que ayer terminó la…
En la reunión diaria de un equipo cada miembro responde a tres preguntas fijas. Enúncialas y redacta las respuestas que daría un desarrollador que ayer terminó la pantalla de registro, hoy empezará la de perfil y está bloqueado porque el servidor de pruebas no responde. Explica cómo debe actuar el Scrum Master ante ese bloqueo.
Historias de usuario, estimación y velocidad
Antes de empezar un sprint hay que decidir qué construir y cuánto se puede comprometer a construir.
Ejemplo para la app de la biblioteca: «Como bibliotecaria, quiero registrar el préstamo de un libro, para saber quién lo tiene». Criterio de aceptación: al guardar el préstamo, el libro aparece como «prestado» con el nombre del educando y la fecha de devolución.
También conviene lanzar pronto un producto mínimo viable (MVP): la versión más pequeña que ya aporta valor (por ejemplo, solo registrar préstamos y devoluciones). Así se recibe opinión real cuanto antes, en vez de esperar a tenerlo todo.
Define qué es un producto mínimo viable (MVP) y explica por qué conviene lanzarlo pronto aunque sea incompleto. Pon un ejemplo de MVP para una app de apuntes compartidos…
Define qué es un producto mínimo viable (MVP) y explica por qué conviene lanzarlo pronto aunque sea incompleto. Pon un ejemplo de MVP para una app de apuntes compartidos de la secundaria o del pre.
Explica qué es la velocidad de un equipo ágil y para qué se utiliza en la planificación: si un equipo completó $20$, $24$ y $22$ puntos de historia en sus últimos tres…
Explica qué es la velocidad de un equipo ágil y para qué se utiliza en la planificación: si un equipo completó $20$, $24$ y $22$ puntos de historia en sus últimos tres sprints, ¿qué velocidad media tiene y cuántos puntos debería comprometer como máximo en el siguiente sprint?
Un grupo de cuatro estudiantes desarrolla una app de gestión de préstamos de la biblioteca del preuniversitario. Redacta dos historias de usuario con el formato «Como…
Un grupo de cuatro estudiantes desarrolla una app de gestión de préstamos de la biblioteca del preuniversitario. Redacta dos historias de usuario con el formato «Como [rol], quiero [función], para [beneficio]» y añade a cada una un criterio de aceptación concreto que permita decidir si está terminada.
Un equipo estima sus historias en puntos en lugar de en horas. Explica qué mide la estimación en puntos (esfuerzo, complejidad e incertidumbre relativas) y por qué es…
Un equipo estima sus historias en puntos en lugar de en horas. Explica qué mide la estimación en puntos (esfuerzo, complejidad e incertidumbre relativas) y por qué es más robusta que prometer horas cuando el equipo aún no se conoce bien.
Kanban: tablero, límite de trabajo en curso y tiempo de ciclo
Kanban no divide el trabajo en sprints: visualiza el flujo continuo de tareas y limita cuánto trabajo puede estar «en curso» a la vez.
Un tablero visible para todo el equipo (y a veces para el cliente) evita malentendidos: todos saben quién hace qué, qué está bloqueado y qué falta. Así nadie descubre tarde que una tarea llevaba días parada.
El equipo de una app de recetas usa el tablero Kanban de la figura. Una tarjeta acaba de superar la revisión de código y espera ser colocada. Indica a qué columna debe…
El equipo de una app de recetas usa el tablero Kanban de la figura. Una tarjeta acaba de superar la revisión de código y espera ser colocada. Indica a qué columna debe moverse y qué regla de Kanban hay que comprobar antes de moverla.
¿Por qué las metodologías ágiles insisten en que el tablero de tareas sea visible para todo el equipo (y, a menudo, también para el cliente)? Explica qué problemas de…
¿Por qué las metodologías ágiles insisten en que el tablero de tareas sea visible para todo el equipo (y, a menudo, también para el cliente)? Explica qué problemas de comunicación evita esta transparencia.
Un grupo de cuatro estudiantes desarrolla en un trimestre una app de gestión de préstamos de la biblioteca de la escuela, con una demo funcional cada dos semanas ante la…
Un grupo de cuatro estudiantes desarrolla en un trimestre una app de gestión de préstamos de la biblioteca de la escuela, con una demo funcional cada dos semanas ante la bibliotecaria. Explica si te parece más adecuado Scrum o Kanban para este proyecto y razona tu respuesta con al menos dos argumentos.
Tu aula organiza la feria tecnológica de la escuela: hay que diseñar los stands, la señalética, la web de inscripción y el programa de charlas en ocho semanas. Diseña el…
Tu aula organiza la feria tecnológica de la escuela: hay que diseñar los stands, la señalética, la web de inscripción y el programa de charlas en ocho semanas. Diseña el tablero Kanban del proyecto: columnas, límite de trabajo en curso para cada una, una política explícita de «terminado» y cómo visualizarías las tareas bloqueadas.
Seguimiento visual: burndown, terminado y deuda técnica
Un equipo ágil necesita ver cómo avanza, no solo planificar al principio y revisar al final.
Ejemplo: para entregar antes, el grupo copia y pega el mismo bloque de código de LiveCode en cinco botones. Cuando cambian la regla de préstamo, hay que corregirlo en cinco sitios y es fácil olvidar uno.
Explica la diferencia entre «terminado» (según la definición de terminado del equipo) y «casi terminado». Razona por qué en Scrum solo cuenta como avance el trabajo…
Explica la diferencia entre «terminado» (según la definición de terminado del equipo) y «casi terminado». Razona por qué en Scrum solo cuenta como avance el trabajo completamente terminado y qué problema crea acumular tareas «al 90 %».
El gráfico de la figura muestra el burndown de un sprint de diez días con $40$ puntos comprometidos: la línea ideal y el trabajo real restante cada día. Interpreta la…
El gráfico de la figura muestra el burndown de un sprint de diez días con $40$ puntos comprometidos: la línea ideal y el trabajo real restante cada día. Interpreta la gráfica: ¿en qué tramo el equipo va retrasado?, ¿qué pudo pasar entre los días 4 y 6?, ¿llegará al final del sprint con el trabajo terminado si mantiene el ritmo de los últimos días?
Define «deuda técnica» y explica con un ejemplo cómo se acumula (atajos para entregar antes, falta de pruebas, código duplicado). ¿Por qué un equipo que nunca dedica…
Define «deuda técnica» y explica con un ejemplo cómo se acumula (atajos para entregar antes, falta de pruebas, código duplicado). ¿Por qué un equipo que nunca dedica tiempo a reducirla acaba yendo cada vez más lento aunque trabaje las mismas horas?
Resumen
Vuelve al principio: ante el cambio que pide la bibliotecaria, un equipo ágil no rehace todo; lo añade al backlog y lo incorpora en el siguiente sprint.