El artículo "Codegen is not productivity" cuestiona la tendencia de celebrar la cantidad de código generado por modelos de lenguaje grandes (LLMs) como una medida de productividad en el desarrollo de software. Si bien los LLMs pueden generar código rápidamente, el autor argumenta que esto no cambia la realidad de que la cantidad de líneas de código no es un indicador fiable de la productividad de un programador, ni siquiera cuando el código es generado por IA.
Históricamente, la industria del software ha luchado con la medición de la productividad, y la métrica de líneas de código ha sido ampliamente desacreditada. El desarrollo de software implica mucho más que simplemente escribir código; incluye la planificación, el diseño, la gestión de la complejidad y la colaboración. El autor cita a Joseph S. Turner, de la primera edición de SICP, para enfatizar que el objetivo principal de la programación es expresar ideas y gestionar la complejidad, no simplemente hacer que una máquina ejecute operaciones.
El artículo destaca que los desarrolladores dedican la mayor parte de su tiempo a actividades que no implican la escritura de código, como la comunicación, el diseño y la resolución de problemas. La mera generación de código es solo una parte del proceso, y no necesariamente la más crítica. El uso de LLMs acelera esta parte, pero no aborda los desafíos inherentes a las otras fases del desarrollo.
El problema principal que plantea el artículo es que los LLMs, al enfocarse en generar código, pueden llevar a una implementación prematura y a un compromiso temprano con soluciones que podrían no ser óptimas. Los diseños iniciales, incluso los de baja fidelidad (como bocetos en una pizarra), son más fáciles de modificar y descartar que el código implementado. Los LLMs, al generar código con facilidad, pueden engañarnos haciéndonos creer que es una solución final, lo que dificulta la iteración y el rediseño. Además, la obsesión por la cantidad de código generado puede revivir la falsa creencia de que más código es sinónimo de mejor software, lo cual es una simplificación peligrosa.
En resumen, el artículo aboga por una visión más holística del desarrollo de software, donde la generación de código por LLMs se considera una herramienta para acelerar el proceso, pero no debe eclipsar la importancia de la planificación, el diseño y la iteración, y mucho menos ser utilizada como una métrica de productividad.
