A motivação inicial
Para entender o SaaS, vamos começar com uma noção relativamente simples do que estamos tentando alcançar ao criar um negócio de SaaS. O melhor lugar para começar é observar como o software tradicional (não SaaS) foi criado, gerenciado e operado.
O diagrama a seguir fornece uma visão conceitual de como vários fornecedores empacotaram e entregaram suas soluções.

O modelo clássico para empacotar e fornecer soluções de software
Neste diagrama, descrevemos uma coleção de ambientes de clientes. Esses clientes representam as diferentes empresas ou entidades que compraram o software de um fornecedor. Cada um desses clientes está basicamente trabalhando em um ambiente autônomo em que instalou o produto de um fornecedor de software.
Nesse modo, a instalação de cada cliente é tratada como um ambiente independente dedicado a esse cliente. Isso significa que os clientes se veem como proprietários desses ambientes, potencialmente solicitando uma personalização única ou configurações exclusivas que atendam às suas necessidades.
Um efeito colateral comum dessa mentalidade é que os clientes controlarão qual versão do produto estão executando. Isso pode acontecer por vários motivos. Os clientes podem estar apreensivos com os novos recursos ou preocupados com as interrupções associadas à adoção de uma nova versão.
Você pode imaginar como essa dinâmica pode impactar a pegada operacional do fornecedor de software. Quanto mais você permite que os clientes tenham ambientes únicos, mais difícil se torna gerenciar, atualizar e oferecer suporte às diferentes configurações de cada cliente.
Essa necessidade de ambientes únicos geralmente exige que as organizações criem equipes dedicadas que forneçam experiência separada de gerenciamento e operações para cada cliente. Embora alguns desses recursos possam ser compartilhados entre clientes, esse modelo geralmente introduz despesas incrementais para cada novo cliente incorporado.
Fazer com que cada cliente execute suas soluções em seu próprio ambiente (na nuvem ou on-premises) também afeta o custo. Embora você possa tentar escalar esses ambientes, o escalonamento será limitado à atividade de um único cliente. Essencialmente, sua otimização de custos é limitada ao que você pode alcançar dentro do escopo de um ambiente individual do cliente. Isso também significa que você pode precisar de estratégias de escalonamento separadas para acomodar as variações de atividade entre os clientes.
Inicialmente, algumas empresas de software verão esse modelo como uma estrutura poderosa. Eles usam a capacidade de fornecer personalização única como ferramenta de vendas, permitindo que novos clientes imponham requisitos exclusivos de seu ambiente. Embora a contagem de clientes e o crescimento do negócio permaneçam modestos, esse modelo parece perfeitamente sustentável.
No entanto, à medida que as empresas começam a ter um sucesso mais amplo, as restrições desse modelo começam a criar desafios reais. Imagine, por exemplo, um cenário em que sua empresa atinge um pico significativo de crescimento que faz com que você adicione muitos novos clientes em um ritmo acelerado. Esse crescimento começará a aumentar a sobrecarga operacional, a complexidade do gerenciamento, o custo e uma série de outros problemas.
Em última análise, a sobrecarga e o impacto coletivos desse modelo podem começar a minar fundamentalmente o sucesso de uma empresa de software. O primeiro ponto problemático pode ser a eficiência operacional. O aumento de pessoal e os custos associados à contratação de clientes começam a corroer as margens dos negócios.
No entanto, os problemas operacionais são apenas parte do desafio. O verdadeiro problema é que esse modelo, à medida que se expande, começa a impactar diretamente a capacidade da empresa de lançar novos recursos e acompanhar o ritmo do mercado. Quando cada cliente tem seu próprio ambiente, os fornecedores devem equilibrar uma série de requisitos de atualização, migração e clientes à medida que tentam introduzir novos recursos em seu sistema.
Isso normalmente leva a ciclos de lançamento mais longos e complexos, o que tende a reduzir o número de lançamentos feitos a cada ano. Mais importante ainda, essa complexidade faz com que as equipes dediquem mais tempo à análise de cada novo atributo muito antes de ser lançado para o cliente. As equipes começam a se concentrar mais na validação de novos recursos e menos na velocidade da entrega. A sobrecarga de lançar novos recursos se torna tão significativa que as equipes ficam mais focadas na mecânica dos testes e menos na nova funcionalidade que impulsiona a inovação de suas ofertas.
Nesse modo mais lento e cauteloso, as equipes tendem a ter longos tempos de ciclo que colocam lacunas cada vez maiores entre o início de uma ideia e o momento em que ela chega às mãos de um cliente. No geral, isso pode prejudicar sua capacidade de reagir à dinâmica do mercado e às pressões competitivas.