Venga a aprender y criticar cómo las grandes empresas como FAANG hacen "programación por intuición (Vibe Coding)": "Primero, hacer que suficientes partes interesadas asientan con la cabeza" "Luego, realizar una revisión de diseño" "Después, semanas de trabajo documental" "Y luego, los gerentes de producto y de proyectos dividen las tareas una y otra vez" Después de tres meses, ¡finalmente podemos comenzar a programar por intuición! --- Así es como hacemos "programación por intuición (Vibe Coding)" en FAANG. Hola a todos. Quería publicar aquí porque siempre veo a alguien discutiendo que el código asistido por IA no se puede usar en productos reales. Eso es absolutamente falso. Primero, un poco de contexto: soy ingeniero de software de IA con más de diez años de experiencia, la mitad de los cuales he pasado en FAANG. La primera mitad de mi carrera fue como ingeniero de sistemas, no como desarrollador, aunque he estado escribiendo código durante casi 15 años. Sin más preámbulos, aquí les contaré cómo nuestro equipo comenzó a usar IA para escribir **código de producción (production code)** de verdad. 1. Siempre debes comenzar con un **documento de diseño técnico**. Esta es la parte más crucial de todo el trabajo. Este documento es como una propuesta, necesitas convencer a suficientes partes interesadas (stakeholders) de que tu solución es viable. Solo después de que el diseño sea aprobado, puedes comenzar a desarrollar el sistema en sí. Este documento debe incluir la arquitectura completa del sistema, los planes de integración con otros sistemas, etc. 2. Antes de comenzar el desarrollo, se debe realizar una **revisión de diseño (Design review)**. En esta etapa, los ingenieros senior del equipo revisarán tu documento de diseño a fondo. Esto es algo bueno, yo lo llamo **"adelantar el sufrimiento"**. 3. Si la revisión se aprueba sin problemas, puedes iniciar oficialmente el trabajo de desarrollo. En las primeras semanas, todos dedicarán mucho tiempo a redactar documentos más detallados para cada subsistema (subsystem) que el equipo de desarrollo debe construir. 4. Luego viene el desarrollo de la **lista de tareas (Backlog)** y la planificación de sprints (sprint planning). En esta etapa, los desarrolladores se reunirán con los gerentes de producto (PMs) y los gerentes de proyectos técnicos (TPMs) para desglosar los grandes objetivos en tareas específicas que los desarrolladores puedan ejecutar. 5. **Desarrollo de software**. Finalmente, podemos empezar a escribir código y eliminar las tarjetas de tareas. Y aquí es donde la IA muestra su poder, es prácticamente nuestro **multiplicador de fuerza (force multiplier)**. Utilizamos el modelo de **desarrollo guiado por pruebas (Test Driven Development, TDD)**, así que lo primero que hago es hacer que el **agente de IA (AI agent)** escriba los casos de prueba para la funcionalidad que voy a desarrollar. *Solo cuando los casos de prueba están listos, empiezo a hacer que el agente de IA me ayude a construir la funcionalidad específica*. 6. **Revisión de código antes de la entrega**. Nuestro código necesita la aprobación de dos desarrolladores antes de fusionarse en la rama principal (main). En esta etapa, la IA también ha demostrado un gran potencial para ayudarnos en la revisión. 7. **Pruebas en el entorno de pre-lanzamiento (staging)**. Si todo va bien en las pruebas, lo lanzamos oficialmente al entorno de producción (prod). En general, desde la propuesta de funcionalidad hasta el lanzamiento final, hemos descubierto que la **velocidad del proceso ha aumentado aproximadamente un 30%**. Esto es un gran avance para nosotros. **Resumen (TL;DR):** Siempre comienza con un sólido documento de diseño y arquitectura; luego implementa cada parte; siempre escribe las pruebas primero.
32,02K