A rua que alaga

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

Uma esquina de cidade debaixo de chuva forte, vista de cima e um pouco de lado. Um táxi está parado na esquina, com a seta da direita acesa, pronto para virar numa rua que sobe um morro. A seta acesa do táxi é desenhada em verde, o único elemento colorido da imagem. 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. A chuva cai em linhas finas, e há poças na calçada. Não há nenhuma palavra escrita na imagem.Uma esquina de cidade debaixo de chuva forte, vista de cima e um pouco de lado. Um táxi está parado na esquina, com a seta da direita acesa, pronto para virar numa rua que sobe um morro. A seta acesa do táxi é desenhada em verde, o único elemento colorido da imagem. 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. A chuva cai em linhas finas, e há poças na calçada. Não há nenhuma palavra escrita na imagem.
O GPS mandava seguir em frente. O motorista sabia que, com aquela chuva, a avenida alaga embaixo do viaduto.

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.

Se o código rodou, o código está certo.
A ferramenta erra menos do que eu.
Conferir tudo o que a ferramenta faz é perder o tempo que ela economiza.
Se tiver problema, alguém vai ver na revisão.

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

Antes de entregar o que a ferramenta escreveu

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.

1. Eu sei dizer por que cada parte está ali?

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.

2. Em que dia este código alaga?

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.

3. Eu testei com um exemplo que eu escolhi?

O exemplo que a ferramenta sugere costuma ser a terça-feira comum. Escolha você o exemplo difícil.

4. O teste vai continuar conferindo depois de mim?

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ática

Levar 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.

O que quem entrevista quer ouvir
  • 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
O que derruba
  • Dizer que roda uma vez e confia
  • Dizer que confere só o que o colega pediu
  • Dizer que confia porque a ferramenta é boa
Boa resposta

“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.”

Resposta ruim

“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.

Boa direção
  • 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
Direção ruim
  • Dizer que nunca teve um erro assim
  • Culpar quem não avisou do caso
  • Contar o erro sem dizer o que mudou
Boa resposta

“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.”

Resposta ruim

“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.

O avaliador técnico quer ver
  • 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
O avaliador de pessoas quer ver
  • Que você pensa em quem sofre o erro
  • Que você não é contra a ferramenta
  • Que você explica sem dar sermão
Boa resposta

“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.”

Resposta ruim

“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ática

Levar 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.

O que ajuda
  • Listar os dias diferentes do negócio
  • Testar cada dia diferente antes de mandar
  • Contar na revisão o que você testou
O que atrapalha
  • Mandar porque o exemplo comum passou
  • Testar só com o exemplo que a ferramenta sugeriu
  • Deixar a conferência para quem revisa
O que dizer

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.

O que ajuda
  • Conferir primeiro os casos que custam mais
  • Dizer ao time o que não deu tempo de conferir
  • Marcar quando a conferência termina
O que atrapalha
  • Pular a conferência sem avisar
  • Conferir tudo e perder o prazo sem avisar
  • Dizer que está conferido quando não está
O que dizer

“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.

O que ajuda
  • Escrever o teste que mostra o erro
  • Mostrar à ferramenta o resultado do teste
  • Perguntar a um colega se o teste está certo
O que atrapalha
  • Aceitar porque a explicação parece segura
  • Discutir com a ferramenta sem um exemplo
  • Desistir e deixar o erro no código
O que dizer

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

O código que rodou na primeira vez
Antes
Código pronto
Agora
Código que passou na terça-feira comum
Conferir o que a ferramenta entrega
Antes
Tempo perdido
Agora
Meia hora que poupa a manhã de uma clínica
O que você sabe do negócio
Antes
Assunto da recepção
Agora
O mapa de onde o código alaga
O teste automatizado
Antes
Coisa para depois
Agora
A conferência que continua depois de você

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.