La legibilidad es el PRIMER objetivo.
En la década de 1970, el ejército probó algunas de las entonces "nuevas" técnicas de desarrollo de software (diseño de arriba hacia abajo, programación estructurada, equipos de programadores principales, por nombrar algunos) para determinar cuál de ellas marcaba una diferencia estadísticamente significativa.
LA ÚNICA técnica que marcó una diferencia estadísticamente significativa en el desarrollo fue ...
AÑADIR LÍNEAS EN BLANCO al código del programa.
La mejora en la legibilidad en esos códigos preestructurados y orientados a objetos fue la única técnica en estos estudios que mejoró la productividad.
==============
La optimización solo debe abordarse cuando todo el proyecto se haya probado unitariamente y esté listo para la instrumentación. Nunca se sabe DÓNDE necesita optimizar el código.
En sus libros emblemáticos Kernigan y Plauger de finales de la década de 1970 SOFTWARE TOOLS (1976) y SOFTWARE TOOLS IN PASCAL (1981) mostraron formas de crear programas estructurados utilizando un diseño de arriba hacia abajo. Crearon programas de procesamiento de texto: editores, herramientas de búsqueda, preprocesadores de código.
Cuando se INSTRUMENTÓ la función de formateo de texto completa, descubrieron que la mayor parte del tiempo de procesamiento se gastaba en tres rutinas que realizaban la entrada y salida de texto (en el libro original, las funciones io ocupaban el 89% del tiempo. En el libro pascal, estas funciones consumido 55%!)
Pudieron optimizar estas TRES rutinas y produjeron los resultados de un mayor rendimiento con un tiempo y un costo de desarrollo razonables y manejables.