Como sociedad hemos ido volcando nuestro interés hacia un mundo más creativo e innovador. Existen actividades que inmediatamente reconocemos como creativas, por ejemplo: leer, pintar, crear música o escribir. Incluso actividades más modernas cómo el diseñar o el emprender son consideradas ingeniosas.
Por lo que no puedo evitar preguntarme: ¿Es realmente la programación una actividad en donde se fomenta y requiere la creatividad? y ¿Podemos seguir encontrando espacios para desarrollar nuestra creatividad en el ecosistema profesional actual?
Desarrollar software consiste -casi siempre- en resolver problemas (de manera manera repetitiva) y se trata también encontrar formas eficientes a problemas que anteriormente no podían ser resueltos o que son resueltos en un costo y esfuerzo muy alto.
Una crítica constante hacia la programación cómo materia creativa se debe a que los productos finales (software) no se reconocen de manera inmediata cómo obras de arte. Esto se debe a que los resultados finales de la programación son mucho más abstractos e invisibles.
A menos que estés trabajando con la animación para la nueva película de Shrek o una innovadora solución para el próximo unicornio; difícilmente alguien considerará ingeniosa la solución que diste para guardar en cache las peticiones al servidor.
También se debe a que a que comúnmente los desarrollos son creados con una función muy especifica y no con la intención de entretener o dejar volar la imaginación, aunque es posible tener los mejor de ambos mundos.
Definitivamente la respuesta a la razón de este artículo es SI. En esta profesión existen muchos diferentes tipos de artistas, todos con su estilo y con resultados tan creativos cómo los de un novelista o pintor. Solamente es más difícil reconocer y apreciar su arte, ya que casi siempre se requiere de altos conocimientos técnicos para evaluar las soluciones.
Así que la programación no solamente existe para solucionar problemas complejos; es también un medio de expresión, cómo lo son la música o el arte.
Se requiere de un ojo entrenado para reconocer soluciones elegantes y creativas.
Esta tiene otras cosas en común con otros tipos de arte:
- Requiere mucha práctica para llegar a ser bueno.
- Cuando es hora de crear algo, casi siempre debes hacerlo aislado y en total concentración, para evitar distracciones.
Les recomiendo Hackers and Painters de Paul Graham - un ensayo sobre cómo la creatividad es inherente a la programación.