Como a prática do Test Driven Development (TDD) ajuda com a minha ansiedade
Antes de embarcar no foguete RD Station, eu não costumava seguir a filosofia do TDD, e me sentia embalada pela grande obra do Zeca…
“Nunca vi, nem comi. Eu só ouço falar…” 🎶
Então, quando cheguei no meu time e comecei a me ambientar, fui orientada a fazer o desenvolvimento guiada por testes — Test Driven Development, ou para os mais íntimos: TDD.
Durante meu rampeamento dentro do time, tive a oportunidade de fazer pair programming e também fiz leituras sobre o assunto, o que em conjunto me ajudou a entender melhor do que se tratava e principalmente o que isso gera de benefícios (para mim, para o time e para a empresa).
Percebi que um dos maiores ganhos dessa prática de desenvolvimento, foi a contribuição com a minha saúde mental — e é sobre essa experiência que compartilho no artigo a seguir.
Disclaimer: minha expectativa com esse texto não é trazer uma abordagem técnica sobre TDD, porém você pode deixar o pedido nos comentários caso gostaria que eu escrevesse algo dedicado a isso.
A ansiedade
A cabeça de uma pessoa ansiosa muitas vezes pode ficar paralisada, e quando esses pensamentos permanecerem rondando em sua cabeça, costumam deixar sua mente caótica e confusa.
Quem sofre, ou já sofreu, com ansiedade sabe como funciona a cabeça de uma pessoa ansiosa, e eu falo isso com propriedade, fui diagnosticada recentemente com transtorno de ansiedade, mas falar desse assunto fica para uma próxima oportunidade.
De uma maneira geral, a programação costuma ser um exercício complexo, e tanto os custos quanto os prazos podem ser difíceis de serem estimados. Então, se uma demanda fosse mais complexa ou se eu estivesse em um dia ruim, poderia ter problemas com pensamentos ansiosos.
Todos esses questionamentos algumas vezes me paralisavam, e isso fazia com que uma tarefa se tornasse mais complicada de executar. Mesmo que você não sofra com o transtorno de ansiedade, tenho certeza que você já deve ter sofrido com ansiedade, afinal, se sentir ansiosa às vezes é normal. E para ilustrar essa afirmação convido você fazer uma reflexão:
Consegue lembrar de como é difícil colocar seus pensamentos em ordem no momento em que você está ansiosa?
Lembrou? É Difícil, né?
Afinal, como o TDD tem me ajudado?
Realizar a prática do TDD me trouxe alguns benefícios:
O desenvolvimento guiado por testes é um jeito de administrar os nossos medos durante o desenvolvimento. — Kent Beck, Autor de Test Driven Development
Sabe quando você tem uma tarefa que você olha e pensa: “Isso parece muito complexo, não sei por onde começar, e agora?” ?
Sua cabeça pode ser tomada por medos. Aposto que você já se sentiu assim.
O medo é um jeito da natureza nos dizer “ei, tome cuidado”. Ser cuidadosa é ótimo, mas essa cautela pode atrapalhar quando estamos programando. Especialmente quando precisamos construir algo complexo ou estamos com prazos apertados. O medo também pode provocar uma série de efeitos negativos, como:
- Hesitamos;
- Comunicamos menos;
- Afastamos do feedback;
- Sentimos inseguranças;
- Ficamos mau-humorados;
Temos preocupações que não são necessárias naquele momento.
O TDD deve te ajudar:
- Em vez de hesitarmos, começamos a aprender rapidamente;
- Em vez de ficarmos calados, nos comunicamos mais;
- Em vez de evitarmos o feedback, procuramos feedback útil e concreto;
- Em vez de sentir insegurança, buscamos acolhimento no time;
- Já o mau-humor, como diria o Kent, esse você precisará trabalhar sozinho🤭
Quando temos que programar uma solução simples, a tarefa é fácil de imaginar e implementar, certo? Sem grandes problemas. Agora, se precisamos codificar uma solução desafiadora, podemos ficar inseguros, tentamos resolver tudo dentro da nossa cabeça de uma só vez, e é provável que fiquemos cansados antes mesmo de ter feito uma linha de código sequer.
Gosto muito da capa do livro do Greg McKeown chamado Essentialism, eu faço a seguinte associação com a capa:
Do lado esquerdo pode-se dizer que é a cabeça de alguém sofrendo com pensamentos ansiosos, e na direita quando partimos para o essencial, ou seja, preciso fazer aquele primeiro teste passar, para depois me preocupar com o próximo passo.
Eu só preciso fazer esse primeiro teste passar.
Outros benefícios
- Entender melhor o que deve ou não estar implementado, o TDD te dá a oportunidade de aprender todas as lições que o código tem para ensinar;
- Se algo está muito difícil de testar, talvez você precise rever as responsabilidades da sua implementação;
- O teste passou, você não precisa mais se preocupar com ele;
- Se você refatorar, os testes vão te dar tranquilidade para não deixar nada quebrado passar;
- Quando o time adota a prática do TDD, você confia nas suas entregas e confia nas entregas dos seus colegas 🤝(*Spoiler* é assim na RD Station);
- Quando você entregar sua demanda, a chance de causar bug será muito menor;
- Focar em um pequeno passo de cada vez te deixa mais ágil;
Em resumo, o TDD não fará sua ansiedade e nem a minha desaparecer, mas a prática com certeza terá um papel valioso no seu processo mental e de construção de software.
🧘 Lembre-se do Mantra do TDD 🧘
“First do it, then do it right, then do it better” — Addy Osmani
Primeiro faça ➡️ depois faça certo ➡️ depois faça melhor. Então, não esqueça: quando surgir aquela demanda:
“Seguinte, vamos precisar criar um aplicativo igual ao Uber”
Em vez de ficar paralisados, lembraremos que com TDD:
- Damos um passo de cada vez;
- Rascunharemos como queremos que a aplicação funcione;
- Escreveremos aquele nosso primeiro teste falho;
- Faremos a implementação para que o teste passe;
E assim, nos tornamos cada vez mais corajosos.
Com TDD sua paz de espírito agradece, seu time vibra e claro que seu usuário também ficará feliz.
Chegamos no final do texto, mas não ao final da sua jornada com TDD — assim eu espero! 🤘
Leve a palavra do TDD adiante, pratique e colha os benefícios.
Quer trabalhar em uma empresa que preza pela qualidade de Software? Temos vagas! Confira aqui!