Customización vs. Mantenibilidad

 

Toda solución analítica tiene como objetivo satisfacer los requerimientos de obtención de información de los usuarios para la toma de decisiones. Sin embargo, este no es el único objetivo a tener en cuenta. Existen otras cuestiones que debemos tener en cuenta y que son tan o más importantes que el mero hecho de satisfacer los requerimientos de los usuarios.

Uno de ellos es la mantenibilidad de la solución tecnológica, tal y como se indica en el artículo «Calidad en un sistema de BI – Un beneficio para todo«. En este artículo se plantea el conflicto entre estos dos objetivos.

 

Satisfacción del usuario

La importancia de satisfacer al usuario va más allá del mero hecho de que la solución tecnológica cumpla con los requerimientos.

Un proyecto que no dé al usuario aquello que necesita, es un proyecto que no será utilizado por el usuario. Y por tanto, un fracaso rotundo. De ahí la importancia de satisfacer los requerimientos de usuario.

No obstante, debemos plantearnos siempre la necesidad real de ese requerimiento si no queremos estar altamente condicionados por los requerimientos. Es decir, el mero hecho de que un usuario indique que algo es importante no significa que realmente lo sea. Una lista de deseos del usuario no es motivo suficiente para hipotecar otros objetivos de un proyecto que pueden ser tan o más importantes que los requerimientos de usuario.

En el caso de una solución analítica genérica, podemos aplicar customizaciones para satisfacer algunos requerimientos de usuario concretos. Pero, ¿cómo afectaría esto al proyecto en el futuro?

Mantenibilidad

Un proyecto tecnológico no se acaba en el momento en que éste se entrega. Después de poner el proyecto a disponibilidad de los usuarios, empieza la fase de mantenimiento.

En esta fase, hay que realizar tareas correctivas y evolutivas que requieren la modificación de la solución tecnológica. Estas modificaciones tienen un coste que se cuantifica en términos de mano de obra y a la postre en un coste económico.

La mantenibilidad indica el grado de facilidad del mantenimiento de una solución. A mayor grado de mantenibilidad, menor coste de mantenimiento. Por tanto, es muy importante mantener un grado de mantenibilidad alto. De esta manera, conseguimos reducir el coste de las tareas de mantenimiento, tanto correctivo como evolutivo. Y debemos tener en cuenta que esta fase acaba siendo la que se dilata más en el tiempo, por muy largo que haya sido el periodo de desarrollo de un proyecto.

Conflicto entre objetivos

La mantenibilidad está reñida con otros objetivos de todo proyecto informático como pueden ser la eficiencia y la satisfacción completa de los requerimientos de usuario.

Un ejemplo clásico de requerimiento de usuario en una solución analítica es el de la construcción de un informe que obtenga una información concreta en el mínimo tiempo posible.

Ante este requerimiento es importante plantearse un par de cuestiones:

  • ¿Es posible reducir el tiempo de ejecución de una consulta concreta creada por una solución analítica genérica? Las consultas creadas a partir de soluciones genéricas suelen no ofrecer el mejor rendimiento posible, ya que una solución a medida estará más ajustada. Por tanto, sí es posible reducir el tiempo de consulta.
  • ¿Cuál es el tiempo máximo que un usuario puede esperar para tener la información que obtiene de la consulta, que le permitirá tomar una decisión con valor para su organización? Esta respuesta la tiene que proporcionar el usuario. Lo que sucede a menudo es que el tiempo máximo que pide el usuario no es para la toma de decisiones sin pérdida de la oportunidad de la información, sino que responde al tiempo máximo que el usuario quiere esperar delante de la pantalla a obtener los resultados.

Ante estas dos cuestiones, debemos valorar qué es más importante: Ofrecer una respuesta rápida al usuario (reduciendo el grado de mantenibilidad de la solución analítica) o mantener un grado de mantenibilidad alto en nuestra solución (aunque ello implique la no satisfacción del usuario).

Mi opinión es que, dentro de lo que sea posible, se debe hacer un esfuerzo por mantener el grado de mantenibilidad de una solución analítica, intentando minimizar las customizaciones. Para ello es muy importante comunicar correctamente los objetivos tanto a los usuarios como a los sponsors del proyecto (para buscar su apoyo en la mediación con los usuarios). De esta manera conseguiremos contener el coste de mantenimiento de la solución analítica, que no deja de ser otro objetivo clave.

Conclusión

La satisfacción de los requerimientos de usuario es uno de los objetivos primordiales en todo proyecto de creación de una solución analítica, aunque no el único.

Mantener un grado de mantenibilidad alto permite reducir los costes en la fase de mantenimiento de un proyecto. Y reducir los costes es un objetivo de vital importancia.

Existen conflictos entre objetivos, como puede ser entre la satisfacción de los requerimientos de usuario y la mantenibilidad de una solución.

La comunicación efectiva de los objetivos a sponsors y usuarios nos permite negociar las posibles situaciones de conflictos entre objetivos.

Visualización efectiva de información

 

El objetivo de mostrar información es la fácil comprensión de ésta para poder realizar una toma de decisión.

La información puede presentarse en una gran variedad de formatos. Dar con el formato ideal es, en sí, una quimera (ya se sabe que para gustos, colores). Sin embargo, lo cierto es que la manera cómo se presenta la información puede facilitar en diferente grado la comprensión de ésta.

Es por esto que una visualización efectiva de la información es tan importante como el mismo tratamiento de los datos a la hora de diseñar una solución analítica.

Tablas: El A, B, C de la visualización

Los datos suelen ser tratados como una sucesión de información con una estructura concreta. Y su almacenados más habitual, al menos desde el punto de vista conceptual, es el de una matriz.

Esa matriz está compuesta de:

  • Filas: Cada uno de los sucesivos registros de información.
  • Columnas: Las diferentes unidades de información (datos) que componen ese registro.

Por tanto, la manera más simple e intuitiva de visualizar información es mediante su representación en una tabla.

A continuación se muestra un ejemplo:

Hasta aquí todo es fácil.

Sin embargo, esta tabla es un caso simple. Se trata de la visualización de una matriz de 2 filas por 3 columnas (6 celdas de información). Esta tabla es fácilmente interpretable debido a la poca cantidad de información a visualizar.

En muchos casos nos encontraremos con tablas con más registros de los que nos caben en pantalla, lo cual dificultará la visualización (scroll continuo para ver todos los registros o simplemente la línea de totales que podamos tener al final de ésta).

Si añadimos el mes a la tabla anterior, obtenemos la siguiente tabla:

Esta tabla ya no cabe en la mayoría de las pantallas.

Si la tabla fuera por año y semana en lugar de por año y mes, aún es más evidente (ahora podréis experimentar la agonía de tener que hacer scroll para poder seguir con el artículo):

Prosigamos.

Llegados a este punto, ¿crees que es fácil identificar el mes con más ingresos de 2018? Lo de la semana lo dejo para los que no tengáis nada más interesante que hacer.

En este caso, los datos están ordenados por año, lo cual facilita la búsqueda de la respuesta. Pero, ¿y si os pido el mes y año con un mayor objetivo? Ahora ya nos toca hacer un recorrido visual por toda la tabla.

Independientemente del número de filas de la tabla, nos encontramos con otra dificultad añadida. En este escenario, como en muchos otros, podemos necesitar la realización de cálculos para poder obtener un conocimiento que nos permita tomar decisiones.

En este escenario, queremos identificar los meses (dupla año, mes) donde el objetivo no se ha cumplido. Además queremos ver esa diferencia numérica.

Una solución fácil vendría a partir de la creación de una nueva columna con fórmula «= INGRESOS – OBJETIVO» nos daría esa diferencia. De esta manera podríamos identificar fácilmente los valores negativos, que son los que nos interesan. El uso de un filtro para eliminar los registros que no queremos visualizar permitiría reducir el número de filas, pero eso no siempre sería suficiente.

Queda claro que esta visualización no es efectiva.

Tablas dinámicas: Uso inteligente del espacio

El uso de una tabla dinámica nos permite tener valores de las dimensiones en las filas y las columnas. Esto supone una reducción del número de filas, lo que supone la posible supresión del scroll.

La siguiente visualización muestra la diferencia entre ingresos y objetivo por año y mes, a la cual se le ha añadido un formato condicional para identificar los meses que no han llegado al objetivo:

Hemos mejorado mucho, pero a la vez hemos perdido detalle. Al no disponer de los ingresos y los objetivos, no podemos cuantificar si estos números representan un desvío elevado respecto a los objetivos o no.

Podríamos usar porcentajes, pero éstos se ven altamente distorsionados cuando los valores son bajos.

Podríamos añadir las columnas «Ingresos» y «Objetivo», o únicamente una de ellas, pero esto implicaría añadir mucha información a la tabla dinámica, cosa que complicaría su comprensión.

Gráficos: Una imagen vale más que mil palabras

El uso de gráficos permite mostrar información en una imagen, de manera que ésta resalte aquello que queremos obtener del análisis.

En este caso, nos interesa identificar los meses en los cuales no se ha llegado a los objetivos, a la vez que queremos ver esos ingresos y objetivos.

El siguiente gráfico nos muestra exactamente eso:

En este gráfico podemos identificar fácilmente, mediante las barras verticales y su dirección, si la diferencia entre ingresos y objetivos es positiva o negativa.

Además, podemos ver también el valor numérico de estos dos valores, con lo cual tenemos una visión más completa de la realidad.

En esta imagen estamos mostrando un total de 108 valores (3 métricas x 3 años x 12 meses/año), todo concentrado en una sola pantalla.

Además, los gráficos de la mayoría de las herramientas analíticas nos permiten obtener más información de detalle al posicionarnos sobre un elemento del gráfico (normalmente en forma de ventana emergente).

Usuarios y organizaciones anclados en el pasado

Lo expuesto hasta aquí no es nada que quede fuera del conocimiento de la mayoría de los usuarios. De hecho, entra dentro de lo que se puede considerar «sentido común».

Siendo así, ¿porqué hay tantos usuarios en tantas organizaciones que continúan visualizando la información en forma de tablas? ¿Porqué estos usuarios pierden tanto tiempo interpretando los resultados cuando podrían ser más eficientes y obtener mejores respuestas con riesgo de error en sus interpretaciones mucho menor?

Es necesario que las organizaciones tomen el control del análisis de datos, formando a sus empleados y apoyándolos para que puedan obtener respuestas para la correcta toma de decisiones de la manera más simple y eficiente. Solamente de esta manera podrán modernizar sus procesos analíticos.

La creación de soluciones analíticas sin la correcta formación y soporte a los usuarios, es un error. Los usuarios son los que decidirán como usar las herramientas. Y si ellos deciden usarlas de la manera más ineficiente, la organización es incapaz de mejorar sus procesos internos de toma de decisión.

Conclusión

La visualización de información es clave para una toma de decisiones eficiente.

El uso de tablas como visualización por defecto genera grandes ineficiencias en las organizaciones, debido al alto coste temporal y al riesgo de errores en la interpretación de la información.

El uso de tablas dinámicas es una ligera mejora respecto al uso de tablas, pero arrastra ciertas limitaciones de éstas.

Los gráficos pueden ser una gran solución para la visualización de información. Existe una gran variedad de formatos, cada uno adecuado a resaltar cierto elemento de información. El hecho de no obligar a leer los resultados es una gran ventaja respecto a las tablas y tablas dinámicas.

Las organizaciones deben apostar en la visualización para poder facilitar la interpretación de la información por parte de sus empleados. De esta manera conseguirán una mayor eficiencia y un menor grado de error en la toma de decisiones.