Propuesta del proyecto grupal
Fundamentos teóricos
El desarrollo de software profesional comienza con una fase crítica de análisis y planificación que determina en gran medida el éxito del proyecto. Antes de escribir la primera línea de código, es fundamental realizar un estudio exhaustivo que responda a preguntas clave: ¿Qué problema vamos a resolver? ¿Para quién? ¿Es técnicamente viable? ¿Tenemos los recursos necesarios?
El stack MERN
Este proyecto debe desarrollarse utilizando el stack MERN, un conjunto de tecnologías JavaScript que permite el desarrollo full-stack:
- MongoDB: Base de datos NoSQL orientada a documentos.
- Express.js: Framework web para Node.js que facilita la creación de APIs.
- React: Biblioteca de JavaScript para construir interfaces de usuario.
- Node.js: Entorno de ejecución de JavaScript en el servidor.
Este stack es ampliamente utilizado en la industria por su flexibilidad, rendimiento y la ventaja de usar JavaScript en todo el desarrollo.
Fases de una propuesta de proyecto
Una propuesta de proyecto sólida debe incluir:
- Investigación del problema: Identificación de una necesidad real mediante entrevistas, encuestas o análisis de situaciones actuales.
- Estudio de mercado: Análisis de soluciones existentes, identificación de carencias y oportunidades.
- Análisis de viabilidad técnica: Evaluación de si el equipo puede desarrollar la solución con las tecnologías del stack MERN.
- Definición de objetivos y alcance: Establecimiento claro de qué se va a desarrollar y qué queda fuera del proyecto.
- Planificación de recursos: Estimación de tiempo, reparto de tareas, identificación de herramientas y servicios necesarios.
Características de un proyecto viable
Proyectos ADECUADOS para este módulo:
- Resuelven un problema específico y acotado.
- Tienen usuarios objetivo claramente identificados.
- Son originales o aportan valor diferencial significativo.
- Pueden completarse en el tiempo disponible.
- Utilizan las fortalezas del stack MERN (tiempo real, APIs, interfaces reactivas).
- Tienen un alcance realista para el equipo.
Proyectos NO ACEPTABLES:
- Clones de aplicaciones existentes sin aportación de valor.
- Tiendas online genéricas sin propuesta única.
- Redes sociales generales.
- Proyectos excesivamente ambiciosos (múltiples plataformas, IA compleja, blockchain, etc.).
- Aplicaciones que requieren tecnologías fuera del stack MERN.
Objetivos del proyecto
- Identificar una necesidad real que pueda resolverse mediante una aplicación web.
- Realizar un estudio de viabilidad técnica.
- Definir objetivos claros y un alcance realista para el proyecto.
- Planificar los recursos humanos y materiales necesarios.
- Documentar profesionalmente la propuesta de proyecto.
Descripción del proyecto
Este proyecto se realizará en grupos de 3-4 personas definidos por el profesorado usando algoritmos de Inteligencia Artificial.
Fase 1: Detección del problema
-
Identificación de la necesidad:
- Cada miembro del equipo debe proponer al menos una idea de proyecto.
- Realizad brainstorming conjunto y seleccionad la propuesta más viable.
- Investigad el problema: ¿Quién lo sufre? ¿Con qué frecuencia? ¿Cuál es el impacto?
- Recopilar evidencias: entrevistas, encuestas o análisis de situaciones reales.
-
Definición de usuarios objetivo:
- Cread al menos 2 personas (user personas) que representen a vuestros usuarios tipo.
- Definid sus necesidades, frustraciones y objetivos.
- Identificad casos de uso principales.
-
Análisis de competencia:
- Investigad soluciones existentes (mínimo 3).
- Analizad sus fortalezas y debilidades.
- Identificad oportunidades: ¿Qué podéis hacer mejor o diferente?
- Definid vuestra propuesta de valor única.
Fase 2: Estudio de viabilidad técnica
-
Análisis de requisitos funcionales:
- Listad las funcionalidades principales.
- Priorizadlas usando el método MoSCoW (Must have, Should have, Could have, Won't have).
- Definid el MVP (Producto Mínimo Viable).
-
Análisis de requisitos técnicos:
- Frontend (React): ¿Qué bibliotecas adicionales necesitaréis? (routing, state management, UI components, etc.)
- Backend (Node.js + Express): ¿Qué APIs o servicios externos integraréis? ¿Necesitáis autenticación? ¿Qué tipo?
- Base de datos (MongoDB): Diseñad un esquema preliminar de las colecciones principales
- Infraestructura: ¿Dónde desplegaréis? (VPS, Vercel, Render, Railway, etc.) ¿Necesitáis servicios cloud?
-
Evaluación de capacidades del equipo:
- Haced un inventario de habilidades: ¿Quién tiene experiencia en qué?
- Identificad lagunas de conocimiento: ¿Qué necesitaréis aprender?
- Valorad si es realista completar el proyecto en el tiempo disponible.
-
Identificación de riesgos técnicos:
- Listad al menos 5 riesgos potenciales (técnicos, de tiempo, de recursos).
- Proponed estrategias de mitigación para cada riesgo.
Fase 3: Definición de objetivos y alcance
-
Objetivos del proyecto:
- Definid 3-5 objetivos SMART (Específicos, Medibles, Alcanzables, Relevantes, Temporales).
- Separad objetivos generales de objetivos específicos.
- Explicad cómo mediréis el éxito del proyecto.
-
Delimitación del alcance:
- Especificad QUÉ se incluirá en el proyecto.
- Especificad QUÉ NO se incluirá (y por qué).
- Definid posibles ampliaciones futuras.
Fase 4: Planificación de recursos
-
Recursos humanos:
- Definid roles dentro del equipo (Frontend Lead, Backend Lead, Database Manager, etc.).
- Asignad responsabilidades por módulos/funcionalidades.
- Estableced un sistema de comunicación (Discord, Slack, Telegram, etc.).
-
Recursos materiales y tecnológicos:
- Listad todas las herramientas y servicios que utilizaréis:
- Librerías y frameworks específicos.
- Servicios de hosting y bases de datos.
- APIs externas (y sus limitaciones de uso gratuito).
- Herramientas de desarrollo (Git, IDE, testing, etc.).
- Listad todas las herramientas y servicios que utilizaréis:
-
Gestión del proyecto:
- Utilizaréis GitHub Projects.
- Cread un repositorio de GitHub con:
- README.md descriptivo.
- Estructura de carpetas definida.
- Configuración de ramas (main, develop, feature branches).
Fase 5: Documentación de la propuesta
Elaborad un documento profesional que integre todo el trabajo anterior.
Formato y entrega
El equipo entregará un enlace a un repositorio de GitHub (público) que contenga:
1. README.md principal del repositorio
Debe incluir:
- Nombre del proyecto.
- Breve descripción (2-3 párrafos).
- Enlaces a los documentos de la propuesta.
- Información del equipo.
2. Carpeta /docs
con los siguientes archivos:
a) problema.md (Criterio 2a)
- Descripción detallada del problema identificado.
- Usuarios objetivo (user personas).
- Evidencias de investigación (resultados de entrevistas/encuestas).
- Análisis de competencia.
- Propuesta de valor.
b) viabilidad-tecnica.md (Criterio 2b)
- Requisitos funcionales priorizados.
- Requisitos técnicos del stack MERN.
- Esquema de base de datos (diagrama).
- Arquitectura de la aplicación (diagrama).
- Evaluación de capacidades del equipo.
- Análisis de riesgos y mitigaciones.
c) objetivos-alcance.md (Criterio 2d)
- Objetivos SMART del proyecto.
- Definición del MVP.
- Delimitación del alcance (qué SÍ y qué NO).
- Criterios de éxito.
d) recursos.md (Criterio 2e)
- Distribución de roles y responsabilidades.
- Stack tecnológico completo.
- Servicios externos y APIs a utilizar.
- Herramientas de desarrollo y gestión.
Evaluación de la propuesta
Criterio 2a) Se ha recopilado información relativa a los aspectos que van a ser tratados en el proyecto
Indicador | Excelente (2.5pt) | Bien (1.5pt) | Insuficiente (0pt) |
---|---|---|---|
Investigación del problema (2.5pt) | Se presenta investigación exhaustiva con evidencias sólidas (entrevistas, encuestas, datos) que demuestran la existencia y relevancia del problema | Se identifica el problema con alguna evidencia, pero la investigación es superficial o limitada | No se aportan evidencias de investigación o el problema no está claramente identificado |
Definición de usuarios (2.5pt) | Se definen al menos 2 user personas detallados con necesidades, frustraciones y objetivos claros | Se definen usuarios objetivo de forma genérica sin profundizar en sus características | No se definen usuarios o la definición es irrelevante |
Análisis de competencia (2.5pt) | Se analizan al menos 3 soluciones existentes identificando fortalezas, debilidades y oportunidades de mejora | Se mencionan soluciones existentes pero sin análisis profundo | No se analizan alternativas existentes |
Propuesta de valor (2.5pt) | Se articula claramente qué hace único al proyecto y por qué los usuarios lo elegirían frente a otras opciones | Se menciona la propuesta de valor pero sin argumentos sólidos | No se diferencia de soluciones existentes |
Criterio 2b) Se ha realizado el estudio de viabilidad técnica del mismo
Indicador | Excelente (2.5pt) | Bien (1.5pt) | Insuficiente (0pt) |
---|---|---|---|
Requisitos funcionales (2.5pt) | Se listan varias funcionalidades priorizadas con MoSCoW y se define claramente el MVP | Se listan funcionalidades pero sin priorización clara o son demasiado pocas/muchas | No se definen funcionalidades concretas |
Análisis técnico del stack (2.5pt) | Se detallan librerías, servicios y herramientas específicas para cada capa (React, Node.js/Express, MongoDB) con justificación | Se mencionan algunas tecnologías pero sin detallar o justificar | No se especifican las tecnologías más allá del stack básico |
Diseño de base de datos (2.5pt) | Se presenta esquema de colecciones de MongoDB con relaciones, tipos de datos y justificación del modelo NoSQL | Se presenta esquema básico de colecciones sin detallar | No se presenta diseño de base de datos |
Evaluación de capacidades (2.5pt) | Se realiza análisis realista de las habilidades del equipo y se identifican áreas de aprendizaje necesarias | Se menciona la capacidad del equipo de forma superficial | No se evalúan las capacidades del equipo |
Análisis de riesgos (2.5pt) | Se identifican al menos 5 riesgos técnicos relevantes con estrategias de mitigación concretas | Se identifican algunos riesgos pero sin estrategias claras | No se identifican riesgos o son irrelevantes |
Criterio 2d) Se han establecido los objetivos que se pretenden conseguir identificando su alcance
Indicador | Excelente (2.5pt) | Bien (1.5pt) | Insuficiente (0pt) |
---|---|---|---|
Objetivos SMART (5pt) | Se definen 3-5 objetivos que cumplen todos los criterios SMART con métricas de éxito claras | Se definen objetivos pero no todos cumplen los criterios SMART | Los objetivos son vagos o no son medibles |
Definición del MVP (2.5pt) | Se define claramente qué funcionalidades componen el producto mínimo viable y cuáles son ampliaciones | Se define MVP pero sin clara separación de funcionalidades esenciales vs. adicionales | No se define qué constituye el MVP |
Delimitación del alcance (2.5pt) | Se especifica claramente qué SÍ se hará y qué NO se hará, con justificaciones sólidas | Se delimita el alcance pero de forma ambigua | No se delimita claramente qué queda dentro y fuera del proyecto |
Criterio 2e) Se han previsto los recursos materiales y personales necesarios para realizarlo
Indicador | Excelente (2.5pt) | Bien (1.5pt) | Insuficiente (0pt) |
---|---|---|---|
Distribución de roles (2.5pt) | Se asignan roles específicos a cada miembro del equipo con responsabilidades claras y equilibradas | Se mencionan roles pero sin asignación clara o desequilibrada | No se definen roles o la distribución no es coherente |
Stack tecnológico detallado (2.5pt) | Se listan todas las librerías, frameworks y herramientas con versiones específicas y justificación de elección | Se listan tecnologías principales pero sin versiones o sin justificar | No se especifican las tecnologías más allá de MERN básico |
Servicios externos (2.5pt) | Se identifican todos los servicios externos necesarios (hosting, APIs, cloud) con análisis de limitaciones y costes | Se mencionan algunos servicios pero sin analizar limitaciones | No se identifican servicios externos necesarios |
Herramientas de gestión (2.5pt) | Se especifican herramientas para control de versiones, gestión de proyecto, comunicación y testing con configuración inicial | Se mencionan herramientas básicas sin detallar su uso | No se especifican herramientas de gestión |