Se ha establecido la necesidad de cada negocio para ser flexible para cambiar internamente, y ágil para efectuar estos cambios de tal manera que se pueda atender los exigentes cambios del cliente y del mercado. Agilidad y flexibilidad están al orden del día en las empresas.
La tecnología informática tiene un papel importante en este proceso, y prácticamente una buena selección de tecnología con base lo que aporte en el tema de flexibilidad y agilidad puede ser el factor preponderante para el éxito o el fracaso de una empresa ante los cambios del mercado.
Hace unos años la tecnología informática no era más que un computador, una Terminal, y una impresora, para el manejo de la información histórica. Hoy los sistemas de información del negocio son los que permiten que los procesos de puedan llevar a cabo.
El primer paso entonces es realizar el plan estratégico de tecnología e información incorporando estos factores en todas las arquitecturas (datos, aplicaciones, y red). El PETI genera una herramienta conocida como el Modelo de Empresa, donde se incorporan las estrategias, la organización, los datos, y los procesos, y entre los cruces de estos cuatro componentes se definen las diferentes arquitecturas. Partimos del hecho que los sistemas de información deben apoyar los procesos, por lo que la identificación clara de los procesos, y el impacto que cada uno de ellos tiene sobre el cliente es la primera indicación de qué procesos deben ser muy flexibles.
Definimos una arquitectura tecnológica en ocho niveles, partiendo de la administración de la tecnología informática y terminando en la interfase de usuario, pasando por los equipos, las comunicaciones, el sistema operativo, las bases de datos, la interfase de aplicaciones y las aplicaciones mismas. Analizaremos algunos factores a tener en cuenta en cada uno de estos elementos para permitir la flexibilidad y la agilidad del negocio.
Administración de Tecnología Informática
Existen múltiples modelos para la administración de la tecnología informática, sin embargo el que mas hemos utilizado con muy buenos resultados separa los diferentes procesos de la función y genera estrategias para cada uno de ellos. No es del resorte de este artículo entrar a analizar el modelo, pero en aras de la claridad, indicamos que consta de tres componentes básicos: los procesos estratégicos, donde se definen las estrategias para el uso de las TIC (tecnología de información y comunicaciones), los procesos tácticos donde se organizan y asignan los recursos para el desarrollo de sistemas, la planeación gerencial y la planeación de servicios; y los procesos operativos que recogen las áreas de desarrollo y prestación de los servicios.
La incorporación de un modelo basado en procesos es la mejor manera de garantizar la flexibilidad para implementar cambios en los sistemas de información, ya que incorporan implícitamente un proceso de administración de cambios. A este proceso se le deben hacer los ajustes respectivos para garantizar la agilidad en el procesamiento de los cambios, de tal manera que no sea solo factible hacer los cambios, sino que puedan ser oportunos.
Uno de los mayores limitantes de la agilidad es el proceso de pruebas para sistemas en desarrollo, básicamente por el tamaño de los proyectos que se emprenden. La mayor recomendación aquí es la separación de proyectos en grupos funcionales de tal manera que se puedan ir liberando funciones a medida que éstas van siendo probadas. El establecimiento de estándares para el análisis, diseño y desarrollo, garantiza que cada grupo funcional a implementar encajará sin problema con la funcionalidad ya existente.
Con la aparición constante de nueva tecnología es indispensable también implementar procesos de investigación y desarrollo orientados siempre a aumentar la flexibilidad de los sistemas de información, pudiendo prever los requerimientos que hará la compañía, o por lo menos recortar mucho el proceso desde el requerimiento hasta el despliegue.
Equipos
Contemplaremos en estos equipos solo los de procesamiento de datos, ya que los de interfase y los de comunicaciones se tratarán en su debido capítulo. Entonces incluimos los equipos servidores, y los equipos PC de acceso a la funcionalidad en el servidor.
Es claro que hemos pasado de un ambiente netamente centralizado a un ambiente netamente distribuido, y vuelto otra vez a la centralización. Todo generado por la disponibilidad de comunicaciones, tanto en precio como en calidad. Al aparecer la posibilidad de redes de comunicaciones confiables y baratas, se vuelve a la centralización, ya no en un equipo gigante o mainframe, sino en una colección de equipos servidores, cada uno del tamaño apropiado para su tarea.
La tendencia en los equipos también es a la reducción de precios y a la personalización de funcionalidad. Algunos se requieren con discos muy rápidos porque soportarán altos volúmenes de procesamiento, otros requieren más bien bastante memoria porque atenderán un número alto de usuarios. El desarrollo tecnológico permite obtener un equipo lo suficientemente robusto para cada tarea, a precios razonables.
Adicionalmente, la vida de los equipos ahora es un poco mayor que antes, no solo porque la calidad de los mismos ha mejorado sino porque la distribución del poder de cómputo hace que un servidor de un servicio específico, como por ejemplo de impresoras, o de nombres de dominio, no requiera un equipo ultramoderno, sino que con uno de hace unos 5 o siete años es más que suficiente.
Cobra validez también el tema del almacenamiento de la información, que crece en medidas exponenciales. Surgen equipos como los elementos de almacenamiento en red o almacenamiento accedido por la red, que permiten grandes volúmenes de información almacenada, accesos relativamente rápidos comparados con otros medios, y la posibilidad de generar esquemas de redundancia y respaldo de la información en forma centralizada.
Por lo general la implementación de servidores inicia con un solo equipo con muchos servicios en el mismo, como correo electrónico, intranet, impresoras, archivos. En la medida que estos servicios empiezan a ser utilizados y a requerir más equipo, es común el separarlos y dedicar uno o varios equipos, según sea el tamaño de la empresa, a cada uno de los servicios. Esta estructuración hace que haya flexibilidad en el crecimiento de la capacidad de cómputo ya que incluir un equipo más en el conjunto no requiere mayor trabajo ni complejidad.
Se observa una tendencia marcada al «cómputo por demanda», que permite que se amplíe o se reduzca la capacidad de cómputo en la medida en que se requiera, presenta dos bondades espectaculares en el aspecto de flexibilidad. La posibilidad de pagar solo lo que se necesita, y además de tener específicamente la cantidad que se necesita a cada momento. Es lo más novedoso para flexibilidad, pero todavía tiene suficientes detractores.
La tendencia continuó como se percibía hace unos años, y hoy en el cómputo EN la nube, el tema de equipamiento puede ser completamente de terceros. Simplemente tenemos acceso a una aplicación que está en algún servidor en la nube, y en la medida de requerir más espacio o ancho de banda para operar adecuadamente, esta se va aumentando en forma automática.
Comunicaciones
El área de comunicaciones en la arquitectura de tecnología informática es una de las que más cambios ha sufrido, en buena parte como habilitadores de la flexibilidad. En términos generales, los protocolos de Internet que básicamente le asignan un número a cada elemento conectado a una red, se ha impuesto como la forma de conexión para estructurar redes tanto a nivel local como de conectividad de banda ancha. Este protocolo (TCP/IP) entró a reemplazar muchos como el SNA, Token Ring, y otros propietarios que marcaban la tendencia antes de la Internet.
Para analizar las tendencias, es necesario sin embargo referirnos a dos tipos de comunicación, la que se considera en forma local (al interior de una oficina en la empresa) y la que permite la conexión entre varias sedes, varias empresas, y el mundo en general.
En el ámbito de la red local, o LAN, ya es común ver en todo tipo de empresas la conectividad a un servidor mediante el concepto de cableado estructurado, para dar acceso a los servicios de información de la empresa. Este tipo de conectividad permite la movilidad de las personas, la asignación de servicios, y la facilidad para que cada funcionario pueda acceder los elementos y la información que requiere para sus labores. La comunicación interna permite integrar servicios de voz, datos, mensajería, y demás elementos de la comunicación interpersonal actual, sobre una misma plataforma.
El esquema de comunicaciones en una LAN permite también la actualización automática de los programas de cada PC, como por ejemplo distribuir las actualizaciones del Windows o del Office desde un servidor corporativo, o mantener los antivirus actualizados con las últimas definiciones. También permite la generación de espacios de respaldo en forma automática, permitiendo que lo que esté en cada PC de la compañía se copie en un servidor de respaldo con una frecuencia establecida.
Aunque por alguna razón de manera lenta, se ha ido avanzando en la utilización de hotspots o puntos de acceso a la red local, en forma inalámbrica. Los portátiles y los dispositivos móviles como tabletas y celulares exigen este tipo de conectividad, y pasaron de ser un «juguete» a ser una herramienta de trabajo. La tecnología inalámbrica permite además efectuar cambios en puestos de trabajo sin tenerse que preocupar por el cableado.
Se recomienda, si se va a implementar este tipo de funcionalidad, analizar muy bien el tema de seguridad para garantizar que sean solo las personas autorizadas las que se conecten al servicio. Por ejemplo se puede implementar un servidor de autenticación mediante lectura de la tarjeta de red del PC, permitiendo así que solo las registradas como permitidas sean las que efectivamente se conecten y accedan al servicio.
En el ámbito de las redes de área ancha también ha habido un desarrollo enorme en toda la región. Hasta hace apenas unos años era prohibitivo conectarse entre sedes remotas en una empresa, pero hoy es muy económico hacer esta conexión. Ya toda empresa puede garantizar el trabajo en línea de todos sus colaboradores sin importar qué tan distantes estén los unos de los otros.
Existen numerosas empresas que brindan el servicio completo desde la última milla (desde el proveedor de conectividad a su empresa) hasta el transporte nacional e internacional si se requiere, de la información. Esta conectividad permite el desarrollo de sistemas centralizados, la estructuración de sistemas de videoconferencia, telefonía IP, mensajería instantánea. En términos generales la tendencia es a conectar a todos con todos, desde empleados, socios de negocios, y clientes.
Se agregan los dispositivos móviles, como una extensión de las redes corporativas, permitiendo ahora que se cumpla esta premisa del sistema de información de proporcionarla cuando y donde el usuario la requiera, situación difícil de cumplir hasta hace poco.
Sistemas Operativos
No es difícil remontarse unos cuantos años, tal vez un par de décadas, cuando el Sistema Operativo realmente no hacía casi nada, sino controlar los dispositivos de los equipos, y permitir algunas interacciones entre los sistemas de impresión, terminales brutas, y los discos duros (cuando estos aparecieron). El resto de las actividades (seguridad, acceso a discos, permisos, conectividad, y si continuamos la lista, no terminamos!) se tenía que efectuar dentro de cada programación que se desarrollara.
La tendencia en sistemas operativos, en cuanto a su funcionalidad, es a facilitar las cosas para quienes administran la tecnología. Hoy se ve cómo desde un equipo otrora propietario, se pueden acceder y administrar equipos con cualquier tipo de sistema operativo. Ya la dependencia sobre el sistema operativo por marca deja de ser importante, sino más bien a tener cierta funcionalidad que el sistema operativo debe proveer, funcionalidad cada vez mayor.
Básicamente el sistema operativo se constituye un puente entre las aplicaciones y el hardware. Se ha ido borrando la línea entre lo que otrora eran aplicaciones independientes que se agregaban al sistema operativo, y el sistema operativo en si mismo. Es así como, por ejemplo, en los comienzos de la Internet, había que comprar un programa conocido como el «stack de TCP/IP» para instalarlo en los equipos y así permitir la conectividad mediante este protocolo. Hoy, la a funcionalidad de conectividad con este protocolo viene incorporada en el sistema operativo.
Lo mismo sucede con funcionalidades emergentes hoy como la utilización de un solo sistema de seguridad y acceso a todos los demás recursos del sistema de información. Conocida como una aplicación de directorio, esta funcionalidad permite registrar a los usuarios, los servicios, y aparear entre ellos la permisología respectiva, en una forma fácil.
Podemos hablar de tres tipos de sistemas operativos: los específicos para ciertos equipos como los de comunicaciones, los sistemas operativos para el PC y dispositivos móviles, y los sistemas operativos para los servidores. Se ha consolidado en unas pocas alternativas, luego de tener demasiadas, el sistema operativo para los equipos de los usuarios finales. En el escritorio y portátiles, Windows sigue siendo quien lleva la delantera abrumadora, a pesar de esfuerzos de Chromium y Linux. No se prevé cambio radical aquí, aunque ha ido perdiendo espacio por migración de trabajo a dispositivos como tabletas y celulares.
En los dispositivos móviles hay dos sistemas operativos claramente establecidos, Android con una mayoría importante en el mercado por ser utilizado por todos menos Apple, e iOS generado por Apple para su iPhone e iPad. Siguen diferencias importantes entre estos dos sistemas, sin embargo cada ves más se acercan a su funcionalidad.
En cuanto a los equipos servidores, hay dos tendencias marcadas, una fuerte hacia Windows y la otra tendencia hacia modelos basados en ambientes Unix, incluido el Linux, AIX, HP-UX y demás apropiaciones de la tecnología por cada una de las marcas de equipos. Lo que buscan los fabricantes del sistema operativo a este nivel es ayudar y/o asistir al administrador del sistema en las tareas cotidianas, aburridoras, y que aunque poco valor agregan, se hacen indispensable. Estas actividades van desde la creación de usuarios o conexión de un nuevo dispositivo en la red, hasta el manejo de la seguridad, las copias de respaldo, y estadísticas de uso de cada recurso.
Sin embargo, la tendencia es a operar aplicaciones indistinto del sistema operativo, y es así como se observan aplicaciones que antes estaban disponibles solo para Linux, hacer su incursión al ambiente Windows. Por otro lado, también hay desarrollo de aplicaciones que antes eran solo para Windows, para correr sobre Linux. El beneficiado es el usuario y el administrador que cada vez tiene que preocuparse menos por tareas completamente operativas, y puede dedicarse más a la planeación de capacidades y aumento de funcionalidad para sus usuarios.
En cuanto a los PC, aunque otros sistemas operativos han tratado por mas de 10 años de reemplazar a Windows en el Escritorio, éste sistema operativo mantiene un liderazgo amplio. Windows, con su estrategia de venir incorporado desde el fabricante del equipo, le permite al usuario arrancar a trabajar apenas le llegue el equipo, sin tener que hacer mucho más. La conexión de periféricos con el sistema de «enchufar y listo» también le ayuda al usuario a incorporar nuevos equipos sin recurrir a instalaciones engorrosas.
Es claro que los avances en los sistemas operativos generan mayor flexibilidad a las empresas en el momento de incorporar nueva funcionalidad o nuevos equipos. Se espera que cada vez más, el sistema operativo sea tan transparente, como lo es hoy el sistema de distribución de energía, simplemente la usamos cuando requerimos.
En general, los sistemas operativos seguirán absorbiendo funciones que otrora fueran de programas específicos, y tal vez los únicos que no se prevé en el cercano futuro que sean absorbidos por su complejidad, son las bases de datos.
Bases de Datos
Inicialmente los datos se guardaban en lo que se conocía como archivos «planos», es decir, una tabla en donde aparecían unos encabezados, y un contenido relativo al encabezado. Algunos sistemas «de avanzada» en su época, como el Cobol, permitía el manejo de diferentes tipos de registro (encabezados y contenidos distintos) dentro del mismo archivo, lo que facilitaba algunas cosas, pero hacía más complejo otras.
Luego surgieron las bases de datos, que no son más que una colección de registros estructurados, mediante algo que se conoce como el esquema, y que pueden ser consultados con un lenguaje de programación. Además vienen con un «manejador» de bases de datos que permiten ejecutar y aprovechar su funcionalidad.
La tendencia, más que en las características de las bases de datos en sí, está en que realmente se maneje la información en la estructura de bases de datos, que permiten manejar conceptos de integridad, trazabilidad, replicación, entre otros; conceptos que requerirían mucho más espacio para explicar, pero que por sus bondades, simplemente basta con indicar que el uso de las bases de datos generará beneficios sobre cualquier otro sistema de almacenamiento (como una simple tabla de una hoja de cálculo, por ejemplo).
En las primeras apariciones de las bases de datos, aunado a la escasa capacidad de cómputo de los equipos de hace un par de décadas, los costos de implementar una solución sobre bases de datos eran muy altos, por lo que la implementación se soluciones con estos beneficios tecnológicos estaba reservado para las grandes empresas.
Con el tiempo, aumentó la capacidad de cómputo de los equipos, se cambió inclusive el modelo para manejar diferentes servidores (uno para las bases de datos, otro para las aplicaciones, etc.) y se redujeron los precios de las bases de datos y sus manejadores. Tanto que hoy, además de las conocidas como DB2, Oracle, Sybase, SQL Server e Informix, se tienen dos ampliamente difundidas como MySQL y Postgress, y a su vez gratuitas. Esto permite que cualquier aplicativo que se quiera desarrollar, que requiera una base de datos (y ahora son casi todos!) pueda hacer uso de una, así los recursos económicos sean escasos. Adicionalmente, las versiones de entrada de algunas de las bases de datos pagas, tienen costos muy reducidos y hasta son gratuitas también.
Ya las bases de datos se utilizan en todo tipo de actividad, no solo para almacenar datos transaccionales, como lo requeriría un banco, o una aplicación de inventarios y facturación. También son grandes repositorios de conocimiento, de imágenes, y hasta sirven para la construcción de portales Web en donde muchos de los componentes del mismo están almacenados en bases de datos, permitiendo el uso de una de las herramientas más útiles: la búsqueda.
Adicionalmente, la estandarización de formato de almacenamiento y el acceso a las bases de datos mediante JDBC y ODBC permite que cualquier aplicativo se conecte con cualquier base de datos, e inclusive con varias bases de datos a la vez. Esto es más fácil decirlo que hacerlo, pero se puede, eliminando un poco la carga sobre qué base de datos implementar.
Se recomienda no utilizar mucha programación intrínseca dentro de las bases de datos, y en especial no recurrir a ellas para definir las reglas del negocio. Estas se deben hacer independientes de tal manera que un cambio en la base de datos no implique una migración de reglas del negocio.
Por otra parte, permite generar bases de datos «resumen» o más pequeñas para atender consultas en la Web, y sincronizarlas con las bases de datos corporativas. Por ejemplo, una página para hacer seguimiento del estado de un pedido de un cliente no tiene que estar PEGADO directamente a la aplicación de producción de la empresa. Simplemente cada cierto tiempo se puede actualizar el estado en una base en la Web, sin tener que dar acceso y permisos a las aplicaciones internas.
Con la ampliación de requerimientos hacia herramientas de análisis de datos, han surgido otro tipo de bases de datos, más allá de las meramente transaccionales, que permiten utilizar técnicas avanzadas para «moler» grandes cantidades de datos y generar a partir de este análisis, tendencias sobre las cuales se puedan tomar acciones. Se acerca también su uso a temas de inteligencia artificial.
En resumen, la tendencia marca el uso de las bases de datos sobre cualquier otro esquema de almacenamiento, para todo tipo de información.
Aplicaciones
Casi se podría decir que el resto de la arquitectura tecnológica sirve enteramente de soporte para que a través de las aplicaciones, los usuarios puedan hacer uso de los sistemas de información. Son el habilitador entonces para el acceso al sistema.
Las aplicaciones, haciendo de puente entre el usuario y el sistema, requieren de consideraciones en ambos extremos del puente, consideraciones que miraremos antes de incorporarnos en las aplicaciones mismas.
La interacción con las comunicaciones, el sistema operativo y las bases de datos, se ejecutan mediante estándares ya establecidos de industria y no tendría sentido realmente trabajar por fuera de estos estándares. El manejo de estándares en forma cuidadosa garantiza la flexibilidad para poder cambiar cualquiera de los demás componentes de la arquitectura sin necesariamente implicar cambios en las aplicaciones, ni en su interfase con los demás elementos.
En el extremo del usuario final, se ha avanzado enormemente desde la presentación en forma de caracteres en las pantallas «verdes», a unos ambientes gráficos ricos en información y que presentan unos esquemas que permiten el aumento de la productividad del usuario. La primera transición se hizo en aplicaciones de primera generación de Cliente/Servidor donde las pantallas usaban controles gráficos para todas las acciones, y ahora la tendencia es a utilizar el navegador de Internet para interactuar entre el usuario y la aplicación.
Las bondades de trabajar con el visor de Internet no se discuten, en especial en el impacto sobre la curva de aprendizaje y en la productividad del usuario. La tendencia en este desarrollo implica manejar conceptos de usabilidad y de «amigabilidad» de las aplicaciones que se desarrollan. Estos nuevos requerimientos exigen conocimientos específicos en la temática, conocimientos que escapan por lo general a los ingenieros de sistemas. Estos son más bien desarrollados por diseñadores gráficos. No es fácil incorporar este nuevo elemento en el proyecto de desarrollo de aplicaciones, pero es indispensable hacerlo.
La mayor bondad, sin embargo, de utilizar el visor de Internet como interfaz con el usuario es que garantiza la disponibilidad permanente e inmediata de la última versión del programa, sin tener que instalar nada en el equipo del usuario. Esto genera unos grados de libertad valiosos cuando se requiere flexibilidad, y cambiar una pantalla en formato HTML realmente es muy sencillo, garantizando la agilidad en ese cambio.
La construcción del software mismo está también liderada con metodologías apropiadas y altamente evolucionadas que permiten una construcción ágil de requerimientos de usuario. Es también indispensable tener en cuenta que en la mayoría de las empresas se utilizan paquetes adquiridos como SAP o JDEDwards o Dynamics. Las aplicaciones desarrolladas en casa dan la mayor flexibilidad posible, pero demandan un alto costo para mantener una «cuadrilla» de técnicos disponibles para implementar cambios permanentes.
La flexibilidad en las aplicaciones adquiridas, si bien no en el código mismo de las aplicaciones, está dada por el concepto de «parametrización», donde se almacenan valores de configuración para gran cantidad de variables dentro de la empresa. En caso de requerir cambios en estas variables, basta con cambiarlas y estos se reflejan en el resto de la aplicación. Un ejemplo puede ser la creación de una nueva oficina o sucursal, o la creación de nuevos productos.
Seguirá siendo un tema de debate la selección entre desarrollar y comprar aplicaciones, y la flexibilidad que provee una y otra alternativa debe ser tenida en cuenta en la decisión. La tendencia indica la inclinación por la implementación de software ya desarrollado, lo que implica entonces un entrenamiento en la fuerza técnica local y/o un contrato muy estricto de mantenimiento de los aplicativos con los proveedores para garantizar que los cambios requeridos se puedan implementar.
Conclusión
Hemos hecho un recorrido por cada uno de los componentes de la plataforma de tecnología informática y comunicaciones en las empresas, destacando los factores a tener en cuenta en la compra de la misma para garantizar la agilidad para implementar cambios del entorno con base en la flexibilidad de la tecnología en pié. Las tecnologías existen, y de su adecuada implementación podría depender el futuro de la empresa.
Consultoría
Consultoría especializada para construir el PETI para el cliente, buscando estrategias para avanzar hacia la empresa digital, y transferir la metodología a sus funcionarios.
Taller/Workshop - En Vivo
Taller/Workshop de 16 horas impartido en vivo, de manera virtual por el creador de la metodología. Altamente práctico para avanzar en la construcción de SU PETI durante el taller.
Taller/Workshop - Autoestudio
Taller/Workshop en formato de autoestudio. 37 lecciones en video con plantillas e instructivos para construir su PETI mientras cursa el Taller. Impartido por el creador de la metodología.
Libro
Este libro recoge la metodología que hemos desarrollado y aplicado por más de 25 años. Una guía completa para realizar su PETI.