Gestión de Recursos y Tiempos - Agsergio04/proyecto-intermodular-david GitHub Wiki
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.
| 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)
Representante: Profesor/Tutor del proyecto
Disponibilidad: Reuniones semanales + email
Rol: Validar entregables, priorizar backlog, definir criterios de aceptación
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:
| 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 |
- 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
- 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
- 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
- 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)
| 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.) | - |
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
| 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 |
- ✅ 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)
| 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.
| 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 |
- ✅ 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
| 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 |
| 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) |
- 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
- 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)
| 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 |
✅ 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
# 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=...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)
- ⏱️ Configuración MongoDB Atlas (4h)
- ⏱️ Problemas de networking en Docker (3h)
- ⏱️ Ajustes de configuración TTS (5h)
- ⏱️ Debugging API OpenAI (6h)
- ⏱️ Refactorización state machine (5h)
- ⏱️ Problemas validación React Hook Form (5h)
- ⏱️ Compatibilidad Web Speech API en Safari (8h)
- ⏱️ Debugging análisis de respuestas IA (8h)
| 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 |
| Riesgo | Probabilidad | Impacto | Mitigación | Estado |
|---|---|---|---|---|
| Complejidad state machine | Media | Alto | Documentar bien transiciones | ✅ Mitigado |
| Testing incompleto | Alta | Medio | Aumentar cobertura a >80% | ✅ Logrado |
| 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 |
| 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 |
| 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 |
| 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 |
- Backlog - Tareas no priorizadas aún
- To Do - Tareas del sprint actual pendientes
- In Progress - Tareas en desarrollo activo
- In Review - Pull Request creado, esperando aprobación
- Done - Tareas completadas que cumplen DoD
Responsabilidad del Scrum Master: Actualizar GitHub Projects DIARIAMENTE antes de 10:00 AM CET
Tareas diarias:
- ✅ Mover tarjetas según progreso real
- ✅ Actualizar estimaciones si hay desviaciones
- ✅ Crear Issues para nuevos impedimentos
- ✅ Revisar que tareas "In Review" avanzan
- ✅ Calcular burndown al final del día
Tareas semanales:
- ✅ Calcular velocidad al finalizar sprint
- ✅ Actualizar
/docs/recursos.mdcon métricas - ✅ Cerrar Issues completados
- ✅ Revisar y ajustar backlog
Sprint Planning (Lunes 10:00 AM):
- Revisar Product Backlog priorizado por Product Owner
- Seleccionar tareas para Sprint Backlog
- Estimar en Story Points (Fibonacci: 1, 2, 3, 5, 8, 13)
- Descomponer tareas grandes (>8 SP)
- 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
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
| 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 |
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)