Hay un meme muy persistente pero creo que equivocado (al menos claramente discutible) y dañino para la profesión. Aunque admite variaciones, el meme compara a un ingeniero informático que tiene que programar con un arquitecto que tuviera que poner ladrillos, sugiriendo así que programar y poner ladrillos son labores comparables y que programar es poco menos que indigno para un ingeniero. Programar no es poner ladrillos. Programar es una tarea especializada, que requiere mucha formación y amplia experiencia para hacerla con garantías. Se programa en lenguajes de programación de alto nivel (*), con abstracciones de alto nivel. Los mejores programadores diseñan y escriben programas usando abstracciones de sus dominios de problema, con lo que primero deben analizarlos para entenderlos. Por eso se sugiere que los analistas deben programar y que el código es el diseño. Un sistema complejo tiene multitud de detalles que alguien tiene que abordar, y eso es una tarea compleja.  El que completa los detalles es el programador. En las metodologías ágiles el concepto de diseño se entiende estrechamente ligado con la programación. El albañil de la informática se llama compilador. Y ya quisieran los arquitectos meter los planos de una obra por una ranura y que la obra se levantara sola. Bueno, en realidad ya están trabajando en ello.

No Bricks

(*) Un lenguaje de programación es de alto nivel si sus construcciones básicas están diseñadas para ser comprensibles por personas y para facilitar la representación de abstracciones,  y no por su facilidad para ser implementadas en un computador. Casi cualquier lenguaje de programación que no sea ensamblador es un lenguaje de alto nivel, aunque algunos lo serán de nivel más alto que otros.