Gestión de Recursos y Tiempos - Agsergio04/proyecto-intermodular-david GitHub Wiki

Gestión de Recursos y Tiempos - PreguntaT

Introducción

Este documento detalla cómo el equipo de PreguntaT ha gestionado los recursos materiales, humanos y temporales durante las 6 semanas del proyecto, incluyendo asignación de tareas, estimaciones, velocidad del equipo y gestión de riesgos temporales.


Recursos Humanos

Composición del Equipo

Miembro Rol Principal Especialización Disponibilidad GitHub
Sergio García Full-Stack Developer Backend, DevOps, MongoDB, Docker 40h/semana [@Agsergio04](https://github.com/Agsergio04)
Pablo Sanz Full-Stack Developer Frontend, React, UI/UX, Testing 40h/semana [@pablitoclavito04](https://github.com/pablitoclavito04)

Capacidad Real: 35 horas/semana por persona (después de overhead)
Total Equipo: 70 horas/semana de capacidad
Overhead: 10 horas/semana (reuniones, code reviews, testing, debugging, documentación)

Product Owner

Representante: Profesor/Tutor del proyecto
Disponibilidad: Reuniones semanales + email
Rol: Validar entregables, priorizar backlog, definir criterios de aceptación


🎭 Sistema de Roles Rotativos

Para fomentar el desarrollo de habilidades transversales y evitar cuellos de botella en el conocimiento, implementamos un sistema de 4 roles rotativos que cambian cada sprint:

Roles y Rotación

Sprint Período Scrum Master Tech Lead QA Lead DevOps Lead
Sprint 1 31/10 - 6/11 @Agsergio04 @Agsergio04 @pablitoclavito04 @Agsergio04
Sprint 2 7/11 - 13/11 @pablitoclavito04 @Agsergio04 @pablitoclavito04 @Agsergio04
Sprint 3 14/11 - 20/11 @Agsergio04 @pablitoclavito04 @Agsergio04 @pablitoclavito04
Sprint 4 21/11 - 27/11 @pablitoclavito04 @Agsergio04 @pablitoclavito04 @Agsergio04
Sprint 5 28/11 - 4/12 @Agsergio04 @pablitoclavito04 @Agsergio04 @pablitoclavito04
Sprint 6 5/12 - 11/12 @pablitoclavito04 @Agsergio04 @pablitoclavito04 @Agsergio04

Responsabilidades por Rol

🎯 Scrum Master

  • ACTUALIZAR GitHub Projects DIARIAMENTE antes de 10:00 AM CET
  • Facilitar ceremonias SCRUM (Planning, Daily, Review, Retrospective)
  • Identificar y remover impedimentos
  • Calcular velocidad del sprint al finalizar
  • Gestionar riesgos temporales con buffer

Tiempo estimado: 5-7 horas/sprint

💻 Tech Lead

  • Revisar TODOS los Pull Requests antes de merge
  • Tomar decisiones arquitectónicas
  • Asegurar calidad técnica y estándares de código
  • Resolver dudas técnicas del equipo

Tiempo estimado: 4-6 horas/sprint

🧪 QA Lead

  • Ejecutar pruebas manuales de funcionalidades nuevas
  • Documentar bugs en GitHub Issues
  • Validar criterios de aceptación
  • Testing end-to-end de flujos completos

Tiempo estimado: 5-8 horas/sprint

🚀 DevOps Lead

  • Monitorizar infraestructura (Docker, MongoDB)
  • Gestionar deployments y variables de entorno
  • Mantener CI/CD pipelines
  • Gestionar backups de base de datos

Tiempo estimado: 3-5 horas/sprint (aumenta en Sprint 6)


📅 Planificación de Sprints

Resumen de los 6 Sprints

Sprint Tema Duración Fechas Horas Est. Story Points Velocidad Estado
1 Setup Base 7 días 31/10 - 6/11 19.5h 34 SP 32 SP ✅ Completado
2 CRUD + Auth 7 días 7/11 - 13/11 25.5h 38 SP 36 SP ✅ Completado
3 IA (OpenAI) 7 días 14/11 - 20/11 41h 42 SP 38 SP (est.) 🔄 67% progreso
4 Reportes + Analytics 7 días 21/11 - 27/11 46.5h 40 SP 37 SP (proy.) 📅 Planificado
5 Validación + Gemini 7 días 28/11 - 4/12 29h 36 SP 36 SP (proy.) 📅 Planificado
6 Docs + CI/CD 7 días 5/12 - 11/12 40.5h 42 SP 40 SP (proy.) 📅 Planificado
TOTAL 6 Sprints 6 semanas 31/10 - 11/12 202h 232 SP 219 SP (est.) -

📈 Métricas de Velocidad del Equipo

Velocidad por Sprint

Story Points Completados
40 │                    ╭─── S6 (est. 40)
   │               ╭────┤
38 │          ╭────┤    │
   │     ╭────┤    └─── S3 (est. 38)
36 │─────┤    └──────── S2 (36)
   │     └──────────── S5 (proy. 36)
34 │
   │─────────────────── S4 (proy. 37)
32 │───── S1 (32)
   │
30 └─────────────────────────────
   S1   S2   S3   S4   S5   S6

Análisis de Velocidad

Métrica Valor
Velocidad Promedio 36.5 SP/sprint
Velocidad Sprint 1 32 SP (94% burndown)
Velocidad Sprint 2 36 SP (95% burndown)
Velocidad Sprint 3 38 SP estimado (67% completado al 11/12)
Eficiencia Promedio 90% (considerando overhead)
Horas Promedio/Sprint 33.6 horas
Capacidad/Persona 16.8 horas/sprint efectivas

Tendencias Observadas

  • Velocidad estable: 32-38 SP por sprint
  • Mejora gradual: De 89% a 91% de eficiencia (S1 → S2)
  • Estimaciones más precisas: Burndown mejorando cada sprint
  • ⚠️ Sprint 3 más complejo: 42 SP planificados (revisado durante sprint)

🖥️ Recursos Materiales

Hardware del Equipo

Miembro Equipo Procesador RAM Almacenamiento SO
@Agsergio04 Dell XPS 15 Intel i7-11th Gen 16GB DDR4 512GB SSD Windows 11
@pablitoclavito04 HP Pavilion Intel i5-10th Gen 8GB DDR4 256GB SSD Windows 10

Capacidad suficiente para: Docker, MongoDB local, IDEs, múltiples navegadores, virtualización.

Software y Herramientas

Desarrollo

Herramienta Versión Uso
VSCode 1.85+ IDE principal
Node.js 20.x LTS Runtime backend
npm 10.x Gestor de paquetes
Git 2.42+ Control de versiones
Docker Desktop 24.x Contenedorización
MongoDB Compass 1.40+ Cliente MongoDB
Postman 10.x Testing API

Extensiones de VSCode

  • ✅ ESLint - Linting JavaScript
  • ✅ Prettier - Formateo de código
  • ✅ ES7 React snippets - Snippets React
  • ✅ Auto Rename Tag - Renombrado automático tags HTML
  • ✅ MongoDB for VS Code - Conexión MongoDB
  • ✅ REST Client - Testing endpoints
  • ✅ GitLens - Historial Git enriquecido
  • ✅ TODO Highlight - Destacar TODOs
  • ✅ Code Spell Checker - Corrector ortográfico
  • ✅ Docker - Gestión contenedores
  • ✅ Tailwind CSS IntelliSense - Autocompletado Tailwind

Comunicación y Gestión

Herramienta Uso
GitHub Projects Gestión de tareas y sprints
GitHub Issues Bugs, features, impedimentos
Discord Comunicación diaria del equipo
Figma Diseño de interfaces
Google Meet Reuniones con Product Owner

🌐 APIs y Servicios Externos

Servicios Utilizados

Servicio Plan Límite/Costo Uso en PreguntaT Documentación
OpenAI API Pay-as-you-go $0.01/1K input tokens
$0.03/1K output tokens
Análisis respuestas IA
Generación preguntas
[Docs](https://platform.openai.com/docs)
Gemini API Free Tier 60 req/min
1,500 req/día
Generación alternativa
Validación respuestas
[Docs](https://ai.google.dev/gemini-api/docs)
MongoDB Atlas M0 Free 512MB storage
512MB RAM
Base de datos principal [Docs](https://www.mongodb.com/docs/atlas/)
PayPal API Sandbox (dev) Gratis en dev
2.9% + €0.35 en prod
Sistema de pagos [Docs](https://developer.paypal.com/docs)
GitHub API Free 5,000 req/hora Integración repositorios [Docs](https://docs.github.com/en/rest)

Estimación de Costos

Desarrollo (Sprints 1-6)

  • OpenAI: €25-30/mes (testing y desarrollo)
  • Gemini: €0/mes (free tier suficiente)
  • MongoDB Atlas: €0/mes (M0 Free)
  • PayPal: €0/mes (sandbox)
  • Hosting: €0/mes (local development)

TOTAL Desarrollo: €25-30/mes

Producción (estimado)

  • OpenAI: €50-80/mes (tráfico real)
  • Gemini: €0-20/mes (según uso)
  • MongoDB Atlas: €0-10/mes (puede escalar a M2)
  • PayPal: 2.9% + €0.35 por transacción
  • Hosting (Vercel + Railway): €0-30/mes

TOTAL Producción: €55-110/mes (estimado)


🔐 Gestión de Credenciales y Accesos

Credenciales Necesarias

Servicio Ubicación Responsable Última Rotación
OpenAI API Key backend/.env @Agsergio04 31/10/2024
Gemini API Key backend/.env @Agsergio04 14/11/2024
MongoDB URI backend/.env @Agsergio04 31/10/2024
PayPal Client ID/Secret backend/.env @Agsergio04 07/11/2024
JWT Secret backend/.env @Agsergio04 31/10/2024
Redis Password backend/.env @Agsergio04 31/10/2024

Buenas Prácticas Implementadas

Nunca commitear .env - Archivo en .gitignore
Usar .env.example - Template sin valores reales
Rotación cada 3 meses - Cambio de API keys periódicamente
GitHub Secrets - Para CI/CD workflows
Acceso limitado - Solo @Agsergio04 tiene credenciales de producción

Variables de Entorno Requeridas

# Backend .env
NODE_ENV=development
PORT=3000
MONGODB_URI=mongodb+srv://...
JWT_SECRET=...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
PAYPAL_CLIENT_ID=...
PAYPAL_CLIENT_SECRET=...
REDIS_URL=redis://localhost:6379
FRONTEND_URL=http://localhost:5173

# Frontend .env
VITE_API_URL=http://localhost:3000/api
VITE_PAYPAL_CLIENT_ID=...

⏱️ Gestión de Tiempos y Buffer

Estrategia de Buffer Temporal

Para gestionar imprevistos y riesgos, cada sprint incluye un buffer de tiempo del 10-15%:

Sprint Horas Planificadas Buffer Asignado Buffer Usado % Utilizado
Sprint 1 19.5h 2 días (16h) 1.5 días (12h) 75%
Sprint 2 25.5h 2.5 días (20h) 2 días (16h) 80%
Sprint 3 41h 3 días (24h) 2 días (16h) 67% (parcial)
Sprint 4 46.5h 3 días (24h) - -
Sprint 5 29h 2 días (16h) - -
Sprint 6 40.5h 2.5 días (20h) - -

Promedio de uso de buffer: 74% (saludable, indica estimaciones realistas)

Uso del Buffer por Sprint

Sprint 1 - Buffer Usado: 1.5 días

  • ⏱️ Configuración MongoDB Atlas (4h)
  • ⏱️ Problemas de networking en Docker (3h)
  • ⏱️ Ajustes de configuración TTS (5h)

Sprint 2 - Buffer Usado: 2 días

  • ⏱️ Debugging API OpenAI (6h)
  • ⏱️ Refactorización state machine (5h)
  • ⏱️ Problemas validación React Hook Form (5h)

Sprint 3 - Buffer Usado: 2 días (parcial)

  • ⏱️ Compatibilidad Web Speech API en Safari (8h)
  • ⏱️ Debugging análisis de respuestas IA (8h)

⚠️ Gestión de Riesgos Temporales

Riesgos Identificados y Mitigaciones

Sprint 1

Riesgo Probabilidad Impacto Mitigación Estado
Problemas con API de TTS Media Alto Plan B con Google Cloud TTS ✅ No ocurrió
Latencia generación audios Media Medio Caché + procesamiento async ✅ Implementado
Compatibilidad Docker Baja Alto Probar en diferentes máquinas ✅ Sin problemas

Sprint 2

Riesgo Probabilidad Impacto Mitigación Estado
Complejidad state machine Media Alto Documentar bien transiciones ✅ Mitigado
Testing incompleto Alta Medio Aumentar cobertura a >80% ✅ Logrado

Sprint 3

Riesgo Probabilidad Impacto Mitigación Estado
Web Speech API Safari incompatible Alta Alto Fallback a upload manual ✅ Implementado
Costos OpenAI exceden presupuesto Media Alto Rate limiting + caché ✅ Implementado
Latencia OpenAI >5s Media Alto Usar gpt-4-turbo (más rápido) ✅ Implementado
WebSocket disconnections Media Medio Fallback a polling 🔄 Planificado

Sprint 4 (Planificado)

Riesgo Probabilidad Impacto Mitigación
Complejidad generación PDF Media Medio Usar librería probada (PDFKit)
Performance con datasets grandes Media Alto Paginación + lazy loading
Reestructuración BD rompe funcionalidad Alta Alto Tests exhaustivos + migración cuidadosa

Sprint 6 (Planificado)

Riesgo Probabilidad Impacto Mitigación
Fallo en deployment Media Alto Testing en staging primero
Documentación desactualizada Alta Medio Revisar docs antes de deploy
Costos hosting/Docker Hub Baja Medio Usar free tier cuando sea posible

📊 Configuración de GitHub Projects

Campos Personalizados

Campo Tipo Valores Posibles Uso
Sprint Select S1, S2, S3, S4, S5, S6 Asignar tarea a sprint
Priority Select Critical, High, Medium, Low Priorizar tareas
Estimation Number Horas (0.5, 1, 1.5, 2...) Estimar tiempo necesario
Category Select Backend, Frontend, DevOps, Database, Documentation, Testing Categorizar tarea
Status Auto Backlog, To Do, In Progress, In Review, Done Seguimiento estado
Assignee Person @Agsergio04, @pablitoclavito04 Asignar responsable

Columnas del Board

  1. Backlog - Tareas no priorizadas aún
  2. To Do - Tareas del sprint actual pendientes
  3. In Progress - Tareas en desarrollo activo
  4. In Review - Pull Request creado, esperando aprobación
  5. Done - Tareas completadas que cumplen DoD

Workflow de Actualización

Responsabilidad del Scrum Master: Actualizar GitHub Projects DIARIAMENTE antes de 10:00 AM CET

Tareas diarias:

  1. ✅ Mover tarjetas según progreso real
  2. ✅ Actualizar estimaciones si hay desviaciones
  3. ✅ Crear Issues para nuevos impedimentos
  4. ✅ Revisar que tareas "In Review" avanzan
  5. ✅ Calcular burndown al final del día

Tareas semanales:

  1. ✅ Calcular velocidad al finalizar sprint
  2. ✅ Actualizar /docs/recursos.md con métricas
  3. ✅ Cerrar Issues completados
  4. ✅ Revisar y ajustar backlog

📋 Asignación de Tareas por Sprint

Metodología de Asignación

Sprint Planning (Lunes 10:00 AM):

  1. Revisar Product Backlog priorizado por Product Owner
  2. Seleccionar tareas para Sprint Backlog
  3. Estimar en Story Points (Fibonacci: 1, 2, 3, 5, 8, 13)
  4. Descomponer tareas grandes (>8 SP)
  5. Asignar responsables según especialización y carga

Criterios de asignación:

  • Especialización: Backend → @Agsergio04, Frontend → ambos, DevOps → según rol
  • Carga balanceada: Máximo 20h efectivas/persona/sprint
  • Dependencias: Tareas bloqueantes primero
  • Aprendizaje: Tareas fuera de zona de confort para crecimiento

Ejemplo Sprint 3 - Asignación

Backend (@Agsergio04) - 15h completadas:

  • ✅ Instalar SDK OpenAI (0.5h)
  • ✅ Crear OpenAIService (1h)
  • ✅ Rate limiting con Redis (1h)
  • ✅ Endpoint POST /api/ai/analyze-response (2h)
  • ✅ Sistema scoring 0-100 (1h)
  • 🔄 Análisis por categorías (1h) - EN PROGRESO
  • ⏸️ Endpoint generate-followup (1.5h) - PENDIENTE

Frontend (@pablitoclavito04) - 12h completadas:

  • ✅ Componente LiveInterviewPage (2h)
  • ✅ MediaRecorder API (1.5h)
  • ✅ AudioVisualizer (2h)
  • ✅ Gestión permisos micrófono (1h)
  • ⏸️ WebSocket connection (1.5h) - PENDIENTE
  • ⏸️ FeedbackDisplay (1.5h) - PENDIENTE

📖 Historial de Actualizaciones

Versión Fecha Autor Cambios
v1.0 31/10/2024 @Agsergio04 Documento inicial
v2.0 07/11/2024 @pablitoclavito04 Post-Sprint 1, métricas actualizadas
v2.1 14/11/2024 @Agsergio04 Post-Sprint 2, Sprint 3 en progreso
v3.0 21/11/2024 @pablitoclavito04 Sprint 3 completado, Sprints 4-6 planificados
v3.1 28/11/2024 @Agsergio04 Actualización velocidad, riesgos Sprint 5
v3.2 11/12/2024 @Agsergio04 Sprint 3 al 67%, credenciales y riesgos completos

🎯 Conclusión

La gestión de recursos y tiempos en PreguntaT se ha caracterizado por:

Planificación realista: Estimaciones ajustadas con buffer del 10-15%
Roles rotativos: Desarrollo de habilidades transversales
Velocidad estable: 32-38 SP/sprint con 90% eficiencia
Gestión de riesgos proactiva: Identificación temprana y mitigaciones
Herramientas adecuadas: GitHub Projects, Discord, Docker
Transparencia: Actualizaciones diarias y métricas visibles
Mejora continua: Retrospectivas con acciones concretas

Resultado: Proyecto en tiempo, alta calidad, equipo motivado y aprendiendo continuamente.


Última actualización: 11 de diciembre de 2024
Responsable: @Agsergio04 (Scrum Master Sprint 3)

⚠️ **GitHub.com Fallback** ⚠️