Guía de buenas prácticas para la calidad y fiabilidad de las hojas de cálculo en las organizaciones

En este artículo vamos a revisar las causas de la baja fiabilidad de las hojas de cálculo usadas en las organizaciones y propondremos una serie de buenas prácticas para mitigar los riesgos que estos errores pueden suponer.

En un artículo anterior  vimos cómo hay estudios que demuestran que cerca del 90% de las hojas de cálculo que se manejan, contienen errores y  referimos algunos ejemplos de incidentes graves en organizaciones como consecuencia de estos errores en hojas de cálculo usadas para procesos críticos de negocio.

Causas frecuentes de la baja fiabilidad de las hojas de cálculo

Como referimos en nuestro artículo anterior,  la baja fiabilidad de las hojas de cálculo usadas en las empresas obedece en gran medida a simples errores humanos a la hora de manejar la aplicación:

  • Sobreescribir con un valor fijo un celda que tiene una fórmula
  • Olvidar copiar la fórmula en una celda.
  • Referenciar una celda errónea en la fórmula de cálculo de otra celda.
  • Totalizar por error seleccionando un rango de celdas menor o mayor del necesario.
  • Usar por error un referencia de celda relativa en vez de una referencia absoluta (o viceversa)
  • Realizar cálculos mezclando distintas unidades de medida.

 Sin embargo, en otros casos, la baja fiabilidad es atribuible a aspectos relacionados con la ausencia de un enfoque metodológico en el desarrollo de hojas de cálculo:

  • En muchas ocasiones las personas encargadas disponen de muy poco tiempo para el desarrollo de la hoja de cálculo que se les solicita.
  • En la petición original para su desarrollo, las personas encargadas reciben especificaciones poco claras y ambigüas. No hay suficiente claridad sobre el modelo matemático a usar como referencia.
  • Muchas veces el autor de la hoja de cálculo carece de la experiencia necesaria, bien porque desconoce los fundamentos matemáticos del dominio de cálculo a implementar, bien porque no tiene los conocimientos suficientes sobre programación de hojas de cálculo. En este sentido, es interesante reseñar que existen cientos de cursos sobre programación de hojas de cálculo; sin embargo, todos estos cursos están orientados al dominio de las funcionalidades concretas de lo que se puede hacer o no con una aplicación concreta (ej: Excel); sin embargo, ninguno de ellos cubre aspectos esenciales sobre la metodología para diseñar y construir hojas de cálculo fiables.
  • Las fórmulas de cálculo muy complejas tienen mayor tendencia a tener errores.
  • Se  importan o se adaptan fórmulas de otros sitios, sin que se tenga la certeza de la corrección o adecuación de las fórmulas importadas o adaptadas. En la mayor parte de los casos, no existe una documentación sobre los procesos de cálculo, ni sobre las condiciones de uso necesarias.
  • Las hojas de cálculo son liberadas para su uso, sin que se hayan realizado pruebas suficientes para verificar su correcto funcionamiento.
  • Muchas veces los cálculos realizados consisten en una serie de encadenamientos de diferentes hojas, lo cual hace muy difícil verificar el que pueda o no existir un error en alguno de los cálculos intermedios.
  • En bastantes ocasiones el propio diseño de la hoja de cálculo favorece los errores por parte de los usuarios de las mismas; por ejemplo,  cuando las celdas que contienen las fórmulas no están protegidas y pueden ser borradas o modificadas por error, cuando no existe un manual de uso de la misma y esto  induce a un uso erróneo.
  • En la mayor parte de las ocasiones, no existe una documentación del funcionamiento y uso de la herramienta. Con posterioridad, las personas que tienen que encargarse de su mantenimiento futuro  y adaptación, no conocen exactamente dónde ni cómo deben realizarse los cambios.

Buenas prácticas para incrementar la calidad y fiabilidad de la informática de usuario final aplicada a procesos críticos

Una de las primeras recomendaciones que han de hacerse, es valorar si el desarrollo de una hoja de cálculo o aplicación de base de datos de escritorio es la mejor opción para resolver el problema que se trata de resolver. Como norma general, mi recomendación es que si la funcionalidad a implementar es crítica para el negocio y va a requerir de cálculos complejos; lo mejor es descartar el uso de una opción de este tipo y elegir el desarrollo de una aplicación de negocio convencional por parte del departamento de tecnología.

Sin embargo, si aun así se decide abordar el desarrollo de una herramienta de usuario final; entonces conviene aplicar una metodología de desarrollo que permita asegurar unos buenos niveles de calidad, usabilidad, fiabilidad y validez de los resultados, a la vez que un fácil mantenimiento y evolución de la herramienta. En definitiva, se trata de establecer medidas de control que nos permitirán reducir a niveles aceptables el riesgo derivado de los cálculos erróneos.

De modo general, el ciclo de vida para el desarrollo de modelos de cálculo complejos basados en herramientas de usuario final consta de las siguientes etapas:

• Definir alcance

• Definir lógica de cálculo

• Diseñar una estructura efectiva

• Programar la hoja de cálculo

• Hacer Pruebas de calidad

• Entregar la hoja para su uso y posterior mantenimiento

Definir alcance

En esta etapa, el analista encargado del modelo debe recabar la información necesaria para determinar, por una lado, la necesidad de negocio que debe ser resuelta con la hoja de cálculo que se quiere construir (para qué sirve el modelo y que resultados se esperan de él) y por otro, delimitar con claridad que es lo que quedará cubierto por el modelo y qué quedará fuera de él, tomando en consideración el coste de incluir o no ciertas variables en el modelo.

Se trata de prevenir uno de los errores más frecuentes consistente en lanzarse a programar una hoja de cálculo sin tener claro el alcance funcional de la misma, lo que propicia hojas muy complejas y propensas a errores.

La definición del alcance será además el punto de partida para poder planificar el desarrollo.

Definir lógica de cálculo

Una vez acordados estos requisitos básicos, el paso siguiente es la especificación de las fórmulas matemáticas en las que se basará el modelo. Esta es sin duda una de las tareas más importantes del proceso.

Como consecuencia de esta fase, es imprescindible que se genere una documentación adecuada en la que se detallen, los objetivos, el alcance y una descripción clara de las fórmulas que se van a programar. Esta documentación será de gran ayuda, no solo para facilitar la validación del modelo antes de empezar a programar; sino como referencia posterior cuando surjan dudas sobre el uso de la hoja o haya solicitudes de modificación.

Trucos prácticos para la especificación del modelo

• Una recomendación a la hora de especificar el modelo de cálculo que se programará en la hoja de cálculo, consiste en tomar como punto de partida una imagen clara de los resultados que se pretende obtener con la hoja de cálculo, e ir “retrocediendo” paso a paso, tratando de identificar los cálculos necesarios y los datos de entrada necesarios para llegar a estos resultados finales. De esta manera se consigue que la información introducida en los modelos de cálculo sea estrictamente la necesaria.

• Para facilitar la documentación y validación por parte de varias personas del modelo de cálculo que se pretende construir, es recomendable es uso de los llamados diagramas de dependencias Estos diagramas permiten visualizar la jerarquía de cálculos sucesivos que llevarán al resultado final, permitiendo analizar de manera sencilla los datos necesarios para realizar cada cálculo y cómo los resultados obtenidos en cada paso alimentan a su vez cálculos posteriores hasta el final del proceso.

diagrama_depend

• Complementar el modelo visual del diagrama de dependencias con una hoja en donde se describa cada una de las fórmulas matemáticas que se llevan a cabo en cada paso del modelo.

Diseñar una estructura de información efectiva

Una vez identificadas las fórmulas de cálculo y los datos necesarios para llegar al resultado deseado, el siguiente paso, inmediatamente anterior a la programación, consiste en decidir que estructura lógica y diseño de información tendrá la hoja de cálculo. Aquí son de aplicación algunas recomendaciones básicas:

• Para aumentar la legibilidad y prevenir errores es muy importante separar claramente el área de entrada de datos, el área de cálculos y el área de salida, donde se mostrarán los resultados. Este separación puede conseguirse, bien dedicando una hoja de cálculo a cada una de estas secciones, bien delimitando claramente tres áreas en una única hoja.

• Tratar de organizar la información de modo que se pueda leer como en un libro. Por ejemplo, en occidente, de izquierda a derecha y de arriba abajo.

• En la medida de lo posible, es recomendable que se dedique una sola fila o columna para una misma fórmula. Esto incrementa la facilidad de mantenimiento, la depuración de errores y permite una mayor agilidad en la construcción

tabla_fila_mixta

tabla_fila_variable

• Tratar de ser consistente en la forma de presentar la información en hojas de cálculo similares.

• Incluir una sección identificativa de la hoja de cálculo, indicando el autor, la versión, la fecha, información breve sobre uso y presuposiciones del modelo de cálculo usado, información de contacto para obtener ayuda o información más detallada.

• Evitar el uso de filas o columnas ocultas.

• Cuando una hoja debe consolidar la información repetitiva de una serie de unidades que suelen ser las mismas a lo largo del tiempo y cuando la información recabada en cada unidad no es muy grande (por ejemplo, cuando hay que consolidar la información de diferentes unidades organizativas, departamentos o regiones), entonces la mejor forma es usar un único archivo de trabajo y dedicar una hoja de cálculo dentro de ese archivo de trabajo a cada departamento, región, etc… De esta manera, se simplifica la construcción y se facilita la comprensión del modelo; sin embargo, es necesario diseñar un método para que cada unidad que contribuye pueda proporcionar su parte de la información.

• Como alternativa al método de consolidación anterior, se pueden crear archivos independientes para cada unidad (departamento, región país) y consolidar la información en un archivo de trabajo independiente, haciendo referencias en las celdas o los datos de cada archivo de trabajo independiente; esto simplificar el proceso de recopilación de información entre las distintas unidades y reduce el tamaño de cada hoja de cálculo; sin embargo, dificulta la compresión.

• Usar en la medida de lo posible Macros para automatizar operaciones repetitivas (ej. Importación de datos).

Programación de la hoja de cálculo

Como hemos comentado con anterioridad, la principal causa de la alta tasa de errores y baja fiabilidad de las hojas de cálculo que se manejan en las organizaciones, se debe a que se comienza con la fase de programación sin que se haya realizado ningún diseño o planificación previos. Sin embargo, si las fases anteriores de la metodología que estamos describiendo se han llevado a cabo de la manera adecuada, entonces la fase de programación no debería presentar mayores problemas.

Entre las buenas prácticas a tener en cuenta en esta fase:

• Tratar de mantener las fórmulas de cada celda lo más sencillas posible; si es necesario fragmentar los cálculos complejos en varios cálculos intermedios más sencillos.

• Incluir cálculos de verificación de errores: se trata de programar algunos cálculos orientados a resaltar posibles problemas de integridad o coherencia de los resultados; por ejemplo, mostrando textos en color rojo cuando se detecten descuadres en dos series de datos, o cuando un determinado valor está fuera del rango especificado o requerido.

• Utilizar la protección de celdas, de modo que no puedan ser modificadas por el usuario celdas que contienen fórmulas o constantes.

• Utilizar nombre fáciles de comprender para nombrar celdas individuales o rangos de celdas. Esta funcionalidad de hojas de cálculo como Excel, permite que las formulas se expresen con nombres de variable significativos en vez de con las coordenadas lógicas de la columna. Por ejemplo:

Coste Total = SUMA (Coste_Individual)

Frente a:

B1 = SUMA (A1: A10)

Hacer Pruebas de calidad

Con independencia de las pruebas parciales que el encargado de la programación irá haciendo a medida que hace su trabajo, una vez finalizada la programación, en esta fase se trata de diseñar casos de prueba que permitan obtener una garantía razonable de que los resultados producidos por la hoja de cálculo son los esperados.

Dentro de las diferentes pruebas de calidad que es recomendable hacer podríamos citar:

• Verificación de cada fórmula individual y compararla con la de la definición para ver que son correctas.

• Verificar que en todas las celdas, las referencias a otras celdas son correctas.

• Verificar que los rangos usados para los cálculos son correctos, incluyendo las celdas requeridas.

• Verificar que no es posible sobreescribir celdas que deberían estar protegidas.

• Comparar los resultados de los cálculos realizados con los obtenidos por otro medio alternativo fiable para comprobar que son correctos.

• Comprobar el comportamiento de los cálculos con datos de entrada externos (ej: ceros, números fuera de rango o tipo, valores muy pequeños) para comprobar que no produce errores no controlados.

• Comprobar que los cálculos de verificación de errores, funcionan como es debido detectando las incoherencias de datos que tratan de controlar.

• Comprobar que las macros funcionan correctamente antes distintas circunstancias de uso: tipo o volumen de datos.

Entrega para uso y mantenimiento

Una vez verificada la calidad, la hoja puede empezar a ser usada; sin embargo, con el tiempo se podrán identificar errores no detectados en la fase de pruebas que habrá que corregir o habrá cambios en las necesidades de uso que requerirán que se vaya actualizando la hoja de cálculo original.

Por ello es necesario que cada hoja de cálculo tenga un responsable de su mantenimiento y que esté cubierta por procesos sistemáticos de gestión de cambios. De hecho, cada cambio debería seguir los mismos pasos de la metodología descrita para evitar que la calidad de la hoja vaya degradándose con el tiempo.

Para una gestión adecuada, es necesario inventariar cada hoja de cálculo que se use en la organización. En el inventario se consignará toda la información relevante sobre la misma: criticidad, usuarios, responsables, última versión, ubicación de la documentación, etc… Este inventario será además de utilidad para poder auditar periódicamente si los controles establecidos son efectivos…

…De ser así la probabilidad de errores con impacto económico para la organización disminuirá, lo cual es el objetivo inicial que nos propusimos…

Muchas gracias por la atención y hasta pronto, esperamos que esta información pueda ser de utilidad.

Deja un comentario