Roberto Opazo
CEO de Khipu
“No podemos cambiar nada porque estamos en freeze” y “Los nuevos desarrollos requieren que primero terminemos la actualización del core”, son razones frecuentes que se escuchan en las grandes organizaciones para explicar por qué -a pesar de contar con recursos monetarios- no es posible avanzar con el desarrollo de nuevas funcionalidades para los usuarios. Para entender cómo liberarnos, es necesario entender cómo fue que nos entrampamos.
Los primeros computadores fueron grandes servidores que funcionaban sin conexiones de red. No requerían ni podían colaborar con otros computadores. Luego vino el auge de los computadores personales, la masificación de internet, la telefonía móvil, internet de las cosas y, en sólo medio siglo, la humanidad pasó a estar hiperconectada.
Este vertiginoso cambio implicó preparar profesionales y metodologías para el desarrollo del software que permitiría programar el comportamiento y la interacción entre todos estos dispositivos. Surgieron los “servidores” de datos, mientras que los “clientes” eran sistemas que los consultaban. Se consolidó el modelo “Cliente-Servidor” como un patrón de sistemas que requerían diseño, implementación, mantención y mejoras. Para enfrentar este desafío, el modelo más usado y reconocido se llamó “Modelo de desarrollo en 3 capas” o “modelo de desarrollo multicapas”.
La utopía del modelo de desarrollo en 3 capas plantea que se debe crear una capa separada con el servicio de datos, para que este no dependa de la forma en que los datos serán mostrados o modificados. Asimismo, separa las reglas del negocio y la representación visual en otras 2 capas independientes. La separación de capas debería dar flexibilidad, gestión y velocidad, pero en la práctica, es una permanente fuente de frustración. La promesa no siempre se cumple y cuando se cumple, como todo funciona, pasa desapercibido.
Son frecuentes los desarrollos de mejoras en el lado cliente que deben esperar a nuevos desarrollos en las capas de negocio o datos. Y los nuevos desarrollos en las capas de negocio o datos muchas veces deben esperar a mejoras de infraestructura de estas mismas capas. Y así la frase “estamos en freeze” se ha vuelto parte fundamental de la jerga en las organizaciones dependientes del modelo de desarrollo en 3 capas.
La industria ha buscado soluciones a este problema, por ejemplo, usando herramientas en las que se especifican los sistemas como un todo para luego generar las 3 capas y sus actualizaciones o simplemente generando sistemas monolíticos a partir de una configuración global. Hay un lugar en el mundo para cada una de estas tecnologías, pero ninguna implica que esté en duda el modelo de desarrollo en 3 capas para enfrentar el desarrollo de sistemas cliente-servidor. El desarrollo de la inteligencia artificial resulta sorprendente cuando se trata de abordar tareas especializadas, pero aún no hay evidencia de que esta tecnología pueda abordar problemas más generales, considerando la interrelación de muchos puntos y tipos de contacto.
La visión de Khipu es que el modelo de desarrollo en 3 capas no será destronado en la próxima década en las grandes organizaciones y, por lo tanto, es necesario complementarlo con una estrategia que permita enfrentar el “estamos en freeze”, dando así al modelo la posibilidad de cumplir con la capacidad de entrega de soluciones prometida.
Cumplir la promesa se ha vuelto posible gracias al desarrollo explosivo de las plataformas web. Sin que fuese su propósito inicial, las plataformas web terminaron siendo un lugar desde el cual es posible obtener datos y generar transacciones a través de programas que se comportan como si fueran usuarios humanos de los portales. A eso se le llama Webscraping.
Usando webscraping es posible generar nuevas interfaces de programación (APIs) que permitan crear nuevas aplicaciones cliente, mientras en forma interna los sistemas de la organización mejoran sus capas, hasta que su capa de negocio esté en condiciones de atender a los sistemas cliente en forma directa, reemplazando las interfaces temporalmente implementadas mediante webscraping.