Quienes programamos somos artesanos. Si entendemos al artesano como esos comerciantes en la feria vendiendo artículos importados con estampados locales, entonces esta afirmación nos parecerá absurda. Pero ser artesano no es solo vender esculturas hechas con alambre de cobre.
Los artesanos siempre han sido muy solicitados. Durante la edad media ellos formaban parte de un estamento de la sociedad que a medida que se desarrolló el comercio, fue formando gremios para cuidar su conocimiento, y algunos pasaron a formar parte de la burguesía. Esto es un claro indicio de la importancia del oficio.
Puede parecer paradójico que la palabra artesanía, al significar crear cosas con las manos sin intervención de maquinaria, la asocie con una profesión que se realiza por completo con una máquina como lo es la programación. Pero es que quiero ir al significado más profundo de la palabra.
El software está vivo porque se está actualizando constantemente. Cada día salen al mercado nuevos productos que son controlados por software, entonces alguien debe incorporar nuevos controladores (drivers) al software existente. Espontáneamente aparecen soluciones ingeniosas para manejar hardware nuevo y ya existente. Por otra parte, nuevas funcionalidades son solicitadas por los usuarios, que alguien tiene que incorporar y actualizar en el software.
Un ejemplo de esto es el lenguaje HTML y CSS. Hasta mediados de la década del 2000, la única resolución de pantalla era la de 1024x768. Pero desde que se masifica la navegación móvil, se deben incorporar nuevas funcionalidades al lenguaje HTML y CSS para que los artesanos de sitios web puedan crear sitios que se adapten a todas las resoluciones de pantalla disponible. Es ahí que aparece el HTML 5 y el CSS 3. De buenas a primeras, pareciera ser lo mismo que HTML y CSS tradicional, pero trae unas novedades que permiten al experto crear sitios que puedan ser indexados fácilmente por los motores de búsqueda, y que se adapten al dispositivo que se está usando.
La creación de software tiene estrechas similitudes con la artesanía. El programador debe pasar por un proceso de formación como el de aprendiz, pues no basta con leer un libro y ahí adquiere el conocimiento absoluto. No basta con eso, si no que además debe estar constantemente practicando para perfeccionar su técnica basado en los fundamentos que ha aprendido en los libros. También debe estar aprendiendo constantemente, porque si no otro artesano que si esté actualizado podrá realizar su mismo trabajo en menor tiempo, mejor y más barato.
Como puedes ver, programar no es un trabajo similar al de montarse en una línea de producción y ensamblar piezas, o sentarse en una oficina y planificar un proyecto. Programar tiene que ver con sentarse frente a un computador, y escribir código que nunca será igual a otro. Requiere estar practicando constantemente, tal como el artesano estropea muchos cántaros antes de dar con su obra final. Dado que hay infinitas maneras de resolver un problema mediante la programación, crear un programa es un proceso creativo similar a cuando uno se enfrenta con el lienzo en blanco. Uno debe estar constantemente leyendo y probando su programa. Es un trabajo que nunca termina.
La automatización y la industrialización han eliminado un mogollón de puestos de trabajo, es cierto. Pero la labor creativa que es necesaria para crear las instrucciones que deben seguir las máquinas no se acaba. Por el contrario, cada vez hay una demanda mayor por crear estos programas. Ahí es cuando entran los artesanos del siglo XXI a realizar el trabajo.
Recordemos que la palabra artesano comparte raíz con la palabra arte, esto no es casualidad.