Ultima revisión 25/01/2023
Simplicidad ante todo
Hoy os quiero hablar de la simplicidad y, para ello, empezaré por dos frases que, creo, son importantes a la hora de desarrollar y diseñar.
No hay problemas difíciles, lo que hay son malos planteamientos, Pablo E. Fernández Casado.
La perfección no se alcanza cuando no hay nada más que añadir, sino cuando ya no queda nada más que quitar, Antoine de Saint-Exupery.
Ambas frases hacen referencia a la Ley de Tesler, también conocida como el Principio de Conservación de la Complejidad, y a la Ley de la Complejidad Añadida, también denominada coloquialmente como la ley de la perspectiva elemental.
La Ley de Tesler, también conocida como el Principio de Conservación de la Complejidad, viene a decir que todo sistema posee una cierta complejidad que no debe reducirse ya que, a veces la realidad no puede ser tan teórica. También viene a decir que simplificar una tarea más de la cuenta puede ser perjudicial y provocar el efecto contrario aumentando su complejidad inherente.
La Ley de la Complejidad Añadida, también conocida como la ley de la perspectiva elemental, viene a decir que no hay problemas difíciles o enrevesados, lo que hay son malos planteamientos. Esto es, en su mayoría, porque las personas tendemos a fusionar nuestro conocimiento adquirido con las nuevas ideas y conceptos de forma que, nuestra experiencia, se va llenando de premisas que pueden afectar a nuestra forma de pensar, reaccionar y comportarse y acabar afectando a los problemas volviéndolos más complicados de lo que ya son.
No me voy a meter demasiado en materia ya que, en su día, ambas leyes las expliqué en detalle, pero, básicamente, vienen a decir que todos los seres humanos tienden a complicarse la vida mucho más de lo necesario.
Dependiendo de en qué momento, los seres humanos tienden a simplificar demasiado los problemas, lo cual puede generar una mayor complejidad, o tienden a añadir complejidad por la cantidad de conocimientos y premisas que se tienen en cuenta al no ver la casuística de una manera global y sin prejuicios.
Puede parecer una tontería, pero esto lo he podido comprobar infinidad de veces y en innumerables ocasiones e individuos. La que mejor recuerdo fue una en la que me pidieron solucionar el problema de ordenar los paquetes de un camión de forma que entrasen lo mejor posible e intentando que los más cercanos a la puerta del camión fuesen los primeros en entregar (es decir, que los últimos en entrar, fuesen los primeros en salir).
Lo primero que se me ocurrió fue diseñar un sistema de ordenación que utilizaba un algoritmo basado en probabilidad, interpolación, integración y combinatoria, por lo que me puse manos a la obra y, más de siete días después, cuando lo fui a probar con un número elevado de paquetes vino el primer problema.
Efectivamente, el sistema ordenó todos los paquetes de forma óptima, aunque tardó el nada trivial tiempo de más de 3 minutos en mostrar el resultado. Todo el mundo en la empresa me decía que era genial y que lo dejase tal y como estaba, pero yo sabía que ese resultado no era todo lo bueno que cabría esperar e intenté buscar otra solución.
Tras mucho pensar sin obtener ninguna solución factible me fijé en el salvapantallas de uno de mis colegas y entonces es cuando me vino la inspiración. En vez de tratar el problema como un sistema matemático, lo que debía hacer era tratarlo como un problema espacial a través de un método heurístico conocido.
Tras realizar el desarrollo, se hicieron las mismas pruebas que con el algoritmo anterior, pero, ahora, la cosa cambió y se obtuvieron unos resultados muy diferentes. Tanto fue así que la ordenación de ese mismo número de paquetes bajó a 2,83 segundos, en vez de los 3 minutos que invirtió el algoritmo anterior.
El tiempo de espera bajo, el rendimiento subió y los recursos de la máquina necesarios para obtener el resultado esperado se minimizaron evitando, una vez más, que en un momento dado el equipo se quedase bloqueado por el alto nivel de procesamiento, cálculo y subprocesos internos.
Por tanto, de todo esto se deduce que, aunque las primeras soluciones a un problema pueden parecer las más adecuadas desde un punto de vista teórico, sin embargo, pueden no ser la mejor opción a nivel de experiencia de usuario, usabilidad y rendimiento del sistema.
Y también se puede deducir que la solución a los problemas no pasa por hacer cosas que de otra manera no harías de manera manual (como hacer cálculos de probabilidad, interpolación, integración y combinatoria) sino en realizar una solución que respete la complejidad inherente y no añada nada que no sea estrictamente necesario.
En otras palabras, la mejor solución pasa por cambiar la perspectiva del problema, eliminar todo lo complicado y hacerlo lo más sencillo posible mediante un proceso simple de interpretar y ejecutar.
NOTA: Si deseáis más información sobre Diseño, UX y usabilidad para mejorar vuestras aplicaciones y webs podéis adquirir el libro UX Design - Hazlo fácil pensando en el usuario.