Software · Soluções na Prática

Build vs Buy: Desenvolvimento In-house, Off-the-shelf ou SaaS?

Como decidir entre programar uma solução proprietária, licenciar softwares de prateleira ou contratar plataformas SaaS: a fronteira de domínios no DDD, o custo total de propriedade (TCO) e a armadilha da customização excessiva.

Matriz de decisão estratégica de software contrastando desenvolvimento interno in-house, customização de prateleira off-the-shelf e plataformas SaaS
Neste artigo

Em quase toda reunião de planejamento estratégico surge o mesmo dilema: diante de uma nova necessidade de negócio, a empresa deve alocar seus próprios engenheiros para construir o sistema do zero (Build), licenciar um produto comercial pronto (Buy / Off-the-shelf) ou assinar uma plataforma em nuvem (SaaS)?

Muitas organizações cometem erros caros em ambas as direções. De um lado, equipes de desenvolvimento com viés excessivo de criação tentam reinventar ferramentas de autenticação, motores de cobrança ou sistemas de tickets de suporte — áreas que já são commodities consolidadas no mercado. Do outro lado, empresas compram sistemas empresariais genéricos e tentam deformá-los com customizações pesadas para suportar o algoritmo central que define a vantagem competitiva do negócio, criando monólitos inflexíveis e de manutenção proibitiva.

flowchart TD
    Necessidade["Nova Demanda de Negócio"] --> AvaliaDominio{"Esse processo é o diferencial competitivo da empresa?"}
    
    AvaliaDominio -->|Sim (Core Domain)| Build["CONSTRUIR (In-house)"]
    AvaliaDominio -->|Não (Processo Genérico)| Mercado{"Existe solução SaaS madura com APIs abertas?"}
    
    Mercado -->|Sim| SaaS["ASSINAR (SaaS)"]
    Mercado -->|Não (Regras Locais Rígidas)| OffShelf["LICENCIAR (Off-the-shelf)"]
    
    Build --> Vantagem["Propriedade intelectual e flexibilidade absoluta"]
    SaaS --> Foco["Custo previsível e foco da engenharia no Core"]
    OffShelf --> Integracao["Customização controlada via extensões"]

A Lente do Domain-Driven Design (DDD)

A resposta mais segura para o dilema de Build vs Buy deriva da classificação estratégica de subdomínios proposta pelo Domain-Driven Design:

Tipo de Subdomínio Papel no Negócio Diferencial Competitivo Decisão Arquitetural Típica Exemplos
Core Domain (Domínio Central) A razão pela qual os clientes contratam a sua empresa Altíssimo (exclusivo) Build (Desenvolvimento Interno) Algoritmo de roteirização de entregas, motor de crédito proprietário
Supporting Subdomain (Domínio de Apoio) Complementa o produto, mas não define a empresa no mercado Moderado Híbrido / Low-Code / Composição Portal interno do colaborador, integração personalizada com legado
Generic Subdomain (Domínio Genérico) Necessidade operacional comum a milhares de empresas Nenhum (commodity) Buy / SaaS Faturamento, folha de pagamento, envio de e-mails, CRM básico

Gastar capacidade de engenharia construindo um sistema proprietário de envio de e-mails transacionais ou um painel de tickets de suporte é desperdício de capital intelectual. O tempo investido nessas ferramentas comoditizadas é tempo subtraído do aperfeiçoamento do Core Domain.

O Cálculo Real do Custo Total de Propriedade (TCO)

Uma ilusão recorrente em equipes técnicas é comparar apenas o custo da licença de um software comercial contra o salário mensal imediato dos desenvolvedores. O Custo Total de Propriedade (TCO) ao longo de 5 anos revela despesas que raramente entram nas estimativas iniciais de desenvolvimento interno:

flowchart LR
    subgraph CustosVisiveis["Custos Visíveis do Build"]
        Sprint["Horas de Desenvolvimento Inicial"]
    end

    subgraph CustosOcultos["Custos Ocultos e Perenes"]
        Infra["Hospedagem e Redundância Multi-Região"]
        Security["Patches de Segurança e Auditorias de Compliance"]
        Bugs["Correção de Bugs e Suporte aos Usuários"]
        Turnover["Perda de Conhecimento com Rotação de Equipe"]
        Opportunity["Custo de Oportunidade (O que a empresa deixou de criar)"]
    end

    CustosVisiveis --- CustosOcultos

Ao calcular o TCO, uma solução SaaS que custa R$ 5.000 por mês frequentemente se mostra substancialmente mais econômica do que manter dois engenheiros seniores dedicados à sustentação contínua de um sistema proprietário equivalente.

A Armadilha da Customização Excessiva de ERPs

Quando a decisão pende para a compra de um software corporativo de prateleira (como grandes pacotes de ERP ou CRM), surge uma das armadilhas mais danosas da engenharia corporativa: a modificação invasiva do código-fonte do produto.

Ao tentar forçar um ERP padronizado a se comportar exatamente como os processos legados manuais da empresa, equipes criam milhares de scripts personalizados acoplados diretamente ao banco de dados do fornecedor. O resultado dessa prática é o congelamento tecnológico: a empresa perde a capacidade de aplicar atualizações de segurança ou migrar de versão porque qualquer patch oficial quebra as customizações locais.

A estratégia moderna para estender softwares de terceiros segue o princípio da Arquitetura Componível:

  1. APIs e Webhooks Oficiais: Interaja com o sistema corporativo exclusivamente através de contratos de integração documentados pelo fabricante (como o Microsoft Graph no ecossistema Microsoft 365).
  2. Camada de Adaptação Externa (BFF / Facade): Mantenha regras customizadas em micro-serviços ou funções serverless externas, consumindo o ERP apenas como repositório de dados transacionais.
  3. Adaptação do Negócio ao Padrão da Ferramenta: Quando o processo for genérico (como aprovação de despesas), prefira adaptar o fluxo de trabalho da empresa ao funcionamento padrão do software a pagar milhões para customizar a ferramenta.
Explorar este tema no Grafo de Conhecimento