Y el principal modelo mental que siempre enseño al construir sistemas para AI coding, y aquí es donde comenzaremos a ver cómo evoluciona nuestro sistema, es el bucle PIV. Así que PIV es la abreviatura de planificar, implementar y validar. Y como ingeniero, este tipo de proceso te debería resultar bastante familiar incluso fuera de usar coding agents. Pero hay algunos detalles específicos que debemos considerar cuando trabajamos con un coding agent y cómo le damos el contexto que necesita, es decir, ingeniería de contexto. Y no importa la estrategia que inventes tú mismo, o encuentres en línea, como tal vez hayas oído hablar del GitHub spec kit, o el método BeMad, o PRP, hay todas estas diferentes estrategias flotando por ahí. Todo se reduce a esto. Tienes que planificar la implementación con tu coding assistant, asegurarte de que realmente estás en la misma página sobre lo que estás construyendo, luego le das la implementación, delegas, con suerte, la mayor parte del código al asistente. Y eso es lo que hago hoy en día. Y luego al final tienes la validación, donde tanto tú como el revisan el trabajo, ejecutan las pruebas, validan las cosas manualmente. Y lo importante del bucle PIV es que no es vibe coding. Es esa frase un poco cursi que probablemente hayas escuchado una y otra vez, donde simplemente sigues la corriente y entregas toda la implementación al coding assistant y aceptas lo que sea que salga. Y la razón por la que el bucle PIV no es vibe coding es porque la implementación es lo único que estamos entregando al coding assistant. Lo estamos intercalando entre la planificación y la validación, donde somos una parte importante del proceso. Y no puedo enfatizar lo suficiente lo importante que es ser parte del proceso y no volverse perezoso allí, porque de lo contrario no será confiable. Y así, profundizando un poco más en esto para nuestra fase de planificación, comenzamos con lo que me gusta llamar planificación de vibe. Este es el único lugar donde te doy permiso para simplemente seguir la corriente.
Porque al principio, es solo una conversación exploratoria con el coding assistant. Hay una nueva característica que tienes en mente, quieres implementarla. Y tu trabajo aquí es simplemente estar en la misma página con el coding assistant para cosas como tu arquitectura, si es una base de código existente, como qué parte de la base de código tengo que tocar para construir esto, ese tipo de cosas. Y luego tu conversación pasa de ser no estructurada a muy estructurada. Así que tienes estas secciones clave que tienes en algún tipo de PRD o documento que produces al final de la planificación, o que describe la documentación externa que quieres referenciar, las partes del código que tienes que tocar, la lista de tareas para implementar esa característica, tus criterios de éxito. Si eres un product manager, vas a poder crear este tipo de plan estructurado muy bien, porque básicamente lo que estás haciendo aquí es que eres un project manager para el coding assistant. Y así, siguiendo la misma línea, tomamos ese plan estructurado y ahora lo damos para delegar el código al coding assistant en la fase de implementación. Y así, tu proceso aquí, que por cierto, todo esto se hace usando comandos para delinear cómo hacemos estas cosas, el proceso para la implementación es que el coding assistant primero leerá el plan estructurado, tomará las tareas de eso, y luego las completará una por una.
Así que comienza haciendo un poco de investigación para esa tarea, implementando el código, haciendo una rápida validación antes de pasar a la siguiente tarea. Y simplemente hace eso sistemáticamente hasta que completa todo tu plan. Y por cierto, cuando digo lista de tareas aquí, no estoy diciendo que le des como una épica completa en Jira, y simplemente complete cada tarea, como no, tu plan estructurado es para una sola tarea en algo como Jira. Así que quieres mantenerlo realmente granular, pero estos son solo como todos los subpasos individuales, como una tarea podría ser más algo como, escribir este archivo o configurar esta configuración versus implementar una característica completa, ¿verdad? Así que estamos a nivel de característica aquí. Y luego, una vez que hemos terminado con la implementación, hemos hecho un poco de validación en cada paso del camino, pero aún queremos hacer el proceso de validación más grande al final.
Comments