Desafios de um time de tecnologia em uma empresa com crescimento exponencial

Bruno Ventura
How Kovi Work
Published in
5 min readOct 2, 2019

Durante aproximadamente durante 3 anos durante minha carreira tive a oportunidade de trabalhar remotamente para uma consultoria de software localizada na África do Sul. Ao mesmo tempo que pude ter uma liberdade de ser completamente officeless, ao longo do tempo o peso de trabalhar sem um time e não ter um participação na concepção dos projetos foi aumentando. Em um determinado momento decidi que a melhor opção para mim seria buscar uma empresa que estivesse em franco crescimento, com um propósito claro, porém com um time ainda pequeno tanto para me desenvolver profissionalmente quanto para ter uma participação significativa dentro do time, nesse momento conheci a Kovi. E resolvi aceitar o desafio no papel de engenheiro de software.

O objetivo desse post é falar um pouco sobre as os pontos positivos e desafios de se trabalhar no time de tecnologia em uma empresa com crescimento exponencial.

Para contextualizar, a Kovi é uma empresa que faz locação de carros para motoristas de aplicativo. No presente momento (Setembro de 2019) temos 2000 locados em pouco mais de um ano de existência, passando vários concorrentes com muito mais tempo de mercado. Temos todo o sistema construído in-house desde a parte do auto-cadastro, validação de documentação, sistema de pagamentos, agendamento de retirada, acompanhamento dos motoristas na base, rastreamento, segurança e manutenção. O time de produto e engenharia tem aproximadamente 15 pessoas (Temos muitas vagas abertas inclusive), incluindo Devs, PMs, UXs, QAs e Data. É um time bem enxuto pela quantidade de demandas que existem para termos uma operação saudável.

Tendo isso dito, listei alguns pontos que considerei relevantes nesses primeiros dois meses que estou na empresa.

Move Fast and Break Things

Esse é um ponto crucial em qualquer startup em estágios iniciais, porém com o crescimento que buscamos esse ponto é levado ao extremo. Ser ágil não é uma opção, seja para uma nova feature que vai possibilitar novos usuários entrarem na base ou que vai tornar o processo de z, y ou z mais rápido. Tanto na decisão do que deve ser feito, quanto no como deve ser feito. Aqui na Kovi seguimos muito a ideia de v0, como basicamente tudo que fazemos é algo completamente novo, e não uma melhoria de algo que já existe, então é necessário lutar contra a vontade interna de todo desenvolvedor de fazer a melhor solução para fazer o mínimo possível para entregar o máximo de valor, e com isso vamos ter que criar soluções menos robustas ou que precisarão ser revisitadas no médio prazo. Até porque a empresa se desenvolve muito rápido e o que foi pensado hoje possivelmente não atenderá a demanda de amanhã.

Porém isso é muito diferente de fazer uma solução desleixada. É importante se ter conhecimento de quais são os pontos mais críticos que precisarão de mais cuidado, testes unitários e as partes que podem ser deixadas para melhorias em uma refatoração futura. Por isso é muito importante seguir bons padrões de código, o velho alta coesão e baixo acoplamento ajuda muito nessas horas. É importante saber os débitos que você e o time estão assumindo por que mais cedo ou mais tarde eles serão cobrados com juros.

Nesse mesmo ponto é importante também que TODA a empresa esteja alinhada com esse pensamento, já que coisas vão dar errado e a operação pode ser afetada (porém não pode parar). Então é MUITO importante ter um canal de comunicação aberto e claro entre os times.

Negligência consciente

Existirão diversas demandas, features, problemas, melhorias para se resolver do que o time tem banda, é importante ter conhecimento do que impacto, esforço (vale a pena trabalhar com os frameworks GUT, Rice, BASICO). Inevitavelmente demandas serão negligenciadas e você estará ativamente participando do processo decisório. Saiba o que precisa ser resolvido agora e o que pode aguardar um pouco mais.

Geralmente demandas que impactam diretamente o cliente final são as mais prioritárias, as que afetam operações internas ou podem ser feitas de uma maneira menos eficiente tem menos prioridade, porém cada caso é um caso. Um exemplo na Kovi é quando o motorista está no pátio e por algum motivo o sistema está não consegue finalizar o booking, é necessário resolver o mais rápido possível para evitar uma má experiência para nossos motoristas.

Você terá muitos filhos

Basicamente tudo que você criar será algo que não existia anteriormente, então você será a pessoa que mais entenderá daquela parte do processo. Logo você ganhou um filho. É importante que você repasse o conhecimento para o time como um todo pois todos precisam estar alinhados e saber lidar com isso na sua ausência, porém vale lembrar que todos já assumiram ownership de outros pedaços do sistema assim como você. Tanto pessoas do seu time quanto de outros times irão te procurar quando algo der problema ou quiserem saber mais informações.

Autonomia

Muitos momentos em que surgirem problemas possivelmente você precisará lidar por conta própria mesmo não fazendo a menor ideia do que se trata, o time estará em uma situação muito parecida com a sua. Ter domínio das suas ferramentas de trabalho, sua stack e arquitetura vão ajudar muito nesse processo de investigação e resolução. Caso a informação não esteja tão difundida pelo time, é sua responsabilidade levantar a mão e expor esse ponto. Isso ajudará todos a terem mais autonomia e não concentrar a resolução de problemas em poucas pessoas.

Aqui vale ressaltar que é importante ter equilíbrio sobre as responsabilidades assumidas e saber definir até onde é seguro você ir sem o consentimento de um líder técnico ou uma decisão de mais pessoas.

Work hard play hard

Essa frase apesar de ser um clichê, é importante. Vai ser duro, vai ser difícil, não tem como escapar. Durante essa experiência em vários momento já tive oportunidade de enfrentar diversas situações desafiadoras, porém o sentimento de satisfação é imensurável. Meu conselho nesse ponto é, não deixe de aproveitar o momento, possivelmente a maior parte da empresa estará na mesma sintonia. Não deixe de aproveitar o momento.

Por fim

É necessário saiba seus limites, esse ecossistema vai te puxar ao máximo, saiba até onde você deve ir e por onde caminhar. Tenha sempre uma comunicação clara com o seu time e gestor (faça 1–1 com frequência).

Make good art.

--

--