Descripción del Proyecto
Nombre: Sistema Web de Gestión de Horarios y Calificaciones Universitarias
Contexto: Como estudiante de Ingeniería en Sistemas y Computación, propongo desarrollar una aplicación web que permita a los estudiantes consultar horarios, ver calificaciones y recibir notificaciones sobre cambios académicos.
Objetivo: Crear una plataforma web funcional en 4 meses que mejore la comunicación entre estudiantes y administración académica.
Alcance:
Portal web responsive
Módulo de inicio de sesión
Visualización de horarios personalizados
Consulta de calificaciones por materia
Sistema de notificaciones por email
Panel administrativo básico
Equipo: 4 estudiantes (frontend, backend, base de datos, testing/documentación)
Tecnologías: React, Node.js, PostgreSQL, Git/GitHub
Fase de Planificación del Proyecto
1. Cronograma Inicial (16 semanas)
Mes 1 (Semanas 1-4): Análisis y Diseño
Semana 1-2: Levantamiento de requisitos, casos de uso
Semana 3-4: Diseño de BD, mockups UI/UX, arquitectura del sistema
Mes 2 (Semanas 5-8): Desarrollo Sprint 1
Backend: API REST, autenticación
Frontend: Login, dashboard básico
BD: Tablas principales
Mes 3 (Semanas 9-12): Desarrollo Sprint 2
Backend: Módulos de horarios y calificaciones
Frontend: Interfaces de consulta
Integración frontend-backend
Mes 4 (Semanas 13-16): Testing y Despliegue
Testing integral
Corrección de bugs
Documentación
Despliegue en servidor
Aplicación de los 4 Elementos en la Planificación
1. Manejo de Información
Información que necesito gestionar:
Información de entrada:
Requisitos funcionales de usuarios (estudiantes, admin)
Datos de ejemplo para poblar la BD
Documentación de tecnologías a usar
Feedback semanal del equipo
Información de progreso:
Commits diarios en GitHub
Reuniones semanales del equipo (daily standup adaptado)
Checklist de tareas en Trello/Notion
Métricas: % avance por módulo, bugs identificados
Información de salida:
Documentación técnica del sistema
Manual de usuario
Presentación final del proyecto
Plan de gestión de información:
Herramientas:
GitHub: Control de versiones, issues para bugs
Notion: Documentación, notas de reuniones
Trello: Seguimiento de tareas (To Do, In Progress, Done)
Discord/WhatsApp: Comunicación rápida del equipo
Reuniones:
Sincronización semanal (1 hora): revisión de avances y bloqueos
Revisión quincenal con el profesor/asesor: validar progreso
2. Gestión de Imprevistos
Imprevistos Supuestos (Riesgos identificados):
Riesgo Probabilidad Impacto Plan de Respuesta Un compañero abandona el equipo Media Alto Redistribuir tareas, simplificar alcance Problemas con hosting gratuito Alta Medio Tener 2 alternativas (Render, Railway) Retrasos en desarrollo de API Media Alto Priorizar endpoints críticos primero Cambio de requisitos por el profesor Baja Medio Diseño modular que permita ajustes Pérdida de código por error Baja Crítico Commits frecuentes, branches protegidos
Acciones preventivas:
Backup semanal del repositorio
Documentar APIs desde el inicio
Tener slack de 1 semana en el cronograma
Lista de recursos alternativos (tutoriales, librerías)
Ejemplo de Imprevisto Real y Respuesta:
Escenario: En la semana 7, el desarrollador de backend se enferma por 2 semanas.
Respuesta:
Evaluación inmediata: API de autenticación completa, pero módulo de horarios sin empezar
Plan de contingencia:
Compañero de frontend asume backend básico (tiene conocimientos de Node.js)
Se pospone sistema de notificaciones (feature no crítica) para la última semana
Se usan 3 días del buffer de tiempo planificado
Comunicación: Informar al profesor, ajustar expectativas de la demo intermedia
Resultado: Recuperamos el ritmo en semana 9, entregamos con alcance levemente reducido
3. Flexibilidad en la Planificación
Cómo construyo flexibilidad:
A. Diseño Modular:
Arquitectura del sistema:
├── Autenticación (independiente)
├── Módulo Horarios (puede funcionar solo)
├── Módulo Calificaciones (puede funcionar solo)
└── Notificaciones (extra, no crítico)
Si algo falla, los módulos principales pueden funcionar de forma independiente.
B. Reservas de Tiempo:
Buffer por sprint: 2-3 días al final de cada mes para imprevistos
Semana de contingencia: Semana 15 dedicada a ajustes finales
Tareas opcionales: Sistema de notificaciones es "nice to have", no obligatorio
C. Tecnología Flexible:
Framework React permite cambiar componentes fácilmente
API REST es independiente del frontend
BD relacional permite agregar tablas sin romper lo existente
D. Roles Flexibles:
Cada miembro tiene una especialidad pero conoce lo básico de todo
Si alguien se atrasa, otro puede ayudar temporalmente
Pair programming para tareas complejas
Indicadores de flexibilidad:
Velocidad de respuesta a bugs: Meta <24 horas
Tiempo de integración de cambios: Nuevas features en <3 días
Capacidad de reasignación: Cada miembro puede cubrir 30% de tareas de otro
4. Cambio de Rumbo (Pivoting)
Escenarios que justificarían un pivot:
Escenario A: En semana 6 descubrimos que PostgreSQL es muy complejo para nuestro nivel
Decisión de Pivot:
Análisis: Hemos perdido 1 semana luchando con la BD
Alternativa: Cambiar a MongoDB (NoSQL más simple)
Evaluación: Perderíamos 2 días migrando lo que tenemos, pero ganaríamos velocidad
Decisión: PIVOT ✓ - Cambiar a MongoDB
Implementación:
Fin de semana para migrar esquema
Actualizar documentación
Continuar desarrollo sin más retrasos
Escenario B: En semana 10 el profesor sugiere enfocarnos en mobile en vez de web
Decisión de NO Pivot:
Análisis: Ya tenemos 70% del frontend web hecho
Costo: Empezar desde cero en React Native
Beneficio: No justifica el esfuerzo a esta altura
Decisión: NO PIVOT ✗ - Continuar con web, agregar responsive design mejorado
Alternativa: Proponer mobile como Fase 2 del proyecto
Proceso de evaluación de cambio:
Criterios de decisión:
¿Cuánto trabajo ya invertido se perdería? (>50% = no pivot)
¿El cambio soluciona un problema real? (debe ser significativo)
¿Tenemos las habilidades para la nueva dirección? (factor crítico)
¿Hay tiempo suficiente para completar? (mínimo 30% del tiempo restante)
¿El profesor/cliente aprueba? (necesario para validar)
Momentos clave para evaluar pivot:
Final de cada mes (reuniones de revisión)
Cuando aparece un bloqueador que dura >1 semana
Si la retroalimentación del asesor indica problemas fundamentales
Ejemplo de Aplicación Integrada
Situación Real (Semana 8)
Problema detectado: El servidor gratuito de Railway que planeábamos usar cambió sus políticas y ahora cobra después de 500 horas. Nuestro presupuesto es $0.
Aplicación de los 4 elementos:
1. Información
Detectado mediante monitoreo de noticias tech
Compartido inmediatamente en grupo de Discord
Documentado en Notion con alternativas
2. Gestión de Imprevisto (Real)
Clasificación: Riesgo alto-probabilidad que se materializó
Impacto: Bloqueador para despliegue final
Respuesta inmediata: Investigar 3 alternativas (Render, Vercel, Netlify)
3. Flexibilidad
Arquitectura preparada: Backend y frontend separados, fácil de migrar
Docker configurado: Facilita despliegue en cualquier plataforma
Tiempo disponible: Usamos 2 días del buffer de semana 8
4. Evaluación de Pivot
¿Necesitamos cambiar la arquitectura? No, solo el hosting
¿Cambiamos tecnología? No necesario
Decisión: Ajuste menor, no pivot completo
Acción: Migrar a Render (gratis para proyectos estudiantiles)
Resultado: Resuelto en 1 día, sin impacto al cronograma
Lecciones Aprendidas
Lo que funcionó:
El diseño modular nos salvó varias veces
Los buffers de tiempo fueron cruciales
Comunicación constante evitó sorpresas grandes
Lo que mejoraría:
Investigar herramientas gratuitas más profundamente desde el inicio
Hacer prototipos más rápidos para validar ideas
Documentar decisiones técnicas desde la semana 1
Conclusión: Aplicar estos principios en un proyecto universitario real me enseñó que la planificación no es rígida. Un buen plan incluye espacios para adaptarse, y saber cuándo cambiar de rumbo es tan importante como saber cuándo mantenerse firme en la dirección original.
Entregables Finales
Código fuente (GitHub)
Sistema funcionando (demo en vivo)
Documentación técnica (arquitectura, APIs)
Manual de usuario (cómo usar el sistema)
Presentación (15 min explicando el proyecto)
Este documento (reflexión sobre gestión del proyecto)


Write a comment ...