Cómo Google's DevTools Manager hace que el código de AI funcione
Créditos de la imagen: Russell Brandom
Como gerente de proyectos de herramientas para desarrolladores en Google, Ryan Salvo tiene una visión privilegiada de cómo los herramientas de IA están transformando la programación. Anteriormente de GitHub y Microsoft, ahora es responsable de herramientas como Gemini CLI y Gemini Code Assist, impulsando a los desarrolladores hacia el nuevo mundo de la programación agente.
Su equipo publicó nueva investigación de terceros el martes sobre cómo los desarrolladores utilizan realmente las herramientas de IA y cuánto queda por hacer. Me senté con Salvo para hablar sobre el informe y su experiencia personal con las herramientas de programación de IA.
Esta entrevista fue editada por longitud y claridad.
Cada año, Google realiza una encuesta sobre tendencias de desarrolladores – pero este año el informe se centra realmente en las herramientas de IA, y específicamente en cómo los desarrolladores agentes están dispuestos a cambiar su enfoque a la programación. ¿Hubo algo en la investigación que te sorprendiera?
Uno de los hallazgos realmente interesantes fue la fecha media en la que los desarrolladores comenzaron a utilizar herramientas de IA. Descubrieron que fue en abril de 2024, lo cual coincide bastante bien con el lanzamiento de Claude 3 y Gemini 2.5. Esto marca el amanecer de los modelos de razonamiento o pensamiento, y alrededor de la misma época mejoramos significativamente en la capacidad de llamar a herramientas.
Para tareas de codificación, realmente necesitas poder aprovechar la información externa para resolver problemas, por lo que puede necesitar buscar, compilar el código. Si el código se compila, puede querer ejecutar pruebas unitarias e integradas. Creo que la capacidad de llamar a herramientas realmente es el componente crucial que permitió a los modelos corregirse por sí mismos a medida que avanzaban.
¿Cómo estás utilizando herramientas de codificación de IA personalmente?
La mayor parte de mi codificación actual es para proyectos de hobby, y paso la mayor parte del tiempo utilizando herramientas basadas en la línea de comandos. Esto incluye Gemini CLI. Luego hay un poco de Claude Code y un poco de Codex. Y nunca realmente usas una herramienta basada en la línea de comandos por sí sola, por lo que soy bastante heterogéneo en cuanto a los IDE que uso. Utilizo Zed, VS Code, Cursor, Windsurf, todos ellos, porque me interesa ver cómo funciona el mundo y cómo está evolucionando la industria.
En el lado profesional, los gerentes de productos tienden a vivir en documentos, por lo que la primera cosa es utilizar IA para ayudarme a escribir los documentos de especificación y requisitos.
Me gustaría saber cómo funciona eso. Estás utilizando Gemini CLI para construir Gemini CLI, pero imagino que no se ejecuta solo.
Una tarea de desarrollo generalmente comienza como un problema, tal vez sea un problema de GitHub que alguien haya dejado con un error. A menudo, si soy honesto, es un problema bastante poco especificado. Entonces uso Gemini CLI para crear un documento de requisitos más robusto en Markdown. Esto generalmente crea alrededor de 100 líneas de especificación técnica, pero también orientada a resultados. Luego uso Gemini CLI para escribir el código basado en esa especificación y las preferencias generales del equipo en los documentos.
Across the engineering team, we have a couple of different layers of rules and Markdown docs that get consumed by the model, just laying out our way of working: Here’s how we do testing, here’s how we manage dependencies, and so on. So when it produces the code, it’s also working from those documents.
And as Gemini CLI is going through and doing the troubleshooting, I’ll have it update my requirements doc saying, “I fixed this step. Now I’m on to the next step,” and so on. Each one of those creates its own commit and pull request in the repository, so I can always rewind or undo.
I would say probably 70% to 80% of my work is me working in the terminal with natural language, trying to use Gemini CLI to craft the requirements, and then allowing Gemini CLI to write most of the code for me, which I will then go review and read with whatever IDE I happen to be using. But mostly I’m using the IDE as a place to read the code, rather than to write the code.
¿Crees que hay un futuro para el código informático puro? ¿O todo se moverá a las ventanas de terminal?
Durante tres décadas, el IDE fue donde íbamos a hacer todo en el desarrollo de software. Tenías el IDE, el navegador y la ventana de terminal.
Creo que eso sigue siendo en gran medida el caso, pero sospecho que con el tiempo pasaremos mucho más tiempo trabajando con los requisitos, y la cantidad de tiempo que pasamos en el IDE irá disminuyendo gradualmente. Y creo que ese cambio puede ocurrir a lo largo de un horizonte de tiempo bastante largo.
Hay mucha ansiedad sobre lo que eso significa para el desarrollo de software como progresión. Si dentro de 10 años ya no estamos viendo código, ¿qué significa eso para los desarrolladores? ¿Habrá trabajo para ellos?
Creo que tu trabajo como desarrollador va a parecerse mucho al de un arquitecto. Va a ser sobre tomar grandes problemas complejos y dividirlos en tareas más pequeñas y solubles. Tendrás que estar pensando en la gran imagen de lo que estás tratando de producir, en lugar de el lenguaje intermedio para expresarlo en código máquina.
