Práticas que aumentam a qualidade do meu dia a dia como programador

Gustavo Lopes
gb.tech
Published in
5 min readNov 24, 2023
Espaço de trabalho contendo plantas e uma placa decorativa escrito "No bad days".
Photo by Ryland Dean on Unsplash

Trabalho na área da programação há alguns anos e até hoje me impressiono como as coisas acontecem rápido, como o cenário muda de um dia para o outro, a tecnologia cresce absurdamente a cada dia. Existe tecnologia em todos os lugares, no celular em seu bolso, no carro que está dirigindo, em sua TV e atualmente até mesmo na sua geladeira. E a questão é, onde tem tecnologia, tem alguém programando.

Nós programadores, trabalhamos para resolver problemas, nos quais chegam até nós via texto, seja uma história de usuário escrita pelo time de produtos da sua empresa ou quem sabe o e-mail de um cliente. A partir disso, transformamos esse texto em código para resolver o problema na ponta final (acho isso fantástico até hoje).

Falando assim, pode parecer simples. Mas na realidade, para ter um bom desempenho e entregas de qualidade é necessário muito foco, estudos, ler e escrever muito código, documentações, lidar com prazos, prioridades, gerenciamento de tempo e por aí vai. Ainda assim, no final do dia, somos todos humanos, nós temos dias bons e dias ruins. E só quem já precisou atuar em uma tarefa complexa em um dia ruim vai saber do que estou falando (risos, mas de nervoso). Esses dias são complexos, o foco não funciona, tomamos decisões erradas, os testes começam a falhar “do nada”, o prazo aperta, a pressão aumenta, e tudo vira desespero.

Alguém se identifica com esta situação? Caso sim, acredito que este artigo pode te ajudar de alguma forma, a ideia aqui é trazer dicas para aliviar os dias ruins.

Então, sem mais delongas, vamos para as dicas 🙌

Adicione TDD em sua rotina de desenvolvimento 🧪

Disclaimer: não sou especialista em TDD (Test Driven Development), apenas um aventureiro, e o ponto mais legal que aprendi até agora é que: não precisamos ser especialistas para colher bons frutos dessa prática.

Antes de mais nada, uma breve descrição sobre TDD: essa prática consiste, basicamente, em escrever os testes antes mesmo de implementar uma funcionalidade. Essa é uma descrição extremamente resumida, já que neste artigo quero apenas trazer um contexto para mostrar como isso me ajuda. No entanto, aconselho fortemente buscarem por mais referências caso queiram aprofundar no tema (gosto muito dos artigos de Martin Fowler, portanto, este pode ser um bom caminho para começar).

O primeiro ponto que quero destacar é que escrever os testes antes de implementar uma funcionalidade te força a pensar em diversos detalhes, como as regras de negócio, cenários de sucesso e erro, dependências, bibliotecas, estrutura do código e do projeto, etc. Dessa forma, podemos prever bloqueios e problemas que encontraríamos durante a implementação, e até mesmo nos ajuda a programar mais direcionado para o objetivo principal, afinal, agora que já escrevemos todos os cenários que precisamos atender, basta programarmos direcionado para eles.

O TDD tem um ciclo (red, green, refactor), no qual escrevemos o teste antes de mais nada, ou seja, primeiramente o teste falhará (red). Feito isso, com o primeiro teste escrito, podemos iniciar a implementação. Nesse momento, cada letra digitada tem um objetivo muito claro: fazer o teste passar (green). Isso torna tudo muito mais dinâmico e divertido, principalmente na última etapa do ciclo (refactor), quando nós podemos brincar com o código, usar novos recursos, testar formas diferentes de escrever alguma condição, novas funcionalidades de um framework, reestruturar o código, deixá-lo mais limpo, e tudo isso se torna muito fácil de validar, pois o teste que estava passando, deve continuar passando.

Imagem mostrando a ordem do ciclo de TDD durante desenvolvimento.
Ciclo do TDD

Trabalhe com pequenos commits ⚛️

Essa prática não está 100% relacionada ao TDD mas é extremamente valiosa para mim, e acredite, com TDD isso fica um pouco mais fácil. Para isso, basta realizar um commit sempre que os testes estiverem todos passando. Eu costumo seguir dessa forma: escrevo um teste, ele falha, implemento o código que atenderá o cenário escrito, o teste passa, faço um commit. A partir de agora, posso me divertir com as refatorações, e se tudo der errado, se eu me perder de alguma forma, sei que em meu último commit tudo estava funcionando. Os pequenos commits aliviam demais as dores de cabeça nos dias ruins, e além disso, quando abrir uma Pull Request para seu time, sua árvore de commits estará bem elegante! 😉

Utilize a técnica do Pomodoro 🍅

Em alguns momentos, mesmo seguindo as práticas listadas acima, ou qualquer outra que tenha incorporado em seu dia a dia, as pedras no caminho podem continuar a aparecer. E passaremos horas na frente do computador, estressados, correndo atrás do tempo perdido, para descobrir aquele ponto e vírgula que estava faltando em algum lugar (risos) ou encontrar o melhor caminho para resolver uma situação. Já passei por isso diversas vezes, e o que me ajuda muito nesses momentos é simplesmente: fazer uma pausa.

A técnica do pomodoro ajudará demais nesse sentido. Para quem não conhece, essa técnica consiste em separar períodos de foco, que são seguidos por pequenas pausas. Por exemplo, você pode cronometrar 25 minutos nos quais irá dispor 100% da sua atenção em uma única tarefa, quando chegar aos 25 minutos, pare tudo o que estiver fazendo e faça uma pausa de 5 minutos, levanta, vai dar uma volta, pegar um café, tomar um ar. E depois o ciclo se repete por 4 vezes, e a próxima pausa pode ser um pouco maior, cerca de 15 minutos.

Inicialmente, quando li sobre essa técnica, não acreditei muito, até começar a aplicar no meu dia a dia e ver o quão mágico esses 5 minutos de pausa podem ser.

Por fim, essas práticas podem te ajudar, mas gostaria de reforçar que uma outra alternativa é: pedir ajuda. Não estamos sozinhos nessa, provavelmente alguém já passou pelo mesmo problema que está encarando. Temos uma comunidade recheada de pessoas boas, dispostas a ajudar, existem as redes sociais, os companheiros de time, amigos. E reforçando, minha intenção com este artigo é aliviar os dias ruins, afinal, programar é muito massa e não precisa se tornar algo pesado e chato.

Agradeço a todos que chegaram até aqui e peço que compartilhem comigo outras dicas e experiências que podem nos ajudar no dia a dia. Fique à vontade para me procurar nas redes.

Até a próxima! 👋

--

--