Afiando a serra

Como desenvolvedor de software, como o senhor afiar sua serra?

serrando um tronco

Afiar a serra é uma abreviação para qualquer coisa que o senhor faça que não seja programaçãonão necessariamente, mas (teoricamente) torna o senhor um programador melhor. Ele é derivado do livro de Covey Os 7 hábitos das pessoas altamente eficazes.

Há um senhor que encontrou um lenhador nas montanhas. O senhor parou para observar o lenhador, vendo-o serrar febrilmente uma árvore muito grande. Ele notou que o lenhador estava suando muito, serrando e serrando, mas sem chegar a lugar algum. O espectador notou que a serra que o lenhador estava usando era tão afiada quanto uma faca de manteiga. Então, ele diz ao lenhador: “Desculpe-me, Sr. Lenhador, mas não pude deixar de notar o quanto o senhor está trabalhando duro nessa árvore, mas sem chegar a lugar algum”. O lenhador responde com o suor escorrendo de sua testa: “Sim… Eu sei. Essa árvore parece estar me dando problemas”. O espectador responde e diz: “Mas, Sr. Lenhador, sua serra é tão cega que não poderia cortar nada”. “Eu sei”, diz o lenhador, “mas estou muito ocupado serrando para ter tempo de afiar minha serra”.

É claro que a melhor maneira de melhorar em algo é fazer isso com a maior frequência possível. Mas se o senhor estiver tão concentrado na codificação que não tiver tempo para discussão, introspecção ou estudo, não estará realmente avançando. O senhor precisa encontrar um equilíbrio consciente entre praticar seu ofício e pensar sobre como o pratica.

Scott Hanselman tem algumas ideias sólidas sobre maneiras de incentivar os membros de sua equipe de desenvolvimento a afiarem suas serras. E há também a maneira óbvia, que é o que o senhor está fazendo agora: lendo blogs de programação. Não me refiro a este blog, mas aos blogs de que valem a pena. Se o senhor mantiver a mente aberta, poderá afiar sua serra dessa forma, como observa Reginald Braithwaite:

O que fazemos é o seguinte: lemos uma publicação de blog, lendo uma coisa atrás da outra com a qual concordamos e, se apenas uma coisa não se encaixa em nossa visão de mundo pessoal, exigimos uma correção. Se a tese da publicação se choca com nossos preconceitos, acusamos o autor de ser um idiota. Sinceramente, seríamos péssimos como vendedores. Desistiríamos na primeira vez que alguém discordasse de nós.

O que sugiro que façamos é imitar esses vendedores. Quando lermos uma postagem, um livro ou olharmos para um novo idioma, vamos supor que parte ou até mesmo a maior parte dele não será nova. Vamos supor que detestaremos positivamente algumas delas. Mas vamos também analisar isso em termos de nosso próprio lucro: ganhamos se conseguirmos encontrar apenas uma coisa que nos torne melhores programadores.

Isso é tudo o que precisamos em uma publicação de blog, o senhor sabe. É uma grande vitória se houver uma coisa em um post. É uma grande vitória se lermos cem posts e aprendermos uma coisa nova e valiosa.

Se o senhor estiver procurando bons blogs de programação para afiar sua serra (ou pelo menos despertar sua curiosidade intelectual), conheço dois excelentes sites de agregação de links específicos sobre programação que podem ajudar o senhor a encontrá-los.

O primeiro é Notícias Hacker, que eu recomendo muito.

hacker news frontpage

Notícias Hacker é uma criação do Paul Graham, portanto, reflete parcialmente seus interesses em Y Combinator e coisas de empreendedorismo, como startups. Paul leva a sério a moderação no site, portanto, além da típica votação no estilo Digg, há uma cabala secreta (gosto de pensar nela como O octógonoO senhor pode se beneficiar de um grupo de editores escolhidos a dedo que removem as publicações sinalizadas. Mais importante ainda, a conversa no site sobre os artigos é bastante racional, com muito pouco ruído e trollagem.

O outro site é programação reddit. A conversa lá é mais caótica, com uma sensibilidade de “vale tudo” do oeste selvagem, limitada apenas pelos votos da comunidade para cima e para baixo. Mas é bastante confiável para encontrar uma grande variedade de links que são de interesse especial para programadores.

É claro que o excesso de afiação da serra, ou a afiação aleatória e sem objetivo, pode se tornar outra forma de procrastinação. Mas um desenvolvedor que parece completamente desinteressado nisso é um grande sinal de alerta. Como explica Peter Bregman, a obsessão pode ser uma coisa boa:

As pessoas geralmente são bem-sucedidas não apesar de suas disfunções, mas por causa delas. As obsessões são um dos maiores sinais reveladores de sucesso. Entenda as obsessões de uma pessoa e o senhor entenderá a motivação natural dela. A coisa pela qual ela caminharia até o fim do mundo.

Não há problema em ser um pouco obcecado em afiar sua serra, se isso significa ativamente submeter e discutir ativamente artigos de programação sobre, digamos, Hacker News.

O que o senhor recomenda para a afiação? o senhor viu como programador?