✨ 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
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.
- 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.
- 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)
- 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.
- 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.
✅ 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 archivochangelog.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.