En las últimas semanas, desarrollamos un prototipo emocionante con la ayuda de la IA: Jaraco Bills. Nuestro objetivo era mejorar y rediseñar uno de nuestros procesos comerciales utilizando tecnologías modernas de desarrollo basado en indicaciones y de IA.
De la idea a la aplicación -- Con ingeniería de indicaciones
Comenzamos con un desafío muy concreto: buscábamos una herramienta de facturación electrónica que funcionara de manera sencilla para nosotros -- sin mucha complejidad, pero con las funciones necesarias para hacer que nuestros datos de facturación fueran analizables con IA. Sin embargo, lo que encontramos era demasiado recargado, demasiado caro o tan minimalista que no cumplía con nuestros requisitos.
Así que tomamos una decisión: Construiríamos nuestra propia herramienta. Con la ayuda de la IA generativa.
Así nació Jaraco Bills -- un frontend y backend generados por IA que nos permitieron evaluar las nuevas herramientas y posibilidades que ofrece la IA generativa. El proyecto demuestra cómo las tecnologías modernas de desarrollo basado en indicaciones y de IA pueden crear juntas un sistema práctico.
El frontend se desarrolló con bold.new -- exclusivamente a través de ingeniería de indicaciones. Al diseñar la interfaz de usuario, nuestro enfoque estaba en apoyar nuestro propio flujo de trabajo. Queríamos un software que reflejara idealmente nuestro proceso y fuera fácil de usar para nuestros empleados. Otro objetivo era hacer que los datos de facturación fueran analizables con IA -- para esto, se integró un chatbot que puede comunicarse con un LLM autoalojado. Por supuesto, la aplicación debía ser moderna y funcionar de manera confiable y amigable en tantos dispositivos como fuera posible.
El backend se creó con la ayuda de Claude Code (Anthropic) basado en una plantilla de backend Spring Boot Kotlin que contiene nuestras pautas de codificación y especificaciones arquitectónicas.
Lo que aprendimos
La importancia de un buen proyecto base
El proyecto base es crucial. No solo proporciona el marco técnico (por ejemplo, registro, manejo de errores, estructura, código primero), sino también el contexto en el que la IA puede trabajar. El uso de un proyecto base minimalista y bien documentado tiene la ventaja de que el servicio generado se alinea con los servicios existentes que contienen las pautas de codificación y las mejores prácticas. Esto facilita que los desarrolladores comprendan y desarrollen aún más la solución generada.
Revisión de código y sincronización con Git
El código generado por IA también necesita revisiones -- no solo por la sintaxis, sino también por la arquitectura, la seguridad y la mantenibilidad. El uso de Git nos permite rastrear de manera limpia los cambios realizados por la IA y corregirlos o mejorarlos manualmente.
Ingeniería de indicaciones con cuidado
Un punto de dolor recurrente: el tamaño del contexto. Especialmente con código extenso, las indicaciones deben diseñarse para mantenerse eficientes en tokens. Esto significa: importaciones relevantes, descripciones mínimas pero comprensibles, enfoque en funciones individuales.
En particular, el refactorización del código generado a menudo alcanzó los límites de bold.new. Por ejemplo, el cambio de nombre de variables a menudo no se realizó correctamente. Esto es particularmente problemático al usar TypeScript y JSON, ya que tales errores a menudo solo se hacen evidentes durante las pruebas o en tiempo de ejecución.
Pruebas significativas
Un buen código es solo la mitad del trabajo -- también necesitamos pruebas significativas. La pregunta surge: ¿Cómo probar automáticamente el código generado por IA? Aquí también, la configuración correcta es crucial: datos de prueba realistas, expectativas claras y un enfoque en las rutas lógicas centrales.
Próximos pasos
- Evaluar pruebas asistidas por IA -- ¿Pueden Claude y compañía también ayudarnos en la generación de pruebas? ¿Qué otras herramientas están disponibles y cómo las integramos de manera significativa en el proceso de desarrollo con IA generativa?
- Refinar el proyecto base -- Cuanto más robusta sea la plantilla, mejores serán los resultados. ¿Se pueden obtener mejores resultados mediante indicaciones ocultas?
- Construir pipelines de despliegue -- Desde la generación hasta el despliegue: automatizado y trazable. Para esto, estamos evaluando, entre otras cosas: repositorio DevOps separado vs. plantillas K8s en el proyecto, así como Helm o Kustomize.
- Mejorar el manejo del contexto -- por ejemplo, mediante división de código o RAG (Generación Aumentada por Recuperación), para que los grandes proyectos también encajen en las ventanas de contexto de la IA.
- Agregar funcionalidad pendiente -- como la integración de Keycloak para la autenticación basada en roles y la provisión de un servidor MCP para conectar la funcionalidad de facturación y proporcionar datos estructurados para una interacción simple a través del LLM.
Conclusión y Llamado a la Acción
Jaraco Bills es para nosotros más que una simple demostración. Es una prueba práctica de que el desarrollo basado en indicaciones, la IA y DevOps pueden trabajar juntos con éxito.
¡Estamos al comienzo de un desarrollo emocionante! Si está interesado en adaptar el software a sus procesos -- en lugar de adaptar sus procesos al software:
Contáctenos para una consulta inicial individual y gratuita -- ¡o pruebe Jaraco Bills usted mismo! Las solicitudes al respecto a info@jaraco.de.