Foi minha segunda ou terceira semana como consultor em uma prestigiada empresa de telecomunicações. Para evitar o tráfego, eu acordava às 4 da manhã todos os dias. Cada viagem levaria apenas 12 músicas, mas tive que esperar no estacionamento por mais 36 músicas e duas xícaras de café.
Após a turnê introdutória de 20 dólares, percebi que estava no Inferno. Toda a equipe que impedia a infraestrutura de queimar se demitiu e saiu da mesma forma que você evitaria uma praga. A documentação estava desatualizada e quase sempre inútil. Não havia controle de versão para seu software interno, que foi escrito em .NET (2.0), T-SQL, Java, Python e PHP. Como se isso não bastasse, eu estava sozinho com doisencantador gerentes que pareciam não estar cientes do naufrágio.
Havia uma lista de tarefas que deveriam ser feitas semanalmente. Um deles envolvia a execução de alguns scripts python que rastreavam os dados do cliente de um servidor antigo, analisavam cada entrada com uma receita RegEx que parecia um feitiço de magia negra para finalmente inserir o resultado em um SQL Server antigo sem patch. Esses scripts obteriam o nome de usuário, a senha não criptografada e o host para extrair de um serviço da web interno. Não havia como saber se algo deu errado até alguns dias. Conforme eu disparava cada processo, isso é o que realmente passava por minha mente:
isso não é diferente de esfaquear no escuro.
Não vou entrar em detalhes, mas vamos apenas dizer que o resto do sistema deles era um gueto. Já li sobre cartéis de drogas com melhores fluxos de trabalho. Eu tinha inveja dos zeladores, embora nossos empregos estivessem intimamente relacionados. Nós dois tivemos que limpar a merda dessas pessoas.
A semana estava quase acabando. Mais um jogo de Paciência e eu finalmente voltaria para casa. De repente, recebo um e-mail dizendo que eles não podem gerar alguns relatórios e estão irritados. Depois de dar uma hora extra e fazer algumas suposições dignas de Sherlock, percebi que havia duas versões do raspador de tela. Um “backup” inacabado feito durante o desenvolvimento do script e a versão final que eu deveria ter executado. É um eufemismo dizer que estraguei tudo.
Problemas são oportunidades disfarçadas
Pode-se argumentar que a situação poderia ter sido evitada Se eu tivesse herdado uma documentação melhor, mas me culpo. Como muitos desenvolvedores, deixo meu ego atrapalhar. O pequeno perfeccionista dentro de mim havia se concentrado mais em suas falhas e no quão ruim seu sistema foi projetado, em vez de adotar uma abordagem mais positiva: fazer o melhor que puder com o que você tem. Problemas são oportunidades disfarçadas.
Desenvolvimento orientado a falhas (FDD)
Desde esse incidente, adotei um ciclo de desenvolvimento pessoal baseado em TDD .
Desenvolvimento orientado a falhas consiste em três etapas:
- A vida escreve um teste de falha para você
- Você escreve o seu destino, você o faz passar
- Limpe e remova qualquer conceito, comportamento ou crença desnecessário que o atrapalhe
Este ciclo está ocorrendo constantemente, não seja preguiçoso e conserte seus bugs!