Autonomia e Programadores

Um dos valores que eu sinto que é muito importante para qualquer programador - mas para outras áreas similares - é o de construir e fazer uso de sua própria autonomia. Possuir autonomia é uma ferramenta valiosa, especialmente considerando que enquanto programadores, um dos nossos trabalhos é essencialmente um trabalho de detetive. Não é raro nos depararmos com problemas que necessitam uma trabalho de investigação, nos levando a revisitar projetos legados, tickets de problemas, ler blogs, documentações, etc. Esse trabalho é muito mais simples e até de certa forma, automático quando temos acesso a duas coisas importantes: (1) documentação de um determinado projeto, suas decisões e soluções propostas, ou seja quando é um projeto construído de forma pública e você pode falar com um ser-humano e perguntar o porque de tal comportamento, ler e entender o porque das coisas serem assim (2) código-fonte do projeto e seu entorno.

Essa é uma das maiores vantagens que advém das regras fundamentais do software-livre, proposto pelo Richard Stallman: (1) direito a usar um programa livremente (2) direito a acessar o código fonte de um programa e estuda-lo (3) direito a distribuir uma cópia do programa (4) direito a distribuir uma versão modificada do projeto. O acesso ao código fonte (direito 2) nos permite com facilidade compreender o que acontece dentro daquele programa, porque ele se comporta da forma que se comporta e entender se aquele comportamento é erratico ou pré-definido.

Percebi que já virou um hábito meu de quando deparado com alguma situação ou comportamento inesperado de alguma biblioteca ou projeto no meu dia-a-dia de parar, clonar o projeto em ~/sources e abrir o código-fonte e buscar a origem daquele comportamento. Aliado a ferramentas como o git, essa busca se torna ainda mais simples e eficiente, considerando que eu posso digitar git grep e buscar por uma palavra chave, usar git blame ou git log naquele arquivo e catar o commit que introduziu aquele item. A partir daí compreender o que e quem fez aquela mudança. Nessa levada muitas vezes acaba que eu nem preciso buscar o site do projeto, ou ler a documentação ou outro tipo de informação. Toda informação que eu preciso está ali, na minha frente. O processo de construção da autonomia, ao meu ver, entra nesse quesito, de não sentir que eu dependo de ler um StackOverflow, ou as issues do projeto, ou ir na lista de email como um primeiro recurso quando me deparo com alguma coisa. Com um pouco de conhecimento e desejo de coçar aquela coceira 1 esse processo começa a se construir e se tornar uma das ferramentas mais valiosas, te obrigando a sair da zona de conforto e a estudar o interior das ferramentas que você utiliza diariamente.


  1. scratch one’s own itch - Wiktionary (em inglês) ↩︎


Ficou com alguma dúvida ou viu alguma coisa que não curtiu em relação a esse post? Vamos discutir sobre, manda um email lá na minha caixa de entrada pública ~porcellis/public-inbox@lists.sr.ht