Ingenieros de Google explican cómo utilizar la IA para mejorar el desarrollo de software

En 2024, la escritura de código AI ha impregnado todos los ámbitos de la vida, que afecta profundamente a todo el ciclo de vida del software. Así que la pregunta es, herramientas de código de IA utilizados por la gente dice bien, pero ¿por qué solemos utilizar el software no se siente mucho progreso? ¿Es porque estamos utilizando la IA de la manera equivocada?
Recientemente, Addy Osmani, jefe de ingeniería de Google y autor de bestsellers de Amazon, nos reveló cómo es realmente la codificación asistida por IA en el desarrollo de primera línea, compartiendo los retos y las oportunidades que presentan las herramientas de IA en el desarrollo del mundo real.
¿Cómo utilizan los ingenieros la IA?
En general, existen dos modelos diferentes para que los equipos desarrollen con IA: los "bootstrappers" y los "iteradores". Ambos modelos ayudan a los ingenieros (e incluso a usuarios con poca formación técnica) a acortar la distancia entre la idea y el código real.
Bootstrappers
Esta categoría incluye herramientas de IA como Bolt, v0 y screenshot-to-code, que se caracterizan por:
- Empiece con un dibujo de diseño o un concepto aproximado;
- Utilice la IA para generar una base de código inicial completa;
- Capacidad para obtener un prototipo funcional en pocas horas o días;
- Se centra en validar rápidamente la viabilidad de las ideas
Se trata de un flujo de trabajo impresionante. Por ejemplo, un desarrollador independiente puede utilizar Bolt para convertir un diseño Figma en una aplicación web funcional en muy poco tiempo. Aunque no está al nivel de producción, es lo suficientemente buena como para obtener un feedback inicial del usuario.
Iteradores
Esta categoría es la principal responsable del flujo de trabajo de desarrollo diario, incluidos Cursor, Cline, Copilot y WindSurf Este tipo de herramientas no son tan "llamativas" como las anteriores, pero son más prácticas, por ejemplo:
- Automatice la finalización de código, proporcione sugerencias de código;
- Realización de tareas complejas de refactorización de código;
- Generar código de prueba y documentación;
- "Hermanamiento de socios programadores" como solución a los problemas de programación
Aunque ambos métodos pueden acelerar considerablemente el desarrollo, como dice el refrán, "no hay almuerzo gratis".
Los costes ocultos de la "velocidad de la IA"
Utilizado por ingenieros superiores Cursor tal vez Copiloto Este tipo de herramientas de IA pueden crear el marco básico de toda una función en cuestión de minutos, con las pruebas y la documentación adecuadas: es como magia.
Pero un examen más detenido revela que, además de referirse a las recomendaciones de la IA, los ingenieros superiores hacen lo siguiente:
- Refactorización del código generado por la IA en módulos más pequeños;
- Añadir el manejo de diversas situaciones extremas;
- Optimización de la definición de tipos y el diseño de interfaces;
- Añadir un mecanismo completo de gestión de errores;
- O incluso cuestionar las soluciones arquitectónicas dadas por la IA.
En otras palabras, están aplicando años de sabiduría acumulada en ingeniería para dar forma y limitar los resultados de la IA, que se encarga de acelerar la implementación del código, pero la experiencia humana garantiza que el código sea mantenible: no se puede tener una cosa sin la otra.

Sin embargo, los ingenieros noveles tienden a pasar por alto estos pasos críticos. Es más probable que acepten el resultado de la IA en su totalidad, lo que da lugar a lo que se conoce como "código castillo de naipes": algo que parece completo en la superficie, pero que puede desmoronarse fácilmente bajo el estrés del mundo real.
paradoja intelectual
Así que, de hecho, la IA ayuda mejor a los desarrolladores experimentados que a los principiantes, lo cual es un poco contradictorio.
Los ingenieros superiores utilizan la IA para crear rápidamente prototipos de ideas (para entender los requisitos), generar implementaciones básicas (para facilitar mejoras posteriores), explorar soluciones alternativas a problemas conocidos, etc;
En cambio, los principiantes suelen adoptar directamente soluciones incorrectas o anticuadas dadas por la IA, ignoran problemas críticos de seguridad y rendimiento, no saben cómo depurar el código generado por la IA y acaban construyendo un sistema frágil que no comprenden del todo.
70% Pregunta
Los no ingenieros que escriben código utilizando IA se encuentran a menudo con un dilema frustrante: pueden hacer 70% de trabajo sorprendentemente rápido, pero los 30% finales son excepcionalmente penosos.
El "problema 70%" revela el estado actual del desarrollo asistido por IA, que empieza como si fuera un regalo del cielo pero luego la realidad se lo "restriega por la cara".
La realidad suele ser:
- Intentando arreglar un pequeño error -->
- AI propone un cambio aparentemente razonable -->
- Este cambio rompe el resto del código -->
- Pedir a la IA que solucione los problemas emergentes -->
- Se han creado dos nuevos errores -->
- bucle infinito
Este ciclo es especialmente doloroso para quienes no son ingenieros y carecen de los conocimientos necesarios para comprender lo que realmente ha fallado.
Los desarrolladores experimentados que encuentran fallos pueden deducir las posibles causas y soluciones basándose en años de experiencia y en el reconocimiento de patrones. Sin este conocimiento previo, básicamente estás "gopherizando" con código que no entiendes del todo, y los problemas son infinitos.

paradoja del aprendizaje
También hay un problema más profundo: dar acceso a herramientas de escritura de código de IA a personas que no son ingenieros puede, de hecho, dificultar su aprendizaje.
El código se genera y se ejecuta, pero los "desarrolladores" no comprenden los principios subyacentes. En este punto, pierden la oportunidad de aprender patrones básicos de programación, desarrollar habilidades de depuración y razonar sobre decisiones arquitectónicas que tendrán que mantenerse y ampliarse en el futuro.
Como resultado, los "desarrolladores" recurren constantemente a la IA para resolver problemas sin desarrollar la experiencia necesaria para manejarlos por sí mismos.
La mejor manera de que los no ingenieros utilicen las herramientas de escritura de código de IA es probablemente el "modo mixto":
- Creación rápida de prototipos con IA
- Tómese su tiempo para entender cómo funciona el código generado
- Aprender conceptos básicos de programación y cómo utilizar la IA
- Construya su base de conocimientos paso a paso
- Utilizar la IA como herramienta de aprendizaje, no sólo como generador de código
Pero requiere paciencia y compromiso, lo contrario de para lo que mucha gente utiliza las herramientas de IA en primer lugar: sólo quieren una solución rápida.
El "problema 70%" demuestra que la IA actual no es la "IA perfecta" que muchos esperan. Al fin y al cabo, el trabajo de 30% (hacer que el software sea utilizable en un entorno de producción, que se pueda mantener, etc.) sigue requiriendo conocimientos reales de ingeniería que la IA no puede sustituir por completo.
buenas prácticas
Addy Osmani, tras observar a docenas de equipos, ha ideado algunos enfoques de mejores prácticas:
- "Modelo "AI primer borrador
Deje que la IA genere la implementación básica del código; revise manualmente y realice una refactorización modular; añada un tratamiento de errores exhaustivo; escriba casos de prueba completos; y documente las decisiones clave. - "Modelo de "diálogo continuo
Inicia un nuevo diálogo de IA para cada tarea diferente; mantén el contexto centrado y conciso; revisa y confirma los cambios a menudo; y mantén un estrecho bucle de retroalimentación. - "Modelo "Confiar pero verificar
Utilice la IA para generar el código inicial; revise manualmente todas las rutas críticas; automatice las pruebas para diversos casos límite; y realice auditorías de seguridad periódicas.
¿El verdadero futuro de la IA?
A pesar de estos retos, los autores son optimistas sobre el papel de la IA en el desarrollo de software. La clave está en aprovechar al máximo las ventajas reales de la IA:
- Aceleración conocida
La IA destaca por ayudarnos a realizar patrones que ya conocemos, como un compañero de programación hermanado con una paciencia infinita y una gran velocidad de tecleo. - Explora las posibilidades
La IA es ideal para crear rápidamente prototipos de ideas y explorar distintos enfoques, como un cajón de arena en el que podemos probar conceptos rápidamente. - rutina de automatización
La IA reduce drásticamente la cantidad de tiempo que dedicamos al código de muestra y a las tareas cotidianas de programación, lo que nos permite centrarnos en problemas más interesantes.
Si acabas de empezar a experimentar con el desarrollo asistido por IA, el consejo de los autores es que empieces poco a poco: utiliza la IA para tareas desacopladas y bien definidas, escudriña cada línea de código generada y, después, construye gradualmente funciones más amplias.
Mantenga la modularidad en el proceso de desarrollo: divida todo en documentos pequeños y bien enfocados, mantenga interfaces claras entre los componentes y documente los límites de los módulos.
Lo importante es confiar en la propia experiencia: la IA se utiliza para acelerar el desarrollo, pero no puede sustituir al propio juicio; tener el valor de cuestionar cuando algo no parece correcto; y mantener siempre los estándares de ingeniería.
Emergencia de agentes
El panorama del desarrollo asistido por IA está cambiando radicalmente a medida que nos acercamos a 2025. Aunque las herramientas actuales han cambiado nuestra forma de crear prototipos e iterar, nos encontramos al principio de una transformación aún más importante: el auge de la ingeniería de software con agentes de IA (agentes).Los agentes de IA no solo podrán responder a órdenes, sino que también podrán planificar y ejecutar soluciones con un grado de autonomía cada vez mayor.
por ejemplo Antrópico (utilizado como expresión nominal) Claude Tener acceso directo a un ordenador, o Cline Puede iniciar el navegador y ejecutar las pruebas automáticamente.
Durante la depuración, el agente de IA no sólo sugiere correcciones de errores, sino que también: identifica proactivamente problemas potenciales, lanza y ejecuta suites de prueba, examina elementos de la interfaz de usuario y captura pantallas, sugiere e implementa correcciones, y verifica que las soluciones funcionen.
La próxima generación de herramientas será capaz de integrar a la perfección la comprensión visual (capturas de pantalla de la interfaz de usuario, modelos, diagramas), el diálogo verbal y las interacciones con el entorno (navegadores, terminales, API).
La IA del futuro no consiste en sustituir a los desarrolladores, sino en convertirse en un socio colaborador cada vez más potente que pueda asumir tareas de forma proactiva respetando al mismo tiempo la orientación y la experiencia humanas.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...