Linguagem importa: um demo não é um review
Usar as palavras e metáforas certas é importante para entender melhor o que e por que estamos fazendo o que fazemos
Eu me lembro de quando fui apresentado pela primeira vez à semiótica durante o Cynefin Virtual Basecamp naqueles tempos de pandemia. Eu fiquei meio perdido, aprendi bastante, mas na época o assunto parecia abstrato e viajado demais, daí acabou não me atraindo tanto. Mas… aquele evento despertou em mim alguma curiosidade sobre o tema que só cresceu desde então.
Acontece que a linguagem é provavelmente um dos tópicos mais impressionantes que encontrei desde que comecei a estudar filosofia, e é um caminho completamente sem volta: uma vez que você começa a pensar sobre o significado das palavras e símbolos, nunca mais volta atrás. Tanto que quando me deparei com o último post do Kent Beck (link abaixo), comecei automaticamente a refletir sobre a palavra demo.
Então, vou tentar explorar um pouco o significado de duas palavras que frequentemente usamos no desenvolvimento de software: demo e review.
Prometo não viajar muito!
O que é um "demo"? Resposta 1:
Como alguém que gosta de videogames, lembro-me de jogar muitos demos quando era mais jovem. Os demos eram basicamente uma versão do jogo com recursos limitados, como uma única fase, e havia inúmeras revistas (como a CD Expert!) que vinham com um CD-ROM contendo dezenas de demos para que você pudesse ter uma pequena amostra de um jogo antes de tomar a decisão de gastar seu dinheiro para comprar a versão completa. Os demos ainda existem e estão por aí, só não vêm mais em CD-ROMs.
Então, um demo é sempre uma demonstração de algo que já está feito. Seu propósito é permitir que as pessoas testem algo antes de responder a uma pergunta simples: isso vale meu dinheiro? Do lado dos desenvolvedores, eles estão tentando demonstrar que a resposta deveria ser um sonoro "SIM!".
E é por isso que não gosto de usar a palavra demo em cenários onde o cliente já está comprometido com o desenvolvimento do produto. Eles já investiram dinheiro ali, então... qual é o propósito de oferecer a eles uma demonstração?
O que mais é um "demo"? Resposta 2:
A palavra demo poderia ter um significado diferente. Especialmente em ambientes de baixa confiança, onde o cliente precisa de alguma prova de progresso. Alguma forma de validar que o que está sendo produzido pela equipe é 100% coerente com a especificação inicial.
Aqui cliente, se você clicar aqui, uma janela popup se abre e uma mensagem de erro é mostrada, Q.E.D.
Q.E.D - quod erat demonstrandum, ou C.Q.D - Como queríamos demonstrar.
Desta vez, estamos usando uma demonstração para provar algo. Para mostrar ao cliente que estamos trabalhando desde nossa última reunião e que o progresso que fizemos corresponde às expectativas iniciais.
Esse significado pode funcionar melhor para algumas equipes de desenvolvimento de software, mas ainda tem um problema: uma demonstração não é sobre coletar feedback.
E quanto a um "review"?
Re-view. Re-ver. Ver novamente. Funciona?
"Vamos olhar para o software que estamos produzindo mais uma vez e verificar se estamos indo para o destino correto."
Isso parece bom. Mas ao mesmo tempo penso em quando minha bicicleta passa por uma revisão de segurança:
"Temos uma lista de verificação predefinida, e vamos verificar cada item para garantir que tudo esteja de acordo com os padrões."
Aí não, já não funciona tão bem.
“Review” não é minha palavra preferida para o contexto de desenvolvimento de softwares complexos, mas é muito melhor que demo. Pelo menos existe a possibilidade de transmitirmos a mensagem correta aqui.
Quais outras palavras poderíamos usar?
Não existe uma palavra perfeita para usar. Mas se olharmos para o framework Scrum, por exemplo: o nome Sprint Retrospective faz todo sentido para mim. O nome Sprint Review não. Estamos revisando a Sprint? Que tipo de review estamos fazendo?
Essa conversa me lembra de quando eu estava planejando meu casamento e tivemos que experimentar todos os salgadinhos chiques, os doces e o bolo (Ô tarefa boa!). Nós os experimentávamos e fornecíamos feedback. Não era uma simples degustação, porque os nossos comentários sobre a comida eram usados para adaptar o que seria servido na festa. Essa experiência está muito mais alinhada com o que as equipes de desenvolvimento de software estão realmente tentando (ou deveriam estar) fazer em um Sprint Review.
Então, se eu fosse renomear o Sprint Review, eu chamaria algo como "Experimentação do Incremento" ou "Experimentação do Produto".
Assim falamos do que foi produzido (incrementos) e não do processo de produção (Sprint). E uma experimentação é sobre empirismo, torna mais explícita a necessidade da participação ativa do cliente.
É perfeito? Bem... não. Mas:
Toda palavra é um preconceito - Nietzsche
PS: Se você gosta deste tipo de assunto, provavelmente vai gostar de passar meia hora ouvindo este episódio de Philosophize This! - Episode 178: Susan Sontag on Metaphors. Embora esteja em inglês, é possível ver a transcrição neste link e aí fica fácil traduzir com o auxílio de qualquer navegador ou LLM.