Saltar a contenido

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:

  1. Investigación del problema: Identificación de una necesidad real mediante entrevistas, encuestas o análisis de situaciones actuales.
  2. Estudio de mercado: Análisis de soluciones existentes, identificación de carencias y oportunidades.
  3. Análisis de viabilidad técnica: Evaluación de si el equipo puede desarrollar la solución con las tecnologías del stack MERN.
  4. Definición de objetivos y alcance: Establecimiento claro de qué se va a desarrollar y qué queda fuera del proyecto.
  5. 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

  1. 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.
  2. 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.
  3. 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

  1. 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).
  2. 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?
  3. 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.
  4. 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

  1. 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.
  2. 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

  1. 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.).
  2. 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.).
  3. 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