Episódio piloto: O início
Em meados de 2006 depois de 3 anos cursando ciências da computação comecei a trabalhar como desenvolvedor em uma pequena empresa que tem o foco em servidores GNU/Linux. De início, minha função seria dar um gás nas pendências de desenvolvimento e aprender um pouco da parte de suporte à servidores e administração de redes, mas sempre com foco no desenvolvimento.
O entusiasmo era grande, afinal eu estava há um bom tempo sem trabalhar e a vida acadêmica não faz muito meu tipo. Nessa empresa tinha uma pessoa que era minha principal tutora e que foi responsável por me iniciar na linguagem de programação que hoje é a minha linguagem do coração, Python.
Comecei por pequenos projetos, já que eu não tinha muita experiência com Python, e aos poucos fui aprendendo cada vez mais sobre essa maravilhosa linguagem, dinâmica, simples, poderosa (batteries included!) e pra integrar com GNU/Linux é ótima! A maioria das ferramentas que eu desenvolvia deveria de ter integração íntima com ferramentas do sistema, o que me fez conhecer as entranhas de uma distribuição (Debian) como poucos conhecem e saber aproveitar melhor tudo que o sistema tinha para oferecer.
Durante algum tempo eu fui guiado por esse tutor, até que o mesmo saiu da empresa e eu me tornara o developer solo! Mal eu sabia da batalha que viria pela frente e das dificuldades que seriam desenvolver com uma equipe de um homem só.
Foi então que surgiu meu primeiro projeto e seria desenvolvido completamente do zero! Era um sistema que pudesse fazer replicação remota de servidores, fazendo com que tivéssemos uma cópia exata de um servidor localizado em outro lugar físico, que em caso de falha seria substituido por esta cópia. Pronto, diversão garantida, estudar a melhor forma de fazer essa replicação, criar rotinas de agendamento, arquivos de configuração pra cada servidor que precisasse ser replicado, logs, etc, etc.
A primeira versão do programa finalmente ficou pronta depois de alguns meses de programação e testes. Bem, estava pronta, o código era feio, não orientado à objeto, uma verdadeira zona! Funcionar até que funcionava, mas só eu entendia aquilo, hehehe.
E assim começou a saga do desenvolvedor solitário, com um programa que funcionava bem mas era mal escrito, não tinha documentação, sem controle de versão, etc, etc.
Cenas do próximo capítulo:
Após algum tempo de funcionamento do primeiro programa e a correção de problemas observados durante o uso, era chegada a hora de implementar novas funcionalidades e só restava uma decisão a ser tomada antes de por a mão na massa: Implementar no código atual ou reescrevê-lo de maneira mais inteligente e que facilitasse na adição de futuras funcionalidades?






