3. Diseño y programación

3.5. ¿Los diseñadores deben saber programar?

Para cerrar este apartado, planteamos una pregunta que propone una reflexión transversal acerca de los contenidos de este material. Como hemos visto en el primer apartado, el código de programación es lo que da forma al software y, en consecuencia, determina qué pueden hacer los diseñadores con los programas que emplean a diario. A lo largo de las últimas décadas, las innovaciones que han introducido las empresas de desarrollo de software en sus productos han tenido una fuerte influencia en las tendencias de diseño, puesto que han hecho posibles nuevas maneras de crear composiciones de diseño gráfico, objetos de consumo o interfaces de usuario. Con la finalidad de superar esta dependencia del software, se plantea una cuestión que viene debatiéndose durante los últimos años: ¿los diseñadores deben saber programar?

Maeda afirma que el rol del diseñador está cambiando y que ya no se trata solo de conocer o anticipar las necesidades del usuario, sino también de tener la capacidad de programar y trabajar con diseño generativo, machine learning u otras tecnologías de inteligencia artificial. En las recientes ediciones del Design in Tech Report, Maeda y su equipo plantean la comparación entre el diseñador «clásico», que crea objetos para un conjunto limitado de personas (como ocurre en el diseño gráfico, diseño de producto o diseño de mobiliario) y el diseñador computacional, que trabaja con productos en constante evolución.

Si bien Maeda daría una respuesta categóricamente afirmativa a la pregunta que encabeza este texto, y tiene argumentos para defender su postura, cabe considerar otros puntos de vista. En una serie de artículos publicados en la plataforma Medium, el diseñador de software Alan Cooper, creador del entorno de programación Visual BASIC y pionero en el campo del diseño de interacción, plantea las razones por las cuales los diseñadores no deben saber programar. De entrada, Cooper (2017) plantea una serie de razones por las cuales no hay que imponer a los diseñadores la necesidad de aprender a programar:

  • Es posible saber cómo se hace algo sin hacerlo directamente. Muchos profesionales (directores, coreógrafos, entrenadores, etc.) dirigen a otros sin hacer su trabajo, pero sabiendo cómo debe hacerse.
  • Hacer algo no supone automáticamente conocer sus implicaciones. Saber programar no implica entender los efectos del código que se ha creado en el producto final o en la organización que lo emplea.
  • La separación entre «diseñadores» y «desarrolladores» es simplista y no refleja la complejidad de ambos roles ni cómo estos interactúan. En este sentido, Cooper indica que si bien puede ser bueno que los diseñadores dediquen un tiempo a programar, los programadores también deberían dedicar un tiempo a diseñar, es decir a participar en el proceso de diseño que incluye conocer las necesidades de los usuarios.
  • Hay pocos buenos programadores y diseñadores. Por tanto, para Cooper «es absurdo y un desperdicio obligarles a trabajar en un ámbito ajeno a sus especiales habilidades».

Alan Cooper culpa de esta división entre diseño y programación a la propia industria del software, que se rige por los beneficios económicos y un ritmo de producción que impide que el 80% de los proyectos llegue a materializarse:

Hemos creado sistemas de software cutres durante décadas, y al parecer no somos capaces de encontrar la manera de hacerlo de forma efectiva. La mayoría de los proyectos no ven la luz del día. Los que lo logran son a menudo versiones patéticamente débiles que carecen de fuerza y flexibilidad.

A. Cooper (2017, mayo). «Should Designers Code?» [en línea]. Medium. <https://medium.com/@MrAlanCooper/should-designers-code-f7b745b-8cd03>

Los programas y plataformas que se han ido desarrollando en la última década, muchos de ellos en código abierto, contribuyen a resolver este problema, si bien sigue existiendo la brecha entre diseñadores y programadores.

De esta manera, pueden colaborar más efectivamente con los programadores y saber qué pedirle en función de las necesidades del proyecto. Esto también es beneficioso para el programador, puesto que su trabajo vincula el ordenador con el usuario, pero como indica Cooper, nunca trata con el usuario, solo con el ordenador. El diseñador, cuyo trabajo se centra en entender las necesidades del usuario, puede aportar esta parte al programador sabiendo qué puede pedirle y qué no, aunque no sepa programar, si entiende las capacidades y limitaciones del código.