Para desarrollar la aplicación web descrita bajo la metodología Scrum, es necesario dividir el proceso
en varias etapas clave que se alineen con los principios de iteración y mejora continua propios de
esta metodología. Scrum se organiza en ciclos de desarrollo llamados Sprints, que suelen durar entre
dos semanas y un mes. Cada Sprint sigue una serie de etapas: planificación, ejecución, revisión, y
retrospectiva. A continuación, desglosaré las etapas del desarrollo basándome en la información
proporcionada:
1. Preparación y Planificación:
Creación del Product Backlog: Enumerar todas las funcionalidades y requisitos del sistema descrito,
como la gestión de usuarios, programas, asignaturas, microcurrículos, y guías de estudio, divididos
por roles de usuario (administrador, director, docente).
Investigación de Usuarios y Análisis de Requerimientos:
• Entrevistas con Stakeholders: Hablar con administradores, directores, docentes y
estudiantes para comprender sus necesidades y expectativas.
• Análisis de Competencia: Examinar sistemas similares para identificar mejores prácticas y
posibles áreas de innovación.
• Definición de Personas: Crear perfiles de usuario para los distintos roles del sistema, como
administrador, director y docente.
Product Backlog
Gestión de Autenticación y Autorización:
• Inicio de sesión con autenticación de usuario y contraseña.
• Funcionalidad de cierre de sesión.
• Recuperación de contraseña.
Administración de Usuarios:
• Crear, editar y eliminar usuarios (docentes y directores).
• Búsqueda de usuarios por cédula.
• Asignación y gestión de roles a usuarios.
• Asignación de usuarios a programas específicos.
• Funcionalidad para agregar y eliminar roles y programas en el detalle del usuario.
Administración de Programas:
• Crear, editar y eliminar programas académicos.
• Asignar código y nombre a los programas.
• Visualización y gestión de programas en una lista/tabla.
Administración de Asignaturas:
• Crear, editar y eliminar asignaturas.
• Asociar asignaturas a programas y áreas específicas.
• Definir y gestionar los semestres para las asignaturas.
Gestión de Microcurrículos por Directores:
• Crear y editar microcurrículos.
• Definir créditos, horas presenciales, horas de trabajo independiente y horas totales.
• Agregar y gestionar justificación, objetivos y competencias.
• Gestionar unidades de aprendizaje y contenidos temáticos.
• Administrar bibliografía y glosarios asociados.
Visualización y Gestión de Guías por Directores:
• Visualización de las guías creadas por los docentes.
• Acceso a detalles de guías incluyendo desarrollo de la unidad y evaluación de aprendizaje.
• Editar y eliminar guías.
Gestión de Docentes por Directores:
• Búsqueda de docentes por cédula.
• Visualización y edición de detalles de docentes.
• Asignar asignaturas a los docentes.
Creación y Gestión de Guías por Docentes:
• Crear guías educativas con detalles completos.
• Editar y actualizar guías existentes.
• Eliminar guías.
• Agregar y editar detalles como indicadores de desempeño y evaluaciones.
Visualización de Guías para Docentes:
• Visualizar las guías creadas por ellos mismos.
• Acceder a detalles completos de las guías.
Gestión de Contenidos Educativos:
• Añadir contenido temático a las guías.
• Gestionar desarrollo de unidades de aprendizaje.
Evaluación y Seguimiento:
• Crear y gestionar evidencias de aprendizaje y criterios de evaluación.
• Definir instrumentos de evaluación.
Seguridad y Privacidad:
• Garantizar la seguridad en el manejo de datos de usuarios.
• Implementar políticas de privacidad y protección de datos.
Interfaz de Usuario y Experiencia:
• Desarrollar una interfaz amigable y responsiva para todos los roles.
• Asegurar la coherencia y accesibilidad de la plataforma.
Definición de Roles del Equipo Scrum: Establecer quién será el Product Owner (PO), Scrum Master,
y los miembros del equipo de desarrollo.
Herramientas y Entorno de Desarrollo: Seleccionar las herramientas (Node.js, React, MySQL) y
preparar el entorno de desarrollo y versionado (por ejemplo, GitHub).
2. Sprint 0: Configuración y Diseño Inicial
Configuración del Proyecto: Inicializar el proyecto, configurar el servidor Node.js, la base de datos
MySQL, y el entorno de desarrollo React.
Diseño de la Arquitectura: Definir la estructura del proyecto, incluyendo la base de datos, la API
backend, y la arquitectura frontend.
Prototipado de la UI/UX: Diseñar mockups de las interfaces de usuario para los diferentes roles.
Definición de la Arquitectura de la Información:
• Mapa del Sitio: Diseñar un mapa del sitio que muestre la estructura general y cómo se
relacionan las distintas páginas y funciones.
• Diagramas de Flujo de Usuario: Esbozar los flujos de usuario para las tareas clave, como
crear un programa, asignar roles o generar guías.
Diseño de Interacción:
• Wireframes: Crear wireframes de baja fidelidad para las pantallas clave del sistema,
incluyendo el proceso de login, las tablas de gestión y los formularios de entrada de datos.
• Prototipos Navegables: Desarrollar prototipos de alta fidelidad que permitan a los usuarios
interactuar con la interfaz y proporcionar retroalimentación.
Diseño Visual (UI):
• Guía de Estilo: Desarrollar una guía de estilo que incluya la paleta de colores, tipografías,
iconografía, y componentes de la interfaz.
• Mockups de Alta Fidelidad: Crear mockups detallados que representen el aspecto final de
la interfaz, aplicando la guía de estilo.
Pruebas de Usabilidad:
• Testing con Usuarios: Realizar pruebas de usabilidad con usuarios reales para identificar
problemas de navegación o comprensión.
• Iteración del Diseño: Refinar los prototipos y mockups basándose en la retroalimentación
obtenida.
Sprint 1: Sistema de Autenticación y Estructura Básica
Implementación del sistema de login.
Estructura básica de la interfaz de usuario para diferentes roles.
Configuración inicial de la base de datos.
Historia de usuario:
Como administrador, quiero poder iniciar sesión utilizando un nombre de usuario y contraseña para
acceder a la administración de programas, asignaturas y usuarios.
Sprint 2: Gestión de Usuarios
Desarrollo de funcionalidades para crear, editar, y eliminar usuarios.
Implementación de la búsqueda de usuarios.
Interfaz de administración de usuarios.
Historia de usuario:
Como administrador, quiero poder buscar usuarios por cédula, crear nuevos usuarios, editar su
información y asignarles roles y programas para asegurar una gestión adecuada de los recursos
humanos en la plataforma.
Sprint 3: Gestión de Programas
Implementación de la funcionalidad para agregar, editar, y eliminar programas.
Diseño e implementación de la interfaz de usuario para la gestión de programas.
Historia de usuario:
Como administrador, quiero tener la capacidad de crear, editar y eliminar programas académicos, y
así mantener una oferta educativa actualizada y relevante para los estudiantes.
Sprint 4: Gestión de Asignaturas
Desarrollo de funcionalidades para la creación, edición, y eliminación de asignaturas.
Implementación de la selección de semestre, área, y programa para las asignaturas.
Historia de usuario:
Como administrador, quiero gestionar asignaturas, asociándolas con semestres, áreas y programas
específicos, y realizar modificaciones cuando sea necesario para reflejar cambios en el currículo.
Sprint 5: Funcionalidades para el Rol de Director
Desarrollo de la gestión de microcurrículos.
Implementación de la visualización y administración de guías.
Funcionalidades para la asignación de asignaturas a docentes.
Historia de usuario:
Como director, quiero revisar y gestionar guías y microcurrículos, acceder a detalles y realizar
cambios para asegurar que los contenidos académicos estén alineados con los objetivos del
programa.
Sprint 6: Mejoras en la Gestión de Usuarios y Roles
Ampliación de las funcionalidades de gestión de usuarios para incluir la asignación de roles y
programas.
Implementación de restricciones y validaciones específicas (por ejemplo, un programa puede tener
solo un director).
Historia de usuario:
Como administrador, busco optimizar la gestión de usuarios y roles con opciones mejoradas para la
recuperación de contraseñas y notificaciones de cambios de roles.
Sprint 7: Funcionalidades para el Rol de Docente
Implementación de la creación y gestión de guías por parte de los docentes.
Desarrollo de interfaces para la asignación de unidades, competencias, y metodologías.
Historia de usuario:
Como docente, quiero crear y editar guías didácticas, agregar contenidos temáticos y metodologías
de enseñanza para facilitar la planificación académica y la entrega de instrucciones claras a los
estudiantes.
Sprint 8: Pruebas, Correcciones y Mejoras
Realización de pruebas exhaustivas para identificar y corregir errores.
Ajustes en la interfaz de usuario basados en el feedback.
Optimización del rendimiento.
Pruebas: Realizar pruebas exhaustivas del sistema, incluyendo pruebas unitarias, pruebas de
integración, y pruebas de aceptación del usuario.
Correcciones y Mejoras: Basándose en los resultados de las pruebas, realizar las correcciones
necesarias y mejorar las funcionalidades según sea necesario.
Sprint 9: Preparación para el Lanzamiento y Documentación
Finalización de pruebas de aceptación del usuario.
Preparación de la documentación técnica y de usuario.
Ajustes finales y preparación del entorno de producción.
Preparación del Lanzamiento: Asegurar que el sistema esté listo para el lanzamiento, incluyendo la
realización de pruebas finales y la preparación de la documentación.
Lanzamiento: Desplegar la aplicación en el entorno de producción.
Post-Lanzamiento: Monitoreo y Mantenimiento
Monitoreo: Supervisar el rendimiento de la aplicación y recoger feedback de los usuarios.
Mantenimiento Continuo: Implementar actualizaciones y correcciones basadas en el feedback y en
las necesidades emergentes.
Cada Sprint debe comenzar con una reunión de planificación para definir las historias de usuario
que se desarrollarán y terminar con una revisión para demostrar el trabajo realizado, además de
una retrospectiva para identificar áreas de mejora. Este enfoque iterativo y flexible permite adaptar
el desarrollo a los cambios y asegurar que el producto final cumpla con las necesidades de los
usuarios.