Cognition Labs ha anunciado recientemente el lanzamiento oficial de Devin, su plataforma de inteligencia artificial (IA). Esta noticia llega tras la presentación inicial de Devin en marzo. Esta herramienta de IA está diseñada para realizar diversas tareas de codificación complejas, convirtiéndose en un activo valioso para desarrolladores individuales y equipos de ingeniería.
Las capacidades de Devin incluyen escribir código en múltiples lenguajes de programación, construir e implementar sitios web y aplicaciones, y depurar código, con el objetivo de simplificar el proceso de desarrollo de software. La compañía afirma que Devin ha superado con éxito entrevistas de ingeniería reales en empresas de IA y ha completado trabajos reales en plataformas de freelance como Upwork. Actualmente, Devin se ofrece mediante un servicio de suscripción para individuos y equipos.
Introducción a Devin
Devin se posiciona principalmente como un asistente de programación con IA, desempeñando un papel crucial en el ámbito de la ingeniería de software al gestionar diversas tareas de programación complejas. Su base tecnológica proviene del proyecto de migración de código a gran escala de Nubank, donde Devin migró con éxito un monolito ETL de ocho años de antigüedad con millones de líneas de código a submódulos, lo que generó una mejora significativa en la eficiencia y un ahorro de costos para Nubank.
Actualmente, Devin ofrece sus servicios a equipos de ingeniería y desarrolladores con una suscripción mensual de 500 dólares. Los suscriptores pueden disfrutar de un uso ilimitado, integración con Slack, extensiones para IDE, API y soporte y orientación inicial del equipo de ingeniería de Cognition.
Según The Information, Cognition Labs ha recaudado 175 millones de dólares y, solo seis meses después de su fundación, ha anunciado una valoración de 2000 millones de dólares. Un mes después, Founders Fund lideró una nueva ronda de financiación; anteriormente, este fondo había liderado una ronda de financiación Serie A de 21 millones de dólares con una valoración de solo 350 millones de dólares, en la reciente competición de GitHub Copilot y otros asistentes de codificación de IA generativa.
Características destacadas de Devin
- Automatización de la migración y refactorización de código: Puede automatizar la migración de código, reduciendo significativamente la carga de trabajo de los ingenieros en estas tareas repetitivas. Por ejemplo, en el proyecto de Nubank, completó eficientemente la migración de una arquitectura monolítica a submódulos.
- Procesamiento del lenguaje natural: Entiende y responde a solicitudes en lenguaje natural, lo que hace que la colaboración entre el desarrollador y Devin sea más intuitiva y sencilla. Los desarrolladores pueden dar instrucciones a Devin como si estuvieran hablando con un compañero.
- Pruebas y corrección de código: Tiene su propio shell, puede probar el código y corregir errores hasta que el código funcione correctamente, garantizando la calidad y estabilidad del código.
- Operaciones multiarchivo: Puede explorar bases de código nuevas de forma independiente y contribuir con código en múltiples archivos, gestionando fácilmente las necesidades de procesamiento multiarchivo en proyectos complejos.
- Función de búsqueda en la web: Tiene su propio navegador para buscar documentos en línea y probar las aplicaciones web construidas, ofreciendo a los desarrolladores una amplia gama de referencias y entornos de prueba.
- Integración continua/implementación continua (CI/CD): Gestiona tareas relacionadas con CI/CD, optimizando el flujo de trabajo de desarrollo de software y mejorando la eficiencia y calidad de la entrega de software.
- Capacidad de gestión de proyectos: Puede crear y gestionar proyectos, incluyendo la creación de PR y la respuesta a comentarios de PR, facilitando la colaboración en equipo y el avance del proyecto.
- Colaboración multiplataforma: Se integra con varias herramientas como GitHub y Slack, permitiendo la colaboración multiplataforma para que los desarrolladores puedan usar Devin en su entorno de trabajo habitual y aumentar su productividad.
Escenarios de aplicación
- Proyectos de migración de código a gran escala: Como la migración del ETL principal de Nubank de una arquitectura monolítica a submódulos. Devin ayudó a lograr una mejora de 12 veces en la eficiencia del tiempo de ingeniería, completando una tarea que podría haber llevado meses o años en cuestión de semanas, y ahorrando más de 20 veces el costo de la migración.
- Mantenimiento y optimización de código diario: Al tratar con pequeños errores front-end y casos límite, los desarrolladores pueden etiquetar a Devin en un hilo de Slack para resolver rápidamente el problema; para tareas de refactorización de código, se puede usar la extensión Devin IDE para especificar la parte del código que necesita ser editada o actualizada, y Devin realizará la refactorización.
- Tareas de ingeniería de datos: En tareas como la migración de almacenes de datos, el desarrollo de ETL, la limpieza y el preprocesamiento de datos, Devin puede desempeñar un papel importante, por ejemplo, ejecutando scripts de análisis de datos, generando visualizaciones de datos y resúmenes estadísticos.
- Creación y gestión de PR en proyectos: Al crear borradores de PR para tareas pendientes, los desarrolladores pueden asignar tareas a Devin desde su lista de tareas al comienzo de cada día, y Devin creará el PR después de completarlo, para que el desarrollador lo revise y ajuste.
- Pruebas y resolución de problemas: Cuando se encuentra un problema de código, como al tratar con enlaces de clasificación automática no válidos, Devin puede ayudar a investigar las funciones relevantes, encontrar el problema e intentar resolverlo.
Tutorial de uso de Devin
- Registro e inicio de sesión: Accede a la plataforma Devin, regístrate y crea una cuenta para acceder a la interfaz de usuario.
- Proporciona información sobre el repositorio de código: Proporciona a Devin información relevante sobre el repositorio de código que necesita ser migrado o refactorizado para que Devin comprenda el contexto del proyecto.
- Da instrucciones: Usa lenguaje natural para describir claramente los requisitos de la tarea a Devin, como "Migra la biblioteca de generación de música de Java 8 a Python 3.11 y agrega una pequeña prueba para cada nuevo archivo de Python para asegurar que el código funcione".
- Procesamiento de tareas y monitoreo del progreso: Devin comienza a procesar la tarea de forma automatizada y proporciona retroalimentación en tiempo real sobre el progreso. El usuario puede ver el progreso de la tarea en cualquier momento.
- Revisión y ajuste: Revisa cuidadosamente el trabajo completado por Devin. Si encuentras algún problema o necesitas optimizar algo, realiza los ajustes necesarios.
- Fusionar cambios: Una vez que estés seguro, fusiona los cambios de Devin en la rama principal para que los cambios surtan efecto.
- Pruebas y validación: Usa las funciones de shell y navegador de Devin para probar y validar el código, asegurando la calidad del código y el funcionamiento correcto de las funciones.
- Repetir la operación: Repite los pasos anteriores según sea necesario para procesar continuamente más tareas de migración o refactorización de código.
Conclusión
Devin, como un potente asistente de programación de IA, ofrece una mejora significativa en la eficiencia para los equipos de ingeniería y los desarrolladores gracias a sus excelentes funciones en migración de código, refactorización y procesamiento de lenguaje natural. Tanto en ajustes de arquitectura de código a gran escala como en el mantenimiento y optimización de código diarios, Devin puede desempeñar un papel importante.
Si también te enfrentas a tareas y desafíos complejos en tu trabajo de programación, prueba Devin y hazlo tu compañero de programación. Dale me gusta, comenta y comparte tu opinión sobre los asistentes de programación de IA. Sigamos juntos el desarrollo de Devin y exploremos nuevas formas de trabajar en la programación. Creemos que en el futuro nos traerá más sorpresas y valor.