Resenha do livro Clean Coder

Robert C. Martin, mais conhecido como “Uncle Bob”, é uma grande referência quando se trata de desenvolvimento e agilidade. A sua obra mais conhecida, Clean Code, é um clássico absoluto da área de programação e deve ser lido por qualquer desenvolvedor que deseja melhorar a sua técnica.

Mas hoje, gostaria de chamar a atenção para um livro menos conhecido, mas extremamente importante: The Clean Coder – A Code of Conduct for Professional Programmers.

Considero esse livro um sucessor natural do Clean Code e inclusive, existe uma versão dois-em-um desses livros, que foi a que eu li, seguindo a sequência dos dois, e achei que as duas obras se complementam de forma perfeita.

Se me pedissem para resumir o livro em uma palavra, seria: profissionalismo.

O livro te desafia a repensar a sua relação de responsabilidade com o trabalho, colocando questões como: se você comete um erro que custa 10 mil de prejuízo para a empresa para a qual você trabalha, quem deveria arcar com as consequências? Na opinião do Uncle Bob, é o desenvolvedor quem deve se responsabilizar e fazer um cheque de 10 mil para a companhia. Claro que essa é uma situação um tanto exagerada, mas te faz repensar a postura ao publicar código em produção. Você se torna muito mais cuidadoso quando assume a responsabilidade sobre o seu código nesse nível.

Outro ponto interessante do livro é o paralelo que ele faz entre um programador profissional e um músico. Músicos profissionais praticam muito para refinar a sua técnica e segundo o Uncle Bob, nós desenvolvedores deveríamos fazer o mesmo. Ele até propõe que trabalhemos 20 horas por semana para a nossa carreira, seja praticando código, seja fazendo katas, dojos, assistindo a palestras, indo a eventos, lendo livros técnicos e blogs, escrevendo, etc. Na visão dele, a responsabilidade sobre a carreira é 100% do profissional e a empresa contratante não possui a menor obrigação de investir tempo e dinheiro na nossa carreira. Afinal, o nosso trabalho remunerado é performance, ou seguindo a analogia do músico, é o nosso show. Temos que performar bem no nosso trabalho, temos a obrigação de aplicar o nosso melhor esforço e a nossa melhor técnica para auxiliar o negócio dos nossos contratantes da melhor maneira possível. Não é profissional adotar tecnologias, linguagens e frameworks no nosso trabalho só por que queremos aprender aquilo. No nosso trabalho temos que aplicar somente coisas que conhecemos bem, que testamos e que avaliamos a fundo. Você não vai ver nenhuma banda compondo e ensaiando uma música ao vivo. Em um show, a banda só vai tocar aquilo que ela ensaiou exaustivamente. Nós desenvolvedores deveríamos fazer o mesmo.

O livro é escrito de desenvolvedor para desenvolvedor, e o autor consegue a nossa empatia ao colocar cenários e situações extremamente aderentes à realidade de qualquer um que trabalha com software. O Uncle Bob mostra com exemplos da própria carreira erros que ele cometeu, situações em que ele foi pouco profissional, e esse tipo de experiência prática é inestimável para quem vive de escrever código. O livro aborda uma gama muito grande de fatores, inclusive pessoais, soft e hard skills e também técnicas e ferramentas que auxiliam na produtividade de um desenvolvedor.

Ele é categórico ao afirmar que todo profissional que se preze aplica TDD. Não aplicar TDD é não-profissional. Pra quem trabalha com desenvolvimento no Brasil essa afirmação soa desanimadora, já que boa parte das empresas ainda não despertaram para o valor dessa prática, mas por outro lado, serve para reforçar para cada desenvolvedor que lê o livro que precisamos lutar diariamente para evangelizar as empresas, colegas e clientes da importância dos testes unitários, de componente, integração e sistema. Afinal, é não profissional colocar código não testado em produção.

O meu curso de graduação possuía disciplinas baseadas em livros canônicos da computação, tais como Sistemas Operacionais do Tanenbaum e o Projeto de Algoritmos do Ziviani. Acredito que deveria haver uma disciplina em todo curso relacionado a informática baseada no The Clean Coder. De preferência no primeiro período.

É muito importante possuir modelos e exemplos a serem seguidos na carreira e esse livro serve como uma mentoria. Inclusive, o Uncle Bob destaca que a mentoria é algo essencial para ajudar no desenvolvimento do programador. Depois de lê-lo, muitas vezes me peguei pensando no trabalho: “o que o Uncle Bob faria nessa situação? O que ele recomendaria?”. Acredito que se os jovens estudantes da área lessem esse livro o nível geral dos nossos profissionais seria elevado.

Se você quer escrever código limpo, seja um profissional.

Por que blogar?

A internet é uma fonte de informação valiosíssima para os desenvolvedores, todos sabem disso. Fóruns de discussão, Stack Overflow, blogs, documentações técnicas, etc, já me ajudaram de inúmeras formas ao longo da minha carreira. Com o passar do tempo, à medida que fui adquirindo experiência, essa posição de apenas consumir conteúdo técnico gerado por outras pessoas começou a me incomodar um pouco. Eu queria entrar no clube dos geradores de conteúdo, queria utilizar a minha experiência no mercado para ajudar outros desenvolvedores, assim como fui e ainda sou ajudado por pessoas que, generosamente, utilizaram o seu tempo para disponibilizar informações valiosas de forma gratuita para quem quiser consultar.

Esse projeto foi consistentemente sendo posto em segundo plano, por diversos motivos, mas o principal deles era a clássica falta de tempo. Outro impeditivo era uma certa insegurança em relação a escrever, eu sempre achava que não estava pronto, que tinha que evoluir mais na área… Resumindo: eu estava sofrendo da síndrome do impostor.

No final de 2014, resolvi que tinha que sair da inércia e estabeleci um contrato interno: fazer um blog focado em tecnologia em 2015 e postar com regularidade.

Estou colocando todo esse contexto, pois acredito que vários desenvolvedores já cogitaram contribuir com a comunidade de alguma maneira, mas acabaram esbarrando nas mesmas dificuldades que eu. Portanto, a minha dica para todos os que estão nessa situação é: comece. O mais rápido possível. Não importa se você acha que não sabe escrever bem, não importa se você acha que ainda não tem o conhecimento técnico necessário, não importa se você pensa que não tem tempo. O ato de começar a fazer vai te obrigar a encarar essas barreiras como problemas a serem resolvidos e com esse mindset, você vai acabar percebendo que quando existe vontade (ou um deadline) conseguimos encontrar soluções para problemas que antes pareciam insolúveis.

Coincidência ou não, tomei conhecimento do blog http://simpleprogrammer.com, escrito pelo John Sonmez, mais ou menos nessa época e comecei a seguir seus posts desde então. E foi aí que descobri um curso gratuito e por e-mail que ele estava oferecendo, sobre como promover a sua carreira como desenvolvedor através da criação de um blog. O curso é bastante prático e direto ao assunto, de desenvolvedor para desenvolvedor. Ele aborda os principais pontos a serem considerados ao decidir fazer um blog sobre desenvolvimento, desde a escolha de um tema, dicas para manter a consistência de postagens, técnicas para se manter tendo assuntos para posts, como gerar tráfego para o seu blog e até mesmo dicas de WordPress.

Me inscrevi e desde então estou trabalhando no meu mais novo blog de tecnologia. Se você está lendo isso, grande parte da motivação surgiu desse curso. Ele é em inglês, mas acredito sinceramente que todo desenvolvedor deveria investir em ser fluente pelo menos na leitura em inglês. Mais sobre isso em algum post futuro.

É isso. Espero que esse post ajude alguém a dar o pontapé inicial no sentido de criar um blog e contribuir de alguma forma para a comunidade de desenvolvimento. Até breve!