LUCIO PATROCINIO
LUCIO PATROCINIO23/07/2025 08:55
Compartilhe

🚨 Minha experiência com sistemas de controle de versionamento

  • #GitHub
  • #Git

Quando você está iniciando na área de desenvolvimento de software e estuda o sistema de controle de versão Git e a plataforma Github, geralmente não dá muito valor a esse conhecimento. Mais do que isso, acha que é desnecessário e chato. Por isso resolvi fazer um relato sobre uma experiência profissional que tive e que envolve o conceito de versionamento e backup.

Quando comecei a desenvolver sistemas, trabalhei em uma terceirizada que prestava serviço para uma empresa nacional de grande porte. Fazia parte de uma excelente equipe com um amplo conhecimento na área de desenvolvimento. Uma das primeiras orientações que recebi foi a de manter sempre em dia o versionamento e o backup da parte que eu estava trabalhando no momento. Não me lembro qual era o sistema de versionamento, mas lembro que ele operava o backup e bloqueava a parte do código que estava sendo trabalhada. Também lembro-me que, frequentemente os desenvolvedores esqueciam de desbloquear o código após o término do desenvolvimento ou da manutenção, o que geralmente causava muita irritação para os desenvolvedores que ainda precisavam fazer manutenção no código.

Como todo iniciante, as vezes eu fazia o versionamento e as vezes não. Numa dessas vezes, cheguei cedo para trabalhar (geralmente era o primeiro a chegar) e deparei-me com a porta da sala de trabalho destrancada e meio travada. Embora tenha achado estranho, não fiquei preocupado, pois às vezes alguém trabalhava até tarde e devido ao cansaço, esquecia de trancar a porta. Mas o que poderia nos preocupar afinal? Estávamos trabalhando num prédio seguro, dentro do terreno de uma empresa de grande porte com seguranças que passavam periodicamente verificando todo o perímetro, portas e janelas.

Mas qual não foi a minha surpresa ao entrar e ver os gabinetes dos computadores ligeiramente fora do lugar? Cheguei mais perto e os gabinetes estavam soltos, tentei ligar um deles e nada aconteceu. Movi o revestimento externo dos gabinetes, expondo o interior das máquinas e horrorizado verifiquei que todos, todos os discos rígidos (HDs) haviam desaparecido. Alguém havia entrado e furtado nossos discos rígidos e astuciosamente deixado o gabinete montado, provavelmente para atrasar qualquer queixa. Nada mais faltava.

Liguei para sede da empresa e relatei o que havia encontrado. O encarregado imediatamente acionou a segurança da empresa que veio fazer a vistoria. Meu empregador não parecia preocupado, pois o contrato de trabalho previa seguro de equipamentos, etc. Eu por outro lado, não estava tão seguro assim. Quando finalmente tive acesso ao servidor da empresa, perdi a respiração ao verificar que faltavam aproximadamente 2 meses de trabalho. Não há como descrever o meu pânico naquele momento.

Felizmente, tive uma semana para repor o material, e por sorte, havia trabalhado tanto tempo nele que sabia de cor cada linha do código. Na verdade, a nova codificação ficou até melhor devido a refatoração que fiz e atendeu plenamente o cliente. Mas o desfecho dessa história poderia ter sido muito, muito pior.

Hoje temos o Git que é um sistema de versionamento excelente e repositórios para backup como GitHub, Gitlab e Bitbucket que são muito superiores aos sistemas que utilizávamos no passado, além de serem gratuitos para a maioria das aplicações. Não há desculpas para não utilizá-los. Fica a sugestão de aproveitar ao máximo esses avanços e criar sua própria rotina de versionamento. Lembrando que esses cuidados podem salvar trabalhos e carreiras.





Compartilhe
Comentários (2)
LUCIO PATROCINIO
LUCIO PATROCINIO - 23/07/2025 16:10

Respondendo ao que foi solicitado pelo DIO Community:

"Diante disso, que estratégias você considera mais eficazes para incentivar o hábito do versionamento contínuo entre devs iniciantes, especialmente em ambientes de bootcamp ou projetos educacionais?"

Baseado na minha experiência limitada, o dev iniciante é, geralmente, um pouco arrogante em relação a suas capacidades cognitiva e de realizar tarefas, o que o faz muitas vezes desrespeitar as regras do ambiente de trabalho. Cada sucesso, torna-o mais confiante, destemido e até certo ponto temerário. Para o dev iniciante não existe professor melhor do que a "vivência". Na minha opinião, o supervisor terá que ter um pouco mais de trabalho, dividindo as tarefas em pedaços ainda menores especificamente para o dev iniciante e estabelecendo checkpoints que permitam verificar se regras, tais como a da rotina de versionamento estão sendo adequadamente seguidas. Além disso, frequentemente, o supervisor terá que fazer intervenções para orientar e corrigir o andamento da rotina do nosso "estagiário".

Para o caso citado de bootcamp ou projetos educacionais, talvez o estabelecimento de métricas tais como: a frequência com a qual commits e issues são realizados e disponibilizados em um repositório, eventualmente associado com uma IA supervisora para realizar a verificação e feedback dessas métricas, possa ajudar a estabelecer o hábito de rotina do dev iniciante.

Mas até aí, estou apenas especulando...

DIO Community
DIO Community - 23/07/2025 09:53

Excelente relato, Lucio. Sua experiência ilustra de maneira clara e impactante a importância dos sistemas de controle de versão não apenas como uma prática técnica, mas como uma salvaguarda estratégica no desenvolvimento de software. Muitas vezes, a valorização do Git e do GitHub só acontece quando ocorre uma perda real.

O modo como você conectou a negligência inicial com o risco real da perda de trabalho mostra que versionamento vai além de “subir código”: trata-se de responsabilidade, prevenção e resiliência profissional. Gostei especialmente de como você destacou a evolução das ferramentas e a facilidade atual de adoção, o que torna ainda mais inaceitável ignorar essas práticas.

Diante disso, que estratégias você considera mais eficazes para incentivar o hábito do versionamento contínuo entre devs iniciantes, especialmente em ambientes de bootcamp ou projetos educacionais?