← Volver a todos los proyectos

✨ CodeCraft Estimator

Un estimador de proyectos de software impulsado por IA, diseñado para optimizar el proceso de planificación y presupuesto.

💡 Origen del Proyecto y Vibe Coding

Este proyecto fue concebido y desarrollado utilizando la metodología Vibe Coding con Firebase Studio, una aproximación innovadora que combina la generación de código asistida por IA con un entorno de desarrollo integrado. La idea central de la estimación de tiempos, particularmente la fórmula del promedio ponderado para tareas, fue inspirada por un video de Luisina de TodoCode, utilizando la misma lógica de cálculo que ella presenta en su Excel.

Ver video de Luisina de TodoCode aquí:

Desarrollo con Vibe Coding y Firebase Studio

Vibe Coding con Firebase Studio permite una interacción fluida con un modelo de lenguaje grande (LLM) para generar y refactorizar código, lo que acelera significativamente el proceso de desarrollo. Sin embargo, esta metodología presenta sus propios desafíos:

  • Revisión Constante de Cambios: Es crucial monitorear continuamente el código generado por la IA, ya que puede introducir soluciones inesperadas o no óptimas.
  • Corrección de Errores de Tipado: A pesar de usar TypeScript, la IA a veces genera código con errores de tipado que requieren corrección manual.
  • Seguimiento de Cambios de la IA: Mantener un registro claro de qué partes del código fueron generadas por la IA y cuáles fueron modificadas manualmente es esencial para el control de versiones y la depuración.
  • Correcciones Manuales Pequeñas: A menudo se requieren ajustes finos y correcciones manuales para adaptar el código generado a la lógica específica del negocio o a las convenciones del proyecto.
  • Errores de npm build y Despliegue: La integración y compilación final pueden presentar desafíos, requiriendo depuración adicional para resolver errores de construcción y asegurar un despliegue exitoso.

✨ Características Principales

  • Generación de Requisitos con IA: Genera documentos de requisitos de software basados en la entrada del usuario, incorporando mejores prácticas para requisitos funcionales, no funcionales, seguridad y despliegue. El LLM decide qué detalles incorporar o omitir según el prompt. Generación de requisitos con IA
  • Gestión de Módulos: Permite a los usuarios crear, nombrar y organizar módulos de proyecto individuales para estructurar el proceso de estimación. Gestión de módulos
  • Entrada Manual de Tareas: Habilita la entrada manual de tareas dentro de cada módulo, incluyendo estimaciones de tiempo optimistas, pesimistas y más probables. Todas las estimaciones se almacenan como tipos Decimal y pueden ingresarse en minutos, horas o días.
  • Cálculo de Tiempo Automatizado: Calcula el tiempo promedio ponderado para cada tarea usando la fórmula:
    • $$t_p$$ Tiempo Pesimista (estimación más alta)
    • $$t_m$$ Tiempo Más Probable (estimación más realista)
    • $$t_o$$ Tiempo Optimista (estimación más baja)
    $$(t_p + 4 \times t_m + t_o) / 6$$ Muestra esta estimación en pantalla.
  • Ajustes de Riesgo y Complejidad: Proporciona una sección para ingresar posibles riesgos del proyecto (con su estimación de tiempo asociada) y un multiplicador de esfuerzo general para consideraciones como la seguridad o la complejidad del despliegue.
  • Conversión de Tiempo a Costo: Convierte dinámicamente el tiempo total estimado a un costo de proyecto basado en una tarifa por hora definible por el usuario. Los cambios se reflejan reactivamente cuando se ajusta cualquiera de las estimaciones de tiempo. Conversión de tiempo a costo
  • Aumento de Tareas con IA: Permite al usuario ingresar un prompt para añadir más tareas al módulo actual y ajustar los tiempos de las tareas. El LLM decide si las sugerencias de tareas pueden mejorar la entrega del proyecto.
  • Exportación de Estimaciones: Permite exportar las estimaciones de tiempo y costo a un archivo JSON para su uso posterior o para compartir con otros interesados.
  • Estadísticas y gráficas: Genera estadísticas visuales del proyecto, incluyendo gráficos de barras y líneas que muestran la distribución del tiempo estimado por módulo. Conversión de tiempo a costo

✅ Recomendaciones para Futuras Implementaciones con Vibe Coding

Para maximizar la eficiencia y la calidad en futuros proyectos utilizando Vibe Coding, se sugieren las siguientes prácticas:

  • Definir una Arquitectura Clara de Antemano: Antes de iniciar el Vibe Coding, tener una arquitectura de alto nivel bien definida (componentes, flujo de datos, responsabilidades) puede guiar mejor a la IA y reducir la necesidad de refactorizaciones mayores.
  • Mantener un changelog.md Detallado: Además del control de versiones con Git, un archivo changelog.md dedicado puede servir como un registro manual de los cambios significativos realizados por la IA y las intervenciones humanas, facilitando la depuración y el entendimiento del historial del proyecto.
  • Establecer Pruebas Robustas desde el Inicio: Implementar pruebas unitarias y de integración tempranamente en el ciclo de desarrollo ayuda a identificar y corregir errores introducidos por la IA rápidamente, asegurando la consistencia y fiabilidad del código.
  • Iterar en Pequeños Pasos: Realizar cambios incrementales y probarlos con frecuencia puede ayudar a aislar problemas y entender mejor cómo la IA interpreta y genera código.
  • Entender las Capacidades y Limitaciones del LLM: Familiarizarse con las fortalezas y debilidades específicas del LLM utilizado puede ayudar a formular prompts más efectivos y a anticipar posibles áreas problemáticas.