jueves, 10 de marzo de 2011

(6) LA SEGURIDAD

El software puede ser de mucho valor, medido éste por sus funcionalidades, no por su precio; también puede ser imbatible en velocidad, en disponibilidad y en facilidad de uso. Pero, ¿de que le sirve todo eso si le roban el computador y pierde los datos?

Nunca hay que perder de vista la importancia de custodiar bien los datos. Los computadores y los programas se reemplazan fácilmente pero sus datos no. De ahí la importancia de los respaldos.

1) La facilidad para respaldar

Tan importante como respaldar los datos es asegurar los respaldos. De nada sirve en caso de incendio o inundación tener los respaldos en un sitio contiguo al de operación si tanto la base de datos como los respaldos resultan destruidos. Para evitarlo, la regla de oro es mantener los respaldos en un sitio alejado del que se respalda. Esto implica respaldar en medios externos fáciles de transportar y guardar, en un computador remoto o en internet.

Los respaldos para ser efectivos deben hacerse a lo menos diariamente. Hay sistemas pesados (que ocupan mucho espacio) que se respaldan totalmente en una fecha inicial y en lo sucesivo de van respaldando sólo los movimientos diarios; pasada una cierta cantidad de días se saca un nuevo respaldo completo y se reinicia el ciclo. El gran problema que presenta este método es que la recuperación de los datos desde sus respaldos obliga a reprocesar tantos días como hayan transcurrido desde la fecha de la ultima copia completa, cosa que puede tomar mucho tiempo y que no está totalmente libre de posibilidades de falla.

En la actualidad, con los avances en la capacidad de almacenamiento de los medios y la disminución de los precios, se usa también el método de los espejos, es decir que la base de datos está duplicada y toda transacción se registra simultáneamente en las dos copias, de tal modo que se mantienen permanentemente iguales. El inconveniente de éste método está en su costo más alto y la dificultad para mantener permanentemente conectadas dos bases de datos distantes.

Los sistemas computacionales tienen la particularidad de que los más antiguos son preferibles siempre que tengan las mismas funcionalidades que los más modernos. Para comenzar, los programas son en general complejos y raras veces están libres de falla ("bugs"), lo que va generando versiones sucesivas a medida que son corregidos; en consecuencia, un sistema que tenga algún tiempo de uso tendrá menos "bugs" que uno nuevo. El ejemplo más conocido es Windows. La ultima versión (Windows7) en un año tiene cinco parches mayores y Windows XP fue renovado 3 veces mediante los "service packs", por consiguiente, si usted no necesita la funcionalidades de Windows7, trabajará más rápido y con más estabilidad con WindowsXP.

También ocurre que las capacidades de los computadores crecen exponencialmente en tiempos que son cada vez más breves, de modo que los sistemas más antiguos corren mucho más rápido y se respaldan en tiempos que son cada vez más cortos comparados con los sistemas llenos de gráficos y colores diseñados para las nuevas tecnologías . Así, sistemas que hace sólo un par de años eran pesados hoy se pueden respaldar completos, en menos de 10 minutos, en un pendrive.


2) La impermeabilidad contra intervenciones no autorizadas.

Un segundo aspecto importante en la seguridad es evitar la posibilidad de que el sistema sea manipulado para ocultar errores o fraudes. La regla esencial en la contabilidad es que un asiento contabilizado no se puede modificar; en caso de error se debe reversar y contabilizar corregido. Si el sistema no respeta esta norma, está dando facilidades para todo tipo de manipulaciones de la información.

Pero no se trata tan sólo de eso, también los datos deben ser inaccesibles por medios o programas externos al sistema y los programas del sistema deben ser imposibles de modificar. En otras palabras, los datos deben almacenarse encriptados en tanto los programas fuente deben estar totalmente fuera del alcance de los operadores. Aquí cobra relevancia lo dicho anteriormente respecto de los programas interpretados o compilados. Si un programa compilado (.EXE o .DLL) falla (tiene un "bug"), el operador no tiene más alternativas que repetir el proceso cuando reciba el programa corregido. En cambio, los programas interpretados cuando fallan generalmente despliegan el código fuente para dar la opción al operador de corregir la falla y continuar el proceso.

¿Ha visto alguna vez el código fuente de un sitio web? Seguro que si. Son esos textos raros metidos en paréntesis angulares (<> ) llenos de barras (//) que aparecen algunas veces en lugar de las páginas. El hecho que un operador pueda modificar el comportamiento de los programas no incentiva su corrección, aumenta las posibilidades de error o fraude e introduce dudas sobre la correcta operación del sistema y los resultados obtenidos.

La privacidad de la información.

¿Le gustaría que un competidor suyo tuviera información completa sobre sus clientes y sus costos?. Seguro que no. A los aspectos anteriores de la seguridad debe agregarse la privacidad.

En realidad, usted nunca va poder estar seguro de que no se produzcan filtraciones a través de empleados desleales. En cambio puede asegurarse de que nadie que no este autorizado tenga acceso a sus datos. Esto se logra mediante claves de acceso al sistema que impiden a las personas no autorizadas ejecutar los programas o acceder a datos sensibles.

Se han puesto de moda los sistemas que operan sobre internet. La justificación es que usted puede acceder a sus datos desde cualquier parte donde encuentre un computador conectado a la red. Esto le otorga una gran movilidad pero a un gran riesgo, ya que usted va a depender absolutamente de su proveedor del servicio, quien va tener la custodia de sus datos y usted no va a enterarse si se produce un mal uso o sus datos son copiados y vendidos.

Diariamente se ven noticias sobre violaciones de sitios tan importantes y resguardados como el Pentágono o las capturas de Wikileaks sobre la correspondencia de la diplomacia norteamericana. La mayor feria informática del mundo, CeBIT, de celebró hace unos días en Hannover (Alemania) el "cloud computing" o "informática desmaterializada", sin responder a todos los interrogantes que en materia de confidencialidad plantea esta tecnología dominada por las empresas estadounidenses, tras la "desaparición" de 150.000 cuentas e-mail de Google.

El único caso que justifica la comunicación remota e inmediata (puede ser internet o red celular) es el de los vendedores en terreno para que se puedan gestionar los despachos inmediatamente después de tomado el pedido. De cualquier modo, si usted considera que necesita este tipo de comunicación con su sistema de contabilidad, la recomendación es que ésta se establezca con sus propios servidores y que la red de comunicaciones funcione sobre una copia aislada de los datos de la contabilidad.

En resumen, LA SEGURIDAD se manifiesta en la facilidad para respaldar los datos, en la impermeabilidad a las intervenciones no autorizadas y en la privacidad de los datos. Los vendedores tratarán de convencerlo de la utilidad de cosas que pueden ser espectaculares pero que usted y su empresa no necesitan realmente.

viernes, 4 de marzo de 2011

(5) LA SOLIDEZ DEL SOFTWARE

Time is money decía John D. Rockefeller.
El costo de explotación de un sistema y la entrega oportuna de información dependen, aparte de los recursos humanos y la estructura de la orgenización, de la solidez del software. Esta se basa en tres pilares que son : La disponibilidad, la estabilidad y la facilidad de uso.

1) LA DISPONIBILIDAD DEL SISTEMA
La disponibilidad del sistema es el tiempo que diariamente está a su disposición y depende de su topografía. Su importancia radica en que influye directamente en el aprovechamiento de los recursos asignados para la explotación del sistema

Si el servidor (computador que aloja los programas y la base de datos) está en su oficina y todos los clientes (computadores que acceden al servidor) están conectados mediante una red interna, lo más probable es que su disponibilidad sea 24/7 (las 24 horas de los siete dias de la semana) y su velocidad de respuesta (lo que tarda el sistema en procesar una transaccion y presentar la pantalla para ingresar transaccion siguiente) será la mejor que permita su hardware. Lo único que podría afectarla son eventuales cortes de luz y fallas en el hardware de los computadores.

Si los clientes están en ubicaciones remotas su disponibilidad va a depender de la estabilidad y velocidad de las lineas de comunicaciónes (telefónica o radio). Por ultimo, si su servidor está en "la nube" (un servidor en internet), todos los clientes van a depender de la estabilidad y velocidad de las lineas de comunicación y tambien de la disponibilidad y velocidad de las comunicaciones con el prestador del servicio de internet y de la velocidad de respuesta de su servidor.

Hay que tener presente que las comunicaciones remotas están más expuestas a fallas y son mas lentas que las comunicaciones directas, tambien la cantidad de nodos (interconexiones entre lineas de comunicación distintas) incide negativamente en su velocidad y aumenta sus posibilidades de fallas; como consecuencia, el trabajo diario se puede ver entorpecido o dilatado, cosa que aumentará los tiempos ociosos del personal de contabilidad incrementando el costo de explotacion del sistema. Adicionalmente, como veremos más adelante, pueden ser causa de colisiones y fallas en el software.

Un sistema que permita a las sucursales operar en forma local (servidor y clientes con una red interna) y dé facilidades para centralizar información en la oficina principal mediante el envio periodico de movimientos puede ser una alternativa muy buena por lo económica, ya que todos los grupos operan en forma local lo que asegura disponibilidad 24/7, minimiza el costo de las comunicaciones al tiempo que optimiza la velocidad de respuesta en cada sucursal, al costo de introducir un retraso que puede llegar a ser de un dia en la centralización de la información. La mayoría de los bancos tienen, por seguridad, sistemas redundantes que operan de esta manera


2) LA ESTABILIDAD DEL SISTEMA.
La estabilidad se relaciona con las fallas producidas por el software cuando se manejan mal las condiciones limite. El ejemplo más común es cuando en su computador Windows "se vuelve inestable" y comienza a demorar mucho más de lo usual en responder o simplemente se bloquea y no queda mas remedio que cancelar procesos o apagar el computador.

En los softwares de contabilidad, la condición limite más frecuente es la colisión, o sea cuando dos programas acceden simultaneamente al mismo recurso. Cuando la velocidad de las comunicaciones en la red es alta, esta condición es muy infrecuente. A la inversa, a medida que disminuye la velocidad de comunicación va aumentando la probabilidad de que se produzca. El manejo de las condiciones limite normalmente no depende de los programadores que hacen los sistemas de contabilidad, depende de los manejadores de la base de datos (programa que actualiza la base y maneja el trafico de transacciones) sobre la que está construido el sistema de contabilidad.

Hay una gran cantidad de manejadores de bases de datos, pero sólo unos pococ están certificados por ANSI (American National Standards Institute) He visto softwares que manejan mal las colisiones y se bloquean o pierden registros o corrompen los datos. Como consecuencia, se generan informes descuadrados o inconsistentes entre si. Los casos de perdidas de datos son los más graves porque generalmente usted se da cuenta mucho despues de ocurrida la falla y cuesta mucho recuperar los datos perdidos porque los respaldos antiguos se han vuelto inutiles.

Tambien incide en la velocidad la forma como está programado el sistema de contabilidad. Todos los programas se ejecutan en "lenguaje de máquina", pero hay dos tipos de programas : los que convierten el código fuente (programa escrito por el programador) a lenguaje de máquina mediante un proceso de compilación que se ejecuta una sola vez (tienen extensiones .EXE o .DLL) y los que se "interpretan" , es decir que cada vez que se ejecuta el programa el procesador lee el codigo fuente y lo convierte a lenguaje de máquina de modo que el proceso es más lento que en los programas compilados. Los programas interpretados tienen fallas importantes de seguridad que analizaremos más adelante.

Desgraciadamente, no hay metodos definidos que sean fiables para comprobar la estabilidad y ésta solo se verá en la práctica. Sin embargo, la demora en las comunicaciones puede SER EL FACTOR DECISIVO en este aspecto.

3) LA FACILIDAD DE USO
Una contabilidad atrasada no sirve para la gestión. Si su sistema no le proporciona diariamente información fiable sobre, por ejemplo, los saldos de las cuentas del banco o los montos por cobrar a clientes, inevitablemente usted va a dedicar tiempo y recursos adicionales para obtener esa información.

El tiempo que su personal pierde esperando las respuestas de un sistema lento o navegando incesantemente por las pantallas con el mouse, abriendo y cerrando cuadros de dialogo, son indudablemente un despilfarro de millones de segundos de tiempo que, acumulados por persona, en un año puede representar varias jornadas de trabajo.

La mayor preocupación debe estar, aparte de los tiempos de respuesta, en la forma como se navegan las pantallas del sistema. El uso incesante del ratón es una mala señal porque la navegación con el teclado es mucho más rápida. Este es el motivo por que la mayoría de los softwares ofrece "keyboard shortcuts" que son, precisamente, facilidades para activar mediante combinaciones de teclas las funciones que se ofrecen al mouse. La dificultad o facilidad para aprender a usar el software no es muy relevante porque es tiempo que se gasta una sola vez

Tambien es importante evaluar la cantidad de errores que el sistema es capaz de detectar. Las personan inevitablemente se equivocan al digitar entradas al sistema y los errores, aparte de producir informes inexactos, consumen tiempo adicional para corregir o reversar e ingresar de nuevo las entradas erradas.

Un sistema facil de usar y de respuesta rápida, que sea capaz de emitir los informes que la Gerencia requiere, incide favorablemente en la cantidad de horas de trabajo dedicadas al ingreso de transacciones y de generación de informes. Lo más importante, al quitar los factores negativos que usted no puede manejar, como es, por ejemplo, el caso de las comunicaciones remotas, podrá evaluar objetivamente el tiempo necesario para ingresar las transacciones diarias y asi proveer los recursos mínimos necesarios para que su contabilidad esté permanentemente "al dia" y le proporcione de modo fiable toda la información que usted necesita.

miércoles, 2 de marzo de 2011

(4) LA INFORMACIÓN UTIL PARA LA GESTION

El objetivo de un sistema de contabilidad es entregar información para diferentes propósitos.

1) ESTADOS FINANCIEROS.
Como primer requisito, la contabilidad debe llevarse siguiendo las NIIF y entregar estados financieros completos, es decir el BALANCE, el ESTADO DE RESULTADOS y el FLUJO DE EFECTIVO e información suficiente para preparar el ESTADO DE CAMBIOS EN EL PATRIMONIO, que son los informes requeridos por las NIIF y que como mínimo le solicitarán los bancos o los inversionistas. Recordemos que el objetivo de las NIIF es la presentación de información que sea útil al tomar decisiones económicas, para usuarios que no están en condiciones de exigir informes a la medida de sus necesidades específicas de información, por ejemplo accionistas, acreedores, empleados y público en general.


2) INFORMES PARA LA GESTIÓN
También debe entregar información útil para la gestión. Si su empresa tiene sucursales, es bueno tener estados financieros separados por cada una de ellas para apreciar los recursos asignados y su desempeño. Si su empresa tiene varias lineas de negocios, también es conveniente separar en el estado de resultados las ventas y los costos asociados por linea y/o por producto para estimar sus rentabilidades. También puede ser conveniente efectuar agrupaciones por centros de costo o de responsabilidad para evaluar la calidad de la gestión individualmente por un centro de costo o transversalmente a través de todas las sucursales.

Lo anterior permite efectuar comparaciones a partir de los datos de la misma empresa, por ejemplo, de la rentabilidad por producto en cada sucursal; de los recursos asignados a cada linea de negocios, (por ejemplo nivel de inventarios, instalaciones, personal, etc.) y compararlos con su rentabilidad. En general, mientras mejor se refleje en el plan de cuentas la estructura de la empresa y su estilo de gestión, mayor será la cantidad de información que se podrá obtener para ayudarlo a tomar decisiones.

Usualmente los gerentes obtienen este tipo de datos a través de informes preparados especialmente a partir de la información de otros sistemas paralelos, como puede ser el de control de existencias o el de facturación y venta. La experiencia general es que informes preparados de esta manera, aparte de aumentar el costo de la administración, generalmente son inconsistentes con los datos de la contabilidad por falta de rigurosidad en su preparación o en los cortes documentarios por la fecha de la información.

Debe considerarse que la contabilidad es la única información oficial de la empresa, y que sus informes incluyen todas las operaciones del periodo que se informa, generalmente centralizando los datos generados por los sistemas paralelos. De este modo los informes que surjan de ella siempre serán completos y consistentes entre si. Es necesario que se puedan tener estados financieros y cualquier otro tipo de informe en cualquier momento, sea para proporcionar información o para controlar que las transacciones se vayan ingresando a medida que ocurren los hechos que deben reflejar. Una contabilidad que no está al día, no tiene ninguna utilidad.


Otro aspecto a tener presente es que los distintos niveles de administración tienen necesidades distintas de información. Por ejemplo, al Gerente que sabe lo que tiene que pagar, le importa mucho saber cuanto va a cobrar en determinadas fechas; pero, si las cifras son buenas respecto de las obligaciones, seguro que no le importara mucho quien le va a pagar y en consecuencia le basta con un resumen; por otro lado, los cobradores deben tener muy claro quien tiene que pagar, por qué motivo, cuando y cuanto, y los vendedores deben estar informados de todos los clientes morosos. Esto significa que el sistema debe entregar información con distintos niveles de detalle, dependiendo del nivel de la administración a que está destinada.

Pero no es sólo eso, también debe tener funcionalidades como la conciliación bancaria, preparación de listas de cobranza, la preparación de listas de obligaciones por pagar, la emisión de todos los libros de contabilidad en hojas pre foliadas y a lo menos facilitar la circularización de deudas por cobrar y por pagar, la emisión de cartas de cobranza, de certificados y declaraciones juradas, entre otras cosas que son necesarias a los contadores para llevar el día a día. Ahora bien, si su empresa es pequeña y no necesita actualmente todas las funcionalidades, las que no use no deben se un estorbo que entorpezca el registro diario de las operaciones.

3) LAS OBLIGACIONES TRIBUTARIAS
Por ultimo, también debe facilitar la preparación de los informes requeridos por el Servicio de Impuestos Internos, entregando en forma separada los valores que será necesario ajustar para efectuar las declaraciones mensuales y anuales. También, y será un requisito en un futuro próximo, debe quedar registro en los libros contables de los ajustes efectuados con este propósito. En otras palabras, los ajustes deben contabilizarse y agregarse a los estados financieros para la preparación de las declaraciones mensuales o anuales, pero sin que formen parte de ellos.