Você pode me hatear o quanto for, mas você não tem a capacidade para saber os problemas que podem acontecer no futuro se você nunca passou por esses problemas. Ponto! Pare de ser alarmista, porra!
Mas e se…
Um problema muito sério e que eu vejo com certa frequência no mercado de software são os programadores e analistas tentando prever tudo que pode acontecer de errado dentro de um software, de um jogo ou de algum App e aí eles começam a tomar medidas preventivas com relação a esses possíveis problemas que podem vir a acontecer no futuro: “ah, porque o site pode ter muito acesso vai cair”, “o jogo ter muito acesso e não vai dar conta” ou “ai, que a gente tem que fazer isso e aquilo pra não acontecer…”. O que acontece quando você toma esse tipo de postura alarmista de merda? Você vai começar a encher sua cabeça com um monte de perguntas para as quais você não tem as respostas, você vai começar a fazer com que seus colaboradores e seus pares comecem a ter as mesmas preocupações que você tem e que nem existem nesse primeiro momento.
Se você está começando um projeto e você nunca passou pela experiência de ter um grande volume de usuários ou coisa do tipo, não tem como prever os possíveis erros que podem ocorrer, é simples assim. E pode ficar hateando o quanto você quiser, falando que tem que prever essas possibilidades antes de implementar o software. Como é que você quer implementar uma solução sendo que você nunca passou por esse cenário? Você não tem capacidade de prever onde que estão todos os possíveis pontos de gargalos do seu sistema. Eu já desenvolvi softwares para milhões de usuários e nas várias vezes que o sistema deu problema ao ponto da minha equipe ter que parar para olhar de fato por que o site caiu, porque a gente congestionou a rede e tal, normalmente eram problemas que a gente nunca ia ter previsto. Vou dar um exemplo: um ano, durante a Black Friday, o Vigia de Preço travou a rede da Digital Ocean, a rede interna de um serviço do Website para o Redis. Quanto é que a gente ia conseguir prever, a não ser que fosse a Mãe Dináh, que a gente ia conseguir levar tanto trafego para dentro do site que a gente ia congestionar uma rede interna de 10 Gb entre os serviços Web e o Redis. A gente nunca ia conseguir prever isso. Só que, obviamente, a minha equipe estava de plantão e a gente conseguiu resolver isso rápido. O site ficou off-line, sei lá, 15 ~ 20 minutos, no máximo.
Então é mais importante você ter uma equipe preparada para resolver os problemas de imediato quando e se eles acontecerem do que propriamente achar que você vai prever todos os possíveis problemas que o seu software vai ter ao longo da história dele, isso é loucura. E se você é um programador assim, alarmista, mude sua forma de ver as coisas, porque isso só prejudica sua empresa e prejudica o seu trabalho. Outro pronto, se você tem medo de tudo e é um alarmista, faz um favor para a sociedade: ou você fica quieto no seu canto, sofrendo sozinho pela sua agonia, ou vai embora da empresa. Agora, não contamine o resto da equipe com suas preocupações, que na maioria das vezes são infundadas, se não tem possibilidade sólida daquele problema de fato acontecer. Se você não testou efetivamente o que você está querendo dizer, não leve problemas para equipe que não existem.
E quando é que vocês de fato vai levar um problema para sua equipe, uma preocupação? Se você testou aquilo e viu que realmente é um possível problema. Se você realmente fez os testes e você conseguiu chegar a uma conclusão sólida que de fato aquilo pode causar um problema, aí assim você leva para sua equipe. Se você está monitorando seu sistema, se você está vendo uma crescente de acessos e aí você começa a ver problemas de instabilidade, seja no hardware, nos servidores ou na aplicação como um todo, aí sim você aciona a sua equipe para poder resolver. Agora, se você não tem informações sólidas dos problemas, não leve para sua equipe essa merda! Isso é coisa da sua cabeça e a possibilidade de você estar certo é muito baixa. Mesmo com a experiência de anos desenvolvendo software para milhões de usuários, ainda assim tem certos tipos de cenários que não se aplicam em determinadas realidades, então a gente sempre precisa ter um bom senso de separar o que é importante pensar e o que não é importante. Mas se você não tem experiência, não tem como falar o que é que pode dar certo ou errado, é tudo “achismo” da sua cabeça.
Veneno
Sabe qual é o maior problema de você ter um funcionário alarmista dentro da equipe? É que ele começa a envenenar o resto dos funcionários, porque ele começa a colocar medos, principalmente se a pessoa tem conhecimento técnico, a equipe acha que ele é um Semideus, então começa a falar, “ah, isso aqui pode dar merda, isso aqui pode não funcionar, isso vai dar ruim…” e não sei o que lá, e equipe toda começa a ficar com medo, começa a ficar um coletivo de medo, que vai crescendo, crescendo, crescendo… E chega a um ponto insuportável que qualquer coisa que você faz a pessoa já crítica pelo simples fato de criticar, porque ela vai achar alguma coisa ali dentro para dizer que vai dar problema. Normalmente isso acontece com pessoas que são muito centralizadoras, que acha que só ela é capaz de fazer aquele tipo de aplicação, que qualquer outra pessoa que mexer no código vai fazer besteira e se fizer besteira a culpa vai ser dela e por aí vai.
Então, se você desse tipo, alarmista, de novo: ou você muda, ou pega todas essas inseguranças que você tem e guardar para você, ou você procura outro lugar para trabalhar, por que é insuportável trabalhar com as pessoas assim. É insuportável trabalhar com profissionais que estão o tempo todo criando alertas que não existem. Eu já passei para algumas situações que parecem até piada, de equipes inteiras se juntaram numa sala do Discord para discutir possíveis problemas futuros que nunca existiram. E aí, quando a gente passa por aquela etapa e o problema não acontece, fica todo mundo se lamentando que perdeu o tempo à toa com um problema não aconteceu. Só que, não satisfeito de ter errado uma vez, continua errando, por que uma pessoa que tem perfil alarmista continua sendo alarmista, independente de ela ter sido vencida, seja num argumento, seja por um fato concreto ali, dele ter visto que aquele problema que ele falou que aconteceria não aconteceu, mas ele sempre procura uma coisa nova para criticar, para poder falar que vai dar errado.
Corte rápido
Hoje em dia esse tipo de perfil de pessoas alarmistas, que contaminam a empresa, eu demito. Quando eu vejo o que está começando a acontecer esse tipo de movimentação, de alguém criando problemas que não existem na empresa, é demissão na hora, é corte rápido! Se você tem alguém aí na sua empresa que tem esse perfil, não pense duas vezes, mande esse cara embora, se não ele vai contaminar sua empresa, ele vai contaminar sua equipe e ele vai boicotar em algum momento o seu projeto.
Eu falo sobre esse assunto no vídeo abaixo: