Existe una narrativa que divide a los ingenieros de software en dos grupos: los enfocados en la entrada (pre-IA) y los enfocados en la salida (post-IA). Esta dicotomía resulta intrigante, pero también profundamente defectuosa.
Si no está familiarizado, el argumento es el siguiente:
Los ingenieros enfocados en la entrada valoran los detalles minuciosos de su código. Obsesionados con la mantenibilidad y el diseño idiomático. Antes de la IA, esto se llamaba artesanía. Pero ahora que los LLM pueden escribir grandes extensiones de código, este estilo de pensamiento se considera algo del pasado.
Los ingenieros enfocados en la salida, por el contrario, solo se preocupan por lo que hacen sus programas. Son como probadores de caja negra. Siempre que las pruebas pasen, el código subyacente no importa. Garry Tan es su figura emblemática, afirmando escribir más de 10.000 líneas de código por día. Este modo de ingeniería es el futuro.
Es una tesis ordenada y seductora. Pero es incorrecta porque subestima lo que valoran los artesanos. Basta con observar cualquier otra rama de la ingeniería disciplinada, que todas reverencian el “cómo” tanto como el “qué”.
Una mejor dicotomía, si es necesario tener una, divide a los ingenieros por su apetito por el riesgo: alto riesgo versus bajo riesgo.
Los ingenieros de alto riesgo valoran la velocidad. Intencionalmente no entienden alguna o toda la parte del código que generan por el bien del impulso. Este enfoque tiene todo el sentido del mundo para prototipos o software de bajo riesgo. Es una herramienta que se debe seleccionar para el momento y el lugar adecuados.
Los ingenieros de bajo riesgo valoran la corrección. Saben que solo porque las pruebas pasen, no significa que no haya errores. Se toman el tiempo de entender su código porque saben que puede vivir con ellos durante mucho tiempo.
En ambos casos, cada línea de código es una responsabilidad. La diferencia es el precio.
