A minha irmã gere um negócio de passear cães a partir do carro. Catorze clientes, um Google Calendar partilhado que três pessoas editam mal, e o hábito de enviar mensagens "a caminho!" para quem quer que seja o dono do próximo cão, o que significa que já se esqueceu duas vezes e teve de aguentar a chamada embaraçosa. Pediu-me uma "app, nada de especial" numa quinta-feira e queria-a em funcionamento até à segunda-feira seguinte. Disse-lhe que tentaria ter algo pronto até domingo à noite. Este é o registo que mantive, porque queria saber depois o que realmente demorou tempo versus o que apenas pensei que demoraria.
Sexta-feira, 20h40 — o pedido inicial
Não abri um editor em branco. Abri o chat e simplesmente descrevi o negócio: passeadora de cães independente, catorze clientes recorrentes, precisa que os clientes recebam um SMS automático de lembrete na manhã do passeio, precisa de uma página simples onde ela possa adicionar um novo cliente e o nome do cão em menos de trinta segundos porque normalmente está a fazer isto de pé na entrada de alguém. Disse "app de marcações" uma vez e depois retirei imediatamente a expressão — não é uma app de marcações, é uma lista de clientes com um gatilho de lembrete. Ser preciso sobre o que não é acabou por importar mais do que descrever o que é.
Sexta-feira, 21h05 — o plano regressa
O plano tinha três elementos que eu não tinha pedido e que teria esquecido:
- Uma forma de marcar um passeio como concluído, para que o lembrete não dispare duas vezes
- Um link de cancelamento de subscrição de SMS para conformidade
- Uma vista diária simples em vez de uma grelha de calendário, porque uma grelha de calendário num telemóvel com catorze entradas é apenas uma parede de texto minúsculo
Reescrevi o plano três vezes separadas nos vinte minutos seguintes, sobretudo a reformular coisas que não precisavam de ser reformuladas. Em retrospetiva, isso foi puro nervosismo — o agente de planeamento já tinha acertado na estrutura à primeira, e eu estava a editar frases em vez de substância.
Sexta-feira, 21h40 — primeira execução
Iniciei o processo e observei a equipa de agentes a trabalhar no modelo de cliente, na página de vista diária e na tarefa de lembretes. O design voltou com um aspeto de formulário de admissão de clínica veterinária, o que na verdade estava correto para o público — os clientes da minha irmã são donos de cães na casa dos 40 e 50 anos, não uma apresentação de investimento Série A. Quase critiquei o estilo visual por hábito antes de perceber que se adequava melhor ao utilizador real do que qualquer coisa que eu teria escolhido.
Sexta-feira, 22h30 — primeiro obstáculo
A componente de SMS precisava de uma chave de fornecedor ativa antes de conseguir enviar algo real, o que é comportamento correto e não um erro, mas eu tinha-me esquecido de que ainda não tinha configurado uma. Tudo o resto continuou a funcionar — a app apenas registava o que teria enviado em vez de o enviar, o que significava que eu podia continuar a construir em vez de ficar bloqueado num registo na Twilio às 22h30 de uma sexta-feira. Fui dormir.
Sábado, 8h00 — o verdadeiro contratempo
Este é o que custou tempo real. Tinha pedido que os lembretes fossem enviados "na manhã do passeio", e a primeira versão interpretou isso como um envio fixo às 7h para todos os clientes, independentemente da hora do passeio. Bem para um passeio às 9h, inútil para um às 16h. Voltei ao chat e disse isso diretamente:
O lembrete deve disparar um número fixo de horas antes da hora agendada de cada passeio, não numa hora fixa do relógio.
A correção demorou uma troca de mensagens. A lição não foi sobre a ferramenta, foi sobre o meu próprio pedido: "manhã do passeio" é o tipo de expressão que parece precisa para quem a diz e é completamente ambígua para todos os outros, incluindo, aparentemente, eu próprio doze horas depois.
Sábado, 11h15 — a ler o registo de verificação
Antes de tocar em mais nada, consultei o que a construção tinha verificado por si própria:
- O formulário de cliente a guardar corretamente
- A tarefa de lembretes a correr contra um dia de teste de marcações
- O link de cancelamento de subscrição a cancelar efetivamente um número de teste
Nada estava a arder. Habituei-me a ler isto antes de ir eu próprio à procura de problemas, porque me diz onde realmente vale a pena concentrar a atenção, em vez de clicar às cegas na esperança de reparar em algo errado.
Sábado, 14h00 — SMS, desta vez a sério
Criei a conta no fornecedor, coloquei a chave e enviei-me um lembrete de teste.
É pequeno, mas é o momento em que um projeto deixa de ser uma demonstração e passa a ser algo que existe no mundo real.
Sábado, 16h20 — a espera do domínio
Apontei o domínio dela real para lá e depois não fiz nada de útil durante duas horas enquanto o DNS se atualizava. Aproveitei o tempo para escrever eu próprio as catorze linhas de clientes reais, em vez de deixar isso para ela digitar no telemóvel no domingo à noite, o que, em retrospetiva, foi a melhor utilização do tempo em todo o fim de semana — a introdução de dados pouco glamorosa vale mais do que qualquer polimento extra que ninguém pediu.
Domingo, 9h00 — a parte que quase sobreconstruí
Meti na cabeça que ela ia querer um resumo semanal — passeios feitos, faltas, receita — e comecei a pedir um resumo automático de segunda-feira de manhã. Parei a meio da descrição. Ela tem catorze clientes e faz as contas dela num caderno. Uma funcionalidade de resumo é uma solução para um problema que ela ainda não tem. Deixei de lado. Posso acrescentá-la em cinco minutos na semana em que ela realmente a pedir, e até lá é apenas mais uma superfície para algo correr mal.
Domingo, 13h10 — enviei-lhe o link
Ela adicionou um cliente pelo telemóvel enquanto estava num parque de estacionamento, o que foi o verdadeiro teste que mais importou, mais do que qualquer coisa que eu próprio tivesse verificado.
Domingo, 18h40 — o que evitaria da próxima vez
O que evitaria da próxima vez:
- Três reescritas do plano que não mudaram nada
- Duas horas preocupado com o fornecedor de SMS antes sequer de tentar configurá-lo
- O painel de resumo quase construído — os trinta minutos mais rápidos de todo o fim de semana foram os que passei a dizer "não" à minha própria ideia em vez de a construir
Tudo o que realmente levou tempo foi ou uma ambiguidade genuína no meu próprio pedido ou a espera inevitável pelo servidor DNS de outra pessoa. Na próxima construção, vou escrever o pedido uma vez, relê-lo como se fosse um estranho a fazê-lo, e confiar mais no primeiro plano do que confiei neste.



