Saltar al contenido principal

Desarrollo de software con Devin: Integraciones, pruebas y CI/CD (3ª parte)

Aprende cómo Devin se integra con los equipos gestionando tickets de Jira, actualizando Slack y ejecutando comprobaciones CI/CD con Acciones de GitHub antes de fusionar.
Actualizado 26 jun 2025  · 12 min de lectura

¡Bienvenido de nuevo! Al final del segundo tutorialya teníamos una zona de juegos fp-ts en tonos pastel, un backend NestJS + PostgreSQL y un seguimiento anónimo del progreso mediante UUID.

Puedes acceder a todos los tutoriales de la serie Devin aquí:

  1. Configuración y primera Pull Request (Parte 1)
  2. Enviar una rodaja vertical con Devin (2ª parte)
  3. Integraciones, pruebas y CI/CD (3ª parte) 
  4. Seguridad, implantación y mantenimiento (4ª parte)

Lo que hemos hecho hasta ahora es estupendo para hackear en solitario, pero es hora de ver lo bien que se integra Devin en los flujos de trabajo en equipo. En este tercer tutorial, veremos:

  • Integraciones: Devin abrirá tickets de Jira, trabajará en ellos y transmitirá el estado de cada RP directamente a Slack.
  • Puertas de calidad:  Añadiremos pruebas unitarias Jest para la API, flujos Playwright de extremo a extremo para la interfaz de usuario y aplicaremos una cobertura del 90%.
  • CI/CD: Las Acciones de GitHub harán lint, comprobación tipográfica, ejecutarán todas las pruebas y adjuntarán informes de Playwright a las pull requests antes de que se pueda fusionar nada.

Todavía no hay despliegues auth ni prod, ¡eso ocurrirá en la Parte 4!

Configurar una integración de Slack en Devin

Enganchar Devin a tu flujo de comunicaciones y tickets es totalmente manual y se hace a través de la interfaz de Devin.

Puedes conectarte a Slack desde la pestaña de integración de los ajustes de Devin, o instalar la app "Devin AI" desde el Directorio de Apps de Slack.

integración de devin con slack

devin solicita permiso para acceder al espacio de trabajo de slack

La aplicación sigue mostrando "No aprobado por Slack" en el diálogo OAuth. Cognition dice que su revisión de seguridad está pendiente, y que la funcionalidad no se ve afectada.

Luego elige un canal:

elegir un canal slack para el devin

Puedes chatear con Devin con sólo una mención:

E inicia una sesión a la que puedes acceder en la interfaz de usuario:

Devin inicia una sesión en la IU

Por defecto, recibes notificaciones de las actualizaciones de relaciones públicas en el canal que elijas, pero hay algunos ajustes de notificación diferentes que puedes ajustar en los parámetros de cada sesión.

Configurar una integración de Jira en Devin

Para integrarte con Jira, tienes que crear una cuenta de usuario bot dedicada (por ejemplo, devin-bot@… ) y vincular esas credenciales en Devin → Equipo ▸ Integraciones ▸ Jira.

Desde tu cuenta personal, puedes crear un nuevo ticket y añadir la etiqueta devin.

Devin publica un comentario de análisis con un esbozo de plan y una indicación "¿Iniciar sesión? Escribe "sí" para que codifique o quita la etiqueta para que el ticket sea sólo humano.

Nota: Devin no moverá automáticamente cartas por tu tablero. Tú o tu PM aún debéis arrastrarlos a En curso o Hecho. Eso mantiene el control del flujo de trabajo en manos humanas.

Dejar que Devin trabaje desde los tickets de Jira

Una vez que Slack y Jira estuvieron conectados, probé un verdadero experimento de "agente-como-equipo" y lancé tickets reales a Devin para ver si podía implementarlos sin ayuda.

El flujo de trabajo que utilicé

Éste es mi flujo de trabajo:

  1. Crear un ticket en mi proyecto JIRA recién creado y redactar un criterio de aceptación claro.
  2. Añade la etiqueta devin, que es la señal de Devin para analizar.
  3. Devin comenta con un plan paso a paso, una estimación de confianza y pregunta: "¿Iniciar sesión?".

tarea devin

  1. Le contesté "Sí". El ticket muestra "Sesión iniciada" y da el enlace del IDE web. Cuando llega el RP, Devin publica "Fusionado ✅" en Slack, y yo muevo la carta al tablero. Nada de esto cuesta ACUs hasta que responda "Sí".

Cinco billetes reales, cinco resultados muy diferentes

He aquí un resumen de lo que ocurrió con cinco billetes reales:

Billete

Trabajos previstos

ACUs

Cómo actuó Devin en realidad

Migrate SQLite→Postgres

Cambiar el motor de BD, ejecutar migraciones

0.6

Impecable. Un commit, las pruebas se quedaron en verde.

Mejora la interfaz de Sandpack y corrige las pruebas que fallan

Ajustes de la interfaz de usuario + fiabilidad de las pruebas

5.0 (dos sesiones)

Insistió en volver a cambiar a SQLite, falló en los scripts de migración, quemó ACUs. Al final he dividido IU vs pruebas en dos avisos para terminar bajo tope.

Mostrar marcas de finalización en las listas

Añadir ✓ insignias en la lista de ejercicios

0.8

Éxito de una sola vez; incluso añadí una IU optimista.

Validar el sistema de detección

Comprobación de extremo a extremo de que se analiza cada archivo

2.6

Las comprobaciones del backend se han superado, pero el error del frontend persiste. Necesitaba dos empujoncitos.

Eliminar el código de logro abandonado

Eliminar bandera de características + componentes obsoletos

0.4

Devin advirtió "Confianza baja", luego eliminó quirúrgicamente 30 archivos y actualizó las importaciones sin ningún fallo.

Cosas que parecían aleatorias

Éstas son las cosas que habría que mejorar:

  • Títulos de RR: Especificaba un patrón de nombres en cada consulta, pero Devin inventaba un formato nuevo cada vez.
  • Lealtad a la base de datos: En una entrada, migró a Postgres, y en otra, reintrodujo silenciosamente SQLite.
  • Estimaciones de la ACU: En el comentario del análisis se afirmaba que la entrada del paquete de arena llevaría 1,5 ACUs, en realidad fueron dos sesiones y 5 ACUs.
  • La confianza frente a la ejecución: Una entrada con poca confianza se ejecutó en 3 minutos, y perfectamente. Uno con mucha confianza requirió 45 minutos de jugueteo.

Devin en Jira es prometedor: dos tickets se cerraron perfectamente, uno con un ligero empujón, e incluso el peor caso sólo costó tiempo, no una reversión. Pero la coherencia aún no ha llegado, así que el ámbito estricto y las restricciones explícitas son tus amigos.

Añade pruebas automatizadas con Jest y Playwright

Con el chat y los tickets fluyendo, el siguiente paso era asegurarse de que el código roto no pudiera colarse. Le pedí a Devin dos cosas: pruebas unitarias de backend y pruebas Playwright de extremo a extremo que imitaran a un alumno editando un ejercicio en el navegador.

Pruebas unitarias de backend: sorprendentemente indoloras

Le pedí a Devin suites de prueba Jest que cubrieran el resolver GraphQL, la capa de servicio y los modelos Prisma. Cuando pedí una estimación de ACUs, me respondió ¡¡¡20 ACUs!!!

Supuse que debía tratarse de un error y lancé la tarea de todos modos. Costó 1,1 ACU, y fue fácilmente la tarea mejor ejecutada hasta el momento.

Dramaturgo e2e: pared roja, pared verde

Éste era ligeramente más caro y costaba 2,3 UCA.

El flujo registrado: abrir /learn/option-01 → editar código → esperar ✓ → actualizar página → ✓ persiste.

En la primera ejecución, fallaron alrededor del 70 % de las afirmaciones. Había muchos fallos de redimensionamiento, recuentos de salpicadero obsoletos, e incluso el camino feliz fallaba.

A pesar del comando "Ignora las pruebas que fallen, ya lo arreglaremos más tarde" de mi prompt, Devin siguió parcheando código hasta que el conjunto se volvió mayoritariamente verde (útil, pero no lo que yo pedía).

Todavía tenemos algunas pruebas que fallan porque tenemos bastantes fallos en el sistema. Pero no pasa nada, ya arreglaremos las cosas más adelante para asegurarnos de que todas estas pruebas son verdes.

Añade una canalización de acciones de GitHub con un solo clic

Una vez establecidas las pruebas unitarias y de extremo a extremo, el último paso era asegurarse de que cada pull request ejecuta esas comprobaciones automáticamente. Le pedí a Devin un flujo de trabajo básico, sin artefactos, sin puertas de cobertura, sólo lint → comprobación de tipos → pruebas.

Devin entregó una tubería sorprendentemente pulida de un solo golpe, sin necesidad de empujones posteriores:

  • Deriva de configuración cero: Devin reutilizó scripts npm existentes, por lo que no hubo que aprender nuevas herramientas.
  • En paralelo todo: Lint, la comprobación tipográfica y los dos conjuntos de pruebas se ejecutan en paralelo, de modo que todo el flujo de trabajo finaliza en ~4 min en los ejecutores gratuitos de GitHub.
  • Triaje claro: Si ESLint falla pero las pruebas pasan, el trabajo de resumen sigue informando del error de lint; nunca fusionas código "parcialmente rojo".

Devin empujó el flujo de trabajo, esperó a que se completara la comprobación en GitHub, y sólo entonces decidió que estaba hecho. Debo decir que 0,4 ACU para una tubería en pleno funcionamiento es difícil de superar. YAML es claramente el lugar feliz de Devin.

Con este flujo de trabajo fusionado, ¡cada RP debe pasar lint, compilar y ambas suites de pruebas antes de que nadie pulse el botón verde!

Wiki del producto de Devin

Devin incluye una "Wiki" integrada que puede vivir junto a tu código. Es una base de conocimientos ligera y autogenerada que el agente puede leer y escribir mientras trabaja. Después de conectar Slack, Jira y CI, esta Wiki es un buen lugar para las notas arquitectónicas. ¡Merece la pena echarle un vistazo!

devin wiki

Que yo sepa, esto no se puede editar manualmente, y debes confiar en Devin para mantener la Wiki actualizada.

Resumen y reflexiones sobre costes y tiempo

Una vez que todas las integraciones, las pruebas y el pipeline estuvieron en marcha, conté la cuenta y el reloj:

Trozo de trabajo

ACUs

Tiempo práctico

Notas

Conexión a Slack y Jira

0.0

10 min

Clics manuales de OAuth; sin tiempo de agente.

5 tickets de Jira

9.4

2h codazo-y-revisión

Dos entradas estaban bien, una necesitaba empujones y reintentos y pruebas, otra se atascó en el intercambio de SQLite.

Conjunto de unidades Jest (API)

1.1

Revisión de 5 minutos

El susto de "20 ACU" de Devin se convirtió en una joya de 1 ACU.

Playwright e2e suite (web)

2.3

Revisión de 10 minutos

Devin ignoró el "no arregles código", parcheó hasta que 3 pruebas salieron en rojo.

Canalización de acciones de GitHub

0.4

Ajuste en 3 minutos

YAML de una página; primer intento verde.

Total

13,2 UCA

≈ 2h 30 min

≈ 30 $ en el nivel de precio Básico.

Así que, unas 2 horas de esfuerzo humano para conseguir entradas, pruebas y empujar CI. Seguro que es más rápido de lo que yo lo habría hecho.

En este punto, sin embargo, tengo un conflicto. Todavía hay muchos errores, y si yo mismo hubiera escrito toda la base de código, probablemente podría solucionar los problemas más rápido de lo que Devin quema créditos. 

Pero Devin escribió la mayor parte de la aplicación, así que el agente "conoce" la estructura mejor que yo. Aun así, le cuesta sustituir los valores codificados por otros dinámicos, deja cabos sueltos en el código de cada archivo y necesita que me siente delante del portátil para vigilar todas sus acciones.

También encontré el proceso un poco frustrante y no de la misma manera que lo sería perseguir un bicho que no puedo comprender. Hay un mundo de diferencia (al menos para mí) entre estar frustrado porque el código no funciona y estar frustrado porque un agente de IA no pueda seguir unas instrucciones básicas. Esto último es francamente exasperante.

Creo que Devin puede ser muy útil cuando se utiliza bien, pero como ocurre con todos los agentes de IA que existen, no puede sustituir a un ingeniero de software. Está bien utilizarlo para algunas tareas, pero no creo que sea muy adecuado ni sostenible utilizarlo para todas las entradas.

¿Y ahora qué?

Estamos conectados a Slack y Jira, las pruebas están en verde y la puerta CI bloquea cualquier PR descuidado. Pero para un lanzamiento real de la producción, aún nos faltan cuatro pilares:

  1. Autenticación: cablea credenciales NextAuth → cookies JWT → GqlAuthGuard en NestJS para que el progreso esté vinculado a usuarios reales.
  2. Fortalecimiento de la seguridad: Seguimiento de errores de centinela en tiempos de ejecución web y API.
  3. Despliegue continuo: Una canalización Vercel (web) que genera URL de previsualización en cada rama y pasa a prod cuando la rama principal se vuelve verde.

Esa es la agenda de la Parte 4, la recta final en la que descubriremos si Devin puede asegurar, desplegar y cuidar la aplicación casi sin intervención humana. Fija tu base de datos a Postgres (¡otra vez!), tapa esas ACUs, y nos vemos en el último capítulo.

Si estás listo para continuar, haz clic en el último elemento de la lista para ir al cuarto tutorial:

  1. Configuración y primera Pull Request (Parte 1)
  2. Enviar una rodaja vertical con Devin (2ª parte) 
  3. Integraciones, pruebas y CI/CD (3ª parte) 
  4. Seguridad, implantación y mantenimiento (4ª parte)
Temas

Construye agentes de IA con estos cursos:

Curso

Designing Agentic Systems with LangChain

3 h
4.3K
Get to grips with the foundational components of LangChain agents and build custom chat agents.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

7 proyectos de IA para todos los niveles

Desarrolla tu portafolio y mejora tus habilidades para crear soluciones innovadoras a problemas complejos trabajando en proyectos de IA.

Abid Ali Awan

8 min

An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

MachineLearningLifecycle

blog

Explicación del ciclo de vida del machine learning

Conoce los pasos de un proyecto estándar de machine learning mientras exploramos los entresijos del ciclo de vida del machine learning utilizando CRISP-ML(Q).
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Las 13 habilidades esenciales del ingeniero de IA que debes conocer

Ahora se demandan conocimientos de ingeniería de IA. Aprende todo sobre las habilidades esenciales necesarias en esta completa guía.
Austin Chia's photo

Austin Chia

10 min

blog

El papel de la IA en la tecnología: Cómo la Inteligencia Artificial está transformando las industrias

Descubre el poder de la IA en la tecnología, desde el desarrollo de software hasta la asistencia sanitaria. Descubre cómo utilizan la IA las empresas y por qué es crucial mejorar los conocimientos sobre IA.
Javier Canales Luna's photo

Javier Canales Luna

10 min

Tutorial

Tutorial de DeepChecks: Automatizar las pruebas de aprendizaje automático

Aprende a realizar la validación de datos y modelos para garantizar un sólido rendimiento del aprendizaje automático utilizando nuestra guía paso a paso para automatizar las pruebas con DeepChecks.
Abid Ali Awan's photo

Abid Ali Awan

12 min

Ver másVer más