• Blog
    • Tecnologia
    • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast
  • Nossas vagas
  • Site Movile
Menu
  • Blog
    • Tecnologia
    • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast
  • Nossas vagas
  • Site Movile
  • Carreira, Cultura, Movile, Tecnologia, Zoop

Os desafios de engenharia na escalada de uma startup – Parte 1

Compartilhe

Compartilhar no facebook
Compartilhar no google
Compartilhar no twitter
Compartilhar no linkedin

O caso Zoop – Introdução

Quando você trabalha em uma startup, você vive em um ambiente onde todos estão em busca de uma oportunidade para deslanchar o negócio da empresa.

Cada investimento é realizado com o foco de se lançar no mercado o mais cedo quanto for viável, com o menor custo possível.

Se tratando em desenvolver as primeiras funcionalidades, é normal que seus esforços sejam proporcionais a um retorno de curto ou médio prazo, produzindo um sistema monolítico que realiza todas as funções em um único pacote, significando baixo custo e alta velocidade de implementação.

Mesmo que seja um senso comum que os monolitos sejam péssimos para escalar grandes volumes de processamento, é inegável que eles são o melhor caminho para a prototipação.

Esses monolitos são construídos e lançados no ambiente produtivo, mesmo sabendo-se que serão refeitos com um ou dois anos de exposição à missão crítica.

Lembre-se: o MVP ainda não foi publicado e a sua empresa ainda não está gerando renda, portanto vocês ainda não têm o tempo e o dinheiro necessários para investir nas soluções de ponta, com arquiteturas e designs definitivos que escalarão o volume crescente pelos próximos cinco a oito anos.

Mas um dia, com a gestão da empresa fazendo as escolhas corretas, esse momento excelente aparecerá e a sua empresa irá crescer do dia para a noite.

O sistema precisa dessas novas funcionalidades demandadas pela nova grande oportunidade, além de também precisar continuar atendendo as demandas anteriores. Nessa circunstância, a dica mais preciosa é escolher as brigas certas.

  • Não dá para reescrever todos os componentes do sistema de uma só vez: o time técnico é extremamente reduzido (é comum haver mais projetos do que pessoas!) e, nesse ponto, o monolito já é grande demais para ser reescrito completamente em tempo hábil.
  • Não dá para triplicar o time: não haverá dinheiro para isso e, mesmo que houvesse, adicionar muitas pessoas descontextualizadas do projeto só iria atrasar mais ainda o desenvolvimento das novas demandas.
  • Não dá para interromper todas as atividades e reformular essas demandas: se o escopo é enorme e o time é pequeno, pensamos logo em aumentar o prazo. Prazos longos são a morte para uma startup. Afinal, quanto mais tempo trabalhamos em funcionalidades já existentes, menos novas funcionalidades conseguiremos implementar para manter a empresa recebendo novos clientes. Então parar a operação por longos períodos para reestruturar todo o sistema é ainda mais fora de cogitação do que as alternativas anteriores!

Com todos os seus recursos limitados (tempo, gente e dinheiro), não há outra saída. Agora o desafio passa a ser a refatoração dos sistemas em pleno ar, o famoso trocar as rodas do carro andando, ou como costumamos dizer na Zoop, “botar mais combustível no avião em pleno vôo”. É arriscado mas repito: é possível vencer a guerra se brigarmos as batalhas certas.

A Zoop passou exatamente por tudo isso em 2018 e ainda sim conseguimos ter um crescimento exponencial no último ano fiscal. A cada dia sem uma nova entrega, era um dia sem uma nova vitória.

Nós contratamos pessoas sensacionais, mas fizemos isso aos poucos. Fomos dando espaço entre as admissões para que os times fossem se expandindo e o conhecimento fosse passado de forma organizada.

Mudamos a organização das pessoas: eram 4 times, depois viraram 5 squads e depois 4 áreas de negócio auto suficientes.

Ainda sim, o que fez a diferença foi termos aceitado que era necessário desmantelar o nosso monolito e reescrever pequenas partes do nosso sistema para aguentar a demanda por grandes volumes.

É disso que quero tratar com vocês nessa série. Nos próximos capítulos, nós iremos contar essa história.

Em cada postagem, vamos falar da abordagem que tivemos com um produto da nossa prateleira, começando com o desenho da arquitetura anterior, avançando para o problema a ser resolvido e passando pelo caminho que tomamos ao planejar a solução, pelo desenho da arquitetura posterior e, finalmente, chegando aos benefícios alcançados por essas mudanças.

Então é isso, vejo vocês no próximo capítulo! Até lá! :)

Compartilhe isso:

  • Tweet

Curtir isso:

Curtir Carregando...
Juliano Fernandes

Juliano Fernandes

Focado em transformar o mercado através de boas escolhas tecnológicas e do cuidado com as pessoas. Larga experiência com construção de Restful APIs escaláveis utilizando Java, Node, Go e Python. Entusiasta de Agile e Coaching.

Deixe um comentário

Categorias

Categorias
  • Android
  • Backend
  • Banco de Dados
  • BI
  • Carreira
  • Carreira e Cultura
  • Carreira e Cultura
  • Ciência de Dados
  • Cultura
  • Data Specialist
  • Design
  • Diversidade
  • Front-end
  • Frontend
  • Fundação 1Bi
  • Grupo Movile
  • Histórias
  • iFood
  • Infraestrutura
  • Inteligência Artificial
  • iOS
  • iOS App Development
  • Kotlin
  • kubernetes
  • LeaderShift
  • Material
  • Mobile
  • Mobile Dream
  • Movile
  • Movilian@s
  • News
  • PlayKids
  • Podcast
  • Produto
  • Projetos
  • React
  • RESPECT
  • Software Architecture
  • Software Engineering
  • Solid
  • Swift
  • SwiftUI
  • Sympla
  • Technology
  • Tecnologia
  • testes
  • UX
  • Vagas
  • Wavy
  • Zoop

Posts relacionados

Dart Extension Methods na prática

Leia mais »
Kubernetes

Papo Sobremesa #11 – Chapter Backend

Leia mais »
Jetpack

Utilizando a nova versão do Jetpack Paging

Leia mais »
SOLID

Swift: Princípio de Substituição de Liskov [Artigo 3]

Leia mais »
Tags
Agile Android Apache api App Apps Arquitetura Autoconhecimento Backend Banco de Dados BI Blog bot Bots Cache Carreira Carreira e Cultura Cloud code containers Continuos integration Cultura Dados Dados Probabilísticos data Data Center Data Science Desenvolvimento Design devs digital diversidade DSL Entrevista Evento eventos Experiências Facebook front Front-end Frontend Full-stack Fundação 1Bi Gestão GO google Groovy grupo Grupo Movile histórias home iFood Infraestrutura Inteligencia artificial iOS Java jetpack Json Kotlin kubernetes layout Liderança linguagem loadview Machine Learning marketplace Mobile Movile Movilianos news Objective-C PlayKids podcast produto Projetos pwa python Rapiddo react Reativas Redis research review RH Room spark Spring stack storyboards Superplayer Swift Sympla Talentos tdd Tecnologia Testes transformação digital Unity ux vagas Valores view viewcode viewcontroller viper Voxel vue wavy web Widget Zoop

Siga-nos

Facebook-f
Linkedin
Instagram
Youtube
Twitter

Baixe nosso e-book!

Receba conteúdos exclusivos em seu email!

Seus dados estão protegidos conosco.

Menu

  • Tecnologia
  • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast
Menu
  • Tecnologia
  • Carreira e Cultura
  • Materiais Gratuitos
  • Podcast

principais categorias

  • Tecnologia
  • Carreira e Cultura
  • News
  • Movile
  • Backend
  • Android
Menu
  • Tecnologia
  • Carreira e Cultura
  • News
  • Movile
  • Backend
  • Android

FEED RSS

RSS Feed RSS - Posts

RSS Feed RSS - Comentários

redes sociais

  • Facebook
  • LinkedIn
  • Instagram
  • Youtube
  • Twitter

Copyright 2021 © Todos os direitos reservados. Criação de Site por UpSites & Weblab

  • Novas Vagas!

  • Último Podcast!

%d blogueiros gostam disto: