La motivación inicial - Fundamentos de la arquitectura SaaS

La motivación inicial

Para entender el concepto de SaaS, empecemos con una idea bastante simple de lo que intentamos lograr al crear una empresa de SaaS. El mejor punto de partida es analizar cómo se ha creado, administrado y utilizado el software convencional (no SaaS).

El siguiente diagrama proporciona una visión conceptual de cómo varios proveedores han empaquetado y entregado sus soluciones.

Diagrama que muestra el modelo clásico de empaquetado y entrega de soluciones de software.

Modelo clásico de empaquetado y entrega de soluciones de software

En este diagrama, describimos un conjunto de entornos de cliente. Estos clientes representan las diferentes empresas o entidades que han comprado el software de un proveedor. Básicamente, cada uno de estos clientes funciona en un entorno independiente donde se ha instalado un producto de un proveedor de software.

De este modo, la instalación de cada cliente se trata como un entorno independiente dedicado a ese cliente. Esto significa que los clientes se consideran a sí mismos los propietarios de estos entornos y podrían solicitar una personalización o configuraciones únicas que se adapten a sus necesidades.

Algo habitual en este planteamiento es que los clientes controlan la versión del producto que utilizan. Esto puede ocurrir por varios motivos. Es posible que los clientes se muestren reacios a usar nuevas funciones o estén preocupados por las interrupciones asociadas a la adopción de una nueva versión.

Puede imaginarse cómo puede afectar esta dinámica a la infraestructura operativa del proveedor de software. Cuanto más permita a los clientes tener entornos únicos, más difícil será administrar, actualizar y dar soporte a las distintas configuraciones de cada cliente.

Esta necesidad de entornos únicos a menudo requiere que las organizaciones creen equipos dedicados que proporcionen una experiencia de administración y operaciones separada para cada cliente. Aunque algunos de estos recursos pueden compartirse entre los clientes, este modelo suele generar gastos incrementales por cada nuevo cliente que se incorpora.

Este tipo de modelo en el que cada cliente ejecuta sus soluciones en su propio entorno (en la nube o en las instalaciones) también repercute en los costes. Aunque puede intentar escalar estos entornos, el escalado se limitará a la actividad de un solo cliente. Básicamente, la optimización de los costos se limita a lo que puede lograr en el entorno de un cliente individual. También significa que es posible que necesite estrategias de escalado independientes para adaptarse a las diferencias en la actividad de los distintos clientes.

Inicialmente, algunas empresas de software considerarán que este modelo es eficaz. Ofrecer la personalización única puede servirles como herramienta de ventas, permitiendo a los nuevos clientes imponer requisitos únicos en su entorno. Mientras la empresa no tiene muchos clientes y su crecimiento es moderado, este modelo parece perfectamente sostenible.

Sin embargo, a medida que las empresas comienzan a tener más éxito, las limitaciones de este modelo empiezan a plantear serios problemas. Imagine, por ejemplo, un escenario en el que su empresa alcance un pico de crecimiento significativo y tenga que añadir muchos clientes nuevos a un ritmo rápido. Este crecimiento empezará a aumentar la sobrecarga operativa, la complejidad de la administración y los costos, entre otros muchos problemas.

En última instancia, la sobrecarga y el impacto generales de este modelo pueden poner seriamente en peligro el éxito de una empresa de software. El primer problema podría ser la eficiencia operativa. El aumento del personal y los costos asociados con la captación de clientes comienzan a reducir los márgenes de la empresa.

Sin embargo, los temas operativos son solo una parte del problema. El verdadero problema de este modelo es que, a medida que se amplía, comienza a afectar directamente a la capacidad de la empresa de lanzar nuevas funciones y seguir el ritmo del mercado. Cuando cada cliente tiene su propio entorno, los proveedores deben hacer frente a una serie de requisitos sobre actualización, migración y clientes para tratar de introducir nuevas funciones en su sistema.

Por lo general, esto lleva a ciclos de lanzamiento más largos y complejos, lo que tiende a reducir la cantidad de lanzamientos que se realizan cada año. Y lo que es más importante, esta complejidad hace que los equipos dediquen más tiempo a analizar cada nueva función mucho antes de que se lance al cliente. Los equipos comienzan a centrarse más en validar las nuevas funciones y dedican menos tiempo a agilizar la entrega. La sobrecarga que supone el lanzamiento de nuevas funciones aumenta tanto que los equipos acaban centrándose más en la mecánica de las pruebas y menos en la incorporación de funciones que aportan innovación a la oferta.

En este modo más lento y cauteloso, los equipos suelen tener ciclos largos, lo que aumenta cada vez más el tiempo que pasa entre el inicio de una idea y el momento en que llega a las manos de los clientes. En general, esto puede dificultar la capacidad de reacción ante la dinámica del mercado y las presiones competitivas.