Autonomia e Programadores
Traduções disponíveis:
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.