É “guiado”, oras!

Provavelmente vou mexer em um vespeiro dos grandes com o texto de hoje. Pelo menos é o que eu vejo acontecer quando alguém resolve desafiar, questionar ou simplesmente comentar qualquer coisa no campo da Agilidade (com letra maiúscula mesmo). Neste pequeno mundo, você nunca sabe quando está mexendo com alguma coisa sagrada para alguma pessoa. Também é o que eu vejo acontecer quando programadores discutem a questão traduzir ou não traduzir. Então parece que são dois vespeiros ao invés de um só. Mas eu gosto de exercitar a iconoclastia sempre que possível e vou continuar com o texto apesar de tudo.

Não sei como surgiu a tradução que parece ser normalmente usada por todo mundo aqui pelas bandas do Brasil para “Test Driven Development”, mas eu simplesmente não consigo evitar um certo incômodo mental quando alguém cita “Desenvolvimento Orientado a Testes”.

Pronto falei. Podem jogar as pedras.

Não é que os símbolos tenham algum papel extremamente relevante quando usados por pessoas com o mesmo domínio sobre o vocabulário. Evidentemente, não há nenhum problema nas palavras em si quando as pessoas sabem do que se está falando. Mas é quem não sabe que me preocupa.

Esta expressão “orientado a” deve ter vindo do mesmo baú do qual foram tirados alguns outros termos da moda como Programação Orientada a Objetos e Arquitetura Orientada a Serviços (que, como todo bom modismo, também costumam ser completamente mal interpretados). Não vou recorrer ao lugar comum de consultar um dicionário, mas este termo pode levar muita gente a pensar em simplesmente atentar para os testes e projetar sistemas testáveis. Esta postura certamente é melhor que não dar atenção nenhuma aos testes e relegar a atividade ao décimo-oitavo plano para ser realizada um pouco antes da implantação no caso de sobrar algum tempo. “Desenvolvimento Orientado por Testes” é um pouco menos ambíguo. Mas prefiro “Desenvolvimento Guiado por Testes” tanto por ser mais fiel ao original quanto por eliminar o já sobrecarregado termo “orientado”.

Desenvolvimento guiado por testes envolve uma certa atenção aos testes, mas também uma porção de outras escolhas técnicas e filosóficas. Envolve obrigatoriamente escrever os testes antes do código. Afinal, você não pode ser guiado por algo que não existe. Quando se abraça esta filosofia, os testes acabam virando uma das principais razões da existência do código, logo abaixo das necessidades do usuário. Certamente estas últimas são muito mais importantes do que os primeiros, mas um conjunto de testes bem projetado será o melhor reflexo das necessidades do usuário.

Mas, como disse, sou um iconoclasta atento e não acho que este tipo de posicionamento mental seja ideal para todos os casos. Particularmente, quando estou investigando algum tipo de tecnologia que imagino que vou precisar e com a qual ainda não tenho muita familiaridade, prefiro desenvolver apenas orientado a testes. Mantenho sempre a mente atenta à testabilidade, mas não necessariamente chego a escrever os testes. Depois que consigo algum domínio sobre a tecnologia, costumo voltar ao desenvolvimento guiado por testes e faço tudo que posso para escrever os testes antes do código de produção.

De qualquer modo, os termos em si não são tão importantes. São apenas símbolos e, se usados no contexto correto, não costumam gerar nenhum tipo de confusão. O importante são as diferenças filosóficas denotadas por eles.

Acho que minha doidice por linguagens de programação está começando a gerar uma doidice por linguagens naturais. Vai saber…

8 Responses to “É “guiado”, oras!”


  1. 1 Nando Vieira 16/maio/2007 às 21\0900

    No meu post pus “orientado” porque foi a maneira que me veio na cabeça…. não que eu use isso no dia-a-dia, mas eu simplesmente não fiz uma busca por “Teste-Driven Development significa”. whatever… use o que achar melhor! :)

  2. 2 osias 17/maio/2007 às 22\1053

    Sempre chamei de “dirigido”, até porque mantém o D…

  3. 3 thiagoarrais 18/maio/2007 às 11\1146

    Osias, ainda não tinha pensado em “dirigido”, mas realmente é interessante por manter a sigla. Em inglês: Test-Driven Development – TDD. Em português: Desenvolvimento Dirigido por Testes – DDT.

    Muito bom. Só que “dirigido” não soa muito natural para mim por enquanto. Pode ser só questão de me acostumar ou então frescura mesmo. Vai saber…

  4. 4 osias 18/maio/2007 às 19\0716

    Sei lá, fora do contexto sofware, vejo raramente a palavra “guiado”, exceto em situações gospel tipo “guia-me ó Senhor, por sobre as águas” ou para-choque “guiado por mim, dirigido por Deus”

  5. 5 dlfollmann 19/maio/2007 às 16\0404

    A questão não se resolve melhor trocando o “a” por “por” (com o perdão da redundância)?

    “orientado A testes” e “orientado POR testes”, pra mim, tem significados absolutamente diferentes.

  6. 6 thiagoarrais 19/maio/2007 às 16\0414

    dlfollmann, concordo com você. Os significados das duas expressões são completamente diferentes. O único problema com “orientado” é sua carga de modismo (muito por culpa da orientação a objeto). Se não fosse isso, seria um termo perfeitamente aceitável.

    Inicialmente, achei que o artigo tivesse deixado isso claro. Mas relendo agora vi que a versão original realmente está um pouco confusa. Atualizei o texto para esclarecer um pouco este ponto.

  7. 7 Walter Cruz 19/maio/2007 às 21\0951

    Uma citação de C.S. Lewis sobre como uma palavra pode perder seu significado:

    Originalmente, a palavra gentleman tinha um sig­nificado evidente: o gentil-homem exibia um brasão e era senhor de terras. Quando dizíamos que alguém era um gentleman, não lhe estávamos fazendo um elogio, mas simplesmente reconhecendo um fato. Se disséssemos de um outro que não era um gentleman, não o estaríamos insultando, mas dando uma informação a seu respeito. Não havia contradição alguma em chamar John de men­tiroso e de gentleman, assim como não há em dizer que James é um tolo e um bacharel. Então, certas pessoas começaram a afirmar – com tanta propriedade, genero­sidade, espiritualidade, sensibilidade; com tudo, enfim, menos com praticidade: “Ah, mas o que faz um gentle­man não são as terras nem o brasão; é o saber compor-tar-se. Será que o verdadeiro gentleman não é aquele que se porta como tal? Logo, será que Edward não é mais gentleman que John?” A intenção dessas pessoas era boa. Ser honrado, cortês e corajoso é, sem dúvida, coisa me­lhor do que ter um brasão familiar. Porém, não é a mes­ma coisa. Pior, é uma coisa sobre cuja definição as pessoas jamais chegarão a um acordo. Chamar um homem de gentleman segundo esse sentido novo e mais refinado não é, na verdade, uma forma de dar informações a seu respeito, mas sim um modo de elogiá-lo: negar-se a cha­má-lo de gentleman é simplesmente uma forma de in­sultá-lo. Quando uma palavra deixa de ter valor descri­tivo e passa a ser um mero elogio, ela não nos esclarece sobre o objeto, só denota o conceito que o falante tem dele. (Uma “boa’ refeição é simplesmente uma refeição que agradou a quem fala.) Um gentleman, agora que o velho sentido prosaico e objetivo da palavra deu lugar ao sentido “espiritualizado” e “refinado”, quase sempre significa apenas uma pessoa do nosso agrado. O resulta­do é que hoje gentleman é uma palavra inútil. Já tínhamos no vocabulário palavras suficientes que expressam apro­vação; não precisávamos de mais uma. Por outro lado, se alguém quiser utilizar a palavra em seu velho sentido (numa obra histórica, por exemplo), não poderá fazê-lo sem dar explicações. Ela já não serve para esse fim.


  1. 1 Simples Idéias. Por Nando Vieira. » Arquivo » Test-Driven Development no Rails: Unit Tests Trackback em 16/maio/2007 às 21\0900
Comments are currently closed.




%d blogueiros gostam disto: