De vez en cuando me toca evaluar aplicaciones desarrolladas por otras personas y lo que siempre noto es que carecen de “inteligencia”. O tienen algo, pero no mucha, o no toda la que pudieran tener.

¿Cuándo una aplicación es “inteligente”?

Cuando toma las decisiones correctas, en el momento oportuno.

¿Y cómo se consigue eso?

Haciendo que el usuario trabaje lo menos posible.

Para ello, la aplicación debe evitar pedirle al usuario que haga algo que podría evitarse.

Ejemplo 1. Tablas maestras sin filas o con solamente una fila

Un ejemplo muy común es el siguiente:

– La aplicación está preparada para ser multi-moneda, pero esta Empresa utiliza una sola moneda. Entonces, no tiene sentido preguntarle cual es la moneda con la cual se está haciendo la compra, la venta, o lo que sea. Como hay una sola moneda es evidente cual es. La aplicación en ese caso ya debería elegir la moneda correcta (y nunca se equivocará, ya que hay una sola moneda)

Entonces, la aplicación verifica cuantas filas existen en la tabla de MONEDAS. Si esa tabla no tiene filas, entonces debe avisarle al usuario que no puede continuar porque la tabla de MONEDAS está vacía (si se le permite continuar recién en el momento de grabar se percatará del error y se le hará perder tiempo al usuario). Si hay solamente una fila entonces ya la muestra y deshabilita ese campo para que el usuario ni siquiera precise presionar la tecla ENTER.

En ambos casos (la tabla de MONEDAS sin filas o con una sola fila) la aplicación actuó inteligentemente.

Ejemplo 2. Procesos que pueden realizarse automáticamente

Algunos procesos deben realizarse cuando se cumple una condición. Por ejemplo al finalizar un mes se realiza un proceso de cierre.

Supongamos que se necesita guardar un resumen de las ventas de cada mes. En este caso en una tabla de CONFIGURACIÓN se podría tener guardados el mes y el año del último resumen. Si tenemos guardados 08/2014 (mes de agosto del año 2014) y las fechas de las ventas que están ingresando los usuarios corresponden al mes de septiembre de 2014 nada se hace, pero cuando una venta se carga con mes octubre del año 2014 y además la fecha del Servidor nos muestra que estamos en el mes de octubre del año 2014 entonces la aplicación ya puede iniciar automáticamente el proceso de generación del resumen de las ventas del mes de septiembre de 2014. ¿Por qué? porque la aplicación ya sabe que se terminaron de cargar las ventas del mes de septiembre.

A veces, aunque los usuarios sepan que deben ejecutar tal o cual proceso cuando se cumple alguna condición no lo hacen. Porque se olvidaron, porque estaban ocupados con otras cosas, o porque no les importa. Sea como sea, el proceso aún no fue realizado y cuando se necesiten sus resultados deberá ser ejecutado y eso hará perder tiempo valioso a los usuarios, tiempo que podrían haberse ahorrado si la aplicación hubiera actuado inteligentemente.

Conclusión:

Aunque en el primer ejemplo se utilizó una tabla de MONEDAS, ese desde luego no es el único caso. Lo mismo se haría con las tablas de MARCAS, de UNIDADES DE MEDIDA, de PAÍSES, de TIPOS DE ENVASES, de IMPUESTOS, etc., o sea, con cualquier tabla que eventualmente podría tener una sola fila.

Lo mismo con los procesos. Cualquier proceso que debe ejecutarse cuando se cumple una determinada condición es factible de ser lanzado automáticamente, proveyéndole así de “inteligencia” a nuestra aplicación.

Aunque las compras de las aplicaciones las deciden los propietarios o los directivos de la Empresa, quienes luego las usan son quienes determinan si se la seguirá usando o si será desechada y cambiada por algo mejor. Una aplicación desechada es una pésima publicidad para el desarrollador en cambio una aplicación funcionando a full es una buenísima publicidad.

Si una aplicación es “inteligente” entonces los usuarios trabajarán lo mínimo posible. Como dice un viejo dicho informático: “si el usuario trabaja poco es porque el Analista trabajó mucho. Y viceversa”.

No importa lo buena que tú creas que es tu aplicación, si a los usuarios de la misma no les gusta entonces no durará, harán comentarios negativos un día sí y el otro también, hasta que quienes tienen el poder de decisión decidirán tirarla a la basura y conseguirse algo mejor.

La mejor forma de evaluar la “inteligencia” de una aplicación es sentándote tú mismo a utilizarla con una gran carga de datos y pidiendo un montón de informes. Si te das cuenta que algo podría mejorarse, entonces debes mejorarlo.

Si tu aplicación le hace perder 2 segundos al usuario por cada fila que carga, y se cargan 1.000 filas por día entonces son 2.000 segundos por día que se perdieron, lo cual en un mes laboral hará 48.000 segundos y en un año 576.000 segundos, lo cual representa 160 horas ó 20 días laborales, que podrían haberse empleado en algo más productivo.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

 

Anuncios