- La ingeniería de software en su sentido tradicional está llegando a su fin, y está surgiendo el paradigma de la ingeniería de producto basado en IA
- El ingeniero de producto es un rol híbrido entre product manager y desarrollador full-stack, un builder autónomo y orientado a resultados que se responsabiliza de todo el ciclo, desde la planificación hasta el despliegue
- Con base en un enfoque AI-native, capacidades en T y mentalidad centrada en KPI, estos perfiles se organizan no por equipos sino por funciones (features), asumiendo responsabilidad end-to-end sobre onboarding, pagos, notificaciones, etc.
- En la etapa de producto realizan ideación, análisis de mercado, investigación de usuarios y diseño de producto; en la etapa de ingeniería se encargan de arquitectura, diseño de sistemas, desarrollo frontend y backend
- La IA es una herramienta especialmente poderosa en áreas definibles y determinísticas (D&D), y es muy probable que las organizaciones evolucionen del triángulo tradicional PM-diseñador-ingeniero hacia una estructura de colaboración entre ingenieros de producto e IA
Background
- La ingeniería de software tradicional ya no es válida
- La publicación del lenguaje C por Dennis Ritchie en 1972 fue el último cambio de paradigma realmente fundamental
- Desde entonces, los avances no han sido más que optimizaciones y abstracciones para facilitar la escritura y transformación de código máquina
- Durante mucho tiempo, la productividad se midió por la eficiencia temporal y espacial del código, su longitud y su legibilidad
- Ahora estamos entrando en un paradigma completamente nuevo, y es poco probable que volvamos a la era pasada del “raw coding”
- John Carmack comentó recientemente que las mejores herramientas para construir en el futuro pasarán del código escrito a mano a la guía de IA
- Por eso, para los ingenieros se vuelve importante desarrollar “product skills” y aprovechar las mejores herramientas
- La ingeniería de software evolucionará gradualmente hacia la ingeniería de producto (Product Engineering)
¿Qué es un ingeniero de producto (Product Engineer, PE)?
- Un rol que combina al Product Manager con el ingeniero de software full-stack
- Un perfil responsable de todo el ciclo de vida del producto y directamente vinculado al éxito o fracaso del mismo
- Características principales de un ingeniero de producto:
- AI-native: usa los LLM no como complemento, sino como herramienta central
- Capacidades en T: posee profundidad técnica en ingeniería y, al mismo tiempo, una comprensión amplia de producto, datos y diseño
- Orientación a resultados: se hace responsable de KPI como retención, conversión y activación
- Capacidad de ejecución autónoma: puede llevar una idea → documento de planificación → diseño → despliegue con supervisión mínima
- Cambios en la estructura del equipo
- Los ingenieros de producto forman lean teams pequeños pero altamente especializados
- En lugar de separar frontend/backend/infraestructura, la organización gira en torno a feature squads centrados en producto o funcionalidad
- La alineación ya no se hace por stack, sino por outcomes
- Ejemplo: una persona se encarga del onboarding, otra de pagos y otra de notificaciones
- Cada una asume la responsabilidad end-to-end de toda la funcionalidad, desde UX hasta la capa de datos
- Es decir, la estructura pasa de “equipos de frontend/backend/infraestructura” a “squads independientes por funcionalidad”
- El ingeniero de producto tiene dos dimensiones:
- Dimensión de producto (pre-development)
- Dimensión de ingeniería (desarrollo y etapas posteriores, in/post-development)
The Product
- La dimensión de producto del ingeniero de producto se superpone con el trabajo tradicional del Product Manager y se encarga de la planificación y dirección del producto
- Product Ideation (ideación de producto)
- Es el proceso de definir y concretar las funciones centrales del producto, su propuesta de valor (Value Proposition) y el grupo objetivo de usuarios
- Establece con claridad por qué existe el producto y quién es su cliente objetivo, sentando la base para el desarrollo posterior
- Mind-mapping
- Consiste en diagramar y visualizar las ideas o tareas derivadas de un concepto central para entender el panorama general
- Se utiliza como herramienta para compartir y desarrollar ideas dentro del equipo
- Brainstorming
- Es el proceso de registrar ideas individualmente y luego compartirlas con otras personas para mejorarlas, complementarlas y validarlas
- A través de la colaboración se amplifica la diversidad y creatividad de las ideas
- Discovery
- Es el proceso de explorar las necesidades de los clientes e investigar oportunidades de mercado para encontrar un producto que alinee los objetivos del negocio con el valor para el usuario
- Incluye entrevistas con usuarios, análisis de competidores e investigación de mercado
- Selection (priorización)
- Consiste en decidir qué funciones o proyectos abordar primero con base en la dirección estratégica, los objetivos del negocio, las necesidades del cliente y las tendencias del mercado
- Busca la opción de ejecución más efectiva dentro de recursos limitados
- Market Analysis (análisis de mercado)
- Analiza el entorno de mercado en el que se ubicará el producto, así como la competencia, el tamaño del mercado y las oportunidades y amenazas
- Se utiliza para definir el posicionamiento del producto y la estrategia de crecimiento
- User Research (investigación de usuarios)
- Es el proceso de comprender en profundidad el comportamiento, las necesidades y los puntos de dolor de los usuarios
- Aporta la base para mejorar la experiencia del usuario con datos
- Product Design (diseño de producto)
- Incluye diseño UI/UX, diseño de servicios, diseño de interacción y pruebas con usuarios
- A través de prototipos y pruebas iterativas, garantiza una experiencia amigable para el usuario
- Aunque estas funciones tradicionalmente las realizaba el Product Manager, el ingeniero de producto las ejecuta con mayor agilidad usando herramientas de IA
- La IA tiene limitaciones para generar ideas realmente nuevas, pero es muy potente para revisar patrones existentes o complementar ideas repetitivas
- Lo importante es que la visión del producto debe estar liderada por personas, y la IA debe usarse como soundboard para refinar y corregir ideas
The Engineer
- La dimensión de ingeniería del ingeniero de producto es la etapa en la que las especificaciones planificadas se ejecutan e implementan en la práctica
- Incluye cuatro áreas principales:
- Arquitectura de software: decisiones estructurales
- Diseño de sistemas: definición y concreción del sistema
- Desarrollo frontend: implementación del diseño visual y la interfaz de usuario
- Desarrollo backend: optimización de lógica de negocio y diseño de base de datos
- Por supuesto, también son importantes otros temas de ingeniería como testing, monitoreo e integración de IA, pero en la mayoría de los proyectos la prioridad es construir y desplegar rápidamente un producto SLC (Simple, Lovable, Complete)
- Los LLM para programación muestran una fortaleza particular en entornos definibles y determinísticos (D&D), por lo que el aporte de la IA es mayor en la dimensión de ingeniería
-
Planning
- La etapa clave para usar IA de forma efectiva es la planificación
- Si se le entrega a la IA la intención del proyecto como requisitos bien estructurados, la calidad del código mejora mucho a largo plazo
- Al definir Rules (conjunto de reglas), el AI coder puede consultar de forma continua directrices a nivel sistema
- Ejemplo: reglas de actualización de documentación, registro de cambios de arquitectura, estilo de código, criterios de pruebas
- Ejemplo de estructura de reglas:
- Sincronización de documentos en
/docs, así como README y CHANGELOG
- Redacción de ADR (Architecture Decision Record) cuando haya cambios importantes en dependencias o arquitectura
- Generación de clientes API con OpenAPI Generator y uso de plantillas TypeScript axios
- Acceso a datos con patrón repository y estandarización del manejo de errores
- Definición clara de criterios para pruebas unitarias, de integración y E2E
- En la mayoría de los IDE esto puede generarse automáticamente con
/Generate Cursor Rules
-
Software Architecture
- La arquitectura son decisiones que forman el esqueleto de la base de código y como su costo de cambio es alto, hay que ser cuidadoso desde etapas tempranas
- Aspectos a considerar:
- Monolito vs microservicios, serverless vs contenedores
- Gestión de dependencias y definición de límites de integración
- Modularización y separación de responsabilidades
- Protocolos de comunicación como REST, GraphQL, gRPC o event bus
- Estrategias de escalabilidad (como escalado horizontal)
- Rol de la IA:
- Comparar ventajas y desventajas de patrones alternativos de arquitectura
- Generar diagramas con Mermaid.js
- Redactar borradores de ADR
- Pero la decisión final requiere criterio humano y expertise de dominio
-
System Design
- El diseño de sistemas es el proceso de concretar la arquitectura en servicios reales, flujos de datos, máquinas de estado e interfaces
- Tareas principales:
- Definir APIs y límites de servicio
- Modelar datos y diseñar el flujo de datos entre capas
- Estrategias de manejo de errores y recuperación ante fallos
- Modelado de transiciones de estado y flujos de trabajo asíncronos
- Redacción de documentos de diseño y revisión de casos límite
- Posibilidades de uso de IA:
- Generar borradores iniciales de diseño
- Simular problemas de concurrencia y casos límite
- Redactar interfaces API, esquemas y máquinas de estado
- Comparar patrones de diseño y dar retroalimentación
- Ayudar a validar diseños como si fuera un “ingeniero junior”
-
Frontend Engineering
- El frontend se encarga de la implementación del diseño visual y de la funcionalidad del cliente
- La IA muestra muy buen desempeño en el ecosistema JS, especialmente con frameworks ampliamente usados como React
- Tips para mejorar el rendimiento de la IA:
- Proporcionarle lineamientos de marca (fuentes, colores, espaciado, reglas responsive) en forma de capturas o documentos
- Generar código UI consistente mediante Tailwind config, variables CSS, etc.
- También se puede probar la conversión de código mediante herramientas Figma-to-code (como Tempo)
- Si se le da a la IA la definición de componentes repetitivos y reglas responsive, resulta más fácil producir una UI consistente con la marca
-
Backend Engineering
- El backend se encarga de la implementación de la lógica de negocio, diseño de base de datos, construcción y optimización de APIs
- La IA es especialmente efectiva en tareas definibles y determinísticas (D&D)
- Técnicas efectivas:
- Importación de documentos: cargar directamente en el IDE especificaciones de API y documentación técnica para que la IA las consulte y reducir alucinaciones
- Uso de workspace: en proyectos con frontend y backend separados, integrar las carpetas para aportar contexto y ayudar a la IA a entender mejor la estructura general del proyecto
General Tips for the Product Engineer
-
Always work at the frontier
- Es importante usar siempre los modelos más recientes
- Los modelos más nuevos pueden comprender proyectos más grandes gracias al aumento del tamaño de la ventana de contexto
- También mejoran en capacidad de razonamiento, reducción de alucinaciones y mayor estabilidad
-
Use thinking mode
- Activar Thinking mode mejora mucho la calidad de las respuestas del modelo
- Si existe la opción, debería activarse siempre
- Si no está disponible, se puede lograr un efecto similar incluyendo la palabra “ultrathink” en el prompt
-
Be hyper-specific
- Al pedirle algo a la IA, hay que escribir de forma específica y clara
- Siempre se deben incluir objetivo, restricciones, decisiones de diseño, snippets de código relevantes, rutas de archivos y nombres de componentes
- Ejemplo de buen prompt:
- Agregar tracking analítico al formulario de
/src/pages/SignUp.tsx
- Cuando el usuario haga clic en ‘Submit’, enviar el evento
sign_up_started mediante la función trackEvent()
- El evento debe tener debounce
- Incluir como propiedad el dominio del correo del usuario (por ejemplo,
gmail.com)
-
Provide visual context
- En tareas de frontend es especialmente importante proveer contexto visual
- Como los LLM para programación pueden entender imágenes, adjuntar capturas de diseño o capturas de mensajes de error causados por bugs ayuda a que la IA resuelva el problema más rápido
-
Work in small iterations
- En lugar de pedirle a la IA una tarea grande de una sola vez, conviene dividirla en partes pequeñas e iterar
- Es efectivo implementar primero la funcionalidad básica e ir mejorándola gradualmente
- Lo ideal es dividir el prompt en varias instrucciones claramente definidas
-
Stay curious
- En internet existen innumerables tips y casos de prompt engineering
- Participar en comunidades o redes relacionadas permite conocer las técnicas más recientes y aprender rápidamente buenas prácticas de uso
Closing thoughts
- A pesar de la revolución de la IA, hay capacidades que no serán reemplazadas en el futuro cercano o que incluso ganarán más valor
- Dominio de herramientas CLI (por ejemplo, git)
- Git es la herramienta más eficiente para gestionar versiones de código y rastrear cambios
- Como la confiabilidad del código generado por IA es baja, es indispensable poder volver a un estado anterior o empezar de nuevo
- Por eso, la capacidad de usar herramientas CLI como Git será cada vez más importante
- Fundamentos de ingeniería
- Capacidad para gestionar technical debt y mantener la modularización y encapsulación del código
- La IA puede no garantizar consistencia en el estilo de código (convenciones de nombres, principio DRY, modularidad)
- Por eso, la capacidad del ingeniero para mantener directamente los principios básicos tendrá aún más valor
- Aun así, a largo plazo esto podría cambiar a medida que la IA escriba cada vez más código
- Habilidades sólidas de comunicación
- La capacidad de redactar documentos, prompts y especificaciones claras y estructuradas tiene un efecto multiplicador
- La IA no infiere intenciones como un humano, sino que solo ejecuta lo que se le indica, por lo que la claridad es esencial
- Buenas especificaciones, prompts bien definidos y documentación sistemática mejoran la productividad y la calidad de los resultados
- Cambio de poder dentro de las organizaciones
- Las tareas técnicas serán asumidas gradualmente por la IA, ya que encajan con su naturaleza D&D (Definable & Deterministic)
- A medida que la ejecución se vuelva más barata y generalizada, ganará más valor la capacidad de gestionar la IA y empaquetar resultados para comunicarlos a ejecutivos y accionistas
- En las grandes empresas, el proceso real de ejecución no se ve y solo se entregan los resultados, por lo que la comunicación estratégica y la presentación de resultados influirán en el poder
- Es probable que los managers que alinean y transmiten estos resultados terminen teniendo más poder que quienes implementan directamente la tecnología
- Perspectiva de cambio en la estructura organizacional
- Cuanto más nueva sea la empresa (startup), más rápido se reflejará el rol del ingeniero de producto
- A medida que la IA gane más autonomía durante el crecimiento, la estructura tradicional del triángulo PM–diseñador–ingeniero podría debilitarse
- En su lugar, podría surgir una nueva topología de equipo compuesta por pods pequeños liderados por ingenieros de producto con sensibilidad de producto y copilotos de IA que apoyen todo el stack
References
Aún no hay comentarios.