Começar
A história da nossa startup, como muitas outras, começa com um grupo de geeks ansiosos para mudar o mundo. Não tínhamos ideia exata do que queríamos fazer e como, mas uma coisa ficou clara de imediato: nossa startup deveria se tornar um verdadeiro templo de expertise tecnológica; um lugar onde a tecnologia vem em primeiro lugar, onde as pessoas podem se expressar por meio de uma escolha de ferramentas.
Conversamos com centenas de desenvolvedores do setor, analisamos tendências, lemos Hacker News como obcecados, até que finalmente descobrimos a pilha perfeita para nossa startup. Dizer que levamos a sério a coleta de informações é não dizer nada.
Com apoio financeiro suficiente, começamos o trabalho. O recrutamento é um fator chave de sucesso para uma startup, e nós o fizemos no mais alto nível. Colocamos a fasquia muito alta - apenas os desenvolvedores que poderiam enviar projetos populares de código aberto foram convidados para entrevistas. O principal parâmetro pelo qual avaliamos os candidatos foi a classificação no GitHub - esse esquema se mostrou extremamente eficaz.
Logo montamos uma equipe de pessoas maravilhosas que amavam a tecnologia de todo o coração. Sentimos que quaisquer dificuldades estariam ao nosso alcance. Juntos, a equipe surgiu com vários produtos que seriam interessantes de fazer, e o trabalho começou a ferver.
Em pouco tempo conseguimos criar uma arquitetura magnífica. Base de código elegante, microsserviços, orquestração, gerenciamento de configuração - tudo se fundiu harmoniosamente em uma única sinfonia. A aplicação foi distribuída, com balanceamento de carga, boa tolerância a falhas e monitoramento cuidadoso, cujos resultados puderam ser vistos em diversos gráficos e dashboards.
Mas não íamos parar por aí. Reescrevemos os microsserviços, originalmente desenvolvidos em Node, em Go, em C ++ e de volta em Node. Em cada etapa, o desempenho melhorou em 20%. As capacidades de nossa equipe foram incríveis!
Adiamos o lançamento em dois meses para aperfeiçoar o sistema de compilação. A versão final usou Github Actions, Bitbucket Pipelines, Gitlab CI e um cluster de Jenkins hospedado na AWS. Fizemos um sistema de controle distribuído com nossas próprias mãos para evitar as menores interrupções na coordenação. A implantação deste sistema foi realizada usando a mesma infraestrutura de construção. Apenas algum tipo de mágica.
A equipe teve que superar enormes dificuldades técnicas, mas conseguiu. Nas últimas semanas antes do lançamento, trabalhamos muito - trabalhamos dez horas por dia, sete dias por semana, até que tudo estivesse devidamente preparado. E então chegou o dia do lançamento.
As nuvens estão se formando
Abrimos a cortina: anunciamos o lançamento no Twitter e Instagram, postamos a notícia no Hacker News, escrevemos um artigo no Medium. Mas não importa o quanto tentemos, os usuários não vão.
A equipe desanimou - afinal, nós trabalhamos muito na estreia triunfante, mas não deu certo. Após uma série de reuniões urgentes com discussões sombrias, uma decisão foi tomada. Temos que reescrever tudo em $ COOL LANGUAGE.
Traduzir toda a base de código para outro idioma de uma vez é uma tarefa difícil. Mas nossa equipe pode fazer tudo. Tínhamos os desenvolvedores mais talentosos à nossa disposição, a melhor superfície de teste, o sistema de construção mais elegante. Avaliamos nossa força com sobriedade.
Após alguns meses de turnos de 12 horas, concluímos o processo. Todos entenderam que esta seria nossa última chance. É hora de mostrar ao mundo do que somos capazes.
Fizemos muito barulho em torno do lançamento da segunda iteração: não poupamos fundos para uma campanha publicitária em redes sociais, organizamos transmissões ao vivo, pedimos avaliações - em uma palavra, demos o nosso melhor.
Isso não foi o suficiente. Alguns parentes e amigos compraram o produto, mas nenhum outro usuário apareceu. A música foi cantada para nós. Devolvemos o pouco dinheiro que ainda restava aos investidores e começamos a fechar negócios.
O que aprendemos
Vários meses se passaram desde esses eventos fatais. Agora entendemos que cometemos um erro fatal. Não é suficiente apenas construir a pilha de tecnologia mais avançada do momento. Afinal, quando o produto finalmente chegar ao mercado, a composição da pilha ideal já mudou e isso reduzirá as chances de sucesso.
Simplesmente não conseguíamos acompanhar o ritmo de desenvolvimento do mercado. $ COOL LANGUAGE estava diminuindo quando a segunda iteração de nosso produto chegou. Se conseguíssemos atrair mais investimento, não teríamos nos precipitado e reescrito o aplicativo imediatamente para $ ELITE LANGUAGE. Nossa startup pode ser um unicórnio.