Compartilhar via


Arquitetura para startups

Criar uma startup é um desafio único. A tarefa principal é encontrar um lugar para uma inovação como produto ou serviço no mercado. Esse processo requer testar várias suposições que são incorporadas à inovação. Uma startup de sucesso precisa iterar essas premissas, crescer e escalar conforme o produto se ajusta e ganha o mercado. Depois de encontrar esse ajuste, a startup deve escalar para capturar a demanda do mercado.

Nos diferentes estágios da vida de uma startup, desenvolvedores, arquitetos e diretores técnicos (CTOs) lidam com diferentes fases de desenvolvimento. Esses estágios exigem abordagens fundamentalmente diferentes e diferentes opções tecnológicas. Parte da tarefa é estabelecer em qual fase sua inicialização está. Escolha as tecnologias, abordagens e arquiteturas que correspondem a essa fase.

Estágios de inovação

Kent Beck descreve um processo de três estágios de inovação de produtos de software. Esses estágios são explorar, expandir e extrair. Você pode pensar nas diferentes partes desse processo como um grafo:

Um grafo que mostra as fases Explorar, Expandir e Extrair do desenvolvimento do produto.

Um gráfico mostrando uma curva sigmóide plotada em relação ao eixo y "Certeza/Investimento/Risco de Mudança" e ao eixo x "Tempo". O grafo tem três áreas realçadas: a parte inicial antes da inflexão para cima rotulada como "Explorar", a parte de alto crescimento da curva sigmóide rotulada como "Expandir" e o planalto rotulado como "Extração".

  • O estágio Explorar começa com uma inclinação baixa, em que você está tentando encontrar o que funciona. A certeza é baixa, você só investe pequenas quantias e o risco de qualquer alteração feita também é baixo.

  • Quando a adequação do produto ao mercado é encontrada, o gráfico sobe mais rapidamente. Esse rápido crescimento é o estágio Expandir . Sua certeza aumenta muito, você investe muito mais e está muito mais ciente dos riscos.

  • Por fim, à medida que o grafo se nivela e a inicialização atinge a maturidade, você chega ao estágio Extrair. A certeza, o investimento e o risco de mudança são todos altos, mas a taxa de crescimento atingiu um patamar.

Explorar

Quando sua startup está no estágio de exploração, sua prioridade é investir quantidades pequenas de tempo e esforço em muitas ideias diferentes de produtos. O fato de que a maioria das idéias não será certa impulsiona a exploração. Somente iterando e aprendendo você pode encontrar o produto e o mercado adequados. Ao fazer muitas pequenas apostas, você pretende encontrar uma ideia de produto que compensa.

Este estágio requer disciplina. É fácil investir demais em uma ideia que você poderia testar com menos tempo e energia. Um tecnólogo acha especialmente fácil cair nessa armadilha. Para fazer escolhas arquitetônicas que facilitam a exploração, lembre-se de que você está explorando. Você ainda não sabe se a ideia atual do produto é uma que poderá crescer.

Do ponto de vista da arquitetura, escolha os serviços que otimizam para velocidade, custo e opções. Use serviços gerenciados e plataformas como um serviço (PaaS) como o Serviço de Aplicativo do Azure para começar rapidamente sem se preocupar com uma infraestrutura complexa. Gerencie os custos escolhendo camadas gratuitas e tamanhos de instância menores enquanto você está explorando. Os contêineres dão suporte ao desenvolvimento com qualquer ferramenta que faça sentido para você e oferecem opções de implantação flexíveis para o futuro.

Criar a primeira pilha

Assim como na sua primeira versão do produto, seu primeiro stack tecnológico deve estar firmemente enraizado na exploração. Isso significa que a pilha de tecnologia deve facilitar a iteração rápida do produto sem desperdiçar esforços. Você não deseja gastar tempo ou esforço em infraestrutura ou arquitetura que não seja necessária para responder às perguntas atuais.

Durante a fase de exploração, você precisa otimizar para velocidade, custo e opcionalidade. Velocidade é sobre a rapidez com que você pode criar e seguir em frente com uma ideia ou passar para a próxima ideia. O custo é o quanto você está gastando para executar sua infraestrutura. Opcionalidade descreve a rapidez com que você pode alterar as direções dada a arquitetura atual.

É importante equilibrar custo, velocidade e opcionalidade. Focar demais nos custos limita a velocidade e a opcionalidade. Muito foco na velocidade pode levar a um aumento de custos e menos opções. Projetar para muitas opções cria complexidade, o que aumenta os custos e reduz a velocidade.

Considere usar nosso primeiro stack tecnológico sugerido. Essa arquitetura usa serviços de PaaS para facilitar a implementação, pode ser iniciada com uma escala mínima e usa tecnologias de contêiner e software livre que podem ser facilmente implantadas em diferentes pilhas de tecnologia à medida que você amadurece.

Expanda

Após sua startup achar o mercado de produtos adequado e o crescimento subsequente por meio da exploração, você mudará as engrenagens para a expansão. Você se concentra na remoção de quaisquer bloqueios para o crescimento contínuo do seu produto e da empresa. Do ponto de vista técnico, você resolve os desafios de escala de infraestrutura e aumenta a velocidade de desenvolvimento. As metas são atender às necessidades dos novos clientes e avançar no roteiro do produto.

Ampliar a arquitetura

À medida que você aprimora seu produto, inevitavelmente encontrará áreas em que sua arquitetura precisa de expansão. Talvez seja necessário concluir tarefas de execução longa em segundo plano ou lidar com atualizações frequentes de dispositivos IoT (Internet das Coisas). Talvez seja necessário adicionar pesquisa de texto completo ou inteligência artificial ao seu produto.

Talvez você precise de alterações arquitetônicas para acomodar itens em seu roteiro. Resista à tentação de fazer essas mudanças com muita antecedência. As extensões correm o risco de adicionar complexidade aos custos de arquitetura e infraestrutura ao seu balanço.

Nos estágios iniciais, qualquer extensão de arquitetura deve ser realizada no momento certo. A extensão deve levar apenas tanto tempo e energia quanto necessário para testar a próxima hipótese. Esteja pronto para remover extensões para reduzir a complexidade. Procure recursos de produtos que seus clientes não estão usando como oportunidades para simplificar sua arquitetura e reduzir seus gastos com infraestrutura.

Sua arquitetura pode ser expandida de várias maneiras, como:

Extrair

Na fase de extração, o ritmo de crescimento desacelera à medida que você atinge os limites da oportunidade de mercado. Porque você expandiu durante a fase anterior, agora há muito a perder, então você adota uma abordagem mais cautelosa. A expansão da margem, a redução de custos e as melhorias de eficiência caracterizam a fase de extração. Durante a fase de extração, tenha cuidado para não comprometer o produto para os clientes que você ganhou na fase de expansão.

Lidar com o crescimento e amadurecer a pilha

Depois que um produto atinge o produto e o ajuste de mercado, muitas demandas definem a arquitetura. O aumento do uso pode exigir o dimensionamento da infraestrutura para lidar com a carga. Novos requisitos de conformidade da empresa podem exigir um isolamento maior. Essas alterações são etapas comuns no amadurecimento de um aplicativo bem-sucedido.

As alterações feitas para lidar com o crescimento e adicionar maturidade são diferentes da extensão da arquitetura. Essas alterações não são requisitos funcionais, mas estão relacionadas ao desbloqueio da escala. O aumento da escala pode vir de novos clientes líquidos, aumento do uso de clientes existentes e clientes com requisitos regulatórios mais altos.

Resista à tentação de otimizar prematuramente. Siga as etapas de crescimento e amadurecimento que podem ajudá-lo a continuar iterando e melhorando seu produto.

Próximas etapas