Diseñame un ejercicio para aprender sobre diferentes metodologias de desarrollo de software
Claro, un ejercicio práctico muy útil para aprender sobre diferentes metodologías de desarrollo de software es organizar un proyecto en varias etapas donde los alumnos trabajen en pequeños equipos. Aquí te presento un ejercicio bien estructurado:
Ejercicio: Desarrollo de una API sencilla para un sistema de gestión de tareas
**Objetivo:** Aprender sobre diferentes metodologías como Agile, Waterfall y Scrum, y su aplicación en un proyecto real.
**Duración:** 4 semanas
**Descripción del Proyecto:** Cada equipo de estudiantes deberá crear una API REST para gestionar tareas (crear, leer, actualizar, eliminar). La API debe permitir a los usuarios agregar tareas, marcar tareas como completadas y eliminar tareas.
**Fases del Ejercicio:**
1. **Introducción y Formación de Equipos (Semana 1):**
- Forma equipos de 4-5 estudiantes.
- Presenta las metodologías: Agile, Scrum y Waterfall. Explica sus principios y en qué contextos suelen ser más efectivas.
- Asigna a cada equipo una metodología diferente, pero busca que todas sigan el mismo objetivo: desarrollar la API.
2. **Planificación del Proyecto (Semana 2):**
- **Waterfall:** Un equipo deberá seguir un enfoque secuencial. Deben crear un documento de requisitos detallados, seguir la implementación, realizar pruebas y luego, finalmente, la entrega. Los estudiantes deben documentar su experiencia en cada fase.
- **Scrum:** Otro equipo trabajará con Scrum. Deberán definir un backlog de producto, planificar sprints de una semana, y tener revisiones diarias (daily stand-ups). Al final de cada sprint, deben presentar la funcionalidad creada.
- **Agile (Kanban):** El equipo restante usará un enfoque Agile Kanban. Deberán crear un tablero Kanban y avanzar de manera continua a medida que completan tareas. Esto incluiría una mejora constante y adaptaciones basadas en los comentarios del equipo.
3. **Implementación (Semana 3):**
- Cada equipo debe comenzar a programar su API. Deben usar una tecnología de su elección (Node.js, Python Flask, Java Spring, etc.) y aplicar buenas prácticas como la gestión de versiones con Git y pruebas unitarias.
- A lo largo de esta fase, los equipos deben colaborar internamente y realizar reuniones periódicas. En el caso de Scrum, deben seguir con sus reuniones diarias y revisión de sprints.
4. **Presentación y Reflexión (Semana 4):**
- Cada equipo presentará su API y explicará cómo aplicaron su metodología. Deben hablar de los desafíos que enfrentaron y lo que aprendieron sobre la metodología elegida.
- Fomenta una discusión entre los equipos sobre las ventajas y desventajas de cada enfoque, y cómo estos enfoques podrían ser aplicables en proyectos reales.
**Evaluación:**
- Evalúa el producto final por su funcionalidad, calidad del código, uso de buenas prácticas y la presentación, así como la reflexión del trabajo en equipo y aplicación de la metodología.
Esta actividad no solo enseña sobre metodologías de desarrollo, sino que también promueve habilidades blandas como comunicación, colaboración y adaptabilidad, fundamentales en el ámbito del desarrollo backend.