A rua que alaga
Conferir o que a inteligência artificial entrega, nos dias em que a regra encontra o limite


O capítulo da Rua das Flores terminou com o senhor do exame descendo na porta certa, vinte minutos antes do horário. Na corrida seguinte, a chuva apertou. Este capítulo mostra o que o Seu Ademir faz quando o GPS manda o táxi para uma avenida que alaga, e o que a Lia faz quando o código da ferramenta passa no primeiro teste.
A ferramenta entrega o código, você roda uma vez e o resultado aparece certinho na tela. O código tem nomes bem escolhidos, comentários educados e nenhum erro de digitação. Você manda o código para o time e vai para a próxima tarefa.
A resposta da ferramenta chega com cara de pronta, e quem confere se está pronta é você.
Catorze minutos pela avenida
Na esquina da imagem que abre este capítulo, debaixo de chuva forte, um táxi está parado com a seta da direita acesa, em verde, pronto para virar numa rua que sobe um morro. Em frente ao táxi, a avenida desce até um viaduto, e embaixo do viaduto a rua está coberta de água, com dois carros parados no meio da água.
O táxi é do Seu Ademir. Às sete e quinze, depois do senhor do exame, uma moça entra no táxi com uma mala e pede o aeroporto. A chuva já cai forte há vinte minutos. O GPS calcula o caminho mais rápido, pela avenida do córrego, em catorze minutos.
Pare aqui um segundo e responda como se você fosse o Seu Ademir. O GPS diz catorze minutos pela avenida. Você segue o GPS, ou confere alguma coisa antes?
O que o GPS ainda não sabia
O Seu Ademir confere. Em trinta e um anos de táxi, o Seu Ademir aprendeu que a avenida do córrego alaga embaixo do viaduto quando a chuva passa de vinte minutos. O GPS calcula o caminho com o trânsito de um minuto antes, e um minuto antes ainda não havia carro parado na água. O GPS só fica sabendo do alagamento quando os primeiros carros ficam presos.
O Seu Ademir vira à direita e sobe pelo morro, num caminho de dezenove minutos. Lá de cima, o Seu Ademir vê os dois carros parados na água embaixo do viaduto. A moça chega ao aeroporto com tempo para despachar a mala.
O mapa do GPS estava certo. O GPS respondeu bem com o que sabia, e o GPS não sabia da água. O Seu Ademir conferiu a resposta do GPS com o que só quem conhece a cidade sabe, e voltou a seguir o GPS no resto do caminho.
O Seu Ademir conferiu o caminho do GPS antes de entrar na avenida, e no resto da corrida seguiu o GPS de novo.
O código que passou no primeiro teste
Na terceira semana, a Lia pediu à ferramenta a parte do programa que calcula os horários livres de cada fisioterapeuta, com o pedido de quatro partes. A ferramenta escreveu o código, e a Lia rodou com o exemplo da terça-feira. Os horários apareceram certos na tela.
Antes de mandar o código para o Vagner revisar, a Lia leu cada linha perguntando por que aquela linha estava ali. Depois, a Lia testou os dias em que a agenda de uma clínica alaga: o fisioterapeuta que sai mais cedo, o feriado e o paciente que remarcou. No caso do fisioterapeuta que sai às doze e meia, o código oferecia uma sessão às onze e cinquenta. A sessão ia acabar às doze e quarenta, dez minutos depois do fim do turno.
O mercado chama esses dias diferentes de casos de borda (edge cases). Um caso de borda é o dia em que a regra do negócio encontra o limite dela, como a chuva de vinte minutos encontra o viaduto. A ferramenta escreveu o código certo para a terça-feira comum, e ninguém tinha contado à ferramenta onde a agenda alaga.
O código da ferramenta passou na terça-feira comum e alagou no fim do turno.
Onde a sua cidade alaga
A Lia escreveu, para o fim do turno, um pedaço de código que confere sozinho, toda vez, se a sessão cabe no horário do fisioterapeuta. O mercado chama esse pedaço de código de teste automatizado (automated test). Com o teste escrito, a Lia pediu à ferramenta o conserto e rodou o teste de novo. O teste passou, e a Lia mandou o código para revisão com uma nota contando o caso que tinha achado.
A Lia achou o caso do fim do turno porque sabia onde a agenda alaga. Na recepção, a Lia tinha remarcado dezenas de pacientes por causa de sessão que passava do horário. Quem conhece o negócio sabe onde procurar o erro, e a ferramenta só sabe procurar onde alguém mandou.
Como conferir antes de entrar na avenida
Quatro perguntas que conferem o caminho antes da avenida
As quatro perguntas tomam meia hora e poupam o dia em que o erro aparece na recepção de uma clínica, com o paciente esperando.
A Lia leu cada linha perguntando por que a linha existia. Uma parte que você não sabe explicar é uma rua que você não conhece.
O fim do turno, o feriado e o paciente remarcado são os viadutos da agenda. Liste os dias diferentes do seu negócio e teste cada um.
O exemplo que a ferramenta sugere costuma ser a terça-feira comum. Escolha você o exemplo difícil.
O teste automatizado confere o fim do turno toda vez que alguém mexer no código. A conferência da Lia virou uma conferência do time.
Conferir o que a ferramenta entrega custa meia hora, e o viaduto alagado custa a manhã de uma clínica.
práticaLevar para a entrevista
Três perguntas sobre conferir o que você não escreveu.abrir
Nas três perguntas abaixo existe a mesma tentação: dizer que você confia na ferramenta, ou dizer que não confia em nada. Só que nenhuma das três perguntas está medindo a sua opinião sobre a ferramenta. As três estão medindo se você sabe onde o erro costuma estar, como o Seu Ademir sabe onde a avenida alaga.
“Como você confere um código que não foi você que escreveu?”
A pergunta vale para o código de um colega e para o código de uma ferramenta, e mede se você tem um jeito de conferir.
- Que você lê para entender, e não só para ver se roda
- Que você testa os casos diferentes do negócio
- Que você deixa um teste que continua conferindo
- Dizer que roda uma vez e confia
- Dizer que confere só o que o colega pediu
- Dizer que confia porque a ferramenta é boa
“Leio cada linha perguntando por que a linha está ali. Depois testo os dias difíceis do negócio. Num código de horários livres, o exemplo comum passou, e o fim de turno falhou: o código oferecia uma sessão que passava do horário do fisioterapeuta. Escrevi um teste para esse caso antes de pedir o conserto.”
“Rodo uma vez e, se funcionar, eu mando.”
Rodar uma vez confere a terça-feira comum, e o erro mora no dia diferente. Quem entrevista entende que o primeiro caso de borda vai chegar à clínica antes de chegar a você.
“Me conta de um erro que só apareceu num caso que ninguém tinha pensado.”
Esta pergunta mede se você sabe procurar os casos diferentes, e o que você faz quando acha um.
- Contar o caso diferente com o número ou a hora
- Dizer como você achou o caso
- Dizer o que ficou para evitar o próximo
- Dizer que nunca teve um erro assim
- Culpar quem não avisou do caso
- Contar o erro sem dizer o que mudou
“No programa de confirmação de consultas que eu fiz para uma clínica, a mensagem foi duas vezes para quarenta pacientes. Eu só tinha testado o envio de um dia comum. Passei a guardar a data de cada envio, e hoje o programa confere a data antes de mandar a mensagem.”
“Não lembro de nenhum. O que eu faço costuma funcionar.”
A resposta mostra alguém que ainda não procurou os casos diferentes, e não alguém que não erra.
“Se a ferramenta é mais rápida, por que você gasta tempo conferindo?”
A pergunta procura saber se você entende quanto custa o erro que chega à pessoa do outro lado.
- Que você compara o tempo de conferir com o custo do erro
- Que você confere mais onde o erro custa mais
- Que os testes deixam a conferência mais rápida da próxima vez
- Que você pensa em quem sofre o erro
- Que você não é contra a ferramenta
- Que você explica sem dar sermão
“Porque a ferramenta escreve depressa, e quem encontra o erro é a pessoa do outro lado. Antes de mandar às empresas o link da versão de teste do meu programa, eu conferi com nomes que tinham acento, e as letras apareciam trocadas. A conferência levou poucos minutos, e sem a conferência a recrutadora ia ver primeiro um nome quebrado.”
“Porque a ferramenta erra muito.”
A resposta perde a chance de mostrar quem paga o erro, e soa como uma pessoa que confere por desconfiança, e não por saber o que está em jogo.
práticaLevar para o trabalho
Três situações em que conferir o que a ferramenta entrega evita o problema.abrir
O código da ferramenta passou no teste que você fez
Essa situação é o GPS dizendo catorze minutos. O erro comum é mandar o código porque o primeiro teste deu certo.
- Listar os dias diferentes do negócio
- Testar cada dia diferente antes de mandar
- Contar na revisão o que você testou
- Mandar porque o exemplo comum passou
- Testar só com o exemplo que a ferramenta sugeriu
- Deixar a conferência para quem revisa
Na nota da revisão: “Testei a terça-feira comum, o fim de turno às doze e meia, o feriado e o paciente remarcado. O fim de turno falhava e está consertado, com um teste. A sessão dupla eu não testei, porque não sei se alguma clínica usa.”
A nota diz o que foi conferido e o que ficou de fora, e o Vagner sabe onde olhar com mais cuidado.
O prazo está apertado e conferir parece luxo
Essa situação vai aparecer muitas vezes. O erro comum é pular a conferência em silêncio, e deixar o time achar que o código foi conferido.
- Conferir primeiro os casos que custam mais
- Dizer ao time o que não deu tempo de conferir
- Marcar quando a conferência termina
- Pular a conferência sem avisar
- Conferir tudo e perder o prazo sem avisar
- Dizer que está conferido quando não está
“Joana, para entregar hoje eu conferi o fim de turno e o feriado, que são os casos que mais aparecem na recepção. O paciente remarcado eu confiro amanhã de manhã. Você prefere entregar hoje assim, ou amanhã com tudo conferido?”
A decisão de entregar sem conferir tudo fica com quem decide o prazo, e a Joana decide sabendo o que ficou de fora.
A ferramenta insiste numa resposta que você acha errada
Essa situação acontece quando você pede o conserto e a ferramenta devolve o mesmo código com outra explicação. O erro comum é aceitar porque a explicação parece segura.
- Escrever o teste que mostra o erro
- Mostrar à ferramenta o resultado do teste
- Perguntar a um colega se o teste está certo
- Aceitar porque a explicação parece segura
- Discutir com a ferramenta sem um exemplo
- Desistir e deixar o erro no código
Para a ferramenta: “Este teste cria um fisioterapeuta que sai às doze e meia e pede os horários livres. O código ainda oferece a sessão das onze e cinquenta, que acaba às doze e quarenta. Conserte o código para este teste passar.”
A fala mostra o erro com o horário de verdade, e o teste continua no projeto depois do conserto.
Um teste que mostra o erro encerra a discussão com a ferramenta melhor que qualquer argumento.
O que muda daqui em diante
A moça da mala chegou ao aeroporto pelo morro, cinco minutos depois do que o GPS prometia e com tempo para despachar a mala.