Claro, profundicemos en el punto 3, donde se asigna a cada equipo una metodología de desarrollo diferente. Cada metodología tiene sus propias características y enfoques específicos, así que veamos cómo se pueden aplicar en el contexto del ejercicio: 1. **Cascada**: - En esta metodología, el equipo seguirá un enfoque lineal y secuencial. Las etapas son estrictamente definidas y no se vuelve a las fases anteriores una vez que se completan. - **Actividades**: Primero, deben documentar claramente los requisitos del proyecto. Luego, desarrollan un diseño detallado antes de escribir cualquier código. Posteriormente, se realizará la implementación y pruebas de la aplicación antes de presentar la versión final. - **Colaboración**: La colaboración aquí se centrará más en la documentación clara y la comunicación estructurada, ya que los cambios posteriores en el proceso pueden ser difíciles de manejar. Aprenderán a establecer expectativas desde el principio. 2. **Scrum**: - Esta metodología ágil es ideal para proyectos en constante cambio. Se basa en sprints, que son iteraciones de trabajo cortas (generalmente de dos a cuatro semanas). - **Actividades**: Comenzarán con una reunión de planificación del sprint, donde definirán qué tareas se van a trabajar. Durante cada día, se tendrán reuniones breves (Daily Stand-ups) para discutir el progreso y cualquier impedimento. Al final de cada sprint, se hará una revisión del trabajo y una retrospectiva para mejorar los procesos. - **Colaboración**: La colaboración en Scrum es fundamental. Se fomenta la comunicación diaria y la auto-organización del equipo, lo que mejora la adaptabilidad ante cambios en los requisitos. 3. **Extreme Programming (XP)**: - XP se enfoca en la mejora continua y la calidad del software. Suele ser muy útil en entornos donde los requisitos cambian frecuentemente. - **Actividades**: Prácticas como la programación en pares, la integración continua, y las pruebas frecuentes son esenciales. Antes de cada función nueva, se escribirán pruebas unitarias que deben pasar antes de proceder a la implementación. - **Colaboración**: Promueve una comunicación abierta y frecuente entre programadores y otros interesados. La revisión constante del código y el trabajo en pareja refuerzan la colaboración y la responsabilidad compartida. 4. **Kanban**: - Kanban se centra en la visualización del trabajo en curso y la gestión del flujo. Es altamente flexible y se puede implantar en diferentes etapas del desarrollo de software. - **Actividades**: Usarán un tablero Kanban donde representarán todas las tareas. Las tarjetas de tareas se moverán desde "Por hacer" hasta "En progreso" y "Hecho". Esto permitirá al equipo visualizar su carga de trabajo y gestionar el avance de manera efectiva. - **Colaboración**: La transparencia en el tablero fomenta la colaboración, ya que todos pueden ver qué tareas están en progreso y quién está trabajando en qué, facilitando la comunicación sobre el avance. 5. **Desarrollo Iterativo**: - Este enfoque se basa en ciclos de desarrollo donde cada iteración produce un incremento del software. Permite ajustes frecuentes basados en la retroalimentación del usuario. - **Actividades**: Comenzarán con un conjunto básico de funcionalidades, lanzarán una versión inicial, recogerán comentarios y luego planificarán mejoras en las siguientes iteraciones. - **Colaboración**: Este método favorece la colaboración con los usuarios finales y la evolución del producto, asegurando que el desarrollo esté alineado con las necesidades reales del usuario. Al profundizar en cada metodología, los estudiantes no solo aprenderán los procesos técnicos, sino también cómo la colaboración y el trabajo en equipo influyen en el éxito del proyecto. Cada uno tendrá que pensar en cómo su metodología elegida afectará la dinámica del equipo, la resolución de problemas y la comunicación durante todo el proceso. Esto les permitirá desarrollar habilidades blandas clave, como la empatía, la negociación y la gestión del tiempo.