Mesmo a tarefa técnica mais simples pode ser implementada de várias maneiras. Cada abordagem acessível tem prós e contras e seu custo - você pode fazer automação por um centavo ou gastar uma fortuna.
Normalmente, engenheiros e empresas de software se esforçam para realizar a tarefa com a mais alta qualidade de que são capazes. Dependendo da experiência e do estágio atual da inicialização, a qualidade "alta" resultante pode não ser suficiente, correspondendo idealmente ao momento ou desperdício de tempo e dinheiro.
Portanto, para agir da maneira mais rápida e eficiente possível, é muito importante alterar a abordagem do desenvolvimento, dependendo do estágio de evolução da startup.

Início: encontrando seu lugar no mercado
(pesquisa para adequação ao mercado)
Este é o começo quando uma nova organização está procurando seu mercado. O principal objetivo nesse estágio é testar novos modelos de negócios o mais rápido possível, sem prestar muita atenção à qualidade da implementação do sistema.
Durante esse período, os requisitos da plataforma podem mudar drasticamente várias vezes. É provável que a maior parte do código seja descartada posteriormente. O impacto dos erros é pequeno, uma vez que a plataforma quase não possui usuários, como regra, são familiares e amigos.
Nesta fase, é inútil investir muitos recursos em uma implementação de qualidade do sistema. É até perigoso pagar por boa qualidade, pois diminui a velocidade da pesquisa de mercado e gasta dinheiro rapidamente.
Prioridade : velocidade de desenvolvimento.
Recomendações :
- Procure a maneira mais fácil e rápida de testar suas idéias.
- Explore o mercado, já pode haver sistemas ou serviços prontos que você pode usar.
- Esteja alerta sempre que ouvir falar sobre qualidade, desempenho, escalabilidade, etc. Faça anotações para o futuro e esqueça o momento.
- Resista à tentação de investir em boa qualidade cedo demais. Afinal, toda vez que você estiver convencido de que a solução atual para o problema certamente disparará.
- Após a aparição dos clientes e a transição para a próxima etapa, esteja preparado para os iniciantes falarem sobre como seria legal usar essa ou aquela abordagem arquitetônica desde o início. Melhor do que gastar todo o dinheiro e criar o produto perfeito que ninguém precisa.
Desenvolvimento: captura de nicho
A startup encontrou seu mercado e o número de clientes está em constante crescimento.
Nesta fase, há menos alterações cardinais no sistema. Geralmente, novas funcionalidades são adicionadas. No entanto, à medida que o número de clientes aumenta, o impacto dos erros aumenta.
Os usuários do serviço devem ver que a solução é estável e está em constante evolução. Portanto, o desenvolvimento da qualidade da plataforma vem à tona.
Prioridade : qualidade do processo de desenvolvimento.
Recomendações :
- Comece a investir mais na qualidade da plataforma.
- Forneça os seguintes elementos do processo de desenvolvimento:
- Atualizações freqüentes e regulares do sistema.
- Implantação automatizada de alterações.
- Todas as alterações passam pelo estágio de revisão de código.
- Teste qualitativo de funcionalidades novas e antigas.
- Prepare-se para grandes mudanças na arquitetura na próxima etapa.
Escalonamento: expansão para o mercado global
A inicialização criou um modelo de negócios bem-sucedido. É hora de escalá-lo para novos mercados.
Nesta fase, os requisitos existentes raramente mudam. Novos recursos ainda estão surgindo, mas requisitos não funcionais, como largura de banda, velocidade de resposta e disponibilidade do sistema, estão se tornando mais importantes.
O impacto dos erros é enorme e a confiabilidade da plataforma é crítica.
Prioridade : arquitetura de qualidade.
Recomendações :
- É hora de investir o máximo em qualidade da plataforma.
- Se necessário, reescreva alguns dos módulos para melhorar a arquitetura.
- Forneça os seguintes elementos do processo de desenvolvimento:
- Teste de estresse de qualidade.
- Equipes verticais - as equipes podem liberar independentemente novas funcionalidades.
- Escala horizontal - cada módulo da plataforma pode ser escalado adicionando novas instâncias.
- Implantação de avaliação (implantação Canary) - novos recursos podem ser testados em uma pequena parte de usuários reais.
Resumo:
Conheça seu estágio claramente - todas as pessoas da equipe devem entender o foco atual do desenvolvimento. Desenvolva um hábito antes de cada tomada de decisão sobre a implementação de uma lista de opções que diferem em tempo, custo e qualidade. Escolha o mais eficaz para o seu estágio atual:
- Corte os cantos para testar hipóteses o mais rápido possível na fase de encontrar seu lugar no mercado.
- Crie um processo de desenvolvimento de alta qualidade e garanta um fluxo constante de melhorias durante o desenvolvimento intensivo.
- Atualize a arquitetura do sistema para dimensionar um modelo de negócios bem-sucedido para novos mercados.
PS : A evolução de uma startup nem sempre é tão simples e linear. A transição de um estágio para outro leva tempo e esforço. Um produto de sucesso (MVP) no lançamento pode não funcionar para um público mais amplo durante a fase de desenvolvimento. Uma solução eficaz para um nicho pode não ter boa escala em novos mercados. Esses casos retornam o bootstrap às suas raízes e a prioridade de desenvolvimento deve mudar de acordo.