Pular para o conteúdo principal

TDD como ferramenta de aprendizado

Na penúltima sessão do DojoBrasilia surgiu a seguinte questão:

Será que o TDD não atrapalha no aprendizado de novas tecnologias?
 A grande questão girava em torno de que o respeito estrito as regras ao TDD tornariam o aprendizado lento e enviesado. Isso por que você estaria focado em passar o teste o que estaria limitando sua velocidade no aprendizado na tecnologia, bem como a visão do objetivo final.

Caso do dojoBrasília


No caso da sessão que levantou a questão acho que o principal sentimento de "lentidão" se deve a grande carga de tecnologias novas que estavam envolvidas. Escolhemos iniciar um problema conhecido em não uma, mas várias tecnologias (Backbone.js, Undescore, CoffeeScript, Jasmine, etc). Ao final da sessão a sensação de pouco avanço era justificada pelo tempo gasto compreendendo as tecnologias em questão.

A sessão seguinte não obteve o avanço que muitos esperavam. Mas nela podemos ver como o uso de TDD compensou. Tínhamos apenas 4 casos de teste e não estávamos conseguindo utilizar alguns recursos do Backbone.js que nos pareciam bastante interessantes. Iniciamos então uma série de refactorings testando várias teorias em cima das tecnologias até que no final nosso código estava utilizando os recursos dos frameworks e estava bem mais agradável. Rodamos então nossos testes e todos ficaram felizes com o resultado. Evoluímos e ainda tínhamos a segurança de que nosso código estava funcionando.

Conclusões

O que eu tiro disto é que, apesar de parecer mais lento, o uso de TDD lhe ajuda a ter uma aprendizado mais firme da tecnologia estudada. No exemplo que vimos é claro que o uso de TDD facilitou testarmos hipóteses sobre os frameworks sem perder o que já tínhamos e com a garantia de que estas hipóteses realmente funcionavam. Outro ponto que achei bastante interessante foi que usando TDD fomos obrigados a conhecer mais da interface de cada uma das ferramentas, para que pudêssemos testá-las, isso aprofundou nosso conhecimento.

Um outro ponto interessante é que algumas pessoas podem ter um pouco de pressa em ver o resultado do que estão fazendo. Neste caso acho interessante a abordagem que o James Shore seguiu neste caso. Ele queria testar um novo gerenciador de layout no seu projeto, então ele construiu um outro projeto onde ele testou o novo framework até ter algo que lhe agradasse. Após isso ele foi transferindo o que ele tinha deste "protótipo" (hipóteses) pro seu código através de testes. É muito interessante observar que muitas das hipóteses dele não estavam corretas (assim como as nossas), porém o exercício lhe ajudou a corrigi-las.


Por fim, acredito que o TDD pode sim ser uma boa ferramenta de aprendizado de tecnologias. E convido vocês a experimentar. Eu a usei no meu kata de Scala e, apesar de ser um exemplo bem simples, foi muito proveitoso.

Comentários

Postagens mais visitadas deste blog

Suporte para Celular

É engraçado de se pensar que, em 3,5 anos de blog, o post mais acessado do site é o sobre o Suporte para Notebook. Sozinho ele tem quase 3 vezes mais acesso que o segundo colocado. Até hoje eu não sei dizer o por que deste efeito. Apesar disto me orgulho bastante daquele post, afinal além de ter superado minha falta de coordenação motora, ainda cheguei num resultado satisfatório. Já se passaram 2 anos e ambos os suportes se mostram em perfeito estado até hoje.

Pois bem, mas por que ressuscitar este assunto? Na Intacto temos um amigo oculto um pouco diferente, onde cada um tem que fazer seu presente, usando o máximo a sua criatividade. Como eu tirei o Fernando Aguiar, um cara fã de software livre (isso temos em comum). Por isso decidi tentar uma evolução do projeto inicial do Suporte de Notebook (que é aberto e disponível a todos) que elaborei junto ao Marcelo Bassani. Nesta segunda versão usei o Papel Pluma, que apesar de seu valor bem acima que o Paraná (usado anteriormente) resultou…

Suporte para NoteBook

Hoje em dia usar laptop é um hábito de muitos. Eu mesmo uso laptop diariamente desde 2005 e não tenho pretensões de usar um PC como ferramenta principal de trabalho tão cedo. A mobilidade a praticidade e principalmente a privacidade que o laptop te traz, foram fatores determinantes nesta minha escolha.
Porém como já me foi alertado pela nan, o laptop tem sérios problemas ergonômicos. Temos que escolher entre ter a melhor postura para digitar ou a melhor postura para visualizar a tela, nunca ambos ao mesmo tempo. Fora isto, o teclado da maioria dos notebooks não é adequado para longas horas de digitação. Sobre o touchpad, nem se fala. Por isso já fazem mais de 6 meses que eu utilizo um suporte de notebook com um mouse e teclado usb quando estou na Intacto. Isso melhorou bastante a minha postura e tenho sentido bons resultados com a experiência.
Hoje utilizo o Notepal S, mas ele tem a desvantagem de "esconder" os controle frontais do laptop, por isso, quem estiver interessado …

De Híbrido a 100% remoto - o caso da bxblue

A bx nasceu como uma empresa remota. Durante os primeiros 18 meses, os três fundadores --  eu, Guga e Roberto -- trabalhamos de nossas casas. Passado esse período inicial de maturação da idéia, nosso time começou a crescer, e acabamos optando por seguir um modelo híbrido. Nele tecnologia e marketing permaneceram remotos porém nosso time de atendimento e vendas ficou atrelado ao nosso escritório. Mas, como em muitas outras empresa, isso mudou nas últimas três semanas. Depois de tantos anos, nos tornamos uma empresa 100% remota. O O grande incentivo veio da situação que vivemos no mundo atualmente. Tendo o isolamento social como uma medida necessária a todos que tem o privilégio de poder fazê-lo, era nossa responsabilidade fazer tal mudança. Pois minha intenção aqui é contar um pouco tem sido essas 3 semanas que marcam o começo de um período que a ainda tem muito pela frente.
Porque Híbrido?Antes, deixe-me explicar por que escolhemos o caminho de ser uma empresa híbrida, tendo nascido re…