Consolas empresariales: ¿pasado o futuro?
Actualmente todas las empresas usan para sus actividades diarias todo tipo de programas empresariales o de gestión, como por ejemplo ERPs, CRMs, contabilidad, inventario, gestión de tiendas virtuales, etc. Y mucho antes que las empresas "de oficina" ya empezaron las fábricas, con sistemas de control para máquinas, vagonetas, control de carriles y todo tipo de automatismos. Podemos decir que no existe ningún proceso en la vida de una empresa que no tenga un programa directamente asignado para controlarlo.
Y aún podemos ampliar mucho más este control de los programas si añadimos conceptos como Big Data y Machine Learning, convirtiendo muchos de los procesos de la empresa en puros procesos automáticos y otros en procesos relativamente sencillos de gestionar.
Todos estos sistemas son, en su esencia, ecuaciones matemáticas y fórmulas que calculan resultados en base a unas entradas y que se encargan de transformar datos, pasándolos de una estructura cruda a algo que tiene sentido para el negocio y que lo impulsa, además de proporcionar información útil para mejorarlo.
A pesar de todo lo complejo que pueda parecer, estos sistemas no son demasiado complicados ya que están basados en reglas matemáticas cuya lógica es fácil de entender. Pero existe una variable que no he comentado y que cambia totalmente las reglas del juego, y es que estos sistemas no son meras cajas negras que guardamos en un cuarto oscuro y dejamos que hagan su trabajo, sino que necesitan trabajar con un ente bastante impredecible: el usuario, el ser humano.
En un principio esta comunicación programa-humano se realizaba mediante las típicas consolas de verde sobre negro que nos permitían introducir comandos que los programas obedecían. Con el tiempo, esas consolas han evolucionado hacia aplicaciones totalmente visuales con botones, formularios y menús y se han vuelto tan complejas que hemos creado un nuevo tipo de programadores, los encargados de desarrollar el "front-end", los que hacen que los programas sean intuitivos y fáciles de usar.
Pero en esta transformación los usuarios han perdido mucho más de lo que parece, han perdido su poder.
Me sorprendí muchísimo cuando descubrí que muchos matemáticos y científicos trabajan directamente con Python y con Jupyter Notebook, es decir, que trabajan con una consola de texto aunque con muchas más funcionalidades que las de hace cincuenta años, en las que pueden visualizar tablas, gráficos, texto enriquecido, etc. Es cierto que tienen un perfil relativamente cercano al de los programadores, pero aún así no deja de ser sorprendente que prefieran la "rudeza" de la consola a los programas más visuales.
Y entonces caí en la cuenta de que el programa que más valoran en cualquier oficina no es el último ERP de moda; todo lo contrario, lo más valorado es el blanco cuadriculado de la hoja de cálculo. Al igual que para los matemáticos, la posibilidad de crear, de usar el poder de la máquina hasta su límite, es lo más valorado por cualquier profesional. Puede que al principio las interfaces elegantes ayuden mucho, pero a partir de cierto punto el usuario quiere ir más allá, quiere romper la barrera que existe entre el programa y el humano y hacer cosas increíbles que de otra forma no podría hacer.
Muchos programas se desarrollan teniendo en cuenta que se accederá a través de una interfaz gráfica, su arquitectura se ve condicionada por el front-end, y creo que es un gran error. Los programas deberían desarrollarse para ser usados a través de una consola de texto. Las interfaces gráficas tienen una utilidad que no debemos olvidar, pero el desarrollo de un programa debe estar centrado en los datos, no en la interfaz de uso.
Muchos ven las consolas de texto como algo del pasado, pero imaginad un futuro cercano dentro de veinte años. ¿Cómo usaremos los programas con reconocimiento de voz? ¿Se parecerán a las actuales interfaces gráficas? ¿O estaremos hablando a "consolas de voz"?