55 puntos por GN⁺ 2025-10-31 | Aún no hay comentarios. | Compartir por WhatsApp
  • Addy Osmani, líder de ingeniería que trabajó 13 años en el equipo de Google Chrome, presenta una metodología de desarrollo basada en IA para ingenieros de software profesionales
  • El vibe coding es útil para prototipado rápido, pero para el desarrollo de software con calidad de producción siguen siendo indispensables los principios de ingeniería y la supervisión humana
  • Al usar herramientas de IA, la calidad debe garantizarse mediante desarrollo guiado por especificaciones, escritura de pruebas y comprensión del código; además, es necesario revisar el proceso de razonamiento del modelo para entender por completo el código generado
  • Los LLM pueden generar rápidamente hasta alrededor del 70% de una aplicación, pero para asegurar el 30% restante en términos de completitud, seguridad y mantenibilidad, la experiencia de ingenieros senior se vuelve aún más importante
  • Están surgiendo nuevos flujos de trabajo de desarrollo como agentes asíncronos en segundo plano y codificación en paralelo, por lo que los ingenieros deben convertirse en aprendices de por vida que aprovechen la IA sin perder el pensamiento crítico ni la capacidad de entender el código

Diferencia entre Vibe Coding e ingeniería asistida por IA

  • El vibe coding consiste en sumergirse por completo en un flujo creativo con la IA, enfocándose en prompts de alto nivel y olvidándose del código en sí
    • Se aceptan sugerencias de la IA sin una revisión profunda y se prioriza la experimentación iterativa rápida
    • Es útil para prototipos, MVP y aprendizaje, y prioriza la velocidad y la exploración por encima de la exactitud y la mantenibilidad
  • La ingeniería asistida por IA es un enfoque que usa la IA como un colaborador poderoso, pero sin reemplazar los principios de ingeniería
    • La IA actúa como multiplicador de fuerza en todo el ciclo de vida del desarrollo de software, ayudando con boilerplate, depuración, despliegue y más
    • El ingeniero humano mantiene la responsabilidad sobre el diseño de arquitectura, la revisión del modelo y la comprensión de todo el código generado
    • Garantizar la seguridad, escalabilidad y mantenibilidad del producto final sigue siendo tarea del ingeniero
  • Cuanto mayor sea la experiencia en ingeniería de software, mejor será la calidad del resultado obtenido al usar LLM
  • Para programación con calidad de producción, solo debe hacerse commit al repositorio de código que pueda explicarse por completo a otra persona

Cómo usa Addy las herramientas de IA

  • Enfoque centrado en desarrollo guiado por especificaciones (Spec-driven development)
    • La clave es establecer un plan claro de lo que se va a construir
    • El vibe coding se usa para herramientas personales, proyectos desechables o para visualizar ideas
    • Después de aclarar la visión con un prototipo, se documentan los requisitos reales para inducir resultados de alta calidad del LLM
  • Escritura de pruebas para reducir riesgos
    • Incluso los modelos más recientes a veces generan código complejo o incorrecto
    • Las pruebas permiten demostrar que funciona e identificar con claridad los problemas cuando aparecen
  • Uso de Chrome DevTools MCP
    • Le da al LLM “visión” sobre el navegador para detectar renderizado, errores de consola, advertencias y más
    • Al incluir el navegador en el loop se mejora el ciclo de retroalimentación
  • Experimentación continua con nuevos modelos, herramientas y plataformas, y compartir hallazgos entre equipos
    • Construir una cultura de aprendizaje conjunto fomentando la seguridad psicológica

Observaciones y aprendizajes sobre herramientas de IA en Google

  • Los principios comprobados de ingeniería de software de Google siguen siendo válidos incluso en la era de la IA
    • La atención a la calidad y a la debida diligencia sigue siendo importante
  • Importancia de la ingeniería de prompts y la ingeniería de contexto
    • Construir los “encantamientos” correctos para obtener los mejores resultados de un LLM
    • Optimizar la ventana de contexto aumenta la probabilidad de obtener resultados de alta calidad
    • Incluir contenido que no está en los datos de entrenamiento del LLM, como descripciones por proyecto, detalles, archivos y ejemplos
  • Impulsar la transición hacia el ingeniero AI-native
    • Entrenar la mentalidad de dejar que la IA lo intente primero antes de resolver un problema
    • Construir expertise en IA con benchmarks de evaluación, RAG vs. fine-tuning y más
  • Importancia de la supervisión humana
    • Si la IA escribe y revisa el código al mismo tiempo, se vuelve incierto qué es lo que realmente se está desplegando
    • Con el aumento en la velocidad de los PR, la revisión humana se convierte en cuello de botella
    • Las mejores prácticas de code review todavía están evolucionando

Herramientas que prefiere Addy

  • Usa principalmente Klein in VS Code
    • Cursor y GitHub Copilot también ofrecen muchas funciones
  • Revisa el proceso de razonamiento (thinking log) que muestran las herramientas
    • Verifica la toma de decisiones del modelo y el código generado durante la construcción de una solución
    • Revisa el código antes del PR para asegurar su mantenibilidad futura
  • Mantiene la capacidad de depurar por sí mismo cuando el LLM no logra resolver un problema
    • Si no entiendes cómo funciona el código, se siente como si te hubieran lanzado a la jungla
  • Diferencia entre ingenieros profesionales y personas no técnicas
    • Cualquiera puede escribir prompts
    • Lo que marca la diferencia es entender cómo funciona el código, poder corregirlo cuando el modelo falla y explicarlo con claridad en reuniones

La esencia del problema del 70%

  • Los LLM pueden generar muy rápido alrededor del 70% de una aplicación funcional, pero tienen dificultades con el 30% restante
  • Componentes de ese último 30%
    • Patrón de “Two steps back”: un prompt puede llevar al modelo a rehacer por completo la UI o una función y avanzar en la dirección equivocada
    • Costos ocultos de mantenimiento: delegar responsabilidad al LLM con especificaciones poco claras termina reduciendo la rentabilidad
    • Vulnerabilidades de seguridad: exposición de API keys, problemas de XSS y otros errores por falta de visión integral
  • Los PoC creados con vibe coding deben reescribirse antes de desplegarse en producción
    • En un codebase que atiende a usuarios reales, la seguridad y la calidad son obligatorias
  • Los ingenieros con experiencia completan mucho más fácilmente ese último 30%
    • Los ingenieros junior a menudo no saben cuál es el siguiente paso más allá de seguir reprompteando al LLM
    • Esto resalta la importancia del pensamiento crítico y la resolución de problemas
  • Sigue siendo indispensable la disciplina de leer el código, entender el sistema y captar cómo se conecta cada parte

Tácticas para usar LLM de forma efectiva

  • Adoptar una mentalidad de project manager
    • Descomponer el trabajo en unidades pequeñas y verificables
    • No es efectivo lanzar todos los requisitos de una sola vez
    • Hay que establecer expectativas claras y prepararse para iterar con la IA
  • Escribir código modular y testeable
    • Las mejores prácticas de ingeniería de software, como hacer code review, siguen vigentes en la era de la IA
  • Considerar las restricciones de entrada y salida y proporcionar suficiente contexto
    • Es un hábito nuevo, pero permite obtener mejores resultados
  • Mantener la disciplina de incluir al humano en el loop es la clave del éxito
    • Cuanta más responsabilidad se le transfiera al LLM, mayor será el riesgo de problemas

Agentes autónomos y nuevos flujos de trabajo

  • Aparición de agentes de codificación asíncronos en segundo plano
    • Herramientas como Jewels, Devin, Codex y experimentos de GitHub
    • La idea de delegar parte del backlog y dejar que se implemente de forma asíncrona
  • Estado actual
    • Ya son efectivos para escribir/actualizar pruebas, migrar versiones de librerías y tareas similares
    • Son adecuados para delegar cambios pequeños, como agregar modo oscuro
  • Retos de gestión
    • Hace falta una interfaz adecuada para gestionar todo el trabajo como director de orquesta
    • Debe considerarse una cantidad realista de tareas que puedan manejarse al mismo tiempo
    • Como la atención humana es finita, solo se pueden llevar unas cuantas tareas en paralelo si se quiere hacer un code review riguroso
  • Evolución del vibe designing
    • La colaboración entre diseñadores y desarrolladores se fortalece a través del MCP de Figma
    • Los diseñadores pueden convertir su visión en prototipos funcionales y acercarse a código apto para producción

Cambios en los roles de EM y PM

  • Rol del PM
    • Más tiempo dedicado al framing del problema, métricas y políticas para agentes
  • Rol del EM
    • Evaluaciones (evals), revisión de seguridad y apoyo para que el equipo use la IA con confianza
  • La responsabilidad por el resultado no cambia
  • Importancia del buen criterio (taste) en product engineering
    • Como cualquiera puede construir funciones similares con prompts, el diferenciador pasa a ser el criterio
  • Junior vs. senior
    • La IA eleva el piso, pero también eleva el techo
    • Los junior pueden empezar más rápido
    • Los senior con capacidad para escribir especificaciones, descomponer trabajo, entender arquitectura de sistemas y revisar eficazmente se vuelven aún más valiosos
    • Ese último 30% no es trabajo rutinario, sino apalancamiento

Nuevos roles y cambios en la formación de desarrolladores

  • Surgen nuevos roles como los Forward Deployed Engineers
    • Trabajan más de cerca con el cliente, construyen funciones rápido con IA y retroalimentan requisitos
    • Podrían difuminarse las fronteras entre los roles de desarrollador, PM y diseñador
  • Formación en AI engineering
    • Se necesita enseñar en preparatoria y universidad las mejores prácticas de prompt y context engineering
    • También hay que buscar formas de mantener la mentalidad de diseño de sistemas e ingeniería
  • Trio programming
    • Un junior, un senior y la IA trabajan juntos
    • El senior puede pedir que se explique el código generado por la IA o cómo se conecta con otras partes del sistema

Importancia del pensamiento crítico al trabajar con IA

  • Riesgo de deterioro del pensamiento crítico por la facilidad de aceptar lo que sugieren las herramientas de IA
    • En tareas menos importantes aparece la tendencia a presionar Tab/Accept y aceptar todo
    • A medida que aumenta la confianza, disminuye la revisión crítica
  • Cuello de botella en el code review
    • La mayor velocidad del código generado por IA hace que la revisión humana sea el cuello de botella
    • Existe el riesgo de abusar del LGTM (Looks Good To Me)
  • Estrategias de respuesta
    • En ciertas funciones o ciertos días, trabajar intencionalmente sin IA para mantener el pensamiento crítico
    • Pensar qué pasaría si todos los principales proveedores de LLM se cayeran
  • Escribir código vs. leerlo
    • Al escribir código directamente, uno hace una autorrevisión y otros revisan sabiendo quién fue el autor
    • En la era de la IA, leer y revisar ocupa un peso mucho mayor
  • Uso de IA en code review
    • La “aprobación” de la IA es solo una señal más
    • Igual que pasar CI/CD o las pruebas, sigue siendo necesaria una perspectiva personal sobre la calidad
  • Aún conviene hacer entre 20% y 30% del trabajo sin IA para seguir usando el cerebro

Los LLM como herramienta de aprendizaje

  • Son una herramienta poderosa para entender un codebase nuevo
    • La primera tarea no debería ser generar una función nueva con prompts para aportar valor, sino aprender cómo funciona el codebase
  • Son útiles para comprender conceptos de programación, frameworks y patrones de arquitectura
  • Son esenciales al trasladar funcionalidades entre codebases escritos en otros lenguajes
  • Construcción de cultura de equipo
    • Difundir la idea de que está bien usar la IA como herramienta de aprendizaje
    • Fomentar regularmente la experimentación y el intercambio de mejores prácticas
  • Onboarding rápido de nuevos integrantes
    • Las herramientas de IA pueden actuar como un mentor confiable 24/7
    • Permiten aprender sin la carga de tener que preguntarle todo el día a un ingeniero senior
  • Modo de aprendizaje de Claude Code
    • Ofrece modo de explicación y modo de aprendizaje
    • Puede pausar y pedirle al usuario que haga directamente ciertas partes

Evolución de las herramientas de IA y ajuste de expectativas

  • Historia de la evolución de herramientas
    • Descargar plantillas → CLI y scaffolding → bootstrapping basado en IA
    • En cada etapa la experiencia del desarrollador mejoró un poco
  • Reconocer los límites de los datos de entrenamiento
    • Se basan en código con licencias permisivas de GitHub o en patrones de la web abierta
    • Pueden reflejar patrones de mínimo común denominador (lowest common denominator)
    • No garantizan el más alto nivel de seguridad, rendimiento ni accesibilidad
  • Similitud con copiar y pegar de Stack Overflow
    • Antes: se copiaban cosas como regex de validación de correo desde Stack Overflow
    • Ahora: los LLM generan patrones parecidos, pero pueden traer edge cases o problemas de seguridad
  • Librerías de terceros vs. implementación propia
    • Con un LLM se puede implementar una versión pequeña por cuenta propia, pero eso implica la responsabilidad de mantenimiento
    • Una librería permite correcciones centralizadas para problemas de seguridad y similares
    • Hay que evaluar los trade-offs de cada opción
  • La clave es mantener expectativas bajas y alto control

Cómo cambia la definición de un gran ingeniero de software

  • La importancia del aprendiz de por vida (Lifelong learner) no cambia
    • Aunque evolucionen frameworks, herramientas e industria, sigue siendo esencial la apertura a aprender cosas nuevas
  • Mentalidad de crecimiento (Growth mindset)
    • Disposición a probar nuevos modelos, herramientas y plataformas
    • Aprender a partir del fracaso y entender las restricciones
  • Rol del liderazgo
    • Si el líder demuestra apertura al aprendizaje, se construye seguridad psicológica en el equipo
    • Addy escribe cada lunes un newsletter interno del equipo
      • Comparte proyectos personales, textos e ideas
      • Selecciona actualizaciones importantes sobre IA y AI engineering
      • Otros ejecutivos también lo aprovechan
  • Curaduría en la era de la sobrecarga de información
    • En redes sociales parece que cada hora ocurre un cambio fundamental
    • El líder debe filtrar lo que realmente importa y guiar al equipo
  • Mantener la capacidad técnica
    • Seguir leyendo y viendo papers, whitepapers, blogs, videos y conferencias
    • Guiar al equipo sobre dónde vale la pena invertir tiempo
  • Conexión con el desarrollo de producto
    • El trabajo para mejorar el workflow de codificación también contribuye a mejorar la experiencia del cliente del producto

Herramientas favoritas y recomendaciones

  • Lenguaje de programación favorito: JavaScript
    • No tanto por preferencia personal, sino por lo abierto que es para que cualquiera pueda construir y desplegar en la web
    • Ofrece una sensación de libertad sin gatekeepers
  • Herramienta favorita actual: Bolt
    • Herramienta de scaffolding para vibe coding
    • Recientemente agregó soporte para agentes personalizados (como Claude Code)
    • Resultados de alta calidad y excelente diseño
    • Funciones de automatización de integraciones con Supabase, proveedores de autenticación y más
    • Enfoque en eliminar la fricción de configuración
  • Libros recomendados
    • "The Software Engineer's Guidebook"
    • "AI Engineering" by Chip Huyen, un libro para aprender los aspectos fundamentales de la ingeniería de IA

Aún no hay comentarios.

Aún no hay comentarios.