As Dez Regras do Programador Zen
10/08/2012
Esta é a tradução de The 10 rules of a Zen programmer
Em uma manhã chuvosa, sentado a minha mesa, me peguei refletindo sobre eficiência no trabalho. Percebi que antes de eu me tornar freelancer houveram dias cheios de muito trabalho, mas só olhando pra trás para ver que poderia ter sido pior.
Eu comecei a prática Zen lá pelo ano de 2006. Um bom tempo atrás, algo que veio a minha mente foi: os velhos mestres Zen já sabiam a centenas de anos atrás, como os programadores de hoje deveriam trabalhar. Mesmo eu não gostando de posts do tipo "Seja um programador melhor", eu quero destacar alguns dos meus pensamentos daquela manhã.
Este post servirá como recordação destes pensamentos. Se você tiver algo a compartilhar sobre o assunto, sinta-se livre para comentar.
1. Foco
Se você decidiu trabalhar em uma tarefa, execute-a da melhor forma que puder. Não comece várias coisas ao mesmo tempo. Faça apenas uma coisa de cada vez. Você não será mais rápido, apenas irá trabalhar em multitarefa. Se você trabalhar em multitarefa começará a ficar exausto, produzirá mais erros e perderá tempo ao pular de uma tarefa para outra. Essa dica não é somente para a área de programação, ela vale para tudo o que você fizer.
Kodo Sawaki diz: se você precisa dormir, durma. Não planeje seu software enquanto tenta dormir. Apenas durma. Se você programa, programe. Não fique sonhando – programe. Se você está muito cansado e não consegue programar, durma. Até mesmo famosos "multi-tarefeiros" como Stephan Uhrenbacher tem decicido trabalhar em "monotarefa". Eu tomei uma decisão similar a de Stephan e resolvi escrever o Time&Bill, uma ferramenta para controle do tempo. O objetivo era controlar meu tempo tão facilmente, de modo que até mesmo as pequenas tarefas, como as ligações durante o dia fossem registradas. Eu podia criar cronômetros no começo do dia e então controlar o meu tempo com apenas um clique. O resultado obtido foi um desastre: às vezes eu trabalhava alguns minutos em uma tarefa, e então ia para a próxima. Agora estou melhor. Similar à técnica Pomodoro, eu estipulo poucos intervalos de tempo e me concentro neles. Sem bate-papo, sem dormir, sem conferir o novo jogo do momento na Appstore.
2. Mantenha sua mente limpa
Antes de começar a programar, você precisa limpar sua memória. Jogue tudo pra fora da sua mente quando for começar. Se você tem algum problema, não se deixe influenciar. Na maioria das vezes o problema irá embora. Se o problema for tão complicado que você não consiga deixá-lo de lado, não trabalhe. Tente arrumar as coisas. Mas, quando você começar o trabalho, faça com que o mundo exterior fique do lado de fora.
Tem algo excitante na lista de discussão? Deixe lá. Você poderá ler estes emails excitantes – mais tarde. Desligue-se de tudo o que alimenta a sua cabeça com bobagem: feche o twitter, facebook, seus e-mails. Você deve até mesmo colocar seu celular no mudo e guardá-lo em seu bolso. Você pode dizer que isso é parecido com o primeiro item, foco. Mas aqui vai mais uma restrição: não use essas ferramentas antes do trabalho ou durante o almoço. Elas conectam você ao mundo exterior, e provavelmente podem trazer novos problemas ou coisas que necessitem de sua atenção.
Pense assim: na maioria das vezes, quando você acorda pela manhã, sua mente está bem limpa. Se não estiver, praticar um pouco de esporte pode ajudar (Eu corro longas distâncias). Se você sentir-se limpo e renovado, vá para o trabalho e faça o melhor que puder. Quando você se desvia do seu trabalho acaba permitindo que a desordem tome conta da sua mente. Você verá que isto não é muito legal quando ainda se tem um dia inteiro de trabalho pela frente. Twitter & Cia consomem muito de sua energia. Não pense: "É só um minutinho". Porque não é.
Você já sabe disso.
3. Mente de principiante.
Lembre dos dias em que você era um principiante. Ou guarde na cabeça, se você ainda for um. Você nunca aprendeu o suficiente. Pense em que si mesmo como se fosse um pricipiante, todos os dias. Sempre tente ver as tecnologias com a mente de um principiante. Você poderá aceitar as correções em seu software melhor e deixar o caminho padrão mais facilmente, se precisar. Existem alguma boas idéias que vem até mesmo de pessoas que não tem a mesma experiência que a sua.
Já houve algum software que tenha sido escrito duas vezes e da mesma maneira? Mesmo se você copiar um software, de algum modo, ele será diferente.
4. Sem Ego.
Alguns programadores têm um grande problema: seu próprio ego. Mas não existe tempo para alimentar um ego. Não há tempo para ser um astro de rock.
Quem é que decide sobre a sua qualidade como programador? Você? Não. Os outros? Provavelmente. Mas pode-se realmente comparar uma maçã com uma banana? Não. Você é um indivíduo. Você não pode comparar tudo o que você é com outro ser humano. Pode-se comparar apenas algumas facetas.
Uma faceta não é algo de que possa se orgulhar. Você é bom em Java? Legal. O outro cara não é tão bom quanto você, mas é melhor na sinuca. Java é mais importante que sinuca? Isso depende da situação. Provavelmente você ganhará mais dinheiro com Java, mas o outro cara talvez se divirta mais com os amigos da sinuca.
Você pode realmente se orgulhar por ser um geek? Programadores com ego não aprendem. Aprenda com os experiêntes e com os novatos ao mesmo tempo.
Kodo Sawaki uma vez disse: você não é importante.
Pense sobre isso.
5. Não existe carreira.
Se você quer conseguir as coisas e não se importa com o rumo que a sua vida está tomando, você já perdeu o jogo. Apenas seja o melhor que você pode, sem olhar para onde você pode chegar ao longo prazo.
Trabalhar por 20 anos para se tornar um sócio? Por que você não trabalha o máximo que puder apenas pela diversão? Trabalho árduo pode ser divertido. Um ditado Zen: Um dia sem trabalho é um dia sem comida.
Não são necessários 20 anos para começar a ser feliz. Você pode ser feliz agora, mesmo quando você não é um sócio de alguma empresa ou não dirige um Porsche. As coisas mudam facilmente. Você pode ficar doente. Você pode ser despedido. Você pode entrar em burnout (Se você seguir todos esses itens, acredito que a probalidade disto acontecer seja baixa).
Enquanto essas coisas ruins não acontecem, apenas trabalhe o melhor que puder e se divirta fazendo isso. Não há razão para ficar se comparando aos seus colegas. Não há razão para pensar sobre aquele novo cargo importante que você não conseguiu pegar.
No final, você conseguirá algo. Você terá boas lembranças, talvez um bom cargo – e 20 excelentes anos. Todo dia é um bom dia.
Se um dia você perceber que o local aonde está trabalhando não é divertido, você deve sair imediatamente. NUNCA fique numa empresa que tira a alegria da sua vida. Claro, isto é possível nos países ricos, onde as pessoas tem a opção de desistir. Se você vive em um lugar bom assim, faça isso. Vá embora sem arrependimentos. Você não tem tempo a perder, você provavelmente estará morto amanhã.
Quando você não tem uma carreira, desistir é fácil.
6. Cale a boca.
Se você não tem nada a falar, não desperdice o tempo dos seus colegas. Isto não te fará parecer tosco. No trabalho, você precisa tentar não deixar os outros a beira de um ataque de nervos. Imagine se todo mundo tentasse isso – que ótimo lugar para trabalhar não seria? Nem sempre é possível. Faça um esforço, você vai gostar.
Se você não desenvolve um ego, é muito mais fácil calar a boca e focar nas coisas que devem mesmo ser ditas. Não misture seu ego com a sua "experiência", e lembre-se sempre: você é um principiante. Se alguém tem uma boa idéia, apoie a idéia.
7. Atenção. Cuidado. Consciência.
Sim, você está trabalhando. Mas ao mesmo tempo você também está vivendo e está respirando. Mesmo quando você passa por dias difíceis no trabalho, você precisa ouvir os sinais do seu corpo. Você precisa aprender sobre as coisas que são boas para você. Isso inclui tudo, inclusive coisas básicas como comida. Você precisa cuidar de si e de tudo a sua volta – por que no final de contas, a água que você bebe é a água que corre no rio. Porque você vive somente para si próprio. Você vive sozinho e você morrerá sozinho. O mundo continua, mesmo sem você.
Evite trabalhar em situações que você não gosta. Evite trabalhar de graça se isso significar que não será legal e que te manterá longe da sua cama. Largue mão do que não te faz feliz. Trabalhar de graça parece utopia? Considere as pessoas que fazem Open Source em suas horas livres. Se você já se inscreveu em listas de discussões de projetos Open Source provavelmente sabe como elas podem ser agitadas (às vezes). Se você não se diverte com isso – pare de fazer isso. Eu conheço um monte de gente que trabalha com Open Source mas que não gosta. Voltando ao Time&Bill, eu registrei o tempo que eu gastava com os projetos Open Source e me surpreendi com a quantidade de tempo que perdi nisso – Especialmente em projetos que nem gostava tanto.
Com isto em mente, as pessoas pensam que só serão felizes quando puderem gastar todas as suas horas de folga com um xbox e umas cervejas. Ao passo em que isso possa ser uma boa idéia de vez em quando, não é obrigatório que todos os momentos da sua vida sejam "divertidos". Se você puder evitar situações que não gosta, evite-as (como disse acima). Contudo, às vezes temos que fazer coisas muito medíocres. Como por exemplo copiar e colar manualmente dados do Excel, do chefe, para dentro do phpmyadmin. Isso pode te tomar dias, e é realmente chato. Isso não é divertido, mas às vezes você precisa fazer essas coisas. Você não pode sair do seu trabalho sempre que pegar uma tarefa chata. Monges Zen também não pegam leve em seus trabalhos. Eles levantam às 4 da manhã (às vezes mais cedo, às vezes mais tarde, dependendo do mosteiro) e começam a meditar e trabalhar (eles consideram a prática da meditação também como trabalho). Eles tem tarefas que envolvem limpeza dos banheiros. Ou jardinagem. Ou assim como Tenzo, eles cozinham. Eles fazem tudo isto da melhor forma que podem. O que quer que façam, eles o fazem sem sofrimento e ficam (ou deveriam ficar) felizes, porque cada segundo, mesmo o segundo em que estão limpando os banheiros, é um segundo de suas vidas.
Dito isto: pare de chorar por que você precisa copiar e colar um excel. Apenas faça. Não desperdice energia com coisas assim, elas passam. Ao invés disso, seja o melhor copiador/colador de excel que existe.
Se você sofrer um ataque do coração, as pessoas provavelmente dirão: "ah claro, ele realmente trabalhava muito, ele inclusive fazia hora-extra de graça pra mim". Ninguém pode te guiar para o outro mundo. Este último passo é dado por nós mesmos, sozinhos. Você não pode mudar nada nesse mundo. Nem mesmo um peido. Então, cabe a você se cuidar, a todo instante. Se você morrer, você morreu. Mas quando você vive, você vive. Não há tempo a perder.
"Cuidado" é uma grande palavra no Zen budismo (e eu acredito que em todas as formas de budismo). Eu não posso expressar tudo o que precisa ser dito. É difícil entender os diferentes significados de "cuidado". Provavelmente uma melhor palavra para você seja "consciência". Você deve estar consciente do que faz, a cada segundo de sua vida. Você deve estar atento a sua vida. De outro modo você a desperdiçará. Mas, é claro, cabe a você fazer isto, se assim quiser.
8. Não existe chefe
Sim, existe uma pessoa que paga o seu salário. Existe uma pessoa que lhe diz o que precisa ser feito. E ela pode te demitir. Mas isso não é razão para abdicar de sua vida pessoal, ou ficar de saco cheio do trabalho. No fim das contas, seu chefe não te controla. Pode-se até mesmo duvidar do controle que você tem sobre si mesmo – mas não vamos tomar este rumo.
Voltando ao seu chefe: ele pode tornar sua vida pior se você permitir que isto aconteça. Há um jeito de fugir disso. Se você precisar fazer alguma coisa que lhe deixa mal ou que vai contra os seus princípios, diga "NÃO". O que pode acontecer? No pior caso ele vai demití-lo. E daí? Se você viver no ocidente e for um programador (e muito provavelmente é, por estar lendo isso) você arranjará outro trabalho.
Não estou dizendo para responder "NÃO" para tarefas como copiar um CSV para HTML. Eu estou falando de 80 horas semanais de trabalho, nas quais você sente seu corpo adoecer. Ou quando você sente que seus filhos precisam de mais atenção. Ou se você é forçado a despedir pessoas apenas porque seu chefe não gosta delas. Ou se você é um consultor e pegou um trabalho para desenvolver software para usinas nucleares ou equipamentos militares (alguns dirão que é perfeitamente aceitável trabalhar com estas coisas – isto vai contra meus princípios e serve como um exemplo). Você pode dizer "NÃO".
9. Faça outras coisas
Um programador é mais que um programador. Você deve fazer algo que não tenha nada a ver com computação. No seu tempo livre, vá velejar, pescar, mergulhar. Faça meditação, artes marciais ou pratique Shakuhachi. O que quer que você faça, faça com toda energia que você tem (restante). Assim como faz durante o trabalho. Faça com seriedade. Um hobby não é apenas um hobby, é a expressão de quem você é. Não deixe ninguém te enganar quando diz que um hobby não é algo importante. Nos dias de hoje, pode-se dedicar bastante esforço tendo um hobby. Eu gravei vários CDs e escrevi livros de fantasia (o último não foi publicado, preciso praticar mais). Essas coisas me fizeram ser a pessoa que sou agora, e acabaram por me levar ao Zen e a este post. Atualmente eu pratico Shakuhachi Zen. É um aspecto muito importante da minha vida diária.
10. Não há nada de especial.
Uma flor é bela. Mas é apenas uma bela flor – nada mais. Não há nada de especial nisso. Você é ser humano que sabe programar. Talvez você seja bom. Não há nada de especial em você. Você é do mesmo tipo que eu ou todos os outros habitantes do planeta. Você precisa ir ao banheiro e você precisa comer. E precisa dormir, é claro. E (espera-se que) depois de um longo tempo, você irá morrer e todas as coisas que criou serão perdidas. Até mesmo as piramides, depois de séculos, se perderam. Você sabe os nomes das pessoas que construiram as piramides? E se você souber, isto é um fato importante? Não é. As piramides estão lá no lugar delas, ou não. Não há nada de especial.
O mesmo acontece com seu software. O banco está ganhando dinheiro com seu software. Depois que você sair, ninguém vai lembrar de você. E não há nada de errado. É o fluxo das coisas. Não é algo com que você deva se preocupar. Se ainda estiver vivo depois das primeiras 9 regras, você verá que o seu último projeto era bom e divertido. Agora simplesmente é hora de seguir em frente e se concentrar em outras coisas.
Se sua empresa fechar devido problemas financeiros, sem problemas. A vida continua. Não há necessidade real de um xbox, um carro ou qualquer outra coisa. A maioria das pessoas neste planeta vive em extrema pobreza. Elas não ligam para um xbox. Isto, por que elas ficariam contentes de ter algo para comer ou até mesmo água para beber.
Então... exatamente por que você é especial? Porque você tem a sorte de ter nascido em um território ocidental? Porque você sabe programar? Não, não há nada de especial nisso. Você pode abandonar seu ego e viver livremente. Desfrute as cores e os cheiro das flores à sua volta. Não fique chateado demais quando o inverno chegar e não fique contente demais quando o verão voltar. É apenas um ciclo. Tenha isso em mente quando alguém rejeitar seu código. Porque a Empresa não é tão importante a ponto de você ter que se estressar com o trabalho.
Considerações
Eu não sou um monge Zen. Apenas estou praticando e aprendendo. Por favor, se você achar que existe algo que precisa entender mais a fundo, pergunte a algum monge Zen da sua região. Claro, eu posso tentar responder algumas coisas neste blog, mas veja bem, eu sou apenas um principiante. De todo modo, fico feliz pelos comentários, e se você gostou deste post, faça um tweet com a url desta pagina. Obrigado por ler!