Blog

Hackathon IA: Experiencia en la Aceleración del Desarrollo de Software con Herramientas de Inteligencia Artificial

Blog

La inteligencia artificial (IA) está transformando el mundo a un ritmo acelerado. Y la nuestra es una industria que está en el centro de esta revolución: nunca ha sido menos válida la frase «en casa de herrero cuchillo de palo». Además de habilitar nuevos escenarios y permitirnos construir soluciones innovadoras, algo que ciertamente estamos aprovechando vía prácticas dedicadas; en este caso tuvimos otro objetivo: explorar cómo la IA nos puede ayudar a mejorar la eficiencia, calidad y velocidad de nuestro trabajo diario.

Con este propósito, organizamos un Hackathon centrado en la utilización de herramientas de IA, como GitHub Copilot y Chat GPT, para acelerar y mejorar nuestro proceso de desarrollo de software. El enfoque fue analizar formas de aprovechar estas herramientas, identificando a la IA como un aliado en vez de un adversario.

Los equipos participantes tuvieron la oportunidad de probar sus propias hipótesis y trabajar en el desarrollo de una aplicación con varios escenarios previamente definidos. El desafío principal fue determinar en qué aspectos del desarrollo de software (front-end, desarrollo de APIs, creación de casos de prueba, despliegue, mantenibilidad, etc.) la IA podría marcar una diferencia real.

Un equipo adoptó un enfoque meticuloso y bien estructurado para definir y validar sus hipótesis. A pesar de ser un método que requiere más tiempo, su precisión y enfoque detallado en cuestiones específicas condujo a la elaboración de una hipótesis con resultados claros y concretos. Las hipótesis a evaluar fueron relacionadas a la efectividad (en tiempo y calidad) en la generación de artefactos como criterios de aceptación, código productivo y casos de prueba usando como entrada una historia de usuario en lenguaje natural.

Por otro lado, otro grupo mostró un uso ingenioso de las herramientas disponibles, aplicándolas en la creación de historias de usuario y enfocándose en la automatización. Este equipo incluso solicitó a ChatGPT que diseñara una solución completa, incorporada en un script de bash que empaqueta todos los archivos en un contenedor docker y termina ejecutando la aplicación.

Un tercer equipo aplicó las herramientas de IA para abordar un problema específico: la creación y aceleración de los MVPs. Hicieron un uso diverso de las herramientas, maximizando la eficiencia que estas ofrecen. Sin embargo, su enfoque generó cierto debate ya que pusieron en juego la utilización de los modelos de IA para tomar decisiones de diseño, arquitectura o infraestructura, posiblemente en detrimento de la experiencia y el análisis contextual que los profesionales pueden aportar.

Esta discusión puso de manifiesto la importancia de mantener un equilibrio entre la experiencia humana y las recomendaciones de la IA. Es difícil transmitir en un prompt el contexto completo para una decisión de ese tipo, además de que cuando pedimos justificaciones para esas decisiones, estas no son objetivas o simplemente no tienen el contexto completo. Es muy fácil caer en la tentación de confiar a una AI las decisiones relacionadas con aspectos que son muy importantes, como por ejemplo el modelo de arquitectura a utilizar (micro front end, monolítica, etc), qué infraestructura usar (on premise, cloud, etc), entre otras. Estas decisiones claves de cualquier proyecto de software deben ser supervisadas por un/a arquitecto/a con experiencia, y son el resultado de muchas consideraciones que a veces trascienden lo meramente técnico.

Una observación común fue la tendencia a utilizar Chat GPT para la generación de código completo, en lugar de GitHub Copilot para escribir porciones de código más focalizadas por ejemplo. La razón podría ser la comodidad de generar código completo con Chat GPT, pero también evidencia la necesidad de familiarizarse más con estas herramientas y aprender a aprovechar al máximo sus capacidades.

En resumen, el Hackathon fue una oportunidad increíble para explorar las posibilidades de la IA en el desarrollo de software. En todos los casos, si bien los equipos se chocaron con limitaciones o problemas (criterios de aceptación que no cubrían casos negativos, código que requirió cambios para funcionar correctamente, etc), fue muy evidente el impacto masivo que estas herramientas pueden tener sobre nuestros procesos, permitiendo concentrarnos en las partes más creativas y gratificantes del trabajo. Al mismo tiempo es necesario una comprensión profunda de lo generado para “atrapar” esos problemas o bugs, algo que a veces puede ser desafiante (y hasta abrumador) ante el volumen del código que nos devuelve la IA. Pero nuestra experiencia respalda los hallazgos de encuestas recientes que sugieren que el uso continuado de estas herramientas puede aumentar la productividad, la velocidad en tareas repetitivas y permitir a los desarrolladores centrarse en trabajos más gratificantes.

Ahora, nuestro objetivo es continuar explorando y expandiendo nuestras capacidades de IA, buscando siempre formas de mejorar y acelerar nuestros procesos de desarrollo. A pesar de los desafíos y los posibles obstáculos, estamos emocionados por las posibilidades que la IA ofrece para el futuro del desarrollo de software.

Contacto

Contactanos

¿Cómo podemos ayudarte?