🚨 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.